@tesouro/embedded-components-react 0.5.204 → 0.5.205

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 (44) hide show
  1. package/README.md +15 -14
  2. package/dist/index.d.ts +38 -0
  3. package/dist/index.js +1 -1
  4. package/dist/lib/ReceivablesWidget.d.ts +38 -0
  5. package/dist/lib/ReceivablesWidget.js +1 -1
  6. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index.js +7 -7
  7. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index2.js +26 -23
  8. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index3.js +79 -2
  9. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index.js +1 -1
  10. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index13.js +53 -42
  11. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index14.js +81 -283
  12. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index15.js +47 -70
  13. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index16.js +303 -99
  14. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index17.js +68 -230
  15. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index18.js +115 -0
  16. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index19.js +253 -0
  17. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index5.js +1 -1
  18. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index8.js +34 -19
  19. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index9.js +14 -0
  20. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index.js +10 -9
  21. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index10.js +18 -1
  22. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index11.js +0 -3
  23. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index12.js +0 -7
  24. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index13.js +10 -0
  25. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index14.js +1 -264
  26. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index15.js +259 -67
  27. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index16.js +61 -412
  28. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index17.js +407 -89
  29. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index18.js +73 -60
  30. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index19.js +80 -331
  31. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index2.js +20 -0
  32. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index20.js +344 -0
  33. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index4.js +183 -137
  34. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index5.js +157 -20
  35. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index6.js +24 -1
  36. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index7.js +1 -3
  37. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index8.js +1 -1
  38. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index9.js +3 -18
  39. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/index.js +38 -38
  40. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/rest/@tanstack/react-query.gen.js +213 -202
  41. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/rest/sdk.gen.js +136 -116
  42. package/dist/libs/tesouro-embedded-components-react/shared/feature/dist/lib/analytics/build-info.js +1 -1
  43. package/dist/packages/shared-ui-shadcn/dist/index.js +1763 -1749
  44. package/package.json +1 -1
@@ -1,106 +1,424 @@
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, RadioGroup as l, RadioGroupItem as u, Textarea as d } from "../../../../../packages/shared-ui-shadcn/dist/index.js";
2
- import { RECEIVABLE_PAYMENT_DIALOG_LABELS_EN as f } from "./index2.js";
3
- import { jsx as p, jsxs as m } from "react/jsx-runtime";
1
+ import { Alert as e, AlertDescription as t, Button as n, Checkbox as r, Field as i, FieldContent as a, FieldLabel as o, Input as s, InputGroup as c, InputGroupAddon as l, InputGroupInput as u, Label as d, RadioGroup as f, RadioGroupItem as p, Select as m, SelectContent as h, SelectItem as g, SelectTrigger as _, SelectValue as v, Sheet as y, SheetContent as b, SheetDescription as x, SheetFooter as S, SheetHeader as C, SheetTitle as w, Spinner as T, Typography as E, cn as D } from "../../../../../packages/shared-ui-shadcn/dist/index.js";
2
+ import { RECEIVABLE_FORM_SHEET_LABELS_EN as O } from "./index2.js";
3
+ import { ReceivableNotesSection as k } from "./index16.js";
4
+ import { useId as ee } from "react";
5
+ import { jsx as A, jsxs as j } from "react/jsx-runtime";
6
+ import { MinusIcon as M, PlusIcon as N, Trash2Icon as P } from "lucide-react";
4
7
  //#region ../../libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index17.js
