@tesouro/embedded-components-react 0.5.201 → 0.5.202

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 (45) hide show
  1. package/dist/index.d.ts +16 -0
  2. package/dist/index.js +1 -1
  3. package/dist/lib/ReceivablesWidget.d.ts +16 -0
  4. package/dist/lib/ReceivablesWidget.js +1 -1
  5. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index.js +6 -6
  6. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index2.js +24 -18
  7. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index4.js +65 -2
  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/index10.js +188 -45
  10. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index11.js +30 -265
  11. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index12.js +144 -64
  12. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index13.js +47 -109
  13. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index14.js +293 -216
  14. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index15.js +75 -0
  15. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index16.js +114 -0
  16. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index17.js +237 -0
  17. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index4.js +14 -1
  18. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index5.js +28 -243
  19. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index6.js +212 -375
  20. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index7.js +64 -62
  21. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index8.js +409 -187
  22. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index9.js +73 -40
  23. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index.js +10 -9
  24. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index10.js +0 -9
  25. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index11.js +4 -1
  26. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index12.js +10 -263
  27. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index13.js +1 -72
  28. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index14.js +241 -398
  29. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index15.js +66 -100
  30. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index16.js +406 -76
  31. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index17.js +92 -330
  32. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index18.js +93 -0
  33. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index19.js +344 -0
  34. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index2.js +6 -1
  35. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index4.js +157 -20
  36. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index5.js +24 -1
  37. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index6.js +1 -3
  38. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index7.js +3 -18
  39. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index8.js +2 -0
  40. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index9.js +18 -4
  41. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/index.js +37 -37
  42. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/rest/@tanstack/react-query.gen.js +54 -54
  43. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/rest/sdk.gen.js +115 -94
  44. package/dist/libs/tesouro-embedded-components-react/shared/feature/dist/lib/analytics/build-info.js +1 -1
  45. package/package.json +1 -1
@@ -1,93 +1,423 @@
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 "./index2.js";
3
- import { jsx as d, jsxs as f } 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 "./index15.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/index16.js
5
- function p({ message: e }) {
6
- return e ? /* @__PURE__ */ d("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 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",
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
- _?.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
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__ */ 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
- ]
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")
38
49
  }),
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
- })]
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]
54
83
  }),
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
- ]
84
+ /* @__PURE__ */ A(g, {
85
+ value: F,
86
+ children: p.unitNone
65
87
  }),
66
- /* @__PURE__ */ f("div", {
67
- 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, attachmentsSection: se, cancelDisabled: ce, saveDisabled: X, onSubmit: le, onCancel: ue, labels: de }) {
134
+ let Z = {
135
+ ...O,
136
+ ...de
137
+ }, Q = ee(), $ = M === "edit", fe = P.type === "invoice" || M === "edit", pe = $ ? "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(), le();
152
+ },
153
+ children: /* @__PURE__ */ j("div", {
154
+ className: "ttw:flex ttw:flex-col ttw:gap-5 ttw:px-6 ttw:pb-6",
68
155
  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 })
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: pe,
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
+ ]
74
262
  }),
75
- /* @__PURE__ */ d(p, { message: _?.body })
263
+ fe && /* @__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
+ /* @__PURE__ */ A(k, {
388
+ idPrefix: Q,
389
+ openingNote: P.openingNote,
390
+ closingNote: P.closingNote,
391
+ openingNoteError: F?.openingNote,
392
+ closingNoteError: F?.closingNote,
393
+ disabled: H,
394
+ onOpeningNoteChange: (e) => G({ openingNote: e }),
395
+ onClosingNoteChange: (e) => G({ closingNote: e }),
396
+ labels: Z
397
+ }),
398
+ se
76
399
  ]
77
400
  })
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
- ] })
401
+ }),
402
+ /* @__PURE__ */ A(S, { children: /* @__PURE__ */ j("div", {
403
+ className: "ttw:flex ttw:justify-end ttw:gap-2",
404
+ children: [/* @__PURE__ */ A(n, {
405
+ type: "button",
406
+ variant: "ghost",
407
+ disabled: ce,
408
+ onClick: ue,
409
+ children: Z.cancelButton
410
+ }), /* @__PURE__ */ A(n, {
411
+ type: "submit",
412
+ form: Q,
413
+ loading: H,
414
+ disabled: X,
415
+ children: M === "edit" ? Z.updateButton : Z.createButton
416
+ })]
417
+ }) })
418
+ ]
419
+ })
90
420
  });
91
421
  }
92
422
  //#endregion
93
- export { m as ReceivableSendDialog, m as default };
423
+ export { R as ReceivableFormSheet, R as default };