@fayz-ai/plugin-financial 0.1.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.
Files changed (98) hide show
  1. package/dist/FinancialContext.d.ts +44 -0
  2. package/dist/FinancialContext.d.ts.map +1 -0
  3. package/dist/FinancialPage.d.ts +18 -0
  4. package/dist/FinancialPage.d.ts.map +1 -0
  5. package/dist/components/FinancialGeneralSettings.d.ts +3 -0
  6. package/dist/components/FinancialGeneralSettings.d.ts.map +1 -0
  7. package/dist/components/FinancialOnboarding.d.ts +5 -0
  8. package/dist/components/FinancialOnboarding.d.ts.map +1 -0
  9. package/dist/components/FinancialSettings.d.ts +8 -0
  10. package/dist/components/FinancialSettings.d.ts.map +1 -0
  11. package/dist/components/PaymentModal.d.ts +8 -0
  12. package/dist/components/PaymentModal.d.ts.map +1 -0
  13. package/dist/data/index.d.ts +3 -0
  14. package/dist/data/index.d.ts.map +1 -0
  15. package/dist/data/mock.d.ts +9 -0
  16. package/dist/data/mock.d.ts.map +1 -0
  17. package/dist/data/supabase.d.ts +3 -0
  18. package/dist/data/supabase.d.ts.map +1 -0
  19. package/dist/data/types.d.ts +27 -0
  20. package/dist/data/types.d.ts.map +1 -0
  21. package/dist/index.cjs +4937 -0
  22. package/dist/index.cjs.map +1 -0
  23. package/dist/index.d.ts +91 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +4930 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/lib/tenant.d.ts +3 -0
  28. package/dist/lib/tenant.d.ts.map +1 -0
  29. package/dist/locales/en.d.ts +2 -0
  30. package/dist/locales/en.d.ts.map +1 -0
  31. package/dist/locales/index.d.ts +2 -0
  32. package/dist/locales/index.d.ts.map +1 -0
  33. package/dist/locales/pt-BR.d.ts +2 -0
  34. package/dist/locales/pt-BR.d.ts.map +1 -0
  35. package/dist/registries.d.ts +3 -0
  36. package/dist/registries.d.ts.map +1 -0
  37. package/dist/store.d.ts +38 -0
  38. package/dist/store.d.ts.map +1 -0
  39. package/dist/types.d.ts +302 -0
  40. package/dist/types.d.ts.map +1 -0
  41. package/dist/views/CardsView.d.ts +3 -0
  42. package/dist/views/CardsView.d.ts.map +1 -0
  43. package/dist/views/CashRegistersView.d.ts +3 -0
  44. package/dist/views/CashRegistersView.d.ts.map +1 -0
  45. package/dist/views/CommissionsView.d.ts +3 -0
  46. package/dist/views/CommissionsView.d.ts.map +1 -0
  47. package/dist/views/InvoiceDetailView.d.ts +9 -0
  48. package/dist/views/InvoiceDetailView.d.ts.map +1 -0
  49. package/dist/views/InvoiceFormView.d.ts +13 -0
  50. package/dist/views/InvoiceFormView.d.ts.map +1 -0
  51. package/dist/views/InvoiceListView.d.ts +8 -0
  52. package/dist/views/InvoiceListView.d.ts.map +1 -0
  53. package/dist/views/PayablesView.d.ts +7 -0
  54. package/dist/views/PayablesView.d.ts.map +1 -0
  55. package/dist/views/ReceivablesView.d.ts +7 -0
  56. package/dist/views/ReceivablesView.d.ts.map +1 -0
  57. package/dist/views/StatementsView.d.ts +3 -0
  58. package/dist/views/StatementsView.d.ts.map +1 -0
  59. package/dist/views/SummaryView.d.ts +9 -0
  60. package/dist/views/SummaryView.d.ts.map +1 -0
  61. package/dist/views/dashboardWidgets.d.ts +11 -0
  62. package/dist/views/dashboardWidgets.d.ts.map +1 -0
  63. package/package.json +55 -0
  64. package/src/FinancialContext.tsx +47 -0
  65. package/src/FinancialPage.tsx +261 -0
  66. package/src/README.md +155 -0
  67. package/src/components/FinancialGeneralSettings.tsx +26 -0
  68. package/src/components/FinancialOnboarding.tsx +87 -0
  69. package/src/components/FinancialSettings.tsx +31 -0
  70. package/src/components/PaymentModal.tsx +322 -0
  71. package/src/data/index.ts +2 -0
  72. package/src/data/mock.ts +520 -0
  73. package/src/data/supabase.ts +509 -0
  74. package/src/data/types.ts +53 -0
  75. package/src/index.ts +307 -0
  76. package/src/lib/tenant.ts +3 -0
  77. package/src/locales/en.ts +331 -0
  78. package/src/locales/index.ts +7 -0
  79. package/src/locales/pt-BR.ts +331 -0
  80. package/src/migrations/001_financial_base.sql +109 -0
  81. package/src/migrations/002_chart_of_accounts.sql +28 -0
  82. package/src/migrations/003_card_brands.sql +12 -0
  83. package/src/migrations/004_order_to_cash.sql +164 -0
  84. package/src/migrations/005_seed_defaults.sql +38 -0
  85. package/src/registries.ts +305 -0
  86. package/src/store.ts +221 -0
  87. package/src/types.ts +359 -0
  88. package/src/views/CardsView.tsx +74 -0
  89. package/src/views/CashRegistersView.tsx +597 -0
  90. package/src/views/CommissionsView.tsx +18 -0
  91. package/src/views/InvoiceDetailView.tsx +595 -0
  92. package/src/views/InvoiceFormView.tsx +900 -0
  93. package/src/views/InvoiceListView.tsx +177 -0
  94. package/src/views/PayablesView.tsx +37 -0
  95. package/src/views/ReceivablesView.tsx +37 -0
  96. package/src/views/StatementsView.tsx +123 -0
  97. package/src/views/SummaryView.tsx +12 -0
  98. package/src/views/dashboardWidgets.tsx +191 -0
