@tesouro/embedded-components-react 0.5.227 → 0.5.230

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 (90) hide show
  1. package/README.md +22 -21
  2. package/dist/index.d.ts +87 -34
  3. package/dist/index.js +1 -1
  4. package/dist/lib/ReceivablesWidget.d.ts +87 -34
  5. package/dist/lib/ReceivablesWidget.js +1 -1
  6. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index.js +5 -5
  7. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index10.js +29 -59
  8. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index11.js +1 -1
  9. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index5.js +32 -33
  10. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index6.js +34 -32
  11. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index7.js +1 -1
  12. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index.js +1 -1
  13. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index10.js +120 -52
  14. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index11.js +44 -100
  15. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index12.js +93 -442
  16. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index13.js +356 -201
  17. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index14.js +225 -157
  18. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index15.js +152 -21
  19. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index16.js +18 -221
  20. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index17.js +220 -31
  21. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index18.js +125 -124
  22. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index19.js +58 -150
  23. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index20.js +232 -46
  24. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index21.js +303 -122
  25. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index22.js +43 -58
  26. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index23.js +125 -98
  27. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index24.js +140 -106
  28. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index25.js +46 -232
  29. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index26.js +119 -29
  30. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index27.js +81 -613
  31. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index28.js +116 -39
  32. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index29.js +27 -33
  33. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index30.js +634 -72
  34. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index31.js +39 -119
  35. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index32.js +36 -317
  36. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index33.js +82 -0
  37. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index34.js +139 -0
  38. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index35.js +340 -0
  39. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index5.js +1 -1
  40. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index7.js +15 -2
  41. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index8.js +55 -468
  42. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index9.js +443 -97
  43. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index.js +24 -22
  44. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index10.js +32 -2
  45. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index11.js +205 -84
  46. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index12.js +161 -3
  47. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index13.js +12 -20
  48. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index14.js +25 -1
  49. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index15.js +4 -3
  50. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index16.js +95 -3
  51. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index17.js +3 -18
  52. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index18.js +24 -1
  53. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index19.js +42 -4
  54. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index2.js +14 -7
  55. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index20.js +19 -12
  56. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index21.js +73 -1
  57. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index22.js +17 -261
  58. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index23.js +12 -44
  59. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index24.js +28 -68
  60. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index25.js +288 -479
  61. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index26.js +1 -106
  62. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index27.js +48 -0
  63. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index28.js +72 -2
  64. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index29.js +496 -4
  65. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index3.js +121 -27
  66. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index30.js +106 -1
  67. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index32.js +2 -28
  68. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index33.js +4 -236
  69. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index34.js +0 -2
  70. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index35.js +90 -239
  71. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index36.js +24 -89
  72. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index37.js +231 -54
  73. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index38.js +3 -353
  74. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index39.js +249 -0
  75. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index4.js +100 -207
  76. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index40.js +93 -0
  77. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index41.js +59 -0
  78. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index42.js +353 -0
  79. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index5.js +35 -29
  80. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index6.js +2 -216
  81. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index7.js +9 -159
  82. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index8.js +27 -14
  83. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index9.js +216 -23
  84. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/index.js +40 -40
  85. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/rest/@tanstack/react-query.gen.js +189 -211
  86. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/rest/sdk.gen.js +43 -59
  87. package/dist/libs/tesouro-embedded-components-react/shared/feature/dist/lib/analytics/build-info.js +1 -1
  88. package/dist/libs/tesouro-embedded-components-react/shared/product-catalog/feature/dist/index.js +12 -12
  89. package/package.json +1 -1
  90. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index31.js +0 -100
