@layerfi/components 0.1.106-alpha → 0.1.106-alpha.1

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
@@ -1065,6 +1065,7 @@ declare module '@layerfi/components/components/Badge/Badge' {
1065
1065
  import { ReactNode } from 'react';
1066
1066
  import { ButtonProps } from '@layerfi/components/components/Button/Button';
1067
1067
  export enum BadgeSize {
1068
+ EXTRA_SMALL = "xs",
1068
1069
  SMALL = "small",
1069
1070
  MEDIUM = "medium"
1070
1071
  }
@@ -1694,6 +1695,18 @@ declare module '@layerfi/components/components/BaseConfirmationModal/BaseConfirm
1694
1695
  };
1695
1696
  export function BaseConfirmationModal({ isOpen, onOpenChange, title, description, onConfirm, confirmLabel, retryLabel, cancelLabel, errorText, }: BaseConfirmationModalProps): import("react/jsx-runtime").JSX.Element;
1696
1697
 
1698
+ }
1699
+ declare module '@layerfi/components/components/BaseDetailView/BaseDetailView' {
1700
+ import type { PropsWithChildren } from 'react';
1701
+ export type BaseDetailViewProps = PropsWithChildren<{
1702
+ name: string;
1703
+ onGoBack: () => void;
1704
+ slots: {
1705
+ Header: React.FC;
1706
+ };
1707
+ }>;
1708
+ export const BaseDetailView: ({ name, onGoBack, slots, children }: BaseDetailViewProps) => import("react/jsx-runtime").JSX.Element;
1709
+
1697
1710
  }
1698
1711
  declare module '@layerfi/components/components/Bills/BillSummary' {
1699
1712
  import type { Bill } from '@layerfi/components/types';
@@ -2601,6 +2614,14 @@ declare module '@layerfi/components/components/CustomAccountForm/useCustomAccoun
2601
2614
  };
2602
2615
  export {};
2603
2616
 
2617
+ }
2618
+ declare module '@layerfi/components/components/DataPoint/DataPoint' {
2619
+ import type { PropsWithChildren } from 'react';
2620
+ export type DataPointProps = PropsWithChildren<{
2621
+ label: string;
2622
+ }>;
2623
+ export const DataPoint: ({ label, children }: DataPointProps) => import("react/jsx-runtime").JSX.Element;
2624
+
2604
2625
  }