5
- function h({ message: e }) {
6
- return e ? /* @__PURE__ */ p("p", {
8
+ var F = "__none__", I = "__manage__";
9
+ function L({ message: e }) {
10
+ return e ? /* @__PURE__ */ A("p", {
7
11
  className: "ttw:text-sm ttw:text-destructive",
8
12
  children: e
9
13
  }) : null;
10
14
  }
11
- function g({ open: g, onOpenChange: _, values: v, errors: y, inProgress: b, onChange: x, onSubmit: S, onCancel: C, labels: w }) {
12
- let T = {
13
- ...f,
14
- ...w
15
- };
16
- return /* @__PURE__ */ p(t, {
17
- open: g,
18
- onOpenChange: _,
19
- children: /* @__PURE__ */ m(n, { children: [
20
- /* @__PURE__ */ m(a, { children: [/* @__PURE__ */ p(o, { children: T.title }), /* @__PURE__ */ p(r, { children: T.description })] }),
21
- /* @__PURE__ */ m("div", {
22
- className: "ttw:flex ttw:flex-col ttw:gap-4",
15
+ function te({ formId: e, lineItem: t, errors: i, controls: a, focusOnMount: o, canRemove: s, unitOptions: d, currencySymbol: f, labels: p, renderProductSelector: y, onChange: b, onCommit: x, onQuantityStep: S, onManageUnits: C, onRemove: w }) {
16
+ let T = `${e}-line-${t.id}`;
17
+ return /* @__PURE__ */ j("li", {
18
+ className: "ttw:flex ttw:h-9 ttw:items-center ttw:gap-2.5",
19
+ children: [
20
+ /* @__PURE__ */ A("div", {
21
+ className: "ttw:min-w-30 ttw:flex-1",
22
+ children: y(t, {
23
+ inputId: `${T}-name`,
24
+ invalid: !!i?.name,
25
+ focusOnMount: o
26
+ })
27
+ }),
28
+ /* @__PURE__ */ j("div", {
29
+ className: D("ttw:flex ttw:h-9 ttw:w-26 ttw:min-w-26 ttw:items-center ttw:rounded-md ttw:border ttw:border-input ttw:shadow-xs", i?.quantity && "ttw:border-destructive"),
23
30
  children: [
24
- y?.form && /* @__PURE__ */ p("p", {
25
- className: "ttw:rounded-md ttw:bg-destructive/10 ttw:px-3 ttw:py-2 ttw:text-sm ttw:text-destructive",
26
- children: y.form
31
+ /* @__PURE__ */ A("button", {
32
+ type: "button",
33
+ "aria-label": p.decreaseQuantityButton,
34
+ disabled: a ? !a.canDecreaseQuantity : !1,
35
+ className: "ttw:flex ttw:size-6 ttw:shrink-0 ttw:items-center ttw:justify-center ttw:rounded-sm ttw:text-muted-foreground ttw:hover:bg-accent ttw:disabled:pointer-events-none ttw:disabled:opacity-50",
36
+ onClick: () => S(-1),
37
+ children: /* @__PURE__ */ A(M, { className: "ttw:size-3.5" })
27
38
  }),
28
- /* @__PURE__ */ m("div", {
29
- className: "ttw:flex ttw:flex-col ttw:gap-1.5",
30
- children: [/* @__PURE__ */ p(c, { children: T.modeLabel }), /* @__PURE__ */ m(l, {
31
- className: "ttw:flex ttw:flex-row ttw:gap-6",
32
- value: v.mode,
33
- onValueChange: (e) => x({ mode: e }),
34
- children: [/* @__PURE__ */ m("div", {
35
- className: "ttw:flex ttw:items-center ttw:gap-2",
36
- children: [/* @__PURE__ */ p(u, {
37
- value: "full",
38
- id: "receivable-payment-full"
39
- }), /* @__PURE__ */ p(c, {
40
- htmlFor: "receivable-payment-full",
41
- children: T.fullPayment
42
- })]
43
- }), /* @__PURE__ */ m("div", {
44
- className: "ttw:flex ttw:items-center ttw:gap-2",
45
- children: [/* @__PURE__ */ p(u, {
46
- value: "partial",
47
- id: "receivable-payment-partial"
48
- }), /* @__PURE__ */ p(c, {
49
- htmlFor: "receivable-payment-partial",
50
- children: T.partialPayment
51
- })]
52
- })]
53
- })]
39
+ /* @__PURE__ */ A("input", {
40
+ id: `${T}-quantity`,
41
+ "aria-label": p.quantityLabel,
42
+ "aria-invalid": !!i?.quantity || void 0,
43
+ type: "text",
44
+ inputMode: "decimal",
45
+ className: "ttw:h-full ttw:w-full ttw:min-w-0 ttw:bg-transparent ttw:px-0 ttw:text-center ttw:text-sm ttw:outline-none",
46
+ value: t.quantity,
47
+ onChange: (e) => b({ quantity: e.target.value }),
48
+ onBlur: () => x("quantity")
54
49
  }),
55
- v.mode === "partial" && /* @__PURE__ */ m("div", {
56
- className: "ttw:flex ttw:flex-col ttw:gap-1.5",
57
- children: [
58
- /* @__PURE__ */ p(c, { children: T.amountPaidLabel }),
59
- /* @__PURE__ */ p(s, {
60
- inputMode: "decimal",
61
- value: v.amountPaid,
62
- onChange: (e) => x({ amountPaid: e.target.value })
63
- }),
64
- /* @__PURE__ */ p(h, { message: y?.amountPaid })
65
- ]
50
+ /* @__PURE__ */ A("button", {
51
+ type: "button",
52
+ "aria-label": p.increaseQuantityButton,
53
+ disabled: a ? !a.canIncreaseQuantity : !1,
54
+ className: "ttw:flex ttw:size-6 ttw:shrink-0 ttw:items-center ttw:justify-center ttw:rounded-sm ttw:text-muted-foreground ttw:hover:bg-accent ttw:disabled:pointer-events-none ttw:disabled:opacity-50",
55
+ onClick: () => S(1),
56
+ children: /* @__PURE__ */ A(N, { className: "ttw:size-3.5" })
57
+ })
58
+ ]
59
+ }),
60
+ /* @__PURE__ */ j(m, {
61
+ value: t.unit || F,
62
+ onValueChange: (e) => {
63
+ if (e === I) {
64
+ C?.();
65
+ return;
66
+ }
67
+ b({ unit: e === F ? "" : e });
68
+ },
69
+ children: [/* @__PURE__ */ A(_, {
70
+ id: `${T}-unit`,
71
+ "aria-label": p.unitLabel,
72
+ "aria-invalid": !!i?.measureUnit || void 0,
73
+ className: "ttw:w-22",
74
+ children: /* @__PURE__ */ A(v, {
75
+ className: "ttw:truncate",
76
+ placeholder: p.unitPlaceholder
77
+ })
78
+ }), /* @__PURE__ */ j(h, { children: [
79
+ C && /* @__PURE__ */ j(g, {
80
+ value: I,
81
+ className: "ttw:font-semibold ttw:text-primary ttw:hover:text-primary ttw:focus:text-primary",
82
+ children: [/* @__PURE__ */ A(N, { className: "ttw:text-primary" }), p.manageUnitsOption]
66
83
  }),
67
- v.mode === "full" && /* @__PURE__ */ m("div", {
68
- className: "ttw:flex ttw:flex-col ttw:gap-1.5",
69
- children: [
70
- /* @__PURE__ */ p(c, { children: T.paidAtLabel }),
71
- /* @__PURE__ */ p(s, {
72
- type: "date",
73
- value: v.paidAt,
74
- onChange: (e) => x({ paidAt: e.target.value })
75
- }),
76
- /* @__PURE__ */ p(h, { message: y?.paidAt })
77
- ]
84
+ /* @__PURE__ */ A(g, {
85
+ value: F,
86
+ children: p.unitNone
78
87
  }),
79
- /* @__PURE__ */ m("div", {
80
- className: "ttw:flex ttw:flex-col ttw:gap-1.5",
88
+ d.map((e) => /* @__PURE__ */ A(g, {
89
+ value: e.value,
90
+ children: e.label
91
+ }, e.value))
92
+ ] })]
93
+ }),
94
+ /* @__PURE__ */ j(c, {
95
+ className: "ttw:w-full ttw:max-w-41 ttw:min-w-29",
96
+ children: [/* @__PURE__ */ A(l, {
97
+ align: "inline-start",
98
+ children: f
99
+ }), /* @__PURE__ */ A(u, {
100
+ id: `${T}-price`,
101
+ "aria-label": p.priceLabel,
102
+ "aria-invalid": !!i?.price || void 0,
103
+ "data-has-start-addon": !0,
104
+ type: "text",
105
+ inputMode: "decimal",
106
+ className: "ttw:text-right",
107
+ value: t.price,
108
+ onChange: (e) => b({ price: e.target.value }),
109
+ onBlur: () => x("price")
110
+ })]
111
+ }),
112
+ /* @__PURE__ */ A("div", {
113
+ className: "ttw:flex ttw:w-12 ttw:min-w-12 ttw:items-center ttw:justify-center",
114
+ children: /* @__PURE__ */ A(r, {
115
+ id: `${T}-taxable`,
116
+ "aria-label": p.taxableLabel,
117
+ checked: t.taxable,
118
+ onCheckedChange: (e) => b({ taxable: e === !0 })
119
+ })
120
+ }),
121
+ s && /* @__PURE__ */ A(n, {
122
+ type: "button",
123
+ variant: "ghost",
124
+ size: "sm",
125
+ "aria-label": p.removeLineItemButton,
126
+ className: "ttw:w-10 ttw:rounded-none ttw:border-l ttw:border-border ttw:pl-4 ttw:text-muted-foreground ttw:hover:bg-transparent ttw:hover:text-destructive ttw:has-[>svg]:pr-0",
127
+ onClick: w,
128
+ children: /* @__PURE__ */ A(P, {})
129
+ })
130
+ ]
131
+ });
132
+ }
133
+ function R({ open: r, onOpenChange: D, mode: M = "create", values: P, errors: F, currencyOptions: I, paymentTermsOptions: R, unitOptions: ne, currencySymbol: re, lineItemControls: z, autoFocusLineItemId: B, lineItemsLoading: V, inProgress: H, customerSelector: U, renderProductSelector: W, onChange: G, onLineItemChange: K, onLineItemCommit: q, onLineItemQuantityStep: J, onTaxRateCommit: Y, onManageUnits: ie, onAddLineItem: ae, onRemoveLineItem: oe, bankAccountSection: se, attachmentsSection: ce, cancelDisabled: X, saveDisabled: le, onSubmit: ue, onCancel: de, labels: fe }) {
134
+ let Z = {
135
+ ...O,
136
+ ...fe
137
+ }, Q = ee(), $ = M === "edit", pe = P.type === "invoice" || M === "edit", me = $ ? "ttw:grid ttw:grid-cols-3 ttw:gap-4" : "ttw:grid ttw:grid-cols-2 ttw:gap-4";
138
+ return /* @__PURE__ */ A(y, {
139
+ open: r,
140
+ onOpenChange: D,
141
+ children: /* @__PURE__ */ j(b, {
142
+ className: "ttw:w-180 ttw:overflow-y-auto ttw:sm:max-w-180",
143
+ children: [
144
+ /* @__PURE__ */ j(C, { children: [/* @__PURE__ */ A(w, { children: M === "edit" ? Z.editTitle : Z.createTitle }), /* @__PURE__ */ A(x, {
145
+ className: "ttw:sr-only",
146
+ children: Z.hiddenDescription
147
+ })] }),
148
+ /* @__PURE__ */ A("form", {
149
+ id: Q,
150
+ onSubmit: (e) => {
151
+ e.preventDefault(), e.stopPropagation(), ue();
152
+ },
153
+ children: /* @__PURE__ */ j("div", {
154
+ className: "ttw:flex ttw:flex-col ttw:gap-5 ttw:px-6 ttw:pb-6",
81
155
  children: [
82
- /* @__PURE__ */ p(c, { children: T.commentLabel }),
83
- /* @__PURE__ */ p(d, {
84
- rows: 3,
85
- value: v.comment,
86
- onChange: (e) => x({ comment: e.target.value })
156
+ F?.form && /* @__PURE__ */ A("p", {
157
+ role: "alert",
158
+ className: "ttw:rounded-md ttw:bg-destructive/10 ttw:px-3 ttw:py-2 ttw:text-sm ttw:text-destructive",
159
+ children: F.form
160
+ }),
161
+ /* @__PURE__ */ j("div", {
162
+ className: "ttw:flex ttw:flex-col ttw:gap-1.5",
163
+ children: [
164
+ /* @__PURE__ */ A(d, { children: Z.documentTypeLabel }),
165
+ /* @__PURE__ */ j(f, {
166
+ className: "ttw:flex ttw:flex-row ttw:gap-6",
167
+ disabled: M === "edit",
168
+ value: P.type,
169
+ onValueChange: (e) => G({ type: e }),
170
+ children: [/* @__PURE__ */ j("div", {
171
+ className: "ttw:flex ttw:items-center ttw:gap-2",
172
+ children: [/* @__PURE__ */ A(p, {
173
+ value: "invoice",
174
+ id: `${Q}-invoice`
175
+ }), /* @__PURE__ */ A(d, {
176
+ htmlFor: `${Q}-invoice`,
177
+ children: Z.typeInvoice
178
+ })]
179
+ }), /* @__PURE__ */ j("div", {
180
+ className: "ttw:flex ttw:items-center ttw:gap-2",
181
+ children: [/* @__PURE__ */ A(p, {
182
+ value: "quote",
183
+ id: `${Q}-quote`
184
+ }), /* @__PURE__ */ A(d, {
185
+ htmlFor: `${Q}-quote`,
186
+ children: Z.typeQuote
187
+ })]
188
+ })]
189
+ }),
190
+ /* @__PURE__ */ A(L, { message: F?.type })
191
+ ]
192
+ }),
193
+ /* @__PURE__ */ j("div", {
194
+ className: "ttw:flex ttw:flex-col ttw:gap-1.5",
195
+ children: [
196
+ /* @__PURE__ */ A(d, { children: Z.customerLabel }),
197
+ U,
198
+ /* @__PURE__ */ A("p", {
199
+ className: "ttw:text-xs ttw:text-muted-foreground",
200
+ children: Z.customerHint
201
+ }),
202
+ /* @__PURE__ */ A(L, { message: F?.customerId })
203
+ ]
204
+ }),
205
+ /* @__PURE__ */ j("div", {
206
+ className: me,
207
+ children: [
208
+ /* @__PURE__ */ j("div", {
209
+ className: "ttw:flex ttw:flex-col ttw:gap-1.5",
210
+ children: [
211
+ /* @__PURE__ */ A(d, {
212
+ htmlFor: `${Q}-currency`,
213
+ children: Z.currencyLabel
214
+ }),
215
+ /* @__PURE__ */ j(m, {
216
+ value: P.currency,
217
+ onValueChange: (e) => G({ currency: e }),
218
+ children: [/* @__PURE__ */ A(_, {
219
+ id: `${Q}-currency`,
220
+ children: /* @__PURE__ */ A(v, {})
221
+ }), /* @__PURE__ */ A(h, { children: I.map((e) => /* @__PURE__ */ A(g, {
222
+ value: e.value,
223
+ children: e.label
224
+ }, e.value)) })]
225
+ }),
226
+ /* @__PURE__ */ A(L, { message: F?.currency })
227
+ ]
228
+ }),
229
+ $ && /* @__PURE__ */ j("div", {
230
+ className: "ttw:flex ttw:flex-col ttw:gap-1.5",
231
+ children: [
232
+ /* @__PURE__ */ A(d, {
233
+ htmlFor: `${Q}-issue-date`,
234
+ children: Z.issueDateLabel
235
+ }),
236
+ /* @__PURE__ */ A(s, {
237
+ id: `${Q}-issue-date`,
238
+ type: "date",
239
+ value: P.issueDate,
240
+ onChange: (e) => G({ issueDate: e.target.value })
241
+ }),
242
+ /* @__PURE__ */ A(L, { message: F?.issueDate })
243
+ ]
244
+ }),
245
+ /* @__PURE__ */ j("div", {
246
+ className: "ttw:flex ttw:flex-col ttw:gap-1.5",
247
+ children: [
248
+ /* @__PURE__ */ A(d, {
249
+ htmlFor: `${Q}-due-date`,
250
+ children: Z.dueDateLabel
251
+ }),
252
+ /* @__PURE__ */ A(s, {
253
+ id: `${Q}-due-date`,
254
+ type: "date",
255
+ value: P.dueDate,
256
+ onChange: (e) => G({ dueDate: e.target.value })
257
+ }),
258
+ /* @__PURE__ */ A(L, { message: F?.dueDate })
259
+ ]
260
+ })
261
+ ]
87
262
  }),
88
- /* @__PURE__ */ p(h, { message: y?.comment })
263
+ pe && /* @__PURE__ */ j("div", {
264
+ className: "ttw:flex ttw:flex-col ttw:gap-1.5",
265
+ children: [
266
+ /* @__PURE__ */ A(d, {
267
+ htmlFor: `${Q}-payment-terms`,
268
+ children: Z.paymentTermsLabel
269
+ }),
270
+ /* @__PURE__ */ j(m, {
271
+ value: P.paymentTermsId || void 0,
272
+ onValueChange: (e) => G({ paymentTermsId: e === "__none__" ? "" : e }),
273
+ children: [/* @__PURE__ */ A(_, {
274
+ id: `${Q}-payment-terms`,
275
+ children: /* @__PURE__ */ A(v, { placeholder: Z.paymentTermsPlaceholder })
276
+ }), /* @__PURE__ */ j(h, { children: [/* @__PURE__ */ A(g, {
277
+ value: "__none__",
278
+ children: Z.paymentTermsNone
279
+ }), R.map((e) => /* @__PURE__ */ A(g, {
280
+ value: e.value,
281
+ children: e.label
282
+ }, e.value))] })]
283
+ }),
284
+ /* @__PURE__ */ A(L, { message: F?.paymentTermsId })
285
+ ]
286
+ }),
287
+ /* @__PURE__ */ j("div", {
288
+ className: "ttw:flex ttw:flex-col ttw:gap-2.5 ttw:rounded-xl ttw:border ttw:border-border ttw:p-6",
289
+ children: [
290
+ /* @__PURE__ */ j("div", {
291
+ className: "ttw:flex ttw:flex-col ttw:gap-2.5 ttw:pb-4",
292
+ children: [/* @__PURE__ */ A(E, {
293
+ variant: "h4",
294
+ children: Z.lineItemsHeading
295
+ }), /* @__PURE__ */ A(E, {
296
+ variant: "body2",
297
+ color: "muted",
298
+ className: "ttw:font-medium",
299
+ children: Z.lineItemsDescription
300
+ })]
301
+ }),
302
+ F?.lineItemsSummary?.length ? /* @__PURE__ */ A(e, {
303
+ variant: "destructive",
304
+ className: "ttw:mb-2",
305
+ children: /* @__PURE__ */ A(t, { children: /* @__PURE__ */ A("ul", { children: F.lineItemsSummary.map((e) => /* @__PURE__ */ A("li", { children: e }, e)) }) })
306
+ }) : null,
307
+ /* @__PURE__ */ j("ul", {
308
+ className: "ttw:flex ttw:flex-col ttw:gap-2.5",
309
+ children: [/* @__PURE__ */ j("li", {
310
+ "aria-hidden": !0,
311
+ className: "ttw:flex ttw:h-5 ttw:items-center ttw:gap-2.5 ttw:text-sm ttw:leading-5 ttw:font-medium",
312
+ children: [
313
+ /* @__PURE__ */ A("span", {
314
+ className: "ttw:inline-flex ttw:min-w-30 ttw:flex-1 ttw:whitespace-nowrap",
315
+ children: Z.productLabel
316
+ }),
317
+ /* @__PURE__ */ A("span", {
318
+ className: "ttw:w-24 ttw:min-w-24",
319
+ children: Z.quantityLabel
320
+ }),
321
+ /* @__PURE__ */ A("span", {
322
+ className: "ttw:w-20.5 ttw:min-w-20.5",
323
+ children: Z.unitLabel
324
+ }),
325
+ /* @__PURE__ */ A("span", {
326
+ className: "ttw:w-full ttw:max-w-41 ttw:min-w-29",
327
+ children: Z.priceLabel
328
+ }),
329
+ /* @__PURE__ */ A("span", {
330
+ className: "ttw:w-12 ttw:min-w-12",
331
+ children: Z.taxableLabel
332
+ }),
333
+ P.lineItems.length > 1 && /* @__PURE__ */ A("span", { className: "ttw:w-10 ttw:min-w-10" })
334
+ ]
335
+ }), V ? /* @__PURE__ */ A("li", {
336
+ className: "ttw:flex ttw:h-9 ttw:items-center ttw:justify-center",
337
+ children: /* @__PURE__ */ A(T, { className: "ttw:size-5" })
338
+ }) : P.lineItems.map((e) => /* @__PURE__ */ A(te, {
339
+ formId: Q,
340
+ lineItem: e,
341
+ errors: F?.lineItems?.[e.id],
342
+ controls: z?.[e.id],
343
+ focusOnMount: e.id === B,
344
+ canRemove: P.lineItems.length > 1,
345
+ unitOptions: ne,
346
+ currencySymbol: re,
347
+ labels: Z,
348
+ renderProductSelector: W,
349
+ onChange: (t) => K(e.id, t),
350
+ onCommit: (t) => q(e.id, t),
351
+ onQuantityStep: (t) => J(e.id, t),
352
+ onManageUnits: ie,
353
+ onRemove: () => oe(e.id)
354
+ }, e.id))]
355
+ }),
356
+ /* @__PURE__ */ j(n, {
357
+ type: "button",
358
+ variant: "ghost",
359
+ className: "ttw:w-fit ttw:text-primary ttw:hover:text-primary",
360
+ onClick: ae,
361
+ children: [/* @__PURE__ */ A(N, { className: "ttw:size-5 ttw:text-primary" }), Z.addLineItemButton]
362
+ }),
363
+ /* @__PURE__ */ A(i, { children: /* @__PURE__ */ j(a, {
364
+ className: "ttw:flex-row ttw:justify-end",
365
+ children: [/* @__PURE__ */ A(o, {
366
+ htmlFor: `${Q}-tax-rate`,
367
+ children: Z.taxRateLabel
368
+ }), /* @__PURE__ */ j(c, {
369
+ className: "ttw:w-40 ttw:has-[>[data-align=inline-end]]:[&>input]:pr-0",
370
+ children: [/* @__PURE__ */ A(u, {
371
+ id: `${Q}-tax-rate`,
372
+ className: "ttw:text-right",
373
+ placeholder: Z.taxRatePlaceholder,
374
+ type: "text",
375
+ inputMode: "decimal",
376
+ value: P.taxRate,
377
+ onChange: (e) => G({ taxRate: e.target.value }),
378
+ onBlur: Y
379
+ }), /* @__PURE__ */ A(l, {
380
+ align: "inline-end",
381
+ children: Z.taxRateSuffix
382
+ })]
383
+ })]
384
+ }) })
385
+ ]
386
+ }),
387
+ se,
388
+ /* @__PURE__ */ A(k, {
389
+ idPrefix: Q,
390
+ openingNote: P.openingNote,
391
+ closingNote: P.closingNote,
392
+ openingNoteError: F?.openingNote,
393
+ closingNoteError: F?.closingNote,
394
+ disabled: H,
395
+ onOpeningNoteChange: (e) => G({ openingNote: e }),
396
+ onClosingNoteChange: (e) => G({ closingNote: e }),
397
+ labels: Z
398
+ }),
399
+ ce
89
400
  ]
90
401
  })
91
- ]
92
- }),
93
- /* @__PURE__ */ m(i, { children: [/* @__PURE__ */ p(e, {
94
- variant: "ghost",
95
- onClick: C,
96
- children: T.cancelButton
97
- }), /* @__PURE__ */ p(e, {
98
- loading: b,
99
- onClick: S,
100
- children: T.submitButton
101
- })] })
102
- ] })
402
+ }),
403
+ /* @__PURE__ */ A(S, { children: /* @__PURE__ */ j("div", {
404
+ className: "ttw:flex ttw:justify-end ttw:gap-2",
405
+ children: [/* @__PURE__ */ A(n, {
406
+ type: "button",
407
+ variant: "ghost",
408
+ disabled: X,
409
+ onClick: de,
410
+ children: Z.cancelButton
411
+ }), /* @__PURE__ */ A(n, {
412
+ type: "submit",
413
+ form: Q,
414
+ loading: H,
415
+ disabled: le,
416
+ children: M === "edit" ? Z.updateButton : Z.createButton
417
+ })]
418
+ }) })
419
+ ]
420
+ })
103
421
  });
104
422
  }
105
423
  //#endregion
106
- export { g as ReceivablePaymentDialog, g as default };
424
+ export { R as ReceivableFormSheet, R as default };