@@ -0,0 +1,3 @@
1
+ export declare function setFinancialTenantId(id: string | undefined): void;
2
+ export declare function getFinancialTenantId(): string | undefined;
3
+ //# sourceMappingURL=tenant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.d.ts","sourceRoot":"","sources":["../../src/lib/tenant.ts"],"names":[],"mappings":"AACA,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,QAAW;AACtE,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,SAAS,CAAa"}
@@ -0,0 +1,2 @@
1
+ export declare const en: Record<string, string>;
2
+ //# sourceMappingURL=en.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/locales/en.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAyUrC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const financialLocales: Record<string, Record<string, string>>;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/locales/index.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGnE,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const ptBR: Record<string, string>;
2
+ //# sourceMappingURL=pt-BR.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pt-BR.d.ts","sourceRoot":"","sources":["../../src/locales/pt-BR.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAyUvC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { PluginRegistryDef } from '@fayz-ai/core';
2
+ export declare const financialRegistries: PluginRegistryDef[];
3
+ //# sourceMappingURL=registries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registries.d.ts","sourceRoot":"","sources":["../src/registries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAqMtD,eAAO,MAAM,mBAAmB,EAAE,iBAAiB,EA2GlD,CAAA"}
@@ -0,0 +1,38 @@
1
+ import { type StoreApi } from 'zustand/vanilla';
2
+ import type { FinancialDataProvider } from './data/types';
3
+ import type { Invoice, FinancialMovement, BankAccount, CashSession, PaymentMethod, PaymentMethodType, CardTransaction, FinancialSummary, StatementEntry, InvoiceQuery, StatementQuery, CreateInvoiceInput, PayMovementInput, OpenCashSessionInput, CloseCashSessionInput, DateRange } from './types';
4
+ export interface FinancialUIState {
5
+ invoices: Invoice[];
6
+ invoicesTotal: number;
7
+ invoicesLoading: boolean;
8
+ invoiceQuery: InvoiceQuery;
9
+ movements: FinancialMovement[];
10
+ movementsTotal: number;
11
+ movementsLoading: boolean;
12
+ bankAccounts: BankAccount[];
13
+ bankAccountsLoading: boolean;
14
+ cashSessions: CashSession[];
15
+ cashSessionsLoading: boolean;
16
+ paymentMethods: PaymentMethod[];
17
+ paymentMethodTypes: PaymentMethodType[];
18
+ summary: FinancialSummary | null;
19
+ summaryLoading: boolean;
20
+ statementEntries: StatementEntry[];
21
+ statementLoading: boolean;
22
+ cardTransactions: CardTransaction[];
23
+ cardsLoading: boolean;
24
+ fetchSummary(dateRange?: DateRange): Promise<void>;
25
+ fetchInvoices(query: InvoiceQuery): Promise<void>;
26
+ fetchBankAccounts(): Promise<void>;
27
+ fetchCashSessions(bankAccountId?: string): Promise<void>;
28
+ fetchPaymentMethods(): Promise<void>;
29
+ fetchStatement(query: StatementQuery): Promise<void>;
30
+ fetchCardTransactions(dateRange?: DateRange): Promise<void>;
31
+ createInvoice(input: CreateInvoiceInput): Promise<Invoice>;
32
+ payMovement(input: PayMovementInput): Promise<void>;
33
+ cancelInvoice(invoiceId: string): Promise<void>;
34
+ openCashSession(input: OpenCashSessionInput): Promise<CashSession>;
35
+ closeCashSession(input: CloseCashSessionInput): Promise<CashSession>;
36
+ }
37
+ export declare function createFinancialStore(provider: FinancialDataProvider): StoreApi<FinancialUIState>;
38
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAG5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,EACV,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EACpD,aAAa,EAAE,iBAAiB,EAAE,eAAe,EACjD,gBAAgB,EAAE,cAAc,EAChC,YAAY,EAAiB,cAAc,EAC3C,kBAAkB,EAAE,gBAAgB,EACpC,oBAAoB,EAAE,qBAAqB,EAC3C,SAAS,EACV,MAAM,SAAS,CAAA;AAMhB,MAAM,WAAW,gBAAgB;IAE/B,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,OAAO,CAAA;IACxB,YAAY,EAAE,YAAY,CAAA;IAE1B,SAAS,EAAE,iBAAiB,EAAE,CAAA;IAC9B,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,EAAE,OAAO,CAAA;IAEzB,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,mBAAmB,EAAE,OAAO,CAAA;IAE5B,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,mBAAmB,EAAE,OAAO,CAAA;IAE5B,cAAc,EAAE,aAAa,EAAE,CAAA;IAC/B,kBAAkB,EAAE,iBAAiB,EAAE,CAAA;IAEvC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAChC,cAAc,EAAE,OAAO,CAAA;IAEvB,gBAAgB,EAAE,cAAc,EAAE,CAAA;IAClC,gBAAgB,EAAE,OAAO,CAAA;IAEzB,gBAAgB,EAAE,eAAe,EAAE,CAAA;IACnC,YAAY,EAAE,OAAO,CAAA;IAGrB,YAAY,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjD,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,iBAAiB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxD,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACpD,qBAAqB,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1D,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACnD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/C,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAClE,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;CACrE;AAMD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CA0JhG"}
@@ -0,0 +1,302 @@
1
+ /** Direction: debit (money going out / payable) or credit (money coming in / receivable) */
2
+ export type TransactionDirection = 'debit' | 'credit';
3
+ /** What kind of financial movement this is */
4
+ export type MovementKind = 'bill' | 'payment' | 'transfer';
5
+ /** Status of a financial movement */
6
+ export type MovementStatus = 'pending' | 'paid' | 'partial' | 'overdue' | 'cancelled';
7
+ /** Status of an invoice */
8
+ export type InvoiceStatus = 'draft' | 'open' | 'partial' | 'paid' | 'cancelled' | 'overdue';
9
+ /** Type of bank account */
10
+ export type BankAccountType = 'bank_account' | 'cash_register' | 'credit_card' | 'digital_wallet';
11
+ /** Cash session status */
12
+ export type CashSessionStatus = 'open' | 'closed';
13
+ /** Discount/interest application mode */
14
+ export type AdjustmentMode = 'percentage' | 'fixed';
15
+ /** Chart of accounts node type */
16
+ export type AccountNodeType = 'group' | 'leaf';
17
+ /** Item type on an invoice line — parametrizable per vertical */
18
+ export type InvoiceItemKind = string;
19
+ export interface Invoice {
20
+ id: string;
21
+ direction: TransactionDirection;
22
+ invoiceDate: string;
23
+ fiscalNumber?: string;
24
+ totalAmount: number;
25
+ paidAmount: number;
26
+ status: InvoiceStatus;
27
+ totalInstallments: number;
28
+ contactId?: string;
29
+ contactName?: string;
30
+ cashSessionId?: string;
31
+ unitId?: string;
32
+ observations?: string;
33
+ /** Denormalized summary of item descriptions for list display */
34
+ itemsSummary?: string;
35
+ /** If this order has a scheduled time (booking), the start time */
36
+ bookingStartsAt?: string;
37
+ metadata?: Record<string, unknown>;
38
+ tenantId: string;
39
+ createdAt: string;
40
+ updatedAt: string;
41
+ }
42
+ export interface InvoiceItem {
43
+ id: string;
44
+ invoiceId: string;
45
+ itemKind: InvoiceItemKind;
46
+ referenceId?: string;
47
+ description: string;
48
+ quantity: number;
49
+ unitPrice: number;
50
+ totalAmount: number;
51
+ discount: number;
52
+ surcharge: number;
53
+ accountId?: string;
54
+ costCenterId?: string;
55
+ isExecuted?: boolean;
56
+ executionDate?: string;
57
+ executedByProfessionalId?: string;
58
+ metadata?: Record<string, unknown>;
59
+ createdAt: string;
60
+ }
61
+ export interface FinancialMovement {
62
+ id: string;
63
+ invoiceId?: string;
64
+ direction: TransactionDirection;
65
+ movementKind: MovementKind;
66
+ amount: number;
67
+ paidAmount: number;
68
+ status: MovementStatus;
69
+ dueDate: string;
70
+ paymentDate?: string;
71
+ installmentNumber?: number;
72
+ paymentMethodId?: string;
73
+ paymentMethodTypeId?: string;
74
+ bankAccountId?: string;
75
+ cashSessionId?: string;
76
+ cardBrand?: string;
77
+ cardInstallments?: number;
78
+ debitAccountId?: string;
79
+ creditAccountId?: string;
80
+ notes?: string;
81
+ metadata?: Record<string, unknown>;
82
+ tenantId: string;
83
+ createdAt: string;
84
+ updatedAt: string;
85
+ }
86
+ export interface BankAccount {
87
+ id: string;
88
+ name: string;
89
+ accountType: BankAccountType;
90
+ bankName?: string;
91
+ accountNumber?: string;
92
+ agencyNumber?: string;
93
+ currentBalance: number;
94
+ initialBalance: number;
95
+ creditLimit?: number;
96
+ dueDay?: number;
97
+ closingDay?: number;
98
+ isActive: boolean;
99
+ unitId?: string;
100
+ tenantId: string;
101
+ createdAt: string;
102
+ updatedAt: string;
103
+ }
104
+ export interface CashSession {
105
+ id: string;
106
+ bankAccountId: string;
107
+ bankAccountName?: string;
108
+ status: CashSessionStatus;
109
+ openedAt: string;
110
+ openedByUserId?: string;
111
+ openedByName?: string;
112
+ openingBalance: number;
113
+ closedAt?: string;
114
+ closedByUserId?: string;
115
+ closedByName?: string;
116
+ closingBalance?: number;
117
+ expectedBalance?: number;
118
+ difference?: number;
119
+ notes?: string;
120
+ unitId?: string;
121
+ tenantId: string;
122
+ createdAt: string;
123
+ }
124
+ export interface PaymentMethod {
125
+ id: string;
126
+ name: string;
127
+ paymentMethodTypeId: string;
128
+ isActive: boolean;
129
+ discountMode?: AdjustmentMode;
130
+ discountValue?: number;
131
+ interestMode?: AdjustmentMode;
132
+ interestValue?: number;
133
+ minInstallments: number;
134
+ maxInstallments: number;
135
+ serviceFilterMode?: 'all' | 'include' | 'exclude';
136
+ serviceFilterIds?: string[];
137
+ tenantId: string;
138
+ createdAt: string;
139
+ updatedAt: string;
140
+ }
141
+ export interface PaymentMethodType {
142
+ id: string;
143
+ name: string;
144
+ transactionType?: string;
145
+ isActive: boolean;
146
+ allowedAccountTypes?: BankAccountType[];
147
+ tenantId: string;
148
+ createdAt: string;
149
+ }
150
+ export interface ChartOfAccountsNode {
151
+ id: string;
152
+ code: string;
153
+ name: string;
154
+ nodeType: AccountNodeType;
155
+ parentId?: string;
156
+ isActive: boolean;
157
+ tenantId: string;
158
+ createdAt: string;
159
+ }
160
+ export interface CardTransaction {
161
+ id: string;
162
+ movementId: string;
163
+ cardBrand: string;
164
+ totalAmount: number;
165
+ installmentCount: number;
166
+ currentInstallment: number;
167
+ installmentAmount: number;
168
+ expectedDate: string;
169
+ receivedDate?: string;
170
+ fee?: number;
171
+ netAmount?: number;
172
+ status: 'pending' | 'received' | 'cancelled';
173
+ tenantId: string;
174
+ createdAt: string;
175
+ }
176
+ export interface CreateInvoiceInput {
177
+ direction: TransactionDirection;
178
+ invoiceDate: string;
179
+ fiscalNumber?: string;
180
+ contactId?: string;
181
+ contactName?: string;
182
+ cashSessionId?: string;
183
+ unitId?: string;
184
+ observations?: string;
185
+ metadata?: Record<string, unknown>;
186
+ items: CreateInvoiceItemInput[];
187
+ installments: CreateMovementInput[];
188
+ }
189
+ export interface CreateInvoiceItemInput {
190
+ itemKind: InvoiceItemKind;
191
+ referenceId?: string;
192
+ description: string;
193
+ quantity: number;
194
+ unitPrice: number;
195
+ discount?: number;
196
+ surcharge?: number;
197
+ accountId?: string;
198
+ costCenterId?: string;
199
+ metadata?: Record<string, unknown>;
200
+ }
201
+ export interface CreateMovementInput {
202
+ direction: TransactionDirection;
203
+ movementKind: MovementKind;
204
+ amount: number;
205
+ dueDate: string;
206
+ installmentNumber?: number;
207
+ paymentMethodId?: string;
208
+ bankAccountId?: string;
209
+ notes?: string;
210
+ metadata?: Record<string, unknown>;
211
+ }
212
+ export interface PayMovementInput {
213
+ movementId: string;
214
+ amount: number;
215
+ paymentDate: string;
216
+ paymentMethodId?: string;
217
+ paymentMethodTypeId?: string;
218
+ bankAccountId?: string;
219
+ cashSessionId?: string;
220
+ cardBrand?: string;
221
+ cardInstallments?: number;
222
+ }
223
+ export interface OpenCashSessionInput {
224
+ bankAccountId: string;
225
+ openingBalance: number;
226
+ openedByUserId?: string;
227
+ openedByName?: string;
228
+ unitId?: string;
229
+ notes?: string;
230
+ }
231
+ export interface CloseCashSessionInput {
232
+ sessionId: string;
233
+ closingBalance: number;
234
+ closedByUserId?: string;
235
+ closedByName?: string;
236
+ notes?: string;
237
+ }
238
+ export interface CreateBankAccountInput {
239
+ name: string;
240
+ accountType: BankAccountType;
241
+ bankName?: string;
242
+ accountNumber?: string;
243
+ agencyNumber?: string;
244
+ initialBalance?: number;
245
+ creditLimit?: number;
246
+ dueDay?: number;
247
+ closingDay?: number;
248
+ unitId?: string;
249
+ }
250
+ export interface DateRange {
251
+ from: string;
252
+ to: string;
253
+ }
254
+ export interface InvoiceQuery {
255
+ direction?: TransactionDirection;
256
+ status?: InvoiceStatus | InvoiceStatus[];
257
+ contactId?: string;
258
+ dateRange?: DateRange;
259
+ search?: string;
260
+ page?: number;
261
+ pageSize?: number;
262
+ }
263
+ export interface MovementQuery {
264
+ direction?: TransactionDirection;
265
+ status?: MovementStatus | MovementStatus[];
266
+ bankAccountId?: string;
267
+ cashSessionId?: string;
268
+ dateRange?: DateRange;
269
+ page?: number;
270
+ pageSize?: number;
271
+ }
272
+ export interface StatementQuery {
273
+ bankAccountId: string;
274
+ dateRange: DateRange;
275
+ }
276
+ export interface PaginatedResult<T> {
277
+ data: T[];
278
+ total: number;
279
+ }
280
+ export interface FinancialSummary {
281
+ totalBalance: number;
282
+ totalReceivable: number;
283
+ totalPayable: number;
284
+ monthlyInflow: number;
285
+ monthlyOutflow: number;
286
+ overdueReceivableCount: number;
287
+ overdueReceivableAmount: number;
288
+ overduePayableCount: number;
289
+ overduePayableAmount: number;
290
+ }
291
+ export interface StatementEntry {
292
+ movement: FinancialMovement;
293
+ invoice?: Invoice;
294
+ runningBalance: number;
295
+ }
296
+ export interface CashSessionSummary {
297
+ session: CashSession;
298
+ movementCount: number;
299
+ totalInflow: number;
300
+ totalOutflow: number;
301
+ }
302
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare function CardsView(): React.JSX.Element;
3
+ //# sourceMappingURL=CardsView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CardsView.d.ts","sourceRoot":"","sources":["../../src/views/CardsView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAMxC,wBAAgB,SAAS,sBAmExB"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare function CashRegistersView(): React.JSX.Element;
3
+ //# sourceMappingURL=CashRegistersView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CashRegistersView.d.ts","sourceRoot":"","sources":["../../src/views/CashRegistersView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAA;AAsa3D,wBAAgB,iBAAiB,sBAwIhC"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare function CommissionsView(): React.JSX.Element;
3
+ //# sourceMappingURL=CommissionsView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommissionsView.d.ts","sourceRoot":"","sources":["../../src/views/CommissionsView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,wBAAgB,eAAe,sBAY9B"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { TransactionDirection } from '../types';
3
+ export declare function InvoiceDetailView({ invoiceId, direction, onBack, onEdit }: {
4
+ invoiceId: string;
5
+ direction: TransactionDirection;
6
+ onBack: () => void;
7
+ onEdit: () => void;
8
+ }): React.JSX.Element;
9
+ //# sourceMappingURL=InvoiceDetailView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvoiceDetailView.d.ts","sourceRoot":"","sources":["../../src/views/InvoiceDetailView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAU1D,OAAO,KAAK,EAA2C,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAY7F,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;IAC1E,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,oBAAoB,CAAA;IAC/B,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB,qBAujBA"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import type { TransactionDirection } from '../types';
3
+ export interface LocationOption {
4
+ id: string;
5
+ name: string;
6
+ isHQ?: boolean;
7
+ }
8
+ export declare function InvoiceFormView({ direction, editId, onSaved }: {
9
+ direction: TransactionDirection;
10
+ editId?: string;
11
+ onSaved?: (id?: string) => void;
12
+ }): React.JSX.Element;
13
+ //# sourceMappingURL=InvoiceFormView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvoiceFormView.d.ts","sourceRoot":"","sources":["../../src/views/InvoiceFormView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAW1D,OAAO,KAAK,EAAE,oBAAoB,EAA+C,MAAM,UAAU,CAAA;AAMjG,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AA0VD,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;IAC9D,SAAS,EAAE,oBAAoB,CAAA;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAChC,qBAghBA"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import type { TransactionDirection } from '../types';
3
+ export declare function InvoiceListView({ direction, onNew, onEdit }: {
4
+ direction: TransactionDirection;
5
+ onNew?: () => void;
6
+ onEdit?: (id: string) => void;
7
+ }): React.JSX.Element;
8
+ //# sourceMappingURL=InvoiceListView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvoiceListView.d.ts","sourceRoot":"","sources":["../../src/views/InvoiceListView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAA;AAQ3D,OAAO,KAAK,EAAE,oBAAoB,EAA0B,MAAM,UAAU,CAAA;AA2E5E,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;IAC5D,SAAS,EAAE,oBAAoB,CAAA;IAC/B,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;IAClB,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9B,qBAyFA"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { ViewIntent } from '../FinancialPage';
3
+ export declare function PayablesView({ intent, onNavigate }: {
4
+ intent: ViewIntent;
5
+ onNavigate: (view: string) => void;
6
+ }): React.JSX.Element;
7
+ //# sourceMappingURL=PayablesView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PayablesView.d.ts","sourceRoot":"","sources":["../../src/views/PayablesView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;IACnD,MAAM,EAAE,UAAU,CAAA;IAClB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC,qBA2BA"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { ViewIntent } from '../FinancialPage';
3
+ export declare function ReceivablesView({ intent, onNavigate }: {
4
+ intent: ViewIntent;
5
+ onNavigate: (view: string) => void;
6
+ }): React.JSX.Element;
7
+ //# sourceMappingURL=ReceivablesView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReceivablesView.d.ts","sourceRoot":"","sources":["../../src/views/ReceivablesView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;IACtD,MAAM,EAAE,UAAU,CAAA;IAClB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC,qBA2BA"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare function StatementsView(): React.JSX.Element;
3
+ //# sourceMappingURL=StatementsView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatementsView.d.ts","sourceRoot":"","sources":["../../src/views/StatementsView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAA;AAU3D,wBAAgB,cAAc,sBAgH7B"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ /**
3
+ * Financial summary. KPIs, cash-flow chart, breakdown, overdue alerts and the
4
+ * recent-transactions table are registered dashboard widgets (see
5
+ * ./dashboardWidgets), rendered through the shared DashboardCanvas; the
6
+ * total-balance KPI also surfaces on the global app home.
7
+ */
8
+ export declare function SummaryView(): React.JSX.Element;
9
+ //# sourceMappingURL=SummaryView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SummaryView.d.ts","sourceRoot":"","sources":["../../src/views/SummaryView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB;;;;;GAKG;AACH,wBAAgB,WAAW,sBAE1B"}
@@ -0,0 +1,11 @@
1
+ import type { StoreApi } from 'zustand';
2
+ import type { DashboardWidgetDef } from '@fayz-ai/core';
3
+ import { type ResolvedFinancialConfig } from '../FinancialContext';
4
+ import type { FinancialDataProvider } from '../data/types';
5
+ import type { FinancialUIState } from '../store';
6
+ export declare function createFinancialDashboardWidgets(ctx: {
7
+ config: ResolvedFinancialConfig;
8
+ provider: FinancialDataProvider;
9
+ store: StoreApi<FinancialUIState>;
10
+ }): DashboardWidgetDef[];
11
+ //# sourceMappingURL=dashboardWidgets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboardWidgets.d.ts","sourceRoot":"","sources":["../../src/views/dashboardWidgets.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAMvD,OAAO,EAAmF,KAAK,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AACnJ,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAuJhD,wBAAgB,+BAA+B,CAAC,GAAG,EAAE;IACnD,MAAM,EAAE,uBAAuB,CAAA;IAC/B,QAAQ,EAAE,qBAAqB,CAAA;IAC/B,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAA;CAClC,GAAG,kBAAkB,EAAE,CAuBvB"}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@fayz-ai/plugin-financial",
3
+ "version": "0.1.1",
4
+ "description": "Fayz SDK — plugin-financial plugin",
5
+ "type": "module",
6
+ "main": "./dist/index.cjs",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "source": "./src/index.ts",
12
+ "types": "./dist/index.d.ts",
13
+ "import": "./dist/index.js",
14
+ "require": "./dist/index.cjs"
15
+ }
16
+ },
17
+ "files": [
18
+ "dist",
19
+ "src"
20
+ ],
21
+ "peerDependencies": {
22
+ "react": "^18.0.0 || ^19.0.0",
23
+ "react-dom": "^18.0.0 || ^19.0.0"
24
+ },
25
+ "dependencies": {
26
+ "lucide-react": "^0.400.0",
27
+ "zustand": "^4.5.0",
28
+ "@tanstack/react-table": "^8.20.0",
29
+ "@fayz-ai/ui": "^0.1.6",
30
+ "@fayz-ai/core": "^0.1.6",
31
+ "@fayz-ai/saas": "^0.1.6"
32
+ },
33
+ "devDependencies": {
34
+ "@types/react": "^18.3.0",
35
+ "react": "^18.3.0",
36
+ "tsup": "^8.2.0",
37
+ "typescript": "^5.5.0",
38
+ "@types/react-dom": "^18.3.0"
39
+ },
40
+ "license": "MIT",
41
+ "keywords": [
42
+ "fayz",
43
+ "fayz-plugin",
44
+ "fayz-sdk"
45
+ ],
46
+ "publishConfig": {
47
+ "access": "public"
48
+ },
49
+ "scripts": {
50
+ "build": "tsup && tsc --emitDeclarationOnly --declaration --declarationMap --noEmit false",
51
+ "dev": "tsup --watch",
52
+ "typecheck": "tsc --noEmit",
53
+ "clean": "rm -rf dist"
54
+ }
55
+ }
@@ -0,0 +1,47 @@
1
+ import { createPluginContext, formatCurrency, type CurrencyConfig, type EntityLookupMap, type EntityLookup } from '@fayz-ai/saas'
2
+ import type { FinancialPluginLabels, ItemTypeOption } from './index'
3
+ import type { FinancialDataProvider } from './data/types'
4
+ import type { FinancialUIState } from './store'
5
+
6
+ // ---------------------------------------------------------------------------
7
+ // Resolved config — fully merged, no optionals
8
+ // ---------------------------------------------------------------------------
9
+
10
+ export interface FinancialModules {
11
+ payables: boolean
12
+ receivables: boolean
13
+ cashRegisters: boolean
14
+ statements: boolean
15
+ commissions: boolean
16
+ cards: boolean
17
+ }
18
+
19
+ export type FinancialCurrency = CurrencyConfig
20
+
21
+ export interface LocationOption {
22
+ id: string
23
+ name: string
24
+ isHQ?: boolean
25
+ }
26
+
27
+ export interface ResolvedFinancialConfig {
28
+ modules: FinancialModules
29
+ labels: FinancialPluginLabels
30
+ currency: FinancialCurrency
31
+ itemTypes: ItemTypeOption[]
32
+ enableServiceExecution: boolean
33
+ contactEntity: { archetypeKind: string; label: string }
34
+ locations: LocationOption[]
35
+ entityLookups: EntityLookupMap
36
+ contactLookup?: EntityLookup
37
+ onBookingClick?: (orderId: string) => void
38
+ }
39
+
40
+ const ctx = createPluginContext<ResolvedFinancialConfig, FinancialDataProvider, FinancialUIState>('FinancialPage')
41
+
42
+ export const FinancialContextProvider = ctx.ContextProvider
43
+ export const useFinancialConfig = ctx.useConfig
44
+ export const useFinancialProvider = ctx.useProvider
45
+ export const useFinancialStore = ctx.useStore
46
+
47
+ export { formatCurrency }