@@ -0,0 +1,249 @@
1
+ import { Button as e, Input as t, Label as n, RadioGroup as r, RadioGroupItem as i, Switch as a, Typography as o } from "../../../../../packages/shared-ui-shadcn/dist/index.js";
2
+ import { RECEIVABLE_FORM_SHEET_LABELS_EN as s } from "./index9.js";
3
+ import { Fragment as c } from "react";
4
+ import { Fragment as l, jsx as u, jsxs as d } from "react/jsx-runtime";
5
+ import { PlusIcon as f } from "lucide-react";
6
+ //#region ../../libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index39.js
7
+ function p(e) {
8
+ e.key === "Enter" && e.preventDefault();
9
+ }
10
+ var m = "ttw:border ttw:border-border ttw:rounded-lg ttw:min-h-28 ttw:p-2.5 ttw:flex ttw:w-full ttw:flex-col ttw:gap-4 ttw:xl:w-1/2";
11
+ function h({ id: e, value: t, label: r }) {
12
+ return /* @__PURE__ */ d("li", {
13
+ className: "ttw:flex ttw:items-center ttw:gap-2",
14
+ children: [/* @__PURE__ */ u(i, {
15
+ value: t,
16
+ id: e
17
+ }), /* @__PURE__ */ u(n, {
18
+ htmlFor: e,
19
+ className: "ttw:text-sm ttw:font-normal ttw:leading-snug",
20
+ children: r
21
+ })]
22
+ });
23
+ }
24
+ function g({ idPrefix: e, options: t, selectedId: n, noneLabel: i, onSelect: a }) {
25
+ return /* @__PURE__ */ u(r, {
26
+ className: "ttw:contents",
27
+ value: n,
28
+ onValueChange: a,
29
+ children: /* @__PURE__ */ d("ul", {
30
+ className: "ttw:flex ttw:flex-col ttw:gap-3",
31
+ children: [/* @__PURE__ */ u(h, {
32
+ id: `${e}-none`,
33
+ value: "",
34
+ label: i
35
+ }), t.map((t) => /* @__PURE__ */ u(h, {
36
+ id: `${e}-${t.value}`,
37
+ value: t.value,
38
+ label: t.label
39
+ }, t.value))]
40
+ })
41
+ });
42
+ }
43
+ function _({ direction: e, directionClassName: t, labels: n }) {
44
+ return /* @__PURE__ */ d(o, {
45
+ variant: "body2",
46
+ children: [
47
+ n.reminderNumberOfDays,
48
+ " ",
49
+ /* @__PURE__ */ u("span", {
50
+ className: t,
51
+ children: e
52
+ }),
53
+ " ",
54
+ n.reminderDueDate
55
+ ]
56
+ });
57
+ }
58
+ function v({ idPrefix: n, view: r, labels: i, onSelect: a, onInputChange: s, onSave: c }) {
59
+ let { create: l } = r, f = `${n}-error`;
60
+ return /* @__PURE__ */ d("div", {
61
+ className: m,
62
+ children: [
63
+ /* @__PURE__ */ u(_, {
64
+ direction: i.reminderBefore,
65
+ directionClassName: "ttw:text-green-700 ttw:font-bold",
66
+ labels: i
67
+ }),
68
+ /* @__PURE__ */ u(g, {
69
+ idPrefix: `${n}-option`,
70
+ options: r.options,
71
+ selectedId: r.selectedId,
72
+ noneLabel: i.reminderNone,
73
+ onSelect: a
74
+ }),
75
+ l && /* @__PURE__ */ d("div", {
76
+ className: "ttw:flex ttw:flex-col ttw:gap-2.5",
77
+ children: [
78
+ l.caption && /* @__PURE__ */ u(o, {
79
+ variant: "caption",
80
+ color: "muted",
81
+ children: l.caption
82
+ }),
83
+ /* @__PURE__ */ d("div", {
84
+ className: "ttw:flex ttw:items-center ttw:gap-2.5",
85
+ children: [
86
+ /* @__PURE__ */ u(t, {
87
+ type: "text",
88
+ inputMode: "numeric",
89
+ value: l.value,
90
+ onChange: (e) => s(e.target.value),
91
+ onKeyDown: p,
92
+ disabled: l.inputDisabled,
93
+ className: "ttw:text-right ttw:w-full ttw:p-1.5 ttw:max-w-56",
94
+ placeholder: i.reminderPlaceholder,
95
+ "aria-label": i.reminderBeforeDueInputLabel,
96
+ "aria-invalid": !!l.error,
97
+ "aria-describedby": l.error ? f : void 0
98
+ }),
99
+ /* @__PURE__ */ u(o, {
100
+ variant: "body2",
101
+ children: l.unitLabel
102
+ }),
103
+ /* @__PURE__ */ u(e, {
104
+ type: "button",
105
+ variant: "secondary",
106
+ className: "ttw:hover:brightness-95 ttw:text-secondary-foreground ttw:text-xs",
107
+ disabled: l.saveDisabled,
108
+ loading: l.isSaving,
109
+ onClick: c,
110
+ children: i.reminderSaveButton
111
+ })
112
+ ]
113
+ }),
114
+ l.error && /* @__PURE__ */ u(o, {
115
+ id: f,
116
+ variant: "caption",
117
+ color: "destructive",
118
+ children: l.error
119
+ })
120
+ ]
121
+ }),
122
+ r.warning && /* @__PURE__ */ u(o, {
123
+ variant: "body2",
124
+ className: "ttw:text-amber-700",
125
+ children: r.warning
126
+ })
127
+ ]
128
+ });
129
+ }
130
+ function y({ idPrefix: n, view: r, labels: i, onSelect: a, onTermChange: s, onAddTerm: l, onClear: h, onSave: v }) {
131
+ let { create: y } = r;
132
+ return /* @__PURE__ */ d("div", {
133
+ className: m,
134
+ children: [
135
+ /* @__PURE__ */ u(_, {
136
+ direction: i.reminderAfter,
137
+ directionClassName: "ttw:text-destructive ttw:font-bold",
138
+ labels: i
139
+ }),
140
+ /* @__PURE__ */ u(g, {
141
+ idPrefix: `${n}-option`,
142
+ options: r.options,
143
+ selectedId: r.selectedId,
144
+ noneLabel: i.reminderNone,
145
+ onSelect: a
146
+ }),
147
+ y && /* @__PURE__ */ d("div", {
148
+ className: "ttw:flex ttw:flex-col ttw:gap-2.5",
149
+ children: [
150
+ /* @__PURE__ */ u(o, {
151
+ variant: "caption",
152
+ color: "muted",
153
+ children: y.caption
154
+ }),
155
+ /* @__PURE__ */ d("div", {
156
+ className: "ttw:flex ttw:items-center ttw:gap-2.5",
157
+ children: [y.terms.map((e, n) => /* @__PURE__ */ d(c, { children: [/* @__PURE__ */ u(t, {
158
+ type: "text",
159
+ inputMode: "numeric",
160
+ value: e.value,
161
+ onChange: (e) => s(n, e.target.value),
162
+ onKeyDown: p,
163
+ disabled: y.inputsDisabled,
164
+ className: "ttw:text-right ttw:w-15 ttw:p-1.5",
165
+ placeholder: e.showPlaceholder ? i.reminderPlaceholder : void 0,
166
+ "aria-label": e.ariaLabel
167
+ }), /* @__PURE__ */ u(o, {
168
+ variant: "body2",
169
+ children: e.unitLabel
170
+ })] }, n)), y.showAddTerm && /* @__PURE__ */ d(e, {
171
+ type: "button",
172
+ variant: "ghost",
173
+ className: "ttw:text-xs ttw:text-primary ttw:hover:text-primary",
174
+ disabled: y.addTermDisabled,
175
+ onClick: l,
176
+ children: [/* @__PURE__ */ u(f, {}), i.reminderAddTermButton]
177
+ })]
178
+ }),
179
+ /* @__PURE__ */ d("div", {
180
+ className: "ttw:flex ttw:items-center ttw:gap-2.5",
181
+ children: [/* @__PURE__ */ u(e, {
182
+ type: "button",
183
+ variant: "ghost",
184
+ className: "ttw:text-xs",
185
+ disabled: y.clearDisabled,
186
+ onClick: h,
187
+ children: i.reminderClearButton
188
+ }), /* @__PURE__ */ u(e, {
189
+ type: "button",
190
+ variant: "secondary",
191
+ className: "ttw:hover:brightness-95 ttw:text-secondary-foreground ttw:text-xs",
192
+ disabled: y.saveDisabled,
193
+ loading: y.isSaving,
194
+ onClick: v,
195
+ children: i.reminderSaveButton
196
+ })]
197
+ })
198
+ ]
199
+ })
200
+ ]
201
+ });
202
+ }
203
+ function b({ idPrefix: e, view: t, onToggle: n, onPaymentReminderSelect: r, onOverdueReminderSelect: i, onBeforeDueInputChange: c, onBeforeDueSave: f, onOverdueTermChange: p, onOverdueAddTerm: m, onOverdueClear: h, onOverdueSave: g, labels: _ }) {
204
+ let b = {
205
+ ...s,
206
+ ..._
207
+ }, { cards: x } = t;
208
+ return /* @__PURE__ */ d("section", {
209
+ className: "ttw:flex ttw:flex-col ttw:gap-6",
210
+ children: [/* @__PURE__ */ d("div", {
211
+ className: "ttw:flex ttw:items-center ttw:gap-3",
212
+ children: [/* @__PURE__ */ u(a, {
213
+ checked: t.checked,
214
+ disabled: t.toggleDisabled,
215
+ onCheckedChange: n,
216
+ "aria-label": b.remindersToggleLabel
217
+ }), /* @__PURE__ */ u(o, {
218
+ variant: "body2",
219
+ children: b.remindersDescription
220
+ })]
221
+ }), x && /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ d("div", {
222
+ className: "ttw:flex ttw:flex-col ttw:gap-4 ttw:w-full ttw:xl:flex-row",
223
+ children: [x.beforeDue && /* @__PURE__ */ u(v, {
224
+ idPrefix: `${e}-before`,
225
+ view: x.beforeDue,
226
+ labels: b,
227
+ onSelect: r,
228
+ onInputChange: c,
229
+ onSave: f
230
+ }), /* @__PURE__ */ u(y, {
231
+ idPrefix: `${e}-overdue`,
232
+ view: x.overdue,
233
+ labels: b,
234
+ onSelect: i,
235
+ onTermChange: p,
236
+ onAddTerm: m,
237
+ onClear: h,
238
+ onSave: g
239
+ })]
240
+ }), /* @__PURE__ */ u(o, {
241
+ variant: "body2",
242
+ color: "muted",
243
+ className: "ttw:font-medium",
244
+ children: b.remindersLibraryNote
245
+ })] })]
246
+ });
247
+ }
248
+ //#endregion
249
+ export { b as ReceivableRemindersSection };
@@ -1,209 +1,102 @@
1
- import { RECEIVABLE_BILLING_SECTION_LABELS_EN as e } from "./index2.js";
2
- import { RECEIVABLE_RECURRENCE_EMAIL_DIALOG_LABELS_EN as t, RECEIVABLE_RECURRENCE_SECTION_LABELS_EN as n } from "./index3.js";
1
+ import { Button as e, Checkbox as t, DialogFooter as n, DialogHeader as r, DialogTitle as i, Separator as a, Typography as o } from "../../../../../packages/shared-ui-shadcn/dist/index.js";
2
+ import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
3
+ import { Check as u } from "lucide-react";
3
4
  //#region ../../libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index4.js
