@tesouro/embedded-components-react 0.5.217 → 0.5.221

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 (21) hide show
  1. package/dist/index.css +3 -0
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.js +1 -1
  4. package/dist/lib/ReceivablesWidget.d.ts +1 -0
  5. package/dist/lib/ReceivablesWidget.js +1 -1
  6. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index.js +2 -2
  7. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index12.js +22 -1
  8. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index.js +1 -1
  9. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index24.js +39 -70
  10. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index25.js +34 -106
  11. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index26.js +75 -307
  12. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index27.js +121 -0
  13. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index28.js +317 -0
  14. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index.js +15 -15
  15. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index13.js +6 -6
  16. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index33.js +50 -335
  17. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index34.js +353 -0
  18. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index4.js +8 -7
  19. package/dist/libs/tesouro-embedded-components-react/settings-widget/feature/dist/index6.js +1 -1
  20. package/dist/libs/tesouro-embedded-components-react/shared/feature/dist/lib/analytics/build-info.js +1 -1
  21. package/package.json +1 -1
@@ -0,0 +1,353 @@
1
+ import { Button as e, DataTable as t, DropdownMenu as n, DropdownMenuContent as r, DropdownMenuItem as i, DropdownMenuTrigger as a, Input as o, Select as s, SelectContent as c, SelectItem as l, SelectTrigger as u, SelectValue as d, Tabs as f, TabsList as p, TabsTrigger as m } from "../../../../../packages/shared-ui-shadcn/dist/index.js";
2
+ import { EmptyState as h } from "../../../shared/ui/dist/lib/EmptyState/EmptyState.js";
3
+ import { ErrorState as g } from "../../../shared/ui/dist/lib/ErrorState/ErrorState.js";
4
+ import "../../../shared/ui/dist/index.js";
5
+ import { RECEIVABLES_SCREEN_LABELS_EN as _ } from "./index4.js";
6
+ import { ReceivableStatusBadge as v } from "./index13.js";
7
+ import { ReceivableStatusCards as y } from "./index33.js";
8
+ import { jsx as b, jsxs as x } from "react/jsx-runtime";
9
+ import { ArrowDownIcon as S, ArrowUpDownIcon as C, ArrowUpIcon as w, MoreHorizontalIcon as T, PlusIcon as E, SearchIcon as D, SettingsIcon as O } from "lucide-react";
10
+ //#region ../../libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index34.js
11
+ var k = [
12
+ 10,
13
+ 25,
14
+ 50,
15
+ 100
16
+ ], A = "all";
17
+ function j({ label: t, ariaLabel: n, column: r }) {
18
+ let i = r.getIsSorted();
19
+ return /* @__PURE__ */ x("div", {
20
+ className: "ttw:flex ttw:items-center ttw:gap-2 ttw:text-inherit",
21
+ children: [t, /* @__PURE__ */ b(e, {
22
+ variant: "ghost",
23
+ size: "icon-sm",
24
+ "aria-label": n,
25
+ onClick: () => r.toggleSorting(i === "asc"),
26
+ children: b(i === "asc" ? w : i === "desc" ? S : C, { className: "ttw:size-4" })
27
+ })]
28
+ });
29
+ }
30
+ function M({ labels: e, searchValue: t, onSearchChange: n, statusFilter: r, statusOptions: i, onStatusFilterChange: a }) {
31
+ return /* @__PURE__ */ x("div", {
32
+ className: "ttw:flex ttw:flex-wrap ttw:items-center ttw:gap-2 ttw:px-4",
33
+ children: [/* @__PURE__ */ x("div", {
34
+ className: "ttw:relative ttw:w-80",
35
+ children: [/* @__PURE__ */ b(D, { className: "ttw:pointer-events-none ttw:absolute ttw:left-3 ttw:top-1/2 ttw:size-4 ttw:-translate-y-1/2 ttw:text-muted-foreground" }), /* @__PURE__ */ b(o, {
36
+ className: "ttw:pl-9",
37
+ placeholder: e.searchPlaceholder,
38
+ value: t,
39
+ onChange: (e) => n(e.target.value)
40
+ })]
41
+ }), /* @__PURE__ */ x(s, {
42
+ value: r,
43
+ onValueChange: a,
44
+ children: [/* @__PURE__ */ b(u, {
45
+ "aria-label": e.columnStatus,
46
+ className: "ttw:w-48",
47
+ children: /* @__PURE__ */ b(d, {})
48
+ }), /* @__PURE__ */ x(c, { children: [/* @__PURE__ */ b(l, {
49
+ value: A,
50
+ children: e.statusFilterAll
51
+ }), i.map((t) => /* @__PURE__ */ b(l, {
52
+ value: t.value,
53
+ children: P(t, e.statusBadge)
54
+ }, t.value))] })]
55
+ })]
56
+ });
57
+ }
58
+ function N({ enabled: e, label: t, action: n, row: r, onActionClick: a, variant: o }) {
59
+ return e ? /* @__PURE__ */ b(i, {
60
+ variant: o,
61
+ onClick: (e) => {
62
+ e.stopPropagation(), a(n, r);
63
+ },
64
+ children: t
65
+ }) : null;
66
+ }
67
+ function P(e, t) {
68
+ return t[e.value] ?? e.label;
69
+ }
70
+ function F({ rows: i, activeTab: o, enabledTabs: s, onTabChange: c, isLoading: l, isError: u, sorting: d, onSortingChange: S, pageSize: C, onPageSizeChange: w, pageSizeOptions: D = k, pageInfo: A, hasNextPage: P, hasPrevPage: F, onNextPage: I, onPrevPage: L, searchValue: R, onSearchChange: z, statusFilter: B, statusOptions: V, onStatusFilterChange: H, statusCards: U, onStatusCardSelect: W, isFiltering: G, onCreateClick: K, onTemplateSettingsClick: q, onRowClick: J, onActionClick: Y, onRetry: X, labels: Z }) {
71
+ let Q = {
72
+ ..._,
73
+ ...Z,
74
+ statusBadge: {
75
+ ..._.statusBadge,
76
+ ...Z?.statusBadge
77
+ }
78
+ };
79
+ return /* @__PURE__ */ x("div", {
80
+ className: "ttw:flex ttw:flex-col ttw:gap-4",
81
+ children: [
82
+ /* @__PURE__ */ x("div", {
83
+ className: "ttw:flex ttw:flex-wrap ttw:items-center ttw:justify-between ttw:gap-3",
84
+ children: [/* @__PURE__ */ b("div", {
85
+ className: "ttw:flex ttw:items-center ttw:gap-3",
86
+ children: /* @__PURE__ */ b(f, {
87
+ value: o,
88
+ onValueChange: (e) => c(e),
89
+ children: /* @__PURE__ */ x(p, { children: [
90
+ s.includes("invoices") && /* @__PURE__ */ b(m, {
91
+ value: "invoices",
92
+ children: Q.tabInvoices
93
+ }),
94
+ s.includes("quotes") && /* @__PURE__ */ b(m, {
95
+ value: "quotes",
96
+ children: Q.tabQuotes
97
+ }),
98
+ s.includes("credit_notes") && /* @__PURE__ */ b(m, {
99
+ value: "credit_notes",
100
+ children: Q.tabCreditNotes
101
+ })
102
+ ] })
103
+ })
104
+ }), /* @__PURE__ */ x("div", {
105
+ className: "ttw:flex ttw:items-center ttw:gap-2",
106
+ children: [q && /* @__PURE__ */ x(e, {
107
+ variant: "outline",
108
+ onClick: q,
109
+ children: [/* @__PURE__ */ b(O, { className: "ttw:size-4" }), Q.templateSettingsButton]
110
+ }), /* @__PURE__ */ x(e, {
111
+ onClick: K,
112
+ children: [/* @__PURE__ */ b(E, { className: "ttw:size-4" }), Q.createButton]
113
+ })]
114
+ })]
115
+ }),
116
+ U && W && /* @__PURE__ */ b(y, {
117
+ view: U,
118
+ onSelect: W,
119
+ labels: { all: Q.statusCardsAll }
120
+ }),
121
+ u ? /* @__PURE__ */ b(g, {
122
+ title: Q.errorTitle,
123
+ description: Q.errorDescription,
124
+ retryLabel: X ? Q.errorRetry : void 0,
125
+ onRetry: X
126
+ }) : /* @__PURE__ */ b(t, {
127
+ columns: [
128
+ {
129
+ accessorKey: "documentLabel",
130
+ enableSorting: !0,
131
+ header: ({ column: e }) => /* @__PURE__ */ b(j, {
132
+ column: e,
133
+ label: Q.columnDocument,
134
+ ariaLabel: Q.sortByDocument
135
+ }),
136
+ cell: ({ row: e }) => /* @__PURE__ */ x("div", {
137
+ className: "ttw:flex ttw:flex-col ttw:gap-1",
138
+ children: [/* @__PURE__ */ b("span", {
139
+ className: "ttw:font-medium",
140
+ children: e.original.documentLabel
141
+ }), /* @__PURE__ */ b("span", {
142
+ className: "ttw:text-xs ttw:text-muted-foreground",
143
+ children: e.original.type === "credit_note" ? Q.tabCreditNotes : e.original.type === "quote" ? Q.tabQuotes : Q.tabInvoices
144
+ })]
145
+ }),
146
+ minSize: 180
147
+ },
148
+ {
149
+ accessorKey: "customerLabel",
150
+ enableSorting: !0,
151
+ header: ({ column: e }) => /* @__PURE__ */ b(j, {
152
+ column: e,
153
+ label: Q.columnCustomer,
154
+ ariaLabel: Q.sortByCustomer
155
+ }),
156
+ minSize: 180
157
+ },
158
+ {
159
+ accessorKey: "status",
160
+ header: ({ column: e }) => /* @__PURE__ */ b(j, {
161
+ column: e,
162
+ label: Q.columnStatus,
163
+ ariaLabel: Q.sortByStatus
164
+ }),
165
+ cell: ({ row: e }) => /* @__PURE__ */ b(v, {
166
+ status: e.original.status,
167
+ tone: e.original.statusTone,
168
+ labels: Q.statusBadge
169
+ })
170
+ },
171
+ {
172
+ accessorKey: "issueDateLabel",
173
+ enableSorting: !0,
174
+ header: ({ column: e }) => /* @__PURE__ */ b(j, {
175
+ column: e,
176
+ label: Q.columnIssueDate,
177
+ ariaLabel: Q.sortByIssueDate
178
+ })
179
+ },
180
+ {
181
+ accessorKey: "dueDateLabel",
182
+ enableSorting: !0,
183
+ header: ({ column: e }) => /* @__PURE__ */ b(j, {
184
+ column: e,
185
+ label: Q.columnDueDate,
186
+ ariaLabel: Q.sortByDueDate
187
+ })
188
+ },
189
+ {
190
+ accessorKey: "totalLabel",
191
+ enableSorting: !0,
192
+ header: ({ column: e }) => /* @__PURE__ */ b("div", {
193
+ className: "ttw:flex ttw:justify-end",
194
+ children: /* @__PURE__ */ b(j, {
195
+ column: e,
196
+ label: Q.columnTotal,
197
+ ariaLabel: Q.sortByTotal
198
+ })
199
+ }),
200
+ cell: ({ row: e }) => /* @__PURE__ */ b("div", {
201
+ className: "ttw:text-right",
202
+ children: e.original.totalLabel
203
+ })
204
+ },
205
+ {
206
+ accessorKey: "amountDueLabel",
207
+ header: () => /* @__PURE__ */ b("div", {
208
+ className: "ttw:text-right",
209
+ children: Q.columnAmountDue
210
+ }),
211
+ cell: ({ row: e }) => /* @__PURE__ */ b("div", {
212
+ className: "ttw:text-right",
213
+ children: e.original.amountDueLabel
214
+ })
215
+ },
216
+ {
217
+ id: "actions",
218
+ header: () => /* @__PURE__ */ b("span", {
219
+ className: "ttw:sr-only",
220
+ children: Q.columnActions
221
+ }),
222
+ cell: ({ row: t }) => /* @__PURE__ */ b("div", {
223
+ className: "ttw:flex ttw:justify-end",
224
+ children: /* @__PURE__ */ x(n, { children: [/* @__PURE__ */ b(a, {
225
+ asChild: !0,
226
+ children: /* @__PURE__ */ b(e, {
227
+ variant: "ghost",
228
+ size: "icon-sm",
229
+ "aria-label": Q.columnActions,
230
+ onClick: (e) => e.stopPropagation(),
231
+ children: /* @__PURE__ */ b(T, { className: "ttw:size-4" })
232
+ })
233
+ }), /* @__PURE__ */ x(r, {
234
+ align: "end",
235
+ children: [
236
+ /* @__PURE__ */ b(N, {
237
+ enabled: t.original.actions.edit,
238
+ label: Q.actionEdit,
239
+ action: "edit",
240
+ row: t.original,
241
+ onActionClick: Y
242
+ }),
243
+ /* @__PURE__ */ b(N, {
244
+ enabled: t.original.actions.issue,
245
+ label: Q.actionIssue,
246
+ action: "issue",
247
+ row: t.original,
248
+ onActionClick: Y
249
+ }),
250
+ /* @__PURE__ */ b(N, {
251
+ enabled: t.original.actions.send,
252
+ label: Q.actionSend,
253
+ action: "send",
254
+ row: t.original,
255
+ onActionClick: Y
256
+ }),
257
+ /* @__PURE__ */ b(N, {
258
+ enabled: t.original.actions.recordPayment,
259
+ label: Q.actionRecordPayment,
260
+ action: "recordPayment",
261
+ row: t.original,
262
+ onActionClick: Y
263
+ }),
264
+ /* @__PURE__ */ b(N, {
265
+ enabled: t.original.actions.markPaid,
266
+ label: Q.actionMarkPaid,
267
+ action: "markPaid",
268
+ row: t.original,
269
+ onActionClick: Y
270
+ }),
271
+ /* @__PURE__ */ b(N, {
272
+ enabled: t.original.actions.markUncollectible,
273
+ label: Q.actionMarkUncollectible,
274
+ action: "markUncollectible",
275
+ row: t.original,
276
+ onActionClick: Y
277
+ }),
278
+ /* @__PURE__ */ b(N, {
279
+ enabled: t.original.actions.accept,
280
+ label: Q.actionAccept,
281
+ action: "accept",
282
+ row: t.original,
283
+ onActionClick: Y
284
+ }),
285
+ /* @__PURE__ */ b(N, {
286
+ enabled: t.original.actions.decline,
287
+ label: Q.actionDecline,
288
+ action: "decline",
289
+ row: t.original,
290
+ onActionClick: Y
291
+ }),
292
+ /* @__PURE__ */ b(N, {
293
+ enabled: t.original.actions.cancel,
294
+ label: Q.actionCancel,
295
+ action: "cancel",
296
+ row: t.original,
297
+ onActionClick: Y
298
+ }),
299
+ /* @__PURE__ */ b(N, {
300
+ enabled: t.original.actions.clone,
301
+ label: Q.actionClone,
302
+ action: "clone",
303
+ row: t.original,
304
+ onActionClick: Y
305
+ }),
306
+ /* @__PURE__ */ b(N, {
307
+ enabled: t.original.actions.delete,
308
+ label: Q.actionDelete,
309
+ action: "delete",
310
+ row: t.original,
311
+ onActionClick: Y,
312
+ variant: "destructive"
313
+ })
314
+ ]
315
+ })] })
316
+ }),
317
+ size: 72
318
+ }
319
+ ],
320
+ data: i,
321
+ isLoading: l,
322
+ sorting: d,
323
+ onSortingChange: S,
324
+ pageSize: C,
325
+ onPageSizeChange: w,
326
+ pageSizeOptions: D,
327
+ pageInfo: A,
328
+ hasNextPage: P,
329
+ hasPrevPage: F,
330
+ onNextPage: I,
331
+ onPrevPage: L,
332
+ onRowClick: J,
333
+ rowAriaLabel: (e) => Q.openRow(e.documentLabel),
334
+ filterComponent: /* @__PURE__ */ b(M, {
335
+ labels: Q,
336
+ searchValue: R,
337
+ onSearchChange: z,
338
+ statusFilter: B,
339
+ statusOptions: V,
340
+ onStatusFilterChange: H
341
+ }),
342
+ children: /* @__PURE__ */ b(h, {
343
+ title: G ? Q.filterEmptyTitle : Q.emptyTitle,
344
+ description: G ? Q.filterEmptyDescription : Q.emptyDescription,
345
+ actionLabel: G ? void 0 : Q.emptyAction,
346
+ onAction: G ? void 0 : K
347
+ })
348
+ })
349
+ ]
350
+ });
351
+ }
352
+ //#endregion
353
+ export { F as ReceivablesScreen, F as default };
@@ -17,11 +17,12 @@ var r = {
17
17
  canceled: "Cancelled",
18
18
  deleted: "Deleted",
19
19
  unknown: "Unknown"
20
- }, i = {
20
+ }, i = { all: "All invoices" }, a = {
21
21
  createButton: "Create",
22
22
  templateSettingsButton: "Template settings",
23
23
  searchPlaceholder: "Search by number or customer",
24
24
  statusFilterAll: "All statuses",
25
+ statusCardsAll: "All invoices",
25
26
  tabInvoices: "Invoices",
26
27
  tabQuotes: "Quotes",
27
28
  tabCreditNotes: "Credit notes",
@@ -60,7 +61,7 @@ var r = {
60
61
  errorDescription: "Something went wrong while fetching receivables. Please try again.",
61
62
  errorRetry: "Try again",
62
63
  statusBadge: r
63
- }, a = {
64
+ }, o = {
64
65
  ...e,
65
66
  ...n,
66
67
  ...t,
@@ -152,7 +153,7 @@ var r = {
152
153
  reminderAddTermButton: "Add",
153
154
  reminderClearButton: "Clear",
154
155
  reminderSaveButton: "Save"
155
- }, o = {
156
+ }, s = {
156
157
  hiddenDescription: "Receivable details",
157
158
  loadingTitle: "Loading...",
158
159
  errorTitle: "Receivable not found",
@@ -181,7 +182,7 @@ var r = {
181
182
  cloneButton: "Clone",
182
183
  deleteButton: "Delete",
183
184
  statusBadge: r
184
- }, s = {
185
+ }, c = {
185
186
  title: "Send receivable",
186
187
  description: "Send this document to the customer by email.",
187
188
  toLabel: "To",
@@ -191,7 +192,7 @@ var r = {
191
192
  bodyLabel: "Message",
192
193
  cancelButton: "Cancel",
193
194
  sendButton: "Send"
194
- }, c = {
195
+ }, l = {
195
196
  title: "Record payment",
196
197
  description: "Record a full or partial invoice payment.",
197
198
  modeLabel: "Payment type",
@@ -202,9 +203,9 @@ var r = {
202
203
  commentLabel: "Comment",
203
204
  cancelButton: "Cancel",
204
205
  submitButton: "Record payment"
205
- }, l = {
206
+ }, u = {
206
207
  cancelButton: "Cancel",
207
208
  confirmButton: "Confirm"
208
209
  };
209
210
  //#endregion
210
- export { i as RECEIVABLES_SCREEN_LABELS_EN, l as RECEIVABLE_ACTION_DIALOG_LABELS_EN, o as RECEIVABLE_DETAILS_SHEET_LABELS_EN, a as RECEIVABLE_FORM_SHEET_LABELS_EN, c as RECEIVABLE_PAYMENT_DIALOG_LABELS_EN, s as RECEIVABLE_SEND_DIALOG_LABELS_EN, r as RECEIVABLE_STATUS_BADGE_LABELS_EN };
211
+ export { a as RECEIVABLES_SCREEN_LABELS_EN, u as RECEIVABLE_ACTION_DIALOG_LABELS_EN, s as RECEIVABLE_DETAILS_SHEET_LABELS_EN, o as RECEIVABLE_FORM_SHEET_LABELS_EN, l as RECEIVABLE_PAYMENT_DIALOG_LABELS_EN, c as RECEIVABLE_SEND_DIALOG_LABELS_EN, r as RECEIVABLE_STATUS_BADGE_LABELS_EN, i as RECEIVABLE_STATUS_CARDS_LABELS_EN };
@@ -37,7 +37,7 @@ import { useControllableState as C } from "@radix-ui/react-use-controllable-stat
37
37
  var w = {
38
38
  [s.Profile]: [],
39
39
  [s.Team]: [t.UserReadOrg],
40
- [s.Invoice]: [t.OrganizationSettingsWriteOrg],
40
+ [s.Invoice]: [t.InvoiceReadOrg, t.OrganizationSettingsWriteOrg],
41
41
  [s.BillPay]: [
42
42
  t.ApprovalPolicyWriteOrg,
43
43
  t.PayableWriteOrg,
@@ -1,5 +1,5 @@
1
1
  //#region ../../libs/tesouro-embedded-components-react/shared/feature/dist/lib/analytics/build-info.js
2
- var e = "@tesouro/embedded-components-react", t = "0.5.217", n = "0a36acf43bce33711fb23b5a8eb3c7fda67378c1", r = Object.freeze({
2
+ var e = "@tesouro/embedded-components-react", t = "0.5.221", n = "a377ce4bc83716b9ad33ed9b39b30f6f3b8f2f81", r = Object.freeze({
3
3
  library_name: e,
4
4
  library_version: t,
5
5
  library_sha: n
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tesouro/embedded-components-react",
3
- "version": "0.5.217",
3
+ "version": "0.5.221",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "packageDepSync": {