2605
2626
  declare module '@layerfi/components/components/DataState/DataState' {
2606
2627
  import { ReactNode } from 'react';
@@ -3199,13 +3220,12 @@ declare module '@layerfi/components/components/Input/index' {
3199
3220
  }
3200
3221
  declare module '@layerfi/components/components/Integrations/Integrations' {
3201
3222
  export interface IntegrationsProps {
3202
- elevated?: boolean;
3203
3223
  stringOverrides?: {
3204
3224
  title?: string;
3205
3225
  };
3206
3226
  }
3207
3227
  export const Integrations: (props: IntegrationsProps) => import("react/jsx-runtime").JSX.Element;
3208
- export const IntegrationsComponent: ({ elevated, stringOverrides, }: IntegrationsProps) => import("react/jsx-runtime").JSX.Element;
3228
+ export const IntegrationsComponent: ({ stringOverrides, }: IntegrationsProps) => import("react/jsx-runtime").JSX.Element;
3209
3229
 
3210
3230
  }
3211
3231
  declare module '@layerfi/components/components/Integrations/IntegrationsConnectMenu/IntegrationsConnectMenu' {
@@ -3247,10 +3267,40 @@ declare module '@layerfi/components/components/Integrations/IntegrationsQuickboo
3247
3267
  export const getQuickbooksConnectionSyncUiState: (quickbooksConnectionStatus: StatusOfQuickbooksConnection) => QuickbooksConnectionSyncUiState;
3248
3268
 
3249
3269
  }
3250
- declare module '@layerfi/components/components/Invoices/InvoiceForm/useInvoiceForm' {
3251
- import { FormValidateOrFn, FormAsyncValidateOrFn } from '@tanstack/react-form';
3270
+ declare module '@layerfi/components/components/Invoices/InvoiceDetail/InvoiceDetail' {
3271
+ import { type InvoiceFormProps } from '@layerfi/components/components/Invoices/InvoiceForm/InvoiceForm';
3272
+ export type InvoiceDetailProps = InvoiceFormProps & {
3273
+ onGoBack: () => void;
3274
+ };
3275
+ export const InvoiceDetail: (props: InvoiceDetailProps) => import("react/jsx-runtime").JSX.Element;
3276
+
3277
+ }
3278
+ declare module '@layerfi/components/components/Invoices/InvoiceForm/InvoiceForm' {
3252
3279
  import type { Invoice } from '@layerfi/components/features/invoices/invoiceSchemas';
3253
3280
  import { UpsertInvoiceMode } from '@layerfi/components/features/invoices/api/useUpsertInvoice';
3281
+ export type InvoiceFormMode = {
3282
+ mode: UpsertInvoiceMode.Update;
3283
+ invoice: Invoice;
3284
+ } | {
3285
+ mode: UpsertInvoiceMode.Create;
3286
+ };
3287
+ export type InvoiceFormProps = InvoiceFormMode & {
3288
+ onSuccess?: (invoice: Invoice) => void;
3289
+ };
3290
+ export const InvoiceForm: (props: InvoiceFormProps) => import("react/jsx-runtime").JSX.Element;
3291
+
3292
+ }
3293
+ declare module '@layerfi/components/components/Invoices/InvoiceForm/useInvoiceForm' {
3294
+ import { type Invoice } from '@layerfi/components/features/invoices/invoiceSchemas';
3295
+ import { UpsertInvoiceMode } from '@layerfi/components/features/invoices/api/useUpsertInvoice';
3296
+ import { BigDecimal as BD } from 'effect';
3297
+ export const EMPTY_LINE_ITEM: {
3298
+ product: string;
3299
+ description: string;
3300
+ unitPrice: number;
3301
+ quantity: BD.BigDecimal;
3302
+ amount: number;
3303
+ };
3254
3304
  type UseInvoiceFormProps = {
3255
3305
  onSuccess?: (invoice: Invoice) => void;
3256
3306
  mode: UpsertInvoiceMode.Create;
@@ -3260,172 +3310,1271 @@ declare module '@layerfi/components/components/Invoices/InvoiceForm/useInvoiceFo
3260
3310
  invoice: Invoice;
3261
3311
  };
3262
3312
  export const useInvoiceForm: (props: UseInvoiceFormProps) => {
3263
- form: import("@tanstack/react-form").ReactFormExtendedApi<{
3264
- readonly memo: string | null;
3265
- readonly sentAt: Date;
3266
- readonly dueAt: Date;
3267
- readonly invoiceNumber: string | undefined;
3268
- readonly lineItems: readonly {
3269
- readonly description: string | undefined;
3270
- readonly product: string;
3271
- readonly quantity: import("effect/BigDecimal").BigDecimal;
3272
- readonly unitPrice: number;
3313
+ form: import("@tanstack/react-form").FormApi<{
3314
+ invoiceNumber: string;
3315
+ customer: null;
3316
+ email: string;
3317
+ address: string;
3318
+ lineItems: {
3319
+ product: string;
3320
+ description: string;
3321
+ unitPrice: number;
3322
+ quantity: BD.BigDecimal;
3323
+ amount: number;
3273
3324
  }[];
3274
- readonly additionalDiscount: number | undefined;
3275
- readonly customerId: string;
3276
- readonly additionalSalesTaxes: readonly {
3277
- readonly amount: number;
3278
- }[] | undefined;
3279
- }, FormValidateOrFn<{
3280
- readonly memo: string | null;
3281
- readonly sentAt: Date;
3282
- readonly dueAt: Date;
3283
- readonly invoiceNumber: string | undefined;
3284
- readonly lineItems: readonly {
3285
- readonly description: string | undefined;
3286
- readonly product: string;
3287
- readonly quantity: import("effect/BigDecimal").BigDecimal;
3288
- readonly unitPrice: number;
3325
+ } | {
3326
+ invoiceNumber: string | null;
3327
+ customer: {
3328
+ readonly id: string;
3329
+ readonly externalId: string | null;
3330
+ readonly individualName: string | null;
3331
+ readonly companyName: string | null;
3332
+ readonly email: string | null;
3333
+ readonly mobilePhone: string | null;
3334
+ readonly officePhone: string | null;
3335
+ readonly addressString: string | null;
3336
+ readonly status: "ACTIVE" | "ARCHIVED";
3337
+ readonly memo: string | null;
3338
+ readonly _local?: {
3339
+ readonly isOptimistic: boolean;
3340
+ } | undefined;
3341
+ } | null;
3342
+ email: string | null | undefined;
3343
+ address: string | null | undefined;
3344
+ lineItems: {
3345
+ amount: number;
3346
+ id: string;
3347
+ externalId: string | null;
3348
+ memo: string | null;
3349
+ description: string | null;
3350
+ product: string | null;
3351
+ subtotal: number;
3352
+ quantity: BD.BigDecimal;
3353
+ invoiceId: string;
3354
+ unitPrice: number;
3355
+ discountAmount: number;
3356
+ salesTaxTotal: number;
3357
+ totalAmount: number;
3289
3358
  }[];
3290
- readonly additionalDiscount: number | undefined;
3291
- readonly customerId: string;
3292
- readonly additionalSalesTaxes: readonly {
3293
- readonly amount: number;
3294
- }[] | undefined;
3295
- }>, FormValidateOrFn<{
3296
- readonly memo: string | null;
3297
- readonly sentAt: Date;
3298
- readonly dueAt: Date;
3299
- readonly invoiceNumber: string | undefined;
3300
- readonly lineItems: readonly {
3301
- readonly description: string | undefined;
3302
- readonly product: string;
3303
- readonly quantity: import("effect/BigDecimal").BigDecimal;
3304
- readonly unitPrice: number;
3359
+ }, import("@tanstack/react-form").FormValidateOrFn<{
3360
+ invoiceNumber: string;
3361
+ customer: null;
3362
+ email: string;
3363
+ address: string;
3364
+ lineItems: {
3365
+ product: string;
3366
+ description: string;
3367
+ unitPrice: number;
3368
+ quantity: BD.BigDecimal;
3369
+ amount: number;
3305
3370
  }[];
3306
- readonly additionalDiscount: number | undefined;
3307
- readonly customerId: string;
3308
- readonly additionalSalesTaxes: readonly {
3309
- readonly amount: number;
3310
- }[] | undefined;
3311
- }>, FormValidateOrFn<{
3312
- readonly memo: string | null;
3313
- readonly sentAt: Date;
3314
- readonly dueAt: Date;
3315
- readonly invoiceNumber: string | undefined;
3316
- readonly lineItems: readonly {
3317
- readonly description: string | undefined;
3318
- readonly product: string;
3319
- readonly quantity: import("effect/BigDecimal").BigDecimal;
3320
- readonly unitPrice: number;
3371
+ } | {
3372
+ invoiceNumber: string | null;
3373
+ customer: {
3374
+ readonly id: string;
3375
+ readonly externalId: string | null;
3376
+ readonly individualName: string | null;
3377
+ readonly companyName: string | null;
3378
+ readonly email: string | null;
3379
+ readonly mobilePhone: string | null;
3380
+ readonly officePhone: string | null;
3381
+ readonly addressString: string | null;
3382
+ readonly status: "ACTIVE" | "ARCHIVED";
3383
+ readonly memo: string | null;
3384
+ readonly _local?: {
3385
+ readonly isOptimistic: boolean;
3386
+ } | undefined;
3387
+ } | null;
3388
+ email: string | null | undefined;
3389
+ address: string | null | undefined;
3390
+ lineItems: {
3391
+ amount: number;
3392
+ id: string;
3393
+ externalId: string | null;
3394
+ memo: string | null;
3395
+ description: string | null;
3396
+ product: string | null;
3397
+ subtotal: number;
3398
+ quantity: BD.BigDecimal;
3399
+ invoiceId: string;
3400
+ unitPrice: number;
3401
+ discountAmount: number;
3402
+ salesTaxTotal: number;
3403
+ totalAmount: number;
3321
3404
  }[];
3322
- readonly additionalDiscount: number | undefined;
3323
- readonly customerId: string;
3324
- readonly additionalSalesTaxes: readonly {
3325
- readonly amount: number;
3326
- }[] | undefined;
3327
- }>, FormValidateOrFn<{
3328
- readonly memo: string | null;
3329
- readonly sentAt: Date;
3330
- readonly dueAt: Date;
3331
- readonly invoiceNumber: string | undefined;
3332
- readonly lineItems: readonly {
3333
- readonly description: string | undefined;
3334
- readonly product: string;
3335
- readonly quantity: import("effect/BigDecimal").BigDecimal;
3336
- readonly unitPrice: number;
3405
+ }> | undefined, import("@tanstack/react-form").FormValidateOrFn<{
3406
+ invoiceNumber: string;
3407
+ customer: null;
3408
+ email: string;
3409
+ address: string;
3410
+ lineItems: {
3411
+ product: string;
3412
+ description: string;
3413
+ unitPrice: number;
3414
+ quantity: BD.BigDecimal;
3415
+ amount: number;
3337
3416
  }[];
3338
- readonly additionalDiscount: number | undefined;
3339
- readonly customerId: string;
3340
- readonly additionalSalesTaxes: readonly {
3341
- readonly amount: number;
3342
- }[] | undefined;
3343
- }>, FormAsyncValidateOrFn<{
3344
- readonly memo: string | null;
3345
- readonly sentAt: Date;
3346
- readonly dueAt: Date;
3347
- readonly invoiceNumber: string | undefined;
3348
- readonly lineItems: readonly {
3349
- readonly description: string | undefined;
3350
- readonly product: string;
3351
- readonly quantity: import("effect/BigDecimal").BigDecimal;
3352
- readonly unitPrice: number;
3417
+ } | {
3418
+ invoiceNumber: string | null;
3419
+ customer: {
3420
+ readonly id: string;
3421
+ readonly externalId: string | null;
3422
+ readonly individualName: string | null;
3423
+ readonly companyName: string | null;
3424
+ readonly email: string | null;
3425
+ readonly mobilePhone: string | null;
3426
+ readonly officePhone: string | null;
3427
+ readonly addressString: string | null;
3428
+ readonly status: "ACTIVE" | "ARCHIVED";
3429
+ readonly memo: string | null;
3430
+ readonly _local?: {
3431
+ readonly isOptimistic: boolean;
3432
+ } | undefined;
3433
+ } | null;
3434
+ email: string | null | undefined;
3435
+ address: string | null | undefined;
3436
+ lineItems: {
3437
+ amount: number;
3438
+ id: string;
3439
+ externalId: string | null;
3440
+ memo: string | null;
3441
+ description: string | null;
3442
+ product: string | null;
3443
+ subtotal: number;
3444
+ quantity: BD.BigDecimal;
3445
+ invoiceId: string;
3446
+ unitPrice: number;
3447
+ discountAmount: number;
3448
+ salesTaxTotal: number;
3449
+ totalAmount: number;
3353
3450
  }[];
3354
- readonly additionalDiscount: number | undefined;
3355
- readonly customerId: string;
3356
- readonly additionalSalesTaxes: readonly {
3357
- readonly amount: number;
3358
- }[] | undefined;
3359
- }>, FormValidateOrFn<{
3360
- readonly memo: string | null;
3361
- readonly sentAt: Date;
3362
- readonly dueAt: Date;
3363
- readonly invoiceNumber: string | undefined;
3364
- readonly lineItems: readonly {
3365
- readonly description: string | undefined;
3366
- readonly product: string;
3367
- readonly quantity: import("effect/BigDecimal").BigDecimal;
3368
- readonly unitPrice: number;
3451
+ }> | undefined, import("@tanstack/react-form").FormAsyncValidateOrFn<{
3452
+ invoiceNumber: string;
3453
+ customer: null;
3454
+ email: string;
3455
+ address: string;
3456
+ lineItems: {
3457
+ product: string;
3458
+ description: string;
3459
+ unitPrice: number;
3460
+ quantity: BD.BigDecimal;
3461
+ amount: number;
3369
3462
  }[];
3370
- readonly additionalDiscount: number | undefined;
3371
- readonly customerId: string;
3372
- readonly additionalSalesTaxes: readonly {
3373
- readonly amount: number;
3374
- }[] | undefined;
3375
- }>, FormAsyncValidateOrFn<{
3376
- readonly memo: string | null;
3377
- readonly sentAt: Date;
3378
- readonly dueAt: Date;
3379
- readonly invoiceNumber: string | undefined;
3380
- readonly lineItems: readonly {
3381
- readonly description: string | undefined;
3382
- readonly product: string;
3383
- readonly quantity: import("effect/BigDecimal").BigDecimal;
3384
- readonly unitPrice: number;
3463
+ } | {
3464
+ invoiceNumber: string | null;
3465
+ customer: {
3466
+ readonly id: string;
3467
+ readonly externalId: string | null;
3468
+ readonly individualName: string | null;
3469
+ readonly companyName: string | null;
3470
+ readonly email: string | null;
3471
+ readonly mobilePhone: string | null;
3472
+ readonly officePhone: string | null;
3473
+ readonly addressString: string | null;
3474
+ readonly status: "ACTIVE" | "ARCHIVED";
3475
+ readonly memo: string | null;
3476
+ readonly _local?: {
3477
+ readonly isOptimistic: boolean;
3478
+ } | undefined;
3479
+ } | null;
3480
+ email: string | null | undefined;
3481
+ address: string | null | undefined;
3482
+ lineItems: {
3483
+ amount: number;
3484
+ id: string;
3485
+ externalId: string | null;
3486
+ memo: string | null;
3487
+ description: string | null;
3488
+ product: string | null;
3489
+ subtotal: number;
3490
+ quantity: BD.BigDecimal;
3491
+ invoiceId: string;
3492
+ unitPrice: number;
3493
+ discountAmount: number;
3494
+ salesTaxTotal: number;
3495
+ totalAmount: number;
3385
3496
  }[];
3386
- readonly additionalDiscount: number | undefined;
3387
- readonly customerId: string;
3388
- readonly additionalSalesTaxes: readonly {
3389
- readonly amount: number;
3390
- }[] | undefined;
3391
- }>, FormAsyncValidateOrFn<{
3392
- readonly memo: string | null;
3393
- readonly sentAt: Date;
3394
- readonly dueAt: Date;
3395
- readonly invoiceNumber: string | undefined;
3396
- readonly lineItems: readonly {
3397
- readonly description: string | undefined;
3398
- readonly product: string;
3399
- readonly quantity: import("effect/BigDecimal").BigDecimal;
3400
- readonly unitPrice: number;
3497
+ }> | undefined, import("@tanstack/react-form").FormValidateOrFn<{
3498
+ invoiceNumber: string;
3499
+ customer: null;
3500
+ email: string;
3501
+ address: string;
3502
+ lineItems: {
3503
+ product: string;
3504
+ description: string;
3505
+ unitPrice: number;
3506
+ quantity: BD.BigDecimal;
3507
+ amount: number;
3401
3508
  }[];
3402
- readonly additionalDiscount: number | undefined;
3403
- readonly customerId: string;
3404
- readonly additionalSalesTaxes: readonly {
3405
- readonly amount: number;
3406
- }[] | undefined;
3407
- }>, FormAsyncValidateOrFn<{
3408
- readonly memo: string | null;
3409
- readonly sentAt: Date;
3410
- readonly dueAt: Date;
3411
- readonly invoiceNumber: string | undefined;
3412
- readonly lineItems: readonly {
3413
- readonly description: string | undefined;
3414
- readonly product: string;
3415
- readonly quantity: import("effect/BigDecimal").BigDecimal;
3416
- readonly unitPrice: number;
3509
+ } | {
3510
+ invoiceNumber: string | null;
3511
+ customer: {
3512
+ readonly id: string;
3513
+ readonly externalId: string | null;
3514
+ readonly individualName: string | null;
3515
+ readonly companyName: string | null;
3516
+ readonly email: string | null;
3517
+ readonly mobilePhone: string | null;
3518
+ readonly officePhone: string | null;
3519
+ readonly addressString: string | null;
3520
+ readonly status: "ACTIVE" | "ARCHIVED";
3521
+ readonly memo: string | null;
3522
+ readonly _local?: {
3523
+ readonly isOptimistic: boolean;
3524
+ } | undefined;
3525
+ } | null;
3526
+ email: string | null | undefined;
3527
+ address: string | null | undefined;
3528
+ lineItems: {
3529
+ amount: number;
3530
+ id: string;
3531
+ externalId: string | null;
3532
+ memo: string | null;
3533
+ description: string | null;
3534
+ product: string | null;
3535
+ subtotal: number;
3536
+ quantity: BD.BigDecimal;
3537
+ invoiceId: string;
3538
+ unitPrice: number;
3539
+ discountAmount: number;
3540
+ salesTaxTotal: number;
3541
+ totalAmount: number;
3542
+ }[];
3543
+ }> | undefined, import("@tanstack/react-form").FormAsyncValidateOrFn<{
3544
+ invoiceNumber: string;
3545
+ customer: null;
3546
+ email: string;
3547
+ address: string;
3548
+ lineItems: {
3549
+ product: string;
3550
+ description: string;
3551
+ unitPrice: number;
3552
+ quantity: BD.BigDecimal;
3553
+ amount: number;
3554
+ }[];
3555
+ } | {
3556
+ invoiceNumber: string | null;
3557
+ customer: {
3558
+ readonly id: string;
3559
+ readonly externalId: string | null;
3560
+ readonly individualName: string | null;
3561
+ readonly companyName: string | null;
3562
+ readonly email: string | null;
3563
+ readonly mobilePhone: string | null;
3564
+ readonly officePhone: string | null;
3565
+ readonly addressString: string | null;
3566
+ readonly status: "ACTIVE" | "ARCHIVED";
3567
+ readonly memo: string | null;
3568
+ readonly _local?: {
3569
+ readonly isOptimistic: boolean;
3570
+ } | undefined;
3571
+ } | null;
3572
+ email: string | null | undefined;
3573
+ address: string | null | undefined;
3574
+ lineItems: {
3575
+ amount: number;
3576
+ id: string;
3577
+ externalId: string | null;
3578
+ memo: string | null;
3579
+ description: string | null;
3580
+ product: string | null;
3581
+ subtotal: number;
3582
+ quantity: BD.BigDecimal;
3583
+ invoiceId: string;
3584
+ unitPrice: number;
3585
+ discountAmount: number;
3586
+ salesTaxTotal: number;
3587
+ totalAmount: number;
3588
+ }[];
3589
+ }> | undefined, import("@tanstack/react-form").FormValidateOrFn<{
3590
+ invoiceNumber: string;
3591
+ customer: null;
3592
+ email: string;
3593
+ address: string;
3594
+ lineItems: {
3595
+ product: string;
3596
+ description: string;
3597
+ unitPrice: number;
3598
+ quantity: BD.BigDecimal;
3599
+ amount: number;
3600
+ }[];
3601
+ } | {
3602
+ invoiceNumber: string | null;
3603
+ customer: {
3604
+ readonly id: string;
3605
+ readonly externalId: string | null;
3606
+ readonly individualName: string | null;
3607
+ readonly companyName: string | null;
3608
+ readonly email: string | null;
3609
+ readonly mobilePhone: string | null;
3610
+ readonly officePhone: string | null;
3611
+ readonly addressString: string | null;
3612
+ readonly status: "ACTIVE" | "ARCHIVED";
3613
+ readonly memo: string | null;
3614
+ readonly _local?: {
3615
+ readonly isOptimistic: boolean;
3616
+ } | undefined;
3617
+ } | null;
3618
+ email: string | null | undefined;
3619
+ address: string | null | undefined;
3620
+ lineItems: {
3621
+ amount: number;
3622
+ id: string;
3623
+ externalId: string | null;
3624
+ memo: string | null;
3625
+ description: string | null;
3626
+ product: string | null;
3627
+ subtotal: number;
3628
+ quantity: BD.BigDecimal;
3629
+ invoiceId: string;
3630
+ unitPrice: number;
3631
+ discountAmount: number;
3632
+ salesTaxTotal: number;
3633
+ totalAmount: number;
3634
+ }[];
3635
+ }> | undefined, import("@tanstack/react-form").FormAsyncValidateOrFn<{
3636
+ invoiceNumber: string;
3637
+ customer: null;
3638
+ email: string;
3639
+ address: string;
3640
+ lineItems: {
3641
+ product: string;
3642
+ description: string;
3643
+ unitPrice: number;
3644
+ quantity: BD.BigDecimal;
3645
+ amount: number;
3646
+ }[];
3647
+ } | {
3648
+ invoiceNumber: string | null;
3649
+ customer: {
3650
+ readonly id: string;
3651
+ readonly externalId: string | null;
3652
+ readonly individualName: string | null;
3653
+ readonly companyName: string | null;
3654
+ readonly email: string | null;
3655
+ readonly mobilePhone: string | null;
3656
+ readonly officePhone: string | null;
3657
+ readonly addressString: string | null;
3658
+ readonly status: "ACTIVE" | "ARCHIVED";
3659
+ readonly memo: string | null;
3660
+ readonly _local?: {
3661
+ readonly isOptimistic: boolean;
3662
+ } | undefined;
3663
+ } | null;
3664
+ email: string | null | undefined;
3665
+ address: string | null | undefined;
3666
+ lineItems: {
3667
+ amount: number;
3668
+ id: string;
3669
+ externalId: string | null;
3670
+ memo: string | null;
3671
+ description: string | null;
3672
+ product: string | null;
3673
+ subtotal: number;
3674
+ quantity: BD.BigDecimal;
3675
+ invoiceId: string;
3676
+ unitPrice: number;
3677
+ discountAmount: number;
3678
+ salesTaxTotal: number;
3679
+ totalAmount: number;
3680
+ }[];
3681
+ }> | undefined, import("@tanstack/react-form").FormAsyncValidateOrFn<{
3682
+ invoiceNumber: string;
3683
+ customer: null;
3684
+ email: string;
3685
+ address: string;
3686
+ lineItems: {
3687
+ product: string;
3688
+ description: string;
3689
+ unitPrice: number;
3690
+ quantity: BD.BigDecimal;
3691
+ amount: number;
3692
+ }[];
3693
+ } | {
3694
+ invoiceNumber: string | null;
3695
+ customer: {
3696
+ readonly id: string;
3697
+ readonly externalId: string | null;
3698
+ readonly individualName: string | null;
3699
+ readonly companyName: string | null;
3700
+ readonly email: string | null;
3701
+ readonly mobilePhone: string | null;
3702
+ readonly officePhone: string | null;
3703
+ readonly addressString: string | null;
3704
+ readonly status: "ACTIVE" | "ARCHIVED";
3705
+ readonly memo: string | null;
3706
+ readonly _local?: {
3707
+ readonly isOptimistic: boolean;
3708
+ } | undefined;
3709
+ } | null;
3710
+ email: string | null | undefined;
3711
+ address: string | null | undefined;
3712
+ lineItems: {
3713
+ amount: number;
3714
+ id: string;
3715
+ externalId: string | null;
3716
+ memo: string | null;
3717
+ description: string | null;
3718
+ product: string | null;
3719
+ subtotal: number;
3720
+ quantity: BD.BigDecimal;
3721
+ invoiceId: string;
3722
+ unitPrice: number;
3723
+ discountAmount: number;
3724
+ salesTaxTotal: number;
3725
+ totalAmount: number;
3726
+ }[];
3727
+ }> | undefined, unknown> & import("@tanstack/react-form").ReactFormApi<{
3728
+ invoiceNumber: string;
3729
+ customer: null;
3730
+ email: string;
3731
+ address: string;
3732
+ lineItems: {
3733
+ product: string;
3734
+ description: string;
3735
+ unitPrice: number;
3736
+ quantity: BD.BigDecimal;
3737
+ amount: number;
3738
+ }[];
3739
+ } | {
3740
+ invoiceNumber: string | null;
3741
+ customer: {
3742
+ readonly id: string;
3743
+ readonly externalId: string | null;
3744
+ readonly individualName: string | null;
3745
+ readonly companyName: string | null;
3746
+ readonly email: string | null;
3747
+ readonly mobilePhone: string | null;
3748
+ readonly officePhone: string | null;
3749
+ readonly addressString: string | null;
3750
+ readonly status: "ACTIVE" | "ARCHIVED";
3751
+ readonly memo: string | null;
3752
+ readonly _local?: {
3753
+ readonly isOptimistic: boolean;
3754
+ } | undefined;
3755
+ } | null;
3756
+ email: string | null | undefined;
3757
+ address: string | null | undefined;
3758
+ lineItems: {
3759
+ amount: number;
3760
+ id: string;
3761
+ externalId: string | null;
3762
+ memo: string | null;
3763
+ description: string | null;
3764
+ product: string | null;
3765
+ subtotal: number;
3766
+ quantity: BD.BigDecimal;
3767
+ invoiceId: string;
3768
+ unitPrice: number;
3769
+ discountAmount: number;
3770
+ salesTaxTotal: number;
3771
+ totalAmount: number;
3772
+ }[];
3773
+ }, import("@tanstack/react-form").FormValidateOrFn<{
3774
+ invoiceNumber: string;
3775
+ customer: null;
3776
+ email: string;
3777
+ address: string;
3778
+ lineItems: {
3779
+ product: string;
3780
+ description: string;
3781
+ unitPrice: number;
3782
+ quantity: BD.BigDecimal;
3783
+ amount: number;
3784
+ }[];
3785
+ } | {
3786
+ invoiceNumber: string | null;
3787
+ customer: {
3788
+ readonly id: string;
3789
+ readonly externalId: string | null;
3790
+ readonly individualName: string | null;
3791
+ readonly companyName: string | null;
3792
+ readonly email: string | null;
3793
+ readonly mobilePhone: string | null;
3794
+ readonly officePhone: string | null;
3795
+ readonly addressString: string | null;
3796
+ readonly status: "ACTIVE" | "ARCHIVED";
3797
+ readonly memo: string | null;
3798
+ readonly _local?: {
3799
+ readonly isOptimistic: boolean;
3800
+ } | undefined;
3801
+ } | null;
3802
+ email: string | null | undefined;
3803
+ address: string | null | undefined;
3804
+ lineItems: {
3805
+ amount: number;
3806
+ id: string;
3807
+ externalId: string | null;
3808
+ memo: string | null;
3809
+ description: string | null;
3810
+ product: string | null;
3811
+ subtotal: number;
3812
+ quantity: BD.BigDecimal;
3813
+ invoiceId: string;
3814
+ unitPrice: number;
3815
+ discountAmount: number;
3816
+ salesTaxTotal: number;
3817
+ totalAmount: number;
3818
+ }[];
3819
+ }> | undefined, import("@tanstack/react-form").FormValidateOrFn<{
3820
+ invoiceNumber: string;
3821
+ customer: null;
3822
+ email: string;
3823
+ address: string;
3824
+ lineItems: {
3825
+ product: string;
3826
+ description: string;
3827
+ unitPrice: number;
3828
+ quantity: BD.BigDecimal;
3829
+ amount: number;
3830
+ }[];
3831
+ } | {
3832
+ invoiceNumber: string | null;
3833
+ customer: {
3834
+ readonly id: string;
3835
+ readonly externalId: string | null;
3836
+ readonly individualName: string | null;
3837
+ readonly companyName: string | null;
3838
+ readonly email: string | null;
3839
+ readonly mobilePhone: string | null;
3840
+ readonly officePhone: string | null;
3841
+ readonly addressString: string | null;
3842
+ readonly status: "ACTIVE" | "ARCHIVED";
3843
+ readonly memo: string | null;
3844
+ readonly _local?: {
3845
+ readonly isOptimistic: boolean;
3846
+ } | undefined;
3847
+ } | null;
3848
+ email: string | null | undefined;
3849
+ address: string | null | undefined;
3850
+ lineItems: {
3851
+ amount: number;
3852
+ id: string;
3853
+ externalId: string | null;
3854
+ memo: string | null;
3855
+ description: string | null;
3856
+ product: string | null;
3857
+ subtotal: number;
3858
+ quantity: BD.BigDecimal;
3859
+ invoiceId: string;
3860
+ unitPrice: number;
3861
+ discountAmount: number;
3862
+ salesTaxTotal: number;
3863
+ totalAmount: number;
3864
+ }[];
3865
+ }> | undefined, import("@tanstack/react-form").FormAsyncValidateOrFn<{
3866
+ invoiceNumber: string;
3867
+ customer: null;
3868
+ email: string;
3869
+ address: string;
3870
+ lineItems: {
3871
+ product: string;
3872
+ description: string;
3873
+ unitPrice: number;
3874
+ quantity: BD.BigDecimal;
3875
+ amount: number;
3876
+ }[];
3877
+ } | {
3878
+ invoiceNumber: string | null;
3879
+ customer: {
3880
+ readonly id: string;
3881
+ readonly externalId: string | null;
3882
+ readonly individualName: string | null;
3883
+ readonly companyName: string | null;
3884
+ readonly email: string | null;
3885
+ readonly mobilePhone: string | null;
3886
+ readonly officePhone: string | null;
3887
+ readonly addressString: string | null;
3888
+ readonly status: "ACTIVE" | "ARCHIVED";
3889
+ readonly memo: string | null;
3890
+ readonly _local?: {
3891
+ readonly isOptimistic: boolean;
3892
+ } | undefined;
3893
+ } | null;
3894
+ email: string | null | undefined;
3895
+ address: string | null | undefined;
3896
+ lineItems: {
3897
+ amount: number;
3898
+ id: string;
3899
+ externalId: string | null;
3900
+ memo: string | null;
3901
+ description: string | null;
3902
+ product: string | null;
3903
+ subtotal: number;
3904
+ quantity: BD.BigDecimal;
3905
+ invoiceId: string;
3906
+ unitPrice: number;
3907
+ discountAmount: number;
3908
+ salesTaxTotal: number;
3909
+ totalAmount: number;
3910
+ }[];
3911
+ }> | undefined, import("@tanstack/react-form").FormValidateOrFn<{
3912
+ invoiceNumber: string;
3913
+ customer: null;
3914
+ email: string;
3915
+ address: string;
3916
+ lineItems: {
3917
+ product: string;
3918
+ description: string;
3919
+ unitPrice: number;
3920
+ quantity: BD.BigDecimal;
3921
+ amount: number;
3922
+ }[];
3923
+ } | {
3924
+ invoiceNumber: string | null;
3925
+ customer: {
3926
+ readonly id: string;
3927
+ readonly externalId: string | null;
3928
+ readonly individualName: string | null;
3929
+ readonly companyName: string | null;
3930
+ readonly email: string | null;
3931
+ readonly mobilePhone: string | null;
3932
+ readonly officePhone: string | null;
3933
+ readonly addressString: string | null;
3934
+ readonly status: "ACTIVE" | "ARCHIVED";
3935
+ readonly memo: string | null;
3936
+ readonly _local?: {
3937
+ readonly isOptimistic: boolean;
3938
+ } | undefined;
3939
+ } | null;
3940
+ email: string | null | undefined;
3941
+ address: string | null | undefined;
3942
+ lineItems: {
3943
+ amount: number;
3944
+ id: string;
3945
+ externalId: string | null;
3946
+ memo: string | null;
3947
+ description: string | null;
3948
+ product: string | null;
3949
+ subtotal: number;
3950
+ quantity: BD.BigDecimal;
3951
+ invoiceId: string;
3952
+ unitPrice: number;
3953
+ discountAmount: number;
3954
+ salesTaxTotal: number;
3955
+ totalAmount: number;
3956
+ }[];
3957
+ }> | undefined, import("@tanstack/react-form").FormAsyncValidateOrFn<{
3958
+ invoiceNumber: string;
3959
+ customer: null;
3960
+ email: string;
3961
+ address: string;
3962
+ lineItems: {
3963
+ product: string;
3964
+ description: string;
3965
+ unitPrice: number;
3966
+ quantity: BD.BigDecimal;
3967
+ amount: number;
3968
+ }[];
3969
+ } | {
3970
+ invoiceNumber: string | null;
3971
+ customer: {
3972
+ readonly id: string;
3973
+ readonly externalId: string | null;
3974
+ readonly individualName: string | null;
3975
+ readonly companyName: string | null;
3976
+ readonly email: string | null;
3977
+ readonly mobilePhone: string | null;
3978
+ readonly officePhone: string | null;
3979
+ readonly addressString: string | null;
3980
+ readonly status: "ACTIVE" | "ARCHIVED";
3981
+ readonly memo: string | null;
3982
+ readonly _local?: {
3983
+ readonly isOptimistic: boolean;
3984
+ } | undefined;
3985
+ } | null;
3986
+ email: string | null | undefined;
3987
+ address: string | null | undefined;
3988
+ lineItems: {
3989
+ amount: number;
3990
+ id: string;
3991
+ externalId: string | null;
3992
+ memo: string | null;
3993
+ description: string | null;
3994
+ product: string | null;
3995
+ subtotal: number;
3996
+ quantity: BD.BigDecimal;
3997
+ invoiceId: string;
3998
+ unitPrice: number;
3999
+ discountAmount: number;
4000
+ salesTaxTotal: number;
4001
+ totalAmount: number;
4002
+ }[];
4003
+ }> | undefined, import("@tanstack/react-form").FormValidateOrFn<{
4004
+ invoiceNumber: string;
4005
+ customer: null;
4006
+ email: string;
4007
+ address: string;
4008
+ lineItems: {
4009
+ product: string;
4010
+ description: string;
4011
+ unitPrice: number;
4012
+ quantity: BD.BigDecimal;
4013
+ amount: number;
4014
+ }[];
4015
+ } | {
4016
+ invoiceNumber: string | null;
4017
+ customer: {
4018
+ readonly id: string;
4019
+ readonly externalId: string | null;
4020
+ readonly individualName: string | null;
4021
+ readonly companyName: string | null;
4022
+ readonly email: string | null;
4023
+ readonly mobilePhone: string | null;
4024
+ readonly officePhone: string | null;
4025
+ readonly addressString: string | null;
4026
+ readonly status: "ACTIVE" | "ARCHIVED";
4027
+ readonly memo: string | null;
4028
+ readonly _local?: {
4029
+ readonly isOptimistic: boolean;
4030
+ } | undefined;
4031
+ } | null;
4032
+ email: string | null | undefined;
4033
+ address: string | null | undefined;
4034
+ lineItems: {
4035
+ amount: number;
4036
+ id: string;
4037
+ externalId: string | null;
4038
+ memo: string | null;
4039
+ description: string | null;
4040
+ product: string | null;
4041
+ subtotal: number;
4042
+ quantity: BD.BigDecimal;
4043
+ invoiceId: string;
4044
+ unitPrice: number;
4045
+ discountAmount: number;
4046
+ salesTaxTotal: number;
4047
+ totalAmount: number;
4048
+ }[];
4049
+ }> | undefined, import("@tanstack/react-form").FormAsyncValidateOrFn<{
4050
+ invoiceNumber: string;
4051
+ customer: null;
4052
+ email: string;
4053
+ address: string;
4054
+ lineItems: {
4055
+ product: string;
4056
+ description: string;
4057
+ unitPrice: number;
4058
+ quantity: BD.BigDecimal;
4059
+ amount: number;
4060
+ }[];
4061
+ } | {
4062
+ invoiceNumber: string | null;
4063
+ customer: {
4064
+ readonly id: string;
4065
+ readonly externalId: string | null;
4066
+ readonly individualName: string | null;
4067
+ readonly companyName: string | null;
4068
+ readonly email: string | null;
4069
+ readonly mobilePhone: string | null;
4070
+ readonly officePhone: string | null;
4071
+ readonly addressString: string | null;
4072
+ readonly status: "ACTIVE" | "ARCHIVED";
4073
+ readonly memo: string | null;
4074
+ readonly _local?: {
4075
+ readonly isOptimistic: boolean;
4076
+ } | undefined;
4077
+ } | null;
4078
+ email: string | null | undefined;
4079
+ address: string | null | undefined;
4080
+ lineItems: {
4081
+ amount: number;
4082
+ id: string;
4083
+ externalId: string | null;
4084
+ memo: string | null;
4085
+ description: string | null;
4086
+ product: string | null;
4087
+ subtotal: number;
4088
+ quantity: BD.BigDecimal;
4089
+ invoiceId: string;
4090
+ unitPrice: number;
4091
+ discountAmount: number;
4092
+ salesTaxTotal: number;
4093
+ totalAmount: number;
3417
4094
  }[];
3418
- readonly additionalDiscount: number | undefined;
3419
- readonly customerId: string;
3420
- readonly additionalSalesTaxes: readonly {
3421
- readonly amount: number;
3422
- }[] | undefined;
3423
- }>>;
4095
+ }> | undefined, import("@tanstack/react-form").FormAsyncValidateOrFn<{
4096
+ invoiceNumber: string;
4097
+ customer: null;
4098
+ email: string;
4099
+ address: string;
4100
+ lineItems: {
4101
+ product: string;
4102
+ description: string;
4103
+ unitPrice: number;
4104
+ quantity: BD.BigDecimal;
4105
+ amount: number;
4106
+ }[];
4107
+ } | {
4108
+ invoiceNumber: string | null;
4109
+ customer: {
4110
+ readonly id: string;
4111
+ readonly externalId: string | null;
4112
+ readonly individualName: string | null;
4113
+ readonly companyName: string | null;
4114
+ readonly email: string | null;
4115
+ readonly mobilePhone: string | null;
4116
+ readonly officePhone: string | null;
4117
+ readonly addressString: string | null;
4118
+ readonly status: "ACTIVE" | "ARCHIVED";
4119
+ readonly memo: string | null;
4120
+ readonly _local?: {
4121
+ readonly isOptimistic: boolean;
4122
+ } | undefined;
4123
+ } | null;
4124
+ email: string | null | undefined;
4125
+ address: string | null | undefined;
4126
+ lineItems: {
4127
+ amount: number;
4128
+ id: string;
4129
+ externalId: string | null;
4130
+ memo: string | null;
4131
+ description: string | null;
4132
+ product: string | null;
4133
+ subtotal: number;
4134
+ quantity: BD.BigDecimal;
4135
+ invoiceId: string;
4136
+ unitPrice: number;
4137
+ discountAmount: number;
4138
+ salesTaxTotal: number;
4139
+ totalAmount: number;
4140
+ }[];
4141
+ }> | undefined, unknown> & {
4142
+ AppField: import("@tanstack/react-form").FieldComponent<{
4143
+ invoiceNumber: string;
4144
+ customer: null;
4145
+ email: string;
4146
+ address: string;
4147
+ lineItems: {
4148
+ product: string;
4149
+ description: string;
4150
+ unitPrice: number;
4151
+ quantity: BD.BigDecimal;
4152
+ amount: number;
4153
+ }[];
4154
+ } | {
4155
+ invoiceNumber: string | null;
4156
+ customer: {
4157
+ readonly id: string;
4158
+ readonly externalId: string | null;
4159
+ readonly individualName: string | null;
4160
+ readonly companyName: string | null;
4161
+ readonly email: string | null;
4162
+ readonly mobilePhone: string | null;
4163
+ readonly officePhone: string | null;
4164
+ readonly addressString: string | null;
4165
+ readonly status: "ACTIVE" | "ARCHIVED";
4166
+ readonly memo: string | null;
4167
+ readonly _local?: {
4168
+ readonly isOptimistic: boolean;
4169
+ } | undefined;
4170
+ } | null;
4171
+ email: string | null | undefined;
4172
+ address: string | null | undefined;
4173
+ lineItems: {
4174
+ amount: number;
4175
+ id: string;
4176
+ externalId: string | null;
4177
+ memo: string | null;
4178
+ description: string | null;
4179
+ product: string | null;
4180
+ subtotal: number;
4181
+ quantity: BD.BigDecimal;
4182
+ invoiceId: string;
4183
+ unitPrice: number;
4184
+ discountAmount: number;
4185
+ salesTaxTotal: number;
4186
+ totalAmount: number;
4187
+ }[];
4188
+ }, import("@tanstack/react-form").FormValidateOrFn<{
4189
+ invoiceNumber: string;
4190
+ customer: null;
4191
+ email: string;
4192
+ address: string;
4193
+ lineItems: {
4194
+ product: string;
4195
+ description: string;
4196
+ unitPrice: number;
4197
+ quantity: BD.BigDecimal;
4198
+ amount: number;
4199
+ }[];
4200
+ } | {
4201
+ invoiceNumber: string | null;
4202
+ customer: {
4203
+ readonly id: string;
4204
+ readonly externalId: string | null;
4205
+ readonly individualName: string | null;
4206
+ readonly companyName: string | null;
4207
+ readonly email: string | null;
4208
+ readonly mobilePhone: string | null;
4209
+ readonly officePhone: string | null;
4210
+ readonly addressString: string | null;
4211
+ readonly status: "ACTIVE" | "ARCHIVED";
4212
+ readonly memo: string | null;
4213
+ readonly _local?: {
4214
+ readonly isOptimistic: boolean;
4215
+ } | undefined;
4216
+ } | null;
4217
+ email: string | null | undefined;
4218
+ address: string | null | undefined;
4219
+ lineItems: {
4220
+ amount: number;
4221
+ id: string;
4222
+ externalId: string | null;
4223
+ memo: string | null;
4224
+ description: string | null;
4225
+ product: string | null;
4226
+ subtotal: number;
4227
+ quantity: BD.BigDecimal;
4228
+ invoiceId: string;
4229
+ unitPrice: number;
4230
+ discountAmount: number;
4231
+ salesTaxTotal: number;
4232
+ totalAmount: number;
4233
+ }[];
4234
+ }> | undefined, import("@tanstack/react-form").FormValidateOrFn<{
4235
+ invoiceNumber: string;
4236
+ customer: null;
4237
+ email: string;
4238
+ address: string;
4239
+ lineItems: {
4240
+ product: string;
4241
+ description: string;
4242
+ unitPrice: number;
4243
+ quantity: BD.BigDecimal;
4244
+ amount: number;
4245
+ }[];
4246
+ } | {
4247
+ invoiceNumber: string | null;
4248
+ customer: {
4249
+ readonly id: string;
4250
+ readonly externalId: string | null;
4251
+ readonly individualName: string | null;
4252
+ readonly companyName: string | null;
4253
+ readonly email: string | null;
4254
+ readonly mobilePhone: string | null;
4255
+ readonly officePhone: string | null;
4256
+ readonly addressString: string | null;
4257
+ readonly status: "ACTIVE" | "ARCHIVED";
4258
+ readonly memo: string | null;
4259
+ readonly _local?: {
4260
+ readonly isOptimistic: boolean;
4261
+ } | undefined;
4262
+ } | null;
4263
+ email: string | null | undefined;
4264
+ address: string | null | undefined;
4265
+ lineItems: {
4266
+ amount: number;
4267
+ id: string;
4268
+ externalId: string | null;
4269
+ memo: string | null;
4270
+ description: string | null;
4271
+ product: string | null;
4272
+ subtotal: number;
4273
+ quantity: BD.BigDecimal;
4274
+ invoiceId: string;
4275
+ unitPrice: number;
4276
+ discountAmount: number;
4277
+ salesTaxTotal: number;
4278
+ totalAmount: number;
4279
+ }[];
4280
+ }> | undefined, import("@tanstack/react-form").FormAsyncValidateOrFn<{
4281
+ invoiceNumber: string;
4282
+ customer: null;
4283
+ email: string;
4284
+ address: string;
4285
+ lineItems: {
4286
+ product: string;
4287
+ description: string;
4288
+ unitPrice: number;
4289
+ quantity: BD.BigDecimal;
4290
+ amount: number;
4291
+ }[];
4292
+ } | {
4293
+ invoiceNumber: string | null;
4294
+ customer: {
4295
+ readonly id: string;
4296
+ readonly externalId: string | null;
4297
+ readonly individualName: string | null;
4298
+ readonly companyName: string | null;
4299
+ readonly email: string | null;
4300
+ readonly mobilePhone: string | null;
4301
+ readonly officePhone: string | null;
4302
+ readonly addressString: string | null;
4303
+ readonly status: "ACTIVE" | "ARCHIVED";
4304
+ readonly memo: string | null;
4305
+ readonly _local?: {
4306
+ readonly isOptimistic: boolean;
4307
+ } | undefined;
4308
+ } | null;
4309
+ email: string | null | undefined;
4310
+ address: string | null | undefined;
4311
+ lineItems: {
4312
+ amount: number;
4313
+ id: string;
4314
+ externalId: string | null;
4315
+ memo: string | null;
4316
+ description: string | null;
4317
+ product: string | null;
4318
+ subtotal: number;
4319
+ quantity: BD.BigDecimal;
4320
+ invoiceId: string;
4321
+ unitPrice: number;
4322
+ discountAmount: number;
4323
+ salesTaxTotal: number;
4324
+ totalAmount: number;
4325
+ }[];
4326
+ }> | undefined, import("@tanstack/react-form").FormValidateOrFn<{
4327
+ invoiceNumber: string;
4328
+ customer: null;
4329
+ email: string;
4330
+ address: string;
4331
+ lineItems: {
4332
+ product: string;
4333
+ description: string;
4334
+ unitPrice: number;
4335
+ quantity: BD.BigDecimal;
4336
+ amount: number;
4337
+ }[];
4338
+ } | {
4339
+ invoiceNumber: string | null;
4340
+ customer: {
4341
+ readonly id: string;
4342
+ readonly externalId: string | null;
4343
+ readonly individualName: string | null;
4344
+ readonly companyName: string | null;
4345
+ readonly email: string | null;
4346
+ readonly mobilePhone: string | null;
4347
+ readonly officePhone: string | null;
4348
+ readonly addressString: string | null;
4349
+ readonly status: "ACTIVE" | "ARCHIVED";
4350
+ readonly memo: string | null;
4351
+ readonly _local?: {
4352
+ readonly isOptimistic: boolean;
4353
+ } | undefined;
4354
+ } | null;
4355
+ email: string | null | undefined;
4356
+ address: string | null | undefined;
4357
+ lineItems: {
4358
+ amount: number;
4359
+ id: string;
4360
+ externalId: string | null;
4361
+ memo: string | null;
4362
+ description: string | null;
4363
+ product: string | null;
4364
+ subtotal: number;
4365
+ quantity: BD.BigDecimal;
4366
+ invoiceId: string;
4367
+ unitPrice: number;
4368
+ discountAmount: number;
4369
+ salesTaxTotal: number;
4370
+ totalAmount: number;
4371
+ }[];
4372
+ }> | undefined, import("@tanstack/react-form").FormAsyncValidateOrFn<{
4373
+ invoiceNumber: string;
4374
+ customer: null;
4375
+ email: string;
4376
+ address: string;
4377
+ lineItems: {
4378
+ product: string;
4379
+ description: string;
4380
+ unitPrice: number;
4381
+ quantity: BD.BigDecimal;
4382
+ amount: number;
4383
+ }[];
4384
+ } | {
4385
+ invoiceNumber: string | null;
4386
+ customer: {
4387
+ readonly id: string;
4388
+ readonly externalId: string | null;
4389
+ readonly individualName: string | null;
4390
+ readonly companyName: string | null;
4391
+ readonly email: string | null;
4392
+ readonly mobilePhone: string | null;
4393
+ readonly officePhone: string | null;
4394
+ readonly addressString: string | null;
4395
+ readonly status: "ACTIVE" | "ARCHIVED";
4396
+ readonly memo: string | null;
4397
+ readonly _local?: {
4398
+ readonly isOptimistic: boolean;
4399
+ } | undefined;
4400
+ } | null;
4401
+ email: string | null | undefined;
4402
+ address: string | null | undefined;
4403
+ lineItems: {
4404
+ amount: number;
4405
+ id: string;
4406
+ externalId: string | null;
4407
+ memo: string | null;
4408
+ description: string | null;
4409
+ product: string | null;
4410
+ subtotal: number;
4411
+ quantity: BD.BigDecimal;
4412
+ invoiceId: string;
4413
+ unitPrice: number;
4414
+ discountAmount: number;
4415
+ salesTaxTotal: number;
4416
+ totalAmount: number;
4417
+ }[];
4418
+ }> | undefined, import("@tanstack/react-form").FormValidateOrFn<{
4419
+ invoiceNumber: string;
4420
+ customer: null;
4421
+ email: string;
4422
+ address: string;
4423
+ lineItems: {
4424
+ product: string;
4425
+ description: string;
4426
+ unitPrice: number;
4427
+ quantity: BD.BigDecimal;
4428
+ amount: number;
4429
+ }[];
4430
+ } | {
4431
+ invoiceNumber: string | null;
4432
+ customer: {
4433
+ readonly id: string;
4434
+ readonly externalId: string | null;
4435
+ readonly individualName: string | null;
4436
+ readonly companyName: string | null;
4437
+ readonly email: string | null;
4438
+ readonly mobilePhone: string | null;
4439
+ readonly officePhone: string | null;
4440
+ readonly addressString: string | null;
4441
+ readonly status: "ACTIVE" | "ARCHIVED";
4442
+ readonly memo: string | null;
4443
+ readonly _local?: {
4444
+ readonly isOptimistic: boolean;
4445
+ } | undefined;
4446
+ } | null;
4447
+ email: string | null | undefined;
4448
+ address: string | null | undefined;
4449
+ lineItems: {
4450
+ amount: number;
4451
+ id: string;
4452
+ externalId: string | null;
4453
+ memo: string | null;
4454
+ description: string | null;
4455
+ product: string | null;
4456
+ subtotal: number;
4457
+ quantity: BD.BigDecimal;
4458
+ invoiceId: string;
4459
+ unitPrice: number;
4460
+ discountAmount: number;
4461
+ salesTaxTotal: number;
4462
+ totalAmount: number;
4463
+ }[];
4464
+ }> | undefined, import("@tanstack/react-form").FormAsyncValidateOrFn<{
4465
+ invoiceNumber: string;
4466
+ customer: null;
4467
+ email: string;
4468
+ address: string;
4469
+ lineItems: {
4470
+ product: string;
4471
+ description: string;
4472
+ unitPrice: number;
4473
+ quantity: BD.BigDecimal;
4474
+ amount: number;
4475
+ }[];
4476
+ } | {
4477
+ invoiceNumber: string | null;
4478
+ customer: {
4479
+ readonly id: string;
4480
+ readonly externalId: string | null;
4481
+ readonly individualName: string | null;
4482
+ readonly companyName: string | null;
4483
+ readonly email: string | null;
4484
+ readonly mobilePhone: string | null;
4485
+ readonly officePhone: string | null;
4486
+ readonly addressString: string | null;
4487
+ readonly status: "ACTIVE" | "ARCHIVED";
4488
+ readonly memo: string | null;
4489
+ readonly _local?: {
4490
+ readonly isOptimistic: boolean;
4491
+ } | undefined;
4492
+ } | null;
4493
+ email: string | null | undefined;
4494
+ address: string | null | undefined;
4495
+ lineItems: {
4496
+ amount: number;
4497
+ id: string;
4498
+ externalId: string | null;
4499
+ memo: string | null;
4500
+ description: string | null;
4501
+ product: string | null;
4502
+ subtotal: number;
4503
+ quantity: BD.BigDecimal;
4504
+ invoiceId: string;
4505
+ unitPrice: number;
4506
+ discountAmount: number;
4507
+ salesTaxTotal: number;
4508
+ totalAmount: number;
4509
+ }[];
4510
+ }> | undefined, import("@tanstack/react-form").FormAsyncValidateOrFn<{
4511
+ invoiceNumber: string;
4512
+ customer: null;
4513
+ email: string;
4514
+ address: string;
4515
+ lineItems: {
4516
+ product: string;
4517
+ description: string;
4518
+ unitPrice: number;
4519
+ quantity: BD.BigDecimal;
4520
+ amount: number;
4521
+ }[];
4522
+ } | {
4523
+ invoiceNumber: string | null;
4524
+ customer: {
4525
+ readonly id: string;
4526
+ readonly externalId: string | null;
4527
+ readonly individualName: string | null;
4528
+ readonly companyName: string | null;
4529
+ readonly email: string | null;
4530
+ readonly mobilePhone: string | null;
4531
+ readonly officePhone: string | null;
4532
+ readonly addressString: string | null;
4533
+ readonly status: "ACTIVE" | "ARCHIVED";
4534
+ readonly memo: string | null;
4535
+ readonly _local?: {
4536
+ readonly isOptimistic: boolean;
4537
+ } | undefined;
4538
+ } | null;
4539
+ email: string | null | undefined;
4540
+ address: string | null | undefined;
4541
+ lineItems: {
4542
+ amount: number;
4543
+ id: string;
4544
+ externalId: string | null;
4545
+ memo: string | null;
4546
+ description: string | null;
4547
+ product: string | null;
4548
+ subtotal: number;
4549
+ quantity: BD.BigDecimal;
4550
+ invoiceId: string;
4551
+ unitPrice: number;
4552
+ discountAmount: number;
4553
+ salesTaxTotal: number;
4554
+ totalAmount: number;
4555
+ }[];
4556
+ }> | undefined, unknown, NoInfer<{
4557
+ readonly BaseFormTextField: typeof import("@layerfi/components/features/forms/components/BaseFormTextField").BaseFormTextField;
4558
+ readonly FormBigDecimalField: typeof import("@layerfi/components/features/forms/components/FormBigDecimalField").FormBigDecimalField;
4559
+ readonly FormCurrencyField: typeof import("@layerfi/components/features/forms/components/FormCurrencyField").FormCurrencyField;
4560
+ readonly FormTextAreaField: typeof import("@layerfi/components/features/forms/components/FormTextAreaField").FormTextAreaField;
4561
+ readonly FormTextField: typeof import("@layerfi/components/features/forms/components/FormTextField").FormTextField;
4562
+ }>>;
4563
+ AppForm: import("react").ComponentType<import("react").PropsWithChildren>;
4564
+ };
3424
4565
  submitError: string | undefined;
3425
4566
  isFormValid: boolean;
3426
4567
  };
3427
4568
  export {};
3428
4569
 
4570
+ }
4571
+ declare module '@layerfi/components/components/Invoices/InvoiceStatusCell/InvoiceStatusCell' {
4572
+ import { type Invoice } from '@layerfi/components/features/invoices/invoiceSchemas';
4573
+ export const InvoiceStatusCell: ({ invoice, inline }: {
4574
+ invoice: Invoice;
4575
+ inline?: boolean;
4576
+ }) => import("react/jsx-runtime").JSX.Element;
4577
+
3429
4578
  }
3430
4579
  declare module '@layerfi/components/components/Invoices/Invoices' {
3431
4580
  interface InvoicesStringOverrides {
@@ -3439,8 +4588,14 @@ declare module '@layerfi/components/components/Invoices/Invoices' {
3439
4588
  export {};
3440
4589
 
3441
4590
  }
3442
- declare module '@layerfi/components/components/Invoices/InvoicesTable' {
3443
- export const InvoicesTable: () => import("react/jsx-runtime").JSX.Element;
4591
+ declare module '@layerfi/components/components/Invoices/InvoicesTable/InvoicesTable' {
4592
+ import { type Invoice } from '@layerfi/components/features/invoices/invoiceSchemas';
4593
+ interface InvoicesTableProps {
4594
+ onCreateInvoice: () => void;
4595
+ onSelectInvoice: (invoice: Invoice) => void;
4596
+ }
4597
+ export const InvoicesTable: ({ onCreateInvoice, onSelectInvoice }: InvoicesTableProps) => import("react/jsx-runtime").JSX.Element;
4598
+ export {};
3444
4599
 
3445
4600
  }
3446
4601
  declare module '@layerfi/components/components/Journal/Journal' {
@@ -3808,13 +4963,12 @@ declare module '@layerfi/components/components/LinkedAccounts/LinkedAccounts' {
3808
4963
  showLedgerBalance?: boolean;
3809
4964
  showUnlinkItem?: boolean;
3810
4965
  showBreakConnection?: boolean;
3811
- showAddAccount?: boolean;
3812
4966
  stringOverrides?: {
3813
4967
  title?: string;
3814
4968
  };
3815
4969
  }
3816
4970
  export const LinkedAccounts: (props: LinkedAccountsProps) => import("react/jsx-runtime").JSX.Element;
3817
- export const LinkedAccountsComponent: ({ asWidget, elevated, showLedgerBalance, showUnlinkItem, showBreakConnection, showAddAccount, stringOverrides, }: LinkedAccountsProps) => import("react/jsx-runtime").JSX.Element;
4971
+ export const LinkedAccountsComponent: ({ asWidget, elevated, showLedgerBalance, showUnlinkItem, showBreakConnection, stringOverrides, }: LinkedAccountsProps) => import("react/jsx-runtime").JSX.Element;
3818
4972
 
3819
4973
  }
3820
4974
  declare module '@layerfi/components/components/LinkedAccounts/LinkedAccountsContent' {
@@ -3823,9 +4977,8 @@ declare module '@layerfi/components/components/LinkedAccounts/LinkedAccountsCont
3823
4977
  showLedgerBalance?: boolean;
3824
4978
  showUnlinkItem?: boolean;
3825
4979
  showBreakConnection?: boolean;
3826
- showAddAccount?: boolean;
3827
4980
  }
3828
- export const LinkedAccountsContent: ({ asWidget, showLedgerBalance, showUnlinkItem, showBreakConnection, showAddAccount, }: LinkedAccountsDataProps) => import("react/jsx-runtime").JSX.Element;
4981
+ export const LinkedAccountsContent: ({ asWidget, showLedgerBalance, showUnlinkItem, showBreakConnection, }: LinkedAccountsDataProps) => import("react/jsx-runtime").JSX.Element;
3829
4982
  export {};
3830
4983
 
3831
4984
  }
@@ -5028,13 +6181,13 @@ declare module '@layerfi/components/components/Tooltip/useTooltip' {
5028
6181
  floating: HTMLElement | null;
5029
6182
  } & import("@floating-ui/react").ExtendedElements<import("@floating-ui/react").ReferenceType>;
5030
6183
  context: {
5031
- update: () => void;
6184
+ placement: import("@floating-ui/utils").Placement;
5032
6185
  x: number;
5033
6186
  y: number;
5034
- placement: import("@floating-ui/utils").Placement;
5035
6187
  strategy: import("@floating-ui/utils").Strategy;
5036
6188
  middlewareData: import("@floating-ui/core").MiddlewareData;
5037
6189
  isPositioned: boolean;
6190
+ update: () => void;
5038
6191
  floatingStyles: React.CSSProperties;
5039
6192
  open: boolean;
5040
6193
  onOpenChange: (open: boolean, event?: Event, reason?: import("@floating-ui/react").OpenChangeReason) => void;
@@ -5077,13 +6230,13 @@ declare module '@layerfi/components/components/Tooltip/useTooltip' {
5077
6230
  floating: HTMLElement | null;
5078
6231
  } & import("@floating-ui/react").ExtendedElements<import("@floating-ui/react").ReferenceType>;
5079
6232
  context: {
5080
- update: () => void;
6233
+ placement: import("@floating-ui/utils").Placement;
5081
6234
  x: number;
5082
6235
  y: number;
5083
- placement: import("@floating-ui/utils").Placement;
5084
6236
  strategy: import("@floating-ui/utils").Strategy;
5085
6237
  middlewareData: import("@floating-ui/core").MiddlewareData;
5086
6238
  isPositioned: boolean;
6239
+ update: () => void;
5087
6240
  floatingStyles: React.CSSProperties;
5088
6241
  open: boolean;
5089
6242
  onOpenChange: (open: boolean, event?: Event, reason?: import("@floating-ui/react").OpenChangeReason) => void;
@@ -5389,7 +6542,7 @@ declare module '@layerfi/components/components/ui/ComboBox/ComboBox' {
5389
6542
  selectedValue: T | null;
5390
6543
  onSelectedValueChange: (value: T | null) => void;
5391
6544
  onInputValueChange?: (value: string) => void;
5392
- placeholder: string;
6545
+ placeholder?: string;
5393
6546
  slots?: {
5394
6547
  EmptyMessage?: ReactNode;
5395
6548
  ErrorMessage?: ReactNode;
@@ -5435,6 +6588,22 @@ declare module '@layerfi/components/components/ui/DropdownMenu/DropdownMenu' {
5435
6588
  export const DropdownMenu: ({ children, ariaLabel, slots, slotProps }: DropdownMenuProps) => import("react/jsx-runtime").JSX.Element;
5436
6589
  export {};
5437
6590
 
6591
+ }
6592
+ declare module '@layerfi/components/components/ui/Form/Form' {
6593
+ import { type FormProps as ReactAriaFormProps, type TextFieldProps as ReactAriaTextFieldProps, type FieldErrorProps as ReactAriaFieldErrorProps } from 'react-aria-components';
6594
+ export const Form: import("react").ForwardRefExoticComponent<ReactAriaFormProps & import("react").RefAttributes<HTMLFormElement>>;
6595
+ export type TextFieldProps = ReactAriaTextFieldProps & {
6596
+ inline?: boolean;
6597
+ textarea?: boolean;
6598
+ };
6599
+ export const TextField: import("react").ForwardRefExoticComponent<ReactAriaTextFieldProps & {
6600
+ inline?: boolean;
6601
+ textarea?: boolean;
6602
+ } & import("react").RefAttributes<HTMLDivElement>>;
6603
+ type FieldErrorProps = Omit<ReactAriaFieldErrorProps, 'className'>;
6604
+ export const FieldError: import("react").ForwardRefExoticComponent<FieldErrorProps & import("react").RefAttributes<HTMLElement>>;
6605
+ export {};
6606
+
5438
6607
  }
5439
6608
  declare module '@layerfi/components/components/ui/Input/Input' {
5440
6609
  import { type ComponentProps } from 'react';
@@ -5453,6 +6622,16 @@ declare module '@layerfi/components/components/ui/Input/InputGroup' {
5453
6622
  actionCount?: 1 | 2;
5454
6623
  } & import("react").RefAttributes<HTMLDivElement>>;
5455
6624
 
6625
+ }
6626
+ declare module '@layerfi/components/components/ui/Input/TextArea' {
6627
+ import { type ComponentProps } from 'react';
6628
+ import { TextArea as ReactAriaTextArea } from 'react-aria-components';
6629
+ type TextAreaProps = Omit<ComponentProps<typeof ReactAriaTextArea>, 'className'> & {
6630
+ resize?: 'both' | 'vertical' | 'horizontal' | 'none';
6631
+ };
6632
+ export const TextArea: import("react").ForwardRefExoticComponent<Omit<TextAreaProps, "ref"> & import("react").RefAttributes<HTMLTextAreaElement>>;
6633
+ export {};
6634
+
5456
6635
  }
5457
6636
  declare module '@layerfi/components/components/ui/ListBox/ListBox' {
5458
6637
  import { type ForwardedRef, type Ref } from 'react';
@@ -5610,7 +6789,7 @@ declare module '@layerfi/components/components/ui/Stack/Stack' {
5610
6789
  import { type PropsWithChildren } from 'react';
5611
6790
  import type { Spacing } from '@layerfi/components/components/ui/sharedUITypes';
5612
6791
  export type StackProps = PropsWithChildren<{
5613
- align?: 'start' | 'center' | 'baseline';
6792
+ align?: 'start' | 'center' | 'baseline' | 'end';
5614
6793
  gap?: Spacing;
5615
6794
  justify?: 'start' | 'center' | 'end' | 'space-between';
5616
6795
  overflow?: 'scroll' | 'hidden' | 'auto' | 'clip' | 'visible';
@@ -5625,7 +6804,7 @@ declare module '@layerfi/components/components/ui/Stack/Stack' {
5625
6804
  className?: string;
5626
6805
  }>;
5627
6806
  export const VStack: import("react").ForwardRefExoticComponent<{
5628
- align?: "start" | "center" | "baseline";
6807
+ align?: "start" | "center" | "baseline" | "end";
5629
6808
  gap?: Spacing;
5630
6809
  justify?: "start" | "center" | "end" | "space-between";
5631
6810
  overflow?: "scroll" | "hidden" | "auto" | "clip" | "visible";
@@ -5642,7 +6821,7 @@ declare module '@layerfi/components/components/ui/Stack/Stack' {
5642
6821
  children?: import("react").ReactNode | undefined;
5643
6822
  } & import("react").RefAttributes<HTMLDivElement>>;
5644
6823
  export const HStack: import("react").ForwardRefExoticComponent<{
5645
- align?: "start" | "center" | "baseline";
6824
+ align?: "start" | "center" | "baseline" | "end";
5646
6825
  gap?: Spacing;
5647
6826
  justify?: "start" | "center" | "end" | "space-between";
5648
6827
  overflow?: "scroll" | "hidden" | "auto" | "clip" | "visible";
@@ -6617,6 +7796,20 @@ declare module '@layerfi/components/features/customers/api/useListCustomers' {
6617
7796
  export function usePreloadCustomers(parameters?: UseListCustomersParams): void;
6618
7797
  export {};
6619
7798
 
7799
+ }
7800
+ declare module '@layerfi/components/features/customers/components/CustomerSelector' {
7801
+ import { Customer } from '@layerfi/components/features/customers/customersSchemas';
7802
+ type CustomerSelectorProps = {
7803
+ selectedCustomer: Customer | null;
7804
+ onSelectedCustomerChange: (customer: Customer | null) => void;
7805
+ placeholder?: string;
7806
+ isReadOnly?: boolean;
7807
+ inline?: boolean;
7808
+ className?: string;
7809
+ };
7810
+ export function CustomerSelector({ selectedCustomer, onSelectedCustomerChange, placeholder, isReadOnly, inline, className, }: CustomerSelectorProps): import("react/jsx-runtime").JSX.Element | null;
7811
+ export {};
7812
+
6620
7813
  }
6621
7814
  declare module '@layerfi/components/features/customers/customersSchemas' {
6622
7815
  import { Schema } from 'effect';
@@ -6635,6 +7828,7 @@ declare module '@layerfi/components/features/customers/customersSchemas' {
6635
7828
  isOptimistic: typeof Schema.Boolean;
6636
7829
  }>>;
6637
7830
  }>;
7831
+ export type Customer = typeof CustomerSchema.Type;
6638
7832
  export const encodeCustomer: (a: {
6639
7833
  readonly id: string;
6640
7834
  readonly externalId: string | null;
@@ -6665,6 +7859,103 @@ declare module '@layerfi/components/features/customers/customersSchemas' {
6665
7859
  } | undefined;
6666
7860
  };
6667
7861
 
7862
+ }
7863
+ declare module '@layerfi/components/features/forms/components/BaseFormTextField' {
7864
+ import type { PropsWithChildren } from 'react';
7865
+ import { type TextFieldProps } from '@layerfi/components/components/ui/Form/Form';
7866
+ export interface BaseFormTextFieldProps {
7867
+ label: string;
7868
+ className?: string;
7869
+ inline?: boolean;
7870
+ showLabel?: boolean;
7871
+ showFieldError?: boolean;
7872
+ inputMode?: TextFieldProps['inputMode'];
7873
+ isTextArea?: boolean;
7874
+ }
7875
+ export function BaseFormTextField<TData>({ label, className, inline, showLabel, showFieldError, isTextArea, children, }: PropsWithChildren<BaseFormTextFieldProps>): import("react/jsx-runtime").JSX.Element;
7876
+
7877
+ }
7878
+ declare module '@layerfi/components/features/forms/components/FormBigDecimalField' {
7879
+ import { type BaseFormTextFieldProps } from '@layerfi/components/features/forms/components/BaseFormTextField';
7880
+ type FormBigDecimalFieldProps = {
7881
+ slotProps: {
7882
+ BaseFormTextField: Omit<BaseFormTextFieldProps, 'inputMode'>;
7883
+ };
7884
+ maxInputLength?: number;
7885
+ allowNegative?: boolean;
7886
+ };
7887
+ export function FormBigDecimalField({ slotProps, maxInputLength, allowNegative, }: FormBigDecimalFieldProps): import("react/jsx-runtime").JSX.Element;
7888
+ export {};
7889
+
7890
+ }
7891
+ declare module '@layerfi/components/features/forms/components/FormCurrencyField' {
7892
+ import { type BaseFormTextFieldProps } from '@layerfi/components/features/forms/components/BaseFormTextField';
7893
+ type FormCurrencyFieldProps = {
7894
+ slotProps: {
7895
+ BaseFormTextField: Omit<BaseFormTextFieldProps, 'inputMode'>;
7896
+ };
7897
+ };
7898
+ export function FormCurrencyField({ slotProps }: FormCurrencyFieldProps): import("react/jsx-runtime").JSX.Element;
7899
+ export {};
7900
+
7901
+ }
7902
+ declare module '@layerfi/components/features/forms/components/FormTextAreaField' {
7903
+ import { type BaseFormTextFieldProps } from '@layerfi/components/features/forms/components/BaseFormTextField';
7904
+ type FormTextAreaFieldProps = {
7905
+ slotProps: {
7906
+ BaseFormTextField: BaseFormTextFieldProps;
7907
+ };
7908
+ };
7909
+ export function FormTextAreaField({ slotProps }: FormTextAreaFieldProps): import("react/jsx-runtime").JSX.Element;
7910
+ export {};
7911
+
7912
+ }
7913
+ declare module '@layerfi/components/features/forms/components/FormTextField' {
7914
+ import { type BaseFormTextFieldProps } from '@layerfi/components/features/forms/components/BaseFormTextField';
7915
+ type FormTextFieldProps = {
7916
+ slotProps: {
7917
+ BaseFormTextField: BaseFormTextFieldProps;
7918
+ };
7919
+ };
7920
+ export function FormTextField({ slotProps }: FormTextFieldProps): import("react/jsx-runtime").JSX.Element;
7921
+ export {};
7922
+
7923
+ }
7924
+ declare module '@layerfi/components/features/forms/hooks/useForm' {
7925
+ import { BaseFormTextField } from '@layerfi/components/features/forms/components/BaseFormTextField';
7926
+ import { FormBigDecimalField } from '@layerfi/components/features/forms/components/FormBigDecimalField';
7927
+ import { FormCurrencyField } from '@layerfi/components/features/forms/components/FormCurrencyField';
7928
+ import { FormTextAreaField } from '@layerfi/components/features/forms/components/FormTextAreaField';
7929
+ import { FormTextField } from '@layerfi/components/features/forms/components/FormTextField';
7930
+ export const fieldContext: import("react").Context<import("@tanstack/react-form").AnyFieldApi>, useFieldContext: <TData>() => import("@tanstack/react-form").FieldApi<any, string, TData, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any>, formContext: import("react").Context<import("@tanstack/react-form").AnyFormApi>, useFormContext: () => import("@tanstack/react-form").ReactFormExtendedApi<Record<string, never>, any, any, any, any, any, any, any, any, any>;
7931
+ export const useAppForm: <TFormData, TOnMount extends import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined, TOnChange extends import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined, TOnChangeAsync extends import("@tanstack/react-form").FormAsyncValidateOrFn<TFormData> | undefined, TOnBlur extends import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined, TOnBlurAsync extends import("@tanstack/react-form").FormAsyncValidateOrFn<TFormData> | undefined, TOnSubmit extends import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined, TOnSubmitAsync extends import("@tanstack/react-form").FormAsyncValidateOrFn<TFormData> | undefined, TOnServer extends import("@tanstack/react-form").FormAsyncValidateOrFn<TFormData> | undefined, TSubmitMeta>(props: import("@tanstack/react-form").FormOptions<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnServer, TSubmitMeta>) => import("@tanstack/react-form").FormApi<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnServer, TSubmitMeta> & import("@tanstack/react-form").ReactFormApi<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnServer, TSubmitMeta> & {
7932
+ AppField: import("@tanstack/react-form").FieldComponent<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnServer, TSubmitMeta, NoInfer<{
7933
+ readonly BaseFormTextField: typeof BaseFormTextField;
7934
+ readonly FormBigDecimalField: typeof FormBigDecimalField;
7935
+ readonly FormCurrencyField: typeof FormCurrencyField;
7936
+ readonly FormTextAreaField: typeof FormTextAreaField;
7937
+ readonly FormTextField: typeof FormTextField;
7938
+ }>>;
7939
+ AppForm: import("react").ComponentType<import("react").PropsWithChildren>;
7940
+ }, withForm: <TFormData, TOnMount extends import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined, TOnChange extends import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined, TOnChangeAsync extends import("@tanstack/react-form").FormAsyncValidateOrFn<TFormData> | undefined, TOnBlur extends import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined, TOnBlurAsync extends import("@tanstack/react-form").FormAsyncValidateOrFn<TFormData> | undefined, TOnSubmit extends import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined, TOnSubmitAsync extends import("@tanstack/react-form").FormAsyncValidateOrFn<TFormData> | undefined, TOnServer extends import("@tanstack/react-form").FormAsyncValidateOrFn<TFormData> | undefined, TSubmitMeta, TRenderProps extends Record<string, unknown> = {}>({ render, props, }: import("@tanstack/react-form").WithFormProps<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnServer, TSubmitMeta, {
7941
+ readonly BaseFormTextField: typeof BaseFormTextField;
7942
+ readonly FormBigDecimalField: typeof FormBigDecimalField;
7943
+ readonly FormCurrencyField: typeof FormCurrencyField;
7944
+ readonly FormTextAreaField: typeof FormTextAreaField;
7945
+ readonly FormTextField: typeof FormTextField;
7946
+ }, {}, TRenderProps>) => (props: import("react").PropsWithChildren<NoInfer<[unknown] extends [TRenderProps] ? any : TRenderProps> & {
7947
+ form: import("@tanstack/react-form").FormApi<[unknown] extends [TFormData] ? any : TFormData, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnMount] ? [TOnMount] extends [TOnMount & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnMount : TOnMount, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnChange] ? [TOnChange] extends [TOnChange & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnChange : TOnChange, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnChangeAsync] ? [TOnChangeAsync] extends [TOnChangeAsync & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnChangeAsync : TOnChangeAsync, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnBlur] ? [TOnBlur] extends [TOnBlur & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnBlur : TOnBlur, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnBlurAsync] ? [TOnBlurAsync] extends [TOnBlurAsync & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnBlurAsync : TOnBlurAsync, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnSubmit] ? [TOnSubmit] extends [TOnSubmit & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnSubmit : TOnSubmit, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnSubmitAsync] ? [TOnSubmitAsync] extends [TOnSubmitAsync & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnSubmitAsync : TOnSubmitAsync, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnServer] ? [TOnServer] extends [TOnServer & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnServer : TOnServer, [unknown] extends [TSubmitMeta] ? any : TSubmitMeta> & import("@tanstack/react-form").ReactFormApi<[unknown] extends [TFormData] ? any : TFormData, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnMount] ? [TOnMount] extends [TOnMount & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnMount : TOnMount, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnChange] ? [TOnChange] extends [TOnChange & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnChange : TOnChange, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnChangeAsync] ? [TOnChangeAsync] extends [TOnChangeAsync & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnChangeAsync : TOnChangeAsync, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnBlur] ? [TOnBlur] extends [TOnBlur & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnBlur : TOnBlur, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnBlurAsync] ? [TOnBlurAsync] extends [TOnBlurAsync & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnBlurAsync : TOnBlurAsync, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnSubmit] ? [TOnSubmit] extends [TOnSubmit & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnSubmit : TOnSubmit, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnSubmitAsync] ? [TOnSubmitAsync] extends [TOnSubmitAsync & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnSubmitAsync : TOnSubmitAsync, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnServer] ? [TOnServer] extends [TOnServer & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnServer : TOnServer, [unknown] extends [TSubmitMeta] ? any : TSubmitMeta> & {
7948
+ AppField: import("@tanstack/react-form").FieldComponent<[unknown] extends [TFormData] ? any : TFormData, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnMount] ? [TOnMount] extends [TOnMount & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnMount : TOnMount, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnChange] ? [TOnChange] extends [TOnChange & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnChange : TOnChange, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnChangeAsync] ? [TOnChangeAsync] extends [TOnChangeAsync & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnChangeAsync : TOnChangeAsync, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnBlur] ? [TOnBlur] extends [TOnBlur & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnBlur : TOnBlur, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnBlurAsync] ? [TOnBlurAsync] extends [TOnBlurAsync & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnBlurAsync : TOnBlurAsync, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnSubmit] ? [TOnSubmit] extends [TOnSubmit & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnSubmit : TOnSubmit, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnSubmitAsync] ? [TOnSubmitAsync] extends [TOnSubmitAsync & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnSubmitAsync : TOnSubmitAsync, [import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined] extends [TOnServer] ? [TOnServer] extends [TOnServer & (import("@tanstack/react-form").FormValidateOrFn<TFormData> | undefined)] ? any : TOnServer : TOnServer, [unknown] extends [TSubmitMeta] ? any : TSubmitMeta, NoInfer<{
7949
+ readonly BaseFormTextField: typeof BaseFormTextField;
7950
+ readonly FormBigDecimalField: typeof FormBigDecimalField;
7951
+ readonly FormCurrencyField: typeof FormCurrencyField;
7952
+ readonly FormTextAreaField: typeof FormTextAreaField;
7953
+ readonly FormTextField: typeof FormTextField;
7954
+ }>>;
7955
+ AppForm: import("react").ComponentType<import("react").PropsWithChildren>;
7956
+ };
7957
+ }>) => import("react").JSX.Element;
7958
+
6668
7959
  }
6669
7960
  declare module '@layerfi/components/features/invoices/api/useListInvoices' {
6670
7961
  import { type SWRInfiniteResponse } from 'swr/infinite';
@@ -7195,7 +8486,7 @@ declare module '@layerfi/components/features/invoices/api/useUpsertInvoice' {
7195
8486
  readonly dueAt: Date;
7196
8487
  readonly invoiceNumber: string | undefined;
7197
8488
  readonly lineItems: readonly {
7198
- readonly description: string | undefined;
8489
+ readonly description: string;
7199
8490
  readonly product: string;
7200
8491
  readonly quantity: import("effect/BigDecimal").BigDecimal;
7201
8492
  readonly unitPrice: number;
@@ -7254,6 +8545,7 @@ declare module '@layerfi/components/features/invoices/invoiceSchemas' {
7254
8545
  totalAmount: Schema.PropertySignature<":", number, "total_amount", ":", number, false, never>;
7255
8546
  memo: Schema.NullOr<typeof Schema.String>;
7256
8547
  }>;
8548
+ export type InvoiceLineItem = typeof InvoiceLineItemSchema.Type;
7257
8549
  export const InvoiceSchema: Schema.Struct<{
7258
8550
  id: typeof Schema.UUID;
7259
8551
  businessId: Schema.PropertySignature<":", string, "business_id", ":", string, false, never>;
@@ -7316,15 +8608,17 @@ declare module '@layerfi/components/features/invoices/invoiceSchemas' {
7316
8608
  updatedAt: Schema.PropertySignature<":", Date | null, "updated_at", ":", string | null, false, never>;
7317
8609
  memo: Schema.NullOr<typeof Schema.String>;
7318
8610
  }>;
8611
+ export type Invoice = typeof InvoiceSchema.Type;
7319
8612
  export const UpsertInvoiceTaxLineItemSchema: Schema.Struct<{
7320
- amount: Schema.filter<typeof Schema.NumberFromString>;
8613
+ amount: typeof Schema.Number;
7321
8614
  }>;
7322
8615
  export const UpsertInvoiceLineItemSchema: Schema.Struct<{
7323
- description: Schema.PropertySignature<":", string | undefined, "description", ":", string | undefined, false, never>;
7324
- product: Schema.PropertySignature<":", string, "product", ":", string, false, never>;
7325
- unitPrice: Schema.PropertySignature<":", number, "unit_price", ":", string, false, never>;
7326
- quantity: Schema.PropertySignature<":", import("effect/BigDecimal").BigDecimal, "quantity", ":", string, false, never>;
8616
+ description: typeof Schema.String;
8617
+ product: typeof Schema.String;
8618
+ unitPrice: Schema.PropertySignature<":", number, "unit_price", ":", number, false, never>;
8619
+ quantity: typeof Schema.BigDecimal;
7327
8620
  }>;
8621
+ export type UpsertInvoiceLineItem = typeof UpsertInvoiceLineItemSchema.Type;
7328
8622
  export const UpsertInvoiceSchema: Schema.Struct<{
7329
8623
  sentAt: Schema.PropertySignature<":", Date, "sent_at", ":", string, false, never>;
7330
8624
  dueAt: Schema.PropertySignature<":", Date, "due_at", ":", string, false, never>;
@@ -7332,24 +8626,23 @@ declare module '@layerfi/components/features/invoices/invoiceSchemas' {
7332
8626
  customerId: Schema.PropertySignature<":", string, "customer_id", ":", string, false, never>;
7333
8627
  memo: Schema.NullOr<typeof Schema.String>;
7334
8628
  lineItems: Schema.PropertySignature<":", readonly {
7335
- readonly description: string | undefined;
8629
+ readonly description: string;
7336
8630
  readonly product: string;
7337
8631
  readonly quantity: import("effect/BigDecimal").BigDecimal;
7338
8632
  readonly unitPrice: number;
7339
8633
  }[], "line_items", ":", readonly {
7340
- readonly description: string | undefined;
8634
+ readonly description: string;
7341
8635
  readonly product: string;
7342
8636
  readonly quantity: string;
7343
- readonly unit_price: string;
8637
+ readonly unit_price: number;
7344
8638
  }[], false, never>;
7345
- additionalDiscount: Schema.PropertySignature<":", number | undefined, "additional_discount", ":", string | undefined, false, never>;
8639
+ additionalDiscount: Schema.PropertySignature<":", number | undefined, "additional_discount", ":", number | undefined, false, never>;
7346
8640
  additionalSalesTaxes: Schema.PropertySignature<":", readonly {
7347
8641
  readonly amount: number;
7348
8642
  }[] | undefined, "additional_sales_taxes", ":", readonly {
7349
- readonly amount: string;
8643
+ readonly amount: number;
7350
8644
  }[] | undefined, false, never>;
7351
8645
  }>;
7352
- export type Invoice = typeof InvoiceSchema.Type;
7353
8646
  export type UpsertInvoice = typeof UpsertInvoiceSchema.Type;
7354
8647
 
7355
8648
  }
@@ -9577,6 +10870,7 @@ declare module '@layerfi/components/providers/Environment/environmentConfigs' {
9577
10870
  }
9578
10871
  declare module '@layerfi/components/providers/GlobalDateStore/GlobalDateStoreProvider' {
9579
10872
  import { type PropsWithChildren } from 'react';
10873
+ import type { UnifiedPickerMode } from '@layerfi/components/components/DatePicker/ModeSelector/DatePickerModeSelector';
9580
10874
  const _DATE_PICKER_MODES: readonly ["dayPicker"];
9581
10875
  export type DatePickerMode = typeof _DATE_PICKER_MODES[number];
9582
10876
  const _RANGE_PICKER_MODES: readonly ["dayRangePicker", "monthPicker", "monthRangePicker", "yearPicker"];
@@ -9600,7 +10894,7 @@ declare module '@layerfi/components/providers/GlobalDateStore/GlobalDateStorePro
9600
10894
  setRangeWithExplicitDisplayMode: (options: {
9601
10895
  start: Date;
9602
10896
  end: Date;
9603
- rangeDisplayMode: DateRangePickerMode;
10897
+ displayMode: UnifiedPickerMode;
9604
10898
  }) => void;
9605
10899
  setDateRange: (options: {
9606
10900
  start: Date;
@@ -9645,7 +10939,6 @@ declare module '@layerfi/components/providers/GlobalDateStore/useGlobalDateRange
9645
10939
  setDisplayMode: (displayMode: DateRangePickerMode) => void;
9646
10940
  };
9647
10941
  export function useGlobalDateRangePicker({ displayMode, setDisplayMode }: UseGlobalDateRangePickerProps): {
9648
- dateFormat: "MMM d" | undefined;
9649
10942
  rangeDisplayMode: "dayRangePicker" | "monthPicker" | "monthRangePicker" | "yearPicker";
9650
10943
  onChangeMode: (newMode: UnifiedPickerMode) => void;
9651
10944
  dateOrDateRange: Date | [Date, Date];
@@ -9735,6 +11028,14 @@ declare module '@layerfi/components/providers/ReportsModeStoreProvider/ReportsMo
9735
11028
  [ReportKey.StatementOfCashFlows]: DateRangePickerMode;
9736
11029
  };
9737
11030
  type MutableReportKey = Exclude<ReportKey, ReportKey.BalanceSheet>;
11031
+ type ReportsModeStoreShape = {
11032
+ resetPnLModeToDefaultOnMount: boolean;
11033
+ modeByReport: ReportModes;
11034
+ actions: {
11035
+ setModeForReport: <K extends MutableReportKey>(report: K, mode: ReportModes[K]) => void;
11036
+ };
11037
+ };
11038
+ export function useReportModeStore(): ReportsModeStoreShape;
9738
11039
  export function useReportMode<K extends ReportKey>(report: K): ReportModes[K] | undefined;
9739
11040
  export function useReportModeActions(): {
9740
11041
  setModeForReport: <K extends MutableReportKey>(report: K, mode: ReportModes[K]) => void;
@@ -9742,8 +11043,9 @@ declare module '@layerfi/components/providers/ReportsModeStoreProvider/ReportsMo
9742
11043
  export function useReportModeWithFallback<K extends ReportKey>(report: K, fallback: ReportModes[K]): ReportModes[K];
9743
11044
  type ReportsModeStoreProviderProps = PropsWithChildren<{
9744
11045
  initialModes: Partial<ReportModes>;
11046
+ resetPnLModeToDefaultOnMount?: boolean;
9745
11047
  }>;
9746
- export function ReportsModeStoreProvider({ children, initialModes, }: ReportsModeStoreProviderProps): import("react/jsx-runtime").JSX.Element;
11048
+ export function ReportsModeStoreProvider({ children, initialModes, resetPnLModeToDefaultOnMount, }: ReportsModeStoreProviderProps): import("react/jsx-runtime").JSX.Element;
9747
11049
  export {};
9748
11050
 
9749
11051
  }
@@ -11170,6 +12472,22 @@ declare module '@layerfi/components/utils/bankTransactions' {
11170
12472
  };
11171
12473
  export const hasReceipts: (bankTransaction?: BankTransaction) => boolean | undefined;
11172
12474
 
12475
+ }
12476
+ declare module '@layerfi/components/utils/bigDecimalUtils' {
12477
+ import { BigDecimal as BD } from 'effect';
12478
+ export const BIG_DECIMAL_ZERO: BD.BigDecimal;
12479
+ export const BIG_DECIMAL_ONE: BD.BigDecimal;
12480
+ export const BIG_DECIMAL_ONE_HUNDRED: BD.BigDecimal;
12481
+ export const DECIMAL_CHARS_REGEX: RegExp;
12482
+ export const NON_NEGATIVE_DECIMAL_CHARS_REGEX: RegExp;
12483
+ /**
12484
+ * Converts a BigDecimal dollar amount to its equivalent in cents as a number.
12485
+ * Example: 123.45 → 12345
12486
+ */
12487
+ export const convertBigDecimalToCents: (amount: BD.BigDecimal) => number;
12488
+ export const convertCentsToBigDecimal: (cents: number) => BD.BigDecimal;
12489
+ export function formatBigDecimalToString(value: BD.BigDecimal, maxDecimalPlaces?: number): string;
12490
+
11173
12491
  }
11174
12492
  declare module '@layerfi/components/utils/bills' {
11175
12493
  import { Bill } from '@layerfi/components/types/bills';
@@ -11507,7 +12825,6 @@ declare module '@layerfi/components/views/BankTransactionsWithLinkedAccounts/Ban
11507
12825
  showTooltips?: boolean;
11508
12826
  showUnlinkItem?: boolean;
11509
12827
  showUploadOptions?: boolean;
11510
- showAddAccount?: boolean;
11511
12828
  /**
11512
12829
  * @deprecated `mode` can be inferred from the bookkeeping configuration of a business
11513
12830
  */
@@ -11515,7 +12832,7 @@ declare module '@layerfi/components/views/BankTransactionsWithLinkedAccounts/Ban
11515
12832
  mobileComponent?: MobileComponentType;
11516
12833
  stringOverrides?: BankTransactionsWithLinkedAccountsStringOverrides;
11517
12834
  }
11518
- export const BankTransactionsWithLinkedAccounts: ({ title, showTitle, elevatedLinkedAccounts, mode, showBreakConnection, showCustomerVendor, showDescriptions, showLedgerBalance, showReceiptUploads, showTags, showTooltips, showUnlinkItem, showUploadOptions, showAddAccount, mobileComponent, stringOverrides, }: BankTransactionsWithLinkedAccountsProps) => import("react/jsx-runtime").JSX.Element;
12835
+ export const BankTransactionsWithLinkedAccounts: ({ title, showTitle, elevatedLinkedAccounts, mode, showBreakConnection, showCustomerVendor, showDescriptions, showLedgerBalance, showReceiptUploads, showTags, showTooltips, showUnlinkItem, showUploadOptions, mobileComponent, stringOverrides, }: BankTransactionsWithLinkedAccountsProps) => import("react/jsx-runtime").JSX.Element;
11519
12836
  export {};
11520
12837
 
11521
12838
  }