4
- var r = {
5
- draft: "Draft",
6
- issuing: "Issuing",
7
- issued: "Issued",
8
- failed: "Failed",
9
- accepted: "Accepted",
10
- expired: "Expired",
11
- declined: "Declined",
12
- recurring: "Recurring",
13
- partially_paid: "Partially paid",
14
- paid: "Paid",
15
- overdue: "Overdue",
16
- uncollectible: "Written off",
17
- canceled: "Cancelled",
18
- deleted: "Deleted",
19
- unknown: "Unknown"
20
- }, i = { all: "All invoices" }, a = {
21
- createButton: "Create",
22
- templateSettingsButton: "Template settings",
23
- searchPlaceholder: "Search by number or customer",
24
- statusFilterAll: "All statuses",
25
- statusCardsAll: i.all,
26
- tabInvoices: "Invoices",
27
- tabQuotes: "Quotes",
28
- tabCreditNotes: "Credit notes",
29
- columnDocument: "Document",
30
- columnCustomer: "Customer",
31
- columnStatus: "Status",
32
- columnIssueDate: "Issued",
33
- columnDueDate: "Due",
34
- columnTotal: "Total",
35
- columnAmountDue: "Amount due",
36
- columnActions: "Actions",
37
- openRow: (e) => `View document — ${e}`,
38
- sortByDocument: "Sort by document",
39
- sortByCustomer: "Sort by customer",
40
- sortByStatus: "Sort by status",
41
- sortByIssueDate: "Sort by issue date",
42
- sortByDueDate: "Sort by due date",
43
- sortByTotal: "Sort by total",
44
- actionEdit: "Edit",
45
- actionIssue: "Issue",
46
- actionSend: "Send",
47
- actionRecordPayment: "Record payment",
48
- actionMarkPaid: "Mark as paid",
49
- actionMarkUncollectible: "Mark uncollectible",
50
- actionAccept: "Accept",
51
- actionDecline: "Decline",
52
- actionCancel: "Cancel",
53
- actionClone: "Clone",
54
- actionDelete: "Delete",
55
- emptyTitle: "No receivables yet",
56
- emptyDescription: "Create your first invoice or quote.",
57
- emptyAction: "Create receivable",
58
- filterEmptyTitle: "No receivables found",
59
- filterEmptyDescription: "Try adjusting your search or filters.",
60
- errorTitle: "Failed to load receivables",
61
- errorDescription: "Something went wrong while fetching receivables. Please try again.",
62
- errorRetry: "Try again",
63
- statusBadge: r
64
- }, o = {
65
- ...e,
66
- ...n,
67
- ...t,
68
- createTitle: "Create receivable",
69
- editTitle: "Edit receivable",
70
- hiddenDescription: "Create an invoice or quote",
71
- documentTypeLabel: "Document type",
72
- typeInvoice: "Invoice",
73
- typeQuote: "Quote",
74
- customerLabel: "Customer",
75
- customerHint: "Create a customer first if the list is empty.",
76
- currencyLabel: "Currency",
77
- issueDateLabel: "Issue date",
78
- dueDateLabel: "Due date",
79
- lineItemsHeading: "Products and services",
80
- lineItemsDescription: "Add the products and services on this invoice. You'll have the option to save new items to your inventory.",
81
- productLabel: "Item name",
82
- quantityLabel: "Quantity",
83
- unitLabel: "Units",
84
- unitPlaceholder: "Select",
85
- unitNone: "None",
86
- manageUnitsOption: "Manage measure units",
87
- priceLabel: "Price",
88
- taxableLabel: "Taxable",
89
- taxRateLabel: "Tax rate",
90
- taxRatePlaceholder: "e.g. 6.25",
91
- taxRateSuffix: "%",
92
- discountLabel: "Discount",
93
- discountPercentageOption: "%",
94
- discountAmountOptionAriaLabel: "Flat discount",
95
- discountPercentageOptionAriaLabel: "Percentage discount",
96
- subtotalLabel: "Subtotal",
97
- discountTotalLabel: "Discount",
98
- nonTaxableSubtotalLabel: "Non-taxable subtotal",
99
- taxableSubtotalLabel: "Taxable subtotal",
100
- taxTotalLabel: "Tax",
101
- totalLabel: "Total",
102
- decreaseQuantityButton: "Decrease quantity",
103
- increaseQuantityButton: "Increase quantity",
104
- addLineItemButton: "Add item",
105
- removeLineItemButton: "Remove line item",
106
- cancelButton: "Cancel",
107
- notesHeading: "Notes",
108
- notesDescription: "Provide additional information for your customer.",
109
- optionalSuffix: "(optional)",
110
- openingNoteLabel: "Opening note to the customer",
111
- openingNotePlaceholder: "e.g., As discussed on our call, please find the attached invoice.",
112
- openingNoteDescription: "Appears above your line items. Use it to reference a discussion, agreement, or project.",
113
- closingNoteLabel: "Closing note to the customer",
114
- closingNotePlaceholder: "e.g., Thank you for your business!",
115
- closingNoteDescription: "Appears below your line items. Commonly used for thank you messages or payment instructions.",
116
- bankAccountHeading: "Payment instructions",
117
- bankAccountDescription: "Tells the customer how they can pay you. We'll include the selected info on the invoice",
118
- bankAccountLabel: "Bank account",
119
- bankAccountHint: "Display your bank account number and routing number",
120
- bankAccountSelectorLabel: "Bank account selector",
121
- bankAccountPlaceholder: "Select bank account",
122
- bankAccountAddOption: "Add a new account",
123
- bankAccountFormHeading: "Add a bank account",
124
- bankAccountRoutingNumberLabel: "Routing number",
125
- bankAccountRoutingNumberPlaceholder: "e.g. 123456789",
126
- bankAccountAccountNumberLabel: "Account number",
127
- bankAccountAccountNumberPlaceholder: "e.g. 123456789",
128
- bankAccountHolderNameLabel: "Account holder name",
129
- bankAccountHolderNamePlaceholder: "e.g. James Smith",
130
- bankAccountNicknameLabel: "Account nickname",
131
- bankAccountNicknamePlaceholder: "e.g. Empire Bank Checking",
132
- bankAccountCancelButton: "Cancel",
133
- bankAccountSaveButton: "Save account",
134
- bankAccountRestrictedTitle: "There are no bank accounts on file for this account",
135
- bankAccountRestrictedDescription: "A bank account is required in order to issue invoices. Contact your company admin to set one up.",
136
- attachmentsHeading: "Attachments",
137
- attachmentsDescription: "Associate additional documents with this invoice for your own reference or to share with the customer. e.g. contracts, photos, terms and conditions, etc.",
138
- attachmentsDropPrompt: "Drop your files here, or",
139
- attachmentsBrowseLink: "browse to upload",
140
- attachmentsFormatsHint: "PDF, DOC, JPG, PNG (max. 3MB)",
141
- remindersToggleLabel: "Payment reminders",
142
- remindersDescription: "Send reminders when an invoice is approaching its due date or past due.",
143
- remindersLibraryNote: "New reminders will be saved to your organization's library and can be managed via Invoice settings",
144
- reminderNumberOfDays: "Number of days",
145
- reminderBefore: "BEFORE",
146
- reminderAfter: "AFTER",
147
- reminderDueDate: "due date",
148
- reminderNone: "No reminder",
149
- reminderBeforeDueInputLabel: "Days before due date",
150
- reminderPlaceholder: "e.g., 3",
151
- reminderAddTermButton: "Add",
152
- reminderClearButton: "Clear",
153
- reminderSaveButton: "Save"
154
- }, s = {
155
- hiddenDescription: "Receivable details",
156
- loadingTitle: "Loading...",
157
- errorTitle: "Receivable not found",
158
- errorDescription: "We could not load this receivable. Please try again.",
159
- summaryHeading: "Summary",
160
- lineItemsHeading: "Line items",
161
- activityHeading: "Activity",
162
- mailsHeading: "Email history",
163
- noLineItems: "No line items.",
164
- noActivity: "No activity yet.",
165
- noMails: "No emails sent yet.",
166
- quantityColumn: "Qty",
167
- unitPriceColumn: "Unit price",
168
- totalColumn: "Total",
169
- closeButton: "Close",
170
- downloadPdfButton: "Download PDF",
171
- editButton: "Edit",
172
- issueButton: "Issue",
173
- sendButton: "Send",
174
- acceptButton: "Accept",
175
- declineButton: "Decline",
176
- recordPaymentButton: "Record payment",
177
- markPaidButton: "Mark as paid",
178
- markUncollectibleButton: "Mark uncollectible",
179
- cancelButton: "Cancel document",
180
- cloneButton: "Clone",
181
- deleteButton: "Delete",
182
- statusBadge: r
183
- }, c = {
184
- title: "Send receivable",
185
- description: "Send this document to the customer by email.",
186
- toLabel: "To",
187
- ccLabel: "CC",
188
- bccLabel: "BCC",
189
- subjectLabel: "Subject",
190
- bodyLabel: "Message",
191
- cancelButton: "Cancel",
192
- sendButton: "Send"
193
- }, l = {
194
- title: "Record payment",
195
- description: "Record a full or partial invoice payment.",
196
- modeLabel: "Payment type",
197
- fullPayment: "Full payment",
198
- partialPayment: "Partial payment",
199
- amountPaidLabel: "Amount paid",
200
- paidAtLabel: "Paid at",
201
- commentLabel: "Comment",
202
- cancelButton: "Cancel",
203
- submitButton: "Record payment"
204
- }, u = {
205
- cancelButton: "Cancel",
206
- confirmButton: "Confirm"
207
- };
5
+ function d({ view: d, onToggleItem: f, onToggleAll: p, onAllSelectedChange: m, onSkip: h, onSave: g, labels: _ }) {
6
+ return /* @__PURE__ */ l(s, { children: [
7
+ /* @__PURE__ */ c(r, {
8
+ className: "ttw:border-b ttw:border-border ttw:p-6",
9
+ children: /* @__PURE__ */ l(i, {
10
+ className: "ttw:flex ttw:flex-row ttw:items-center ttw:gap-4",
11
+ children: [/* @__PURE__ */ c("span", {
12
+ className: "ttw:flex ttw:size-10 ttw:items-center ttw:justify-center ttw:rounded-full ttw:border ttw:border-emerald-200 ttw:bg-emerald-50",
13
+ children: /* @__PURE__ */ c(u, { className: "ttw:size-6 ttw:text-green-700" })
14
+ }), d.title]
15
+ })
16
+ }),
17
+ /* @__PURE__ */ l("div", {
18
+ className: "ttw:flex ttw:flex-col ttw:gap-4 ttw:p-6",
19
+ children: [/* @__PURE__ */ l("div", {
20
+ className: "ttw:flex ttw:items-start ttw:justify-between ttw:gap-1.5",
21
+ children: [/* @__PURE__ */ l("div", {
22
+ className: "ttw:flex ttw:min-w-0 ttw:flex-col ttw:gap-1",
23
+ children: [/* @__PURE__ */ c(o, {
24
+ variant: "h4",
25
+ children: _.productsQuestion
26
+ }), /* @__PURE__ */ c(o, {
27
+ variant: "caption",
28
+ color: "muted",
29
+ children: _.productsCaption
30
+ })]
31
+ }), /* @__PURE__ */ c(e, {
32
+ type: "button",
33
+ variant: "ghost",
34
+ className: "ttw:shrink-0 ttw:text-primary ttw:hover:text-primary",
35
+ disabled: d.inProgress,
36
+ onClick: p,
37
+ children: d.toggleAllLabel
38
+ })]
39
+ }), /* @__PURE__ */ l("ul", {
40
+ className: "ttw:flex ttw:flex-col ttw:gap-3",
41
+ children: [
42
+ /* @__PURE__ */ l("li", {
43
+ className: "ttw:flex ttw:items-center ttw:gap-2",
44
+ children: [/* @__PURE__ */ c(t, {
45
+ checked: d.allSelected,
46
+ onCheckedChange: (e) => m(e === !0),
47
+ disabled: d.inProgress || d.items.length === 0,
48
+ "aria-label": _.productsAllLabel
49
+ }), /* @__PURE__ */ c(o, {
50
+ variant: "body2",
51
+ className: "ttw:font-semibold",
52
+ children: _.productsAllLabel
53
+ })]
54
+ }),
55
+ /* @__PURE__ */ c("li", { children: /* @__PURE__ */ c(a, {}) }),
56
+ d.items.map((e) => /* @__PURE__ */ l("li", {
57
+ className: "ttw:flex ttw:items-start ttw:gap-2",
58
+ children: [/* @__PURE__ */ c(t, {
59
+ checked: e.selected,
60
+ onCheckedChange: () => f(e.key),
61
+ disabled: d.inProgress,
62
+ "aria-label": e.name
63
+ }), /* @__PURE__ */ l("div", {
64
+ className: "ttw:flex ttw:min-w-0 ttw:flex-1 ttw:flex-col ttw:gap-1",
65
+ children: [/* @__PURE__ */ c(o, {
66
+ variant: "caption",
67
+ className: "ttw:truncate",
68
+ title: e.name,
69
+ children: e.name
70
+ }), /* @__PURE__ */ c(o, {
71
+ variant: "caption",
72
+ color: "muted",
73
+ className: "ttw:truncate",
74
+ children: e.priceLabel
75
+ })]
76
+ })]
77
+ }, e.key))
78
+ ]
79
+ })]
80
+ }),
81
+ /* @__PURE__ */ l(n, {
82
+ className: "ttw:flex ttw:flex-row ttw:gap-4 ttw:border-t ttw:border-border ttw:p-6",
83
+ children: [/* @__PURE__ */ c(e, {
84
+ type: "button",
85
+ variant: "outline",
86
+ className: "ttw:flex-1 ttw:border-border",
87
+ disabled: d.inProgress,
88
+ onClick: h,
89
+ children: _.skipButton
90
+ }), /* @__PURE__ */ c(e, {
91
+ type: "button",
92
+ className: "ttw:flex-1",
93
+ disabled: d.saveDisabled,
94
+ loading: d.inProgress,
95
+ onClick: g,
96
+ children: _.saveItemsButton
97
+ })]
98
+ })
99
+ ] });
100
+ }
208
101
  //#endregion
209
- 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 };
102
+ export { d as ReceivableActionsModalProductsStep };
@@ -0,0 +1,93 @@
1
+ import { Button as e, Dialog as t, DialogContent as n, DialogDescription as r, DialogFooter as i, DialogHeader as a, DialogTitle as o, Input as s, Label as c, Textarea as l } from "../../../../../packages/shared-ui-shadcn/dist/index.js";
2
+ import { RECEIVABLE_SEND_DIALOG_LABELS_EN as u } from "./index9.js";
3
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
4
+ //#region ../../libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index40.js
5
+ function p({ message: e }) {
6
+ return e ? /* @__PURE__ */ d("p", {
7
+ className: "ttw:text-sm ttw:text-destructive",
8
+ children: e
9
+ }) : null;
10
+ }
11
+ function m({ open: m, onOpenChange: h, values: g, errors: _, inProgress: v, onChange: y, onSubmit: b, onCancel: x, labels: S }) {
12
+ let C = {
13
+ ...u,
14
+ ...S
15
+ };
16
+ return /* @__PURE__ */ d(t, {
17
+ open: m,
18
+ onOpenChange: h,
19
+ children: /* @__PURE__ */ f(n, { children: [
20
+ /* @__PURE__ */ f(a, { children: [/* @__PURE__ */ d(o, { children: C.title }), /* @__PURE__ */ d(r, { children: C.description })] }),
21
+ /* @__PURE__ */ f("div", {
22
+ className: "ttw:flex ttw:flex-col ttw:gap-4",
23
+ children: [
24
+ _?.form && /* @__PURE__ */ d("p", {
25
+ className: "ttw:rounded-md ttw:bg-destructive/10 ttw:px-3 ttw:py-2 ttw:text-sm ttw:text-destructive",
26
+ children: _.form
27
+ }),
28
+ /* @__PURE__ */ f("div", {
29
+ className: "ttw:flex ttw:flex-col ttw:gap-1.5",
30
+ children: [
31
+ /* @__PURE__ */ d(c, { children: C.toLabel }),
32
+ /* @__PURE__ */ d(s, {
33
+ value: g.to,
34
+ onChange: (e) => y({ to: e.target.value })
35
+ }),
36
+ /* @__PURE__ */ d(p, { message: _?.to })
37
+ ]
38
+ }),
39
+ /* @__PURE__ */ f("div", {
40
+ className: "ttw:grid ttw:grid-cols-2 ttw:gap-4",
41
+ children: [/* @__PURE__ */ f("div", {
42
+ className: "ttw:flex ttw:flex-col ttw:gap-1.5",
43
+ children: [/* @__PURE__ */ d(c, { children: C.ccLabel }), /* @__PURE__ */ d(s, {
44
+ value: g.cc,
45
+ onChange: (e) => y({ cc: e.target.value })
46
+ })]
47
+ }), /* @__PURE__ */ f("div", {
48
+ className: "ttw:flex ttw:flex-col ttw:gap-1.5",
49
+ children: [/* @__PURE__ */ d(c, { children: C.bccLabel }), /* @__PURE__ */ d(s, {
50
+ value: g.bcc,
51
+ onChange: (e) => y({ bcc: e.target.value })
52
+ })]
53
+ })]
54
+ }),
55
+ /* @__PURE__ */ f("div", {
56
+ className: "ttw:flex ttw:flex-col ttw:gap-1.5",
57
+ children: [
58
+ /* @__PURE__ */ d(c, { children: C.subjectLabel }),
59
+ /* @__PURE__ */ d(s, {
60
+ value: g.subject,
61
+ onChange: (e) => y({ subject: e.target.value })
62
+ }),
63
+ /* @__PURE__ */ d(p, { message: _?.subject })
64
+ ]
65
+ }),
66
+ /* @__PURE__ */ f("div", {
67
+ className: "ttw:flex ttw:flex-col ttw:gap-1.5",
68
+ children: [
69
+ /* @__PURE__ */ d(c, { children: C.bodyLabel }),
70
+ /* @__PURE__ */ d(l, {
71
+ rows: 6,
72
+ value: g.body,
73
+ onChange: (e) => y({ body: e.target.value })
74
+ }),
75
+ /* @__PURE__ */ d(p, { message: _?.body })
76
+ ]
77
+ })
78
+ ]
79
+ }),
80
+ /* @__PURE__ */ f(i, { children: [/* @__PURE__ */ d(e, {
81
+ variant: "ghost",
82
+ onClick: x,
83
+ children: C.cancelButton
84
+ }), /* @__PURE__ */ d(e, {
85
+ loading: v,
86
+ onClick: b,
87
+ children: C.sendButton
88
+ })] })
89
+ ] })
90
+ });
91
+ }
92
+ //#endregion
93
+ export { m as ReceivableSendDialog, m as default };