@tesouro/embedded-components-react 0.5.186 → 0.5.188

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 (104) hide show
  1. package/README.md +19 -9
  2. package/dist/index.css +110 -0
  3. package/dist/index.d.ts +233 -60
  4. package/dist/index.js +6 -6
  5. package/dist/lib/ExpenseManagementWidget.d.ts +189 -11
  6. package/dist/lib/ExpenseManagementWidget.js +1 -1
  7. package/dist/lib/UploadReceiptWidget.js +1 -1
  8. package/dist/lib/WidgetSuite.d.ts +213 -16
  9. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index.js +17 -3
  10. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index10.js +36 -0
  11. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index11.js +71 -0
  12. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index12.js +39 -0
  13. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index13.js +32 -0
  14. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index14.js +110 -0
  15. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index15.js +33 -0
  16. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index16.js +19 -0
  17. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index17.js +33 -0
  18. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index18.js +28 -0
  19. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index19.js +35 -0
  20. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index20.js +28 -0
  21. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index21.js +164 -0
  22. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index4.js +25 -18
  23. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index5.js +20 -34
  24. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index6.js +16 -20
  25. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index7.js +16 -0
  26. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index8.js +32 -0
  27. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index9.js +26 -0
  28. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index.js +10 -7
  29. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index10.js +162 -59
  30. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index11.js +64 -16
  31. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index12.js +73 -2
  32. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index13.js +348 -42
  33. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index14.js +42 -1
  34. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index15.js +143 -0
  35. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index16.js +229 -0
  36. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index17.js +196 -0
  37. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index18.js +13 -0
  38. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index19.js +91 -0
  39. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index2.js +89 -2
  40. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index20.js +39 -0
  41. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index21.js +297 -0
  42. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index22.js +1 -0
  43. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index23.js +4 -0
  44. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index24.js +256 -0
  45. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index25.js +22 -0
  46. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index26.js +10 -0
  47. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index27.js +223 -0
  48. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index3.js +2 -254
  49. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index4.js +4 -20
  50. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index5.js +262 -8
  51. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index6.js +2 -221
  52. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index7.js +54 -80
  53. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index8.js +24 -254
  54. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index9.js +18 -2
  55. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/index.js +34 -13
  56. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/AccordionItemCard/AccordionItemCard.js +549 -0
  57. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/AccordionItemCard/labels.js +38 -0
  58. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ActionItemsList/ActionItemsList.js +64 -0
  59. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ActionItemsList/labels.js +7 -0
  60. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpenseStatusBadge/ExpenseStatusBadge.js +18 -0
  61. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpenseStatusBadge/badgeTones.js +16 -0
  62. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpenseStatusBadge/labels.js +13 -0
  63. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesHeader/ExpensesHeader.js +37 -0
  64. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesHeader/labels.js +7 -0
  65. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesScreen/ExpensesScreen.js +112 -0
  66. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesScreen/labels.js +11 -0
  67. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesTransactionsFilterBar/ExpensesTransactionsFilterBar.js +158 -0
  68. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesTransactionsFilterBar/labels.js +18 -0
  69. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesTransactionsTable/ExpensesTransactionsTable.js +148 -0
  70. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesTransactionsTable/labels.js +18 -0
  71. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/FileViewer/FileViewer.js +107 -0
  72. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/FileViewer/PdfFileViewer.js +37 -0
  73. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/FileViewer/labels.js +11 -0
  74. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ReceiptMatchWidget/lib/ReceiptMatchLauncher.js +2 -24
  75. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ReceiptMatchWidget/lib/ReceiptMatchSidebar.js +1 -1
  76. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ReceiptMatchWidget/lib/TransactionsMatchStep.js +62 -65
  77. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ReceiptMatchWidget/lib/labels.js +1 -4
  78. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/TransactionDetails/DeleteReceiptDialog/DeleteReceiptDialog.js +31 -0
  79. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/TransactionDetails/DeleteReceiptDialog/labels.js +9 -0
  80. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/TransactionDetails/TransactionDetails.js +268 -0
  81. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/TransactionDetails/labels.js +21 -0
  82. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/TransactionDetailsActions/BulkProgress.js +26 -0
  83. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/TransactionDetailsActions/TransactionDetailsActions.js +142 -0
  84. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/TransactionDetailsActions/labels.js +20 -0
  85. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/isPdf.js +7 -0
  86. package/dist/libs/tesouro-embedded-components-react/settings-widget/feature/dist/index5.js +2 -2
  87. package/dist/libs/tesouro-embedded-components-react/settings-widget/team/data-access/dist/index7.js +116 -94
  88. package/dist/libs/tesouro-embedded-components-react/settings-widget/team/feature/dist/index12.js +76 -68
  89. package/dist/libs/tesouro-embedded-components-react/settings-widget/team/feature/dist/index17.js +181 -179
  90. package/dist/libs/tesouro-embedded-components-react/settings-widget/team/feature/dist/index3.js +2 -0
  91. package/dist/libs/tesouro-embedded-components-react/settings-widget/team/feature/dist/index7.js +16 -12
  92. package/dist/libs/tesouro-embedded-components-react/settings-widget/team/ui/dist/index8.js +66 -66
  93. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/index.js +36 -35
  94. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/debit-card/useAllDebitCardsQuery.js +54 -0
  95. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/rest/@tanstack/react-query.gen.js +268 -206
  96. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/rest/sdk.gen.js +218 -113
  97. package/dist/libs/tesouro-embedded-components-react/shared/feature/dist/lib/analytics/build-info.js +1 -1
  98. package/dist/libs/tesouro-embedded-components-react/shared/util/dist/lib/formatCalendarDate.js +4 -4
  99. package/dist/libs/tesouro-embedded-components-react/widget-suite/feature/dist/index11.js +16 -14
  100. package/dist/libs/tesouro-embedded-components-react/widget-suite/feature/dist/index4.js +1 -2
  101. package/package.json +1 -1
  102. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpenseManagementWidgetUi/ExpenseManagementWidgetUi.js +0 -71
  103. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpenseManagementWidgetUi/index.js +0 -2
  104. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpenseManagementWidgetUi/labels.js +0 -10
@@ -0,0 +1,16 @@
1
+ //#region ../../libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpenseStatusBadge/badgeTones.js
2
+ var e = {
3
+ danger: "ttw:border-pink-100 ttw:bg-pink-100 ttw:text-pink-700 ttw:hover:bg-pink-100",
4
+ info: "ttw:border-sky-100 ttw:bg-sky-100 ttw:text-sky-700 ttw:hover:bg-sky-100",
5
+ neutral: "ttw:border-zinc-100 ttw:bg-zinc-100 ttw:text-zinc-700 ttw:hover:bg-zinc-100",
6
+ success: "ttw:border-green-100 ttw:bg-green-100 ttw:text-green-700 ttw:hover:bg-green-100",
7
+ warning: "ttw:border-amber-100 ttw:bg-amber-100 ttw:text-amber-700 ttw:hover:bg-amber-100"
8
+ }, t = {
9
+ new: "info",
10
+ approve_in_progress: "neutral",
11
+ approved: "success",
12
+ rejected: "danger",
13
+ canceled: "danger"
14
+ };
15
+ //#endregion
16
+ export { e as EXPENSE_BADGE_TONE_CLASS_NAME, t as EXPENSE_STATUS_TONE };
@@ -0,0 +1,13 @@
1
+ //#region ../../libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpenseStatusBadge/labels.js
2
+ var e = {
3
+ new: "Ready to submit",
4
+ approve_in_progress: "In review",
5
+ approved: "Approved",
6
+ rejected: "Rejected",
7
+ canceled: "Canceled",
8
+ unknown: "Unknown",
9
+ readyToSubmit: "Ready to submit",
10
+ missingInfo: "Missing info"
11
+ };
12
+ //#endregion
13
+ export { e as EXPENSE_STATUS_BADGE_LABELS_EN };
@@ -0,0 +1,37 @@
1
+ "use client";
2
+ "use client";
3
+ "use client";
4
+ "use client";
5
+ import { Typography as e } from "../../../../../../../packages/shared-ui-shadcn/dist/index.js";
6
+ import { EXPENSES_HEADER_LABELS_EN as t } from "./labels.js";
7
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
8
+ //#region ../../libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesHeader/ExpensesHeader.js
9
+ function i({ labels: i, bankDisplayName: a, bankLogoSrc: o, bankLogoAlt: s, isBankingTaglineVisible: c = !1 }) {
10
+ let l = {
11
+ ...t,
12
+ ...i
13
+ };
14
+ return !c || !a ? null : /* @__PURE__ */ n("header", {
15
+ className: "ttw:mb-4",
16
+ children: /* @__PURE__ */ r("div", {
17
+ className: "ttw:flex ttw:flex-wrap ttw:items-center ttw:gap-1",
18
+ children: [/* @__PURE__ */ n(e, {
19
+ component: "span",
20
+ variant: "body1",
21
+ color: "muted",
22
+ children: l.bankingTaglinePrefix
23
+ }), o ? /* @__PURE__ */ n("img", {
24
+ src: o,
25
+ alt: s ?? a,
26
+ className: "ttw:block ttw:h-auto ttw:max-w-[120px]"
27
+ }) : /* @__PURE__ */ n(e, {
28
+ component: "span",
29
+ variant: "body1",
30
+ color: "muted",
31
+ children: a
32
+ })]
33
+ })
34
+ });
35
+ }
36
+ //#endregion
37
+ export { i as ExpensesHeader, i as default };
@@ -0,0 +1,7 @@
1
+ //#region ../../libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesHeader/labels.js
2
+ var e = {
3
+ bankingTaglinePrefix: "Business Banking provided by",
4
+ settingsButtonAriaLabel: "Expense settings"
5
+ };
6
+ //#endregion
7
+ export { e as EXPENSES_HEADER_LABELS_EN };
@@ -0,0 +1,112 @@
1
+ "use client";
2
+ "use client";
3
+ "use client";
4
+ "use client";
5
+ import { Badge as e, Button as t, Tabs as n, TabsContent as r, TabsList as i, TabsTrigger as a } from "../../../../../../../packages/shared-ui-shadcn/dist/index.js";
6
+ import { EXPENSES_HEADER_LABELS_EN as o } from "../ExpensesHeader/labels.js";
7
+ import { ExpensesHeader as s } from "../ExpensesHeader/ExpensesHeader.js";
8
+ import { DEFAULT_LABELS as c } from "./labels.js";
9
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
10
+ import { SettingsIcon as d } from "lucide-react";
11
+ //#region ../../libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesScreen/ExpensesScreen.js
12
+ function f({ labels: f, header: p, headerLabels: m, myTransactionsContent: h, teamTransactionsContent: g, myTransactionsCount: _, teamTransactionsCount: v, policiesContent: y, requirementsContent: b, matchingContent: x, activeTab: S, onActiveTabChange: C }) {
13
+ let w = {
14
+ ...c,
15
+ ...f
16
+ }, T = {
17
+ ...o,
18
+ ...m
19
+ }, { onSettingsClick: E, actions: D, ...O } = p ?? {}, k = !!(E || D), A = g ? "team-transactions" : "my-transactions";
20
+ return /* @__PURE__ */ u("section", {
21
+ className: "ttw:w-full ttw:space-y-4",
22
+ children: [/* @__PURE__ */ l(s, {
23
+ ...O,
24
+ labels: m
25
+ }), /* @__PURE__ */ u(n, {
26
+ defaultValue: A,
27
+ value: S,
28
+ onValueChange: C,
29
+ children: [
30
+ /* @__PURE__ */ u("div", {
31
+ className: "ttw:flex ttw:flex-wrap ttw:items-center ttw:justify-between ttw:gap-2",
32
+ children: [/* @__PURE__ */ u(i, {
33
+ variant: "line",
34
+ className: "ttw:flex ttw:flex-wrap ttw:justify-start",
35
+ children: [
36
+ g ? /* @__PURE__ */ u(a, {
37
+ value: "team-transactions",
38
+ className: "ttw:gap-2",
39
+ children: [w.teamTransactionsTab, v ? /* @__PURE__ */ l(e, {
40
+ variant: "default",
41
+ className: "ttw:h-4.5 ttw:min-w-4.5 ttw:rounded-full ttw:px-1.5",
42
+ "aria-label": `${v} ${w.tabCountAriaSuffix}`,
43
+ children: v
44
+ }) : null]
45
+ }) : null,
46
+ /* @__PURE__ */ u(a, {
47
+ value: "my-transactions",
48
+ className: "ttw:gap-2",
49
+ children: [w.myTransactionsTab, _ ? /* @__PURE__ */ l(e, {
50
+ variant: "default",
51
+ className: "ttw:h-4.5 ttw:min-w-4.5 ttw:rounded-full ttw:px-1.5",
52
+ "aria-label": `${_} ${w.tabCountAriaSuffix}`,
53
+ children: _
54
+ }) : null]
55
+ }),
56
+ y ? /* @__PURE__ */ l(a, {
57
+ value: "policies",
58
+ children: w.policiesTab
59
+ }) : null,
60
+ b ? /* @__PURE__ */ l(a, {
61
+ value: "requirements",
62
+ children: w.requirementsTab
63
+ }) : null,
64
+ x ? /* @__PURE__ */ l(a, {
65
+ value: "matching",
66
+ children: w.matchingTab
67
+ }) : null
68
+ ]
69
+ }), k ? /* @__PURE__ */ u("div", {
70
+ className: "ttw:flex ttw:flex-wrap ttw:items-center ttw:gap-2",
71
+ children: [E ? /* @__PURE__ */ l(t, {
72
+ type: "button",
73
+ variant: "outline",
74
+ size: "icon",
75
+ className: "ttw:h-10 ttw:cursor-pointer ttw:rounded-xl ttw:border-border",
76
+ "aria-label": T.settingsButtonAriaLabel,
77
+ onClick: E,
78
+ children: /* @__PURE__ */ l(d, { className: "ttw:size-4.5" })
79
+ }) : null, D]
80
+ }) : null]
81
+ }),
82
+ /* @__PURE__ */ l(r, {
83
+ value: "my-transactions",
84
+ className: "ttw:pt-2",
85
+ children: h
86
+ }),
87
+ g ? /* @__PURE__ */ l(r, {
88
+ value: "team-transactions",
89
+ className: "ttw:pt-2",
90
+ children: g
91
+ }) : null,
92
+ y ? /* @__PURE__ */ l(r, {
93
+ value: "policies",
94
+ className: "ttw:pt-2",
95
+ children: y
96
+ }) : null,
97
+ b ? /* @__PURE__ */ l(r, {
98
+ value: "requirements",
99
+ className: "ttw:pt-2",
100
+ children: b
101
+ }) : null,
102
+ x ? /* @__PURE__ */ l(r, {
103
+ value: "matching",
104
+ className: "ttw:pt-2",
105
+ children: x
106
+ }) : null
107
+ ]
108
+ })]
109
+ });
110
+ }
111
+ //#endregion
112
+ export { f as ExpensesScreen, f as default };
@@ -0,0 +1,11 @@
1
+ //#region ../../libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesScreen/labels.js
2
+ var e = {
3
+ myTransactionsTab: "My transactions",
4
+ teamTransactionsTab: "Team transactions",
5
+ policiesTab: "Policies",
6
+ requirementsTab: "Requirements",
7
+ matchingTab: "Matching",
8
+ tabCountAriaSuffix: "items"
9
+ };
10
+ //#endregion
11
+ export { e as DEFAULT_LABELS };
@@ -0,0 +1,158 @@
1
+ "use client";
2
+ "use client";
3
+ "use client";
4
+ "use client";
5
+ import { AmountFilter as e, DateRangePicker as t, FilterBar as n, FilterMenuButton as r, FilterTag as i, MultiSelectFilter as a, Popover as o, PopoverContent as s, PopoverTrigger as c, SearchInput as l, useFilterPanel as u } from "../../../../../../../packages/shared-ui-shadcn/dist/index.js";
6
+ import { EXPENSES_TRANSACTIONS_FILTER_BAR_LABELS_EN as d } from "./labels.js";
7
+ import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
8
+ import { ListFilter as h } from "lucide-react";
9
+ //#region ../../libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesTransactionsFilterBar/ExpensesTransactionsFilterBar.js
10
+ var g = {
11
+ date: "ttw:w-auto",
12
+ paymentStatus: "ttw:w-56",
13
+ approvalStatus: "ttw:w-56",
14
+ type: "ttw:w-64",
15
+ teamMember: "ttw:w-64",
16
+ amount: "ttw:w-64"
17
+ };
18
+ function _(_) {
19
+ let v = {
20
+ ...d,
21
+ ..._.labels
22
+ }, { showTeamMemberFilter: y = !0, showCardOnlyFilter: b = !0 } = _, x = u(), S = [
23
+ {
24
+ id: "date",
25
+ label: v.fieldDate
26
+ },
27
+ {
28
+ id: "paymentStatus",
29
+ label: v.fieldPaymentStatus
30
+ },
31
+ {
32
+ id: "approvalStatus",
33
+ label: v.fieldApprovalStatus
34
+ },
35
+ {
36
+ id: "type",
37
+ label: v.fieldType
38
+ },
39
+ {
40
+ id: "teamMember",
41
+ label: v.fieldTeamMember
42
+ },
43
+ {
44
+ id: "amount",
45
+ label: v.fieldAmount
46
+ },
47
+ {
48
+ id: "card",
49
+ label: v.fieldCardOnly
50
+ }
51
+ ].filter((e) => (e.id !== "teamMember" || y) && (e.id !== "card" || b)), C = x.isMenuOpen || !!x.activePanelId, w = x.activePanelId && g[x.activePanelId] || "ttw:w-52", T = _.allPresets.map((e) => ({
52
+ value: e.value,
53
+ label: e.label,
54
+ group: e.group
55
+ })), E = (e) => {
56
+ e || (x.closeMenu(), x.closePanel());
57
+ }, D = (e) => {
58
+ e === "card" ? (_.onCardToggle(), x.closeMenu()) : x.openPanel(e);
59
+ };
60
+ return /* @__PURE__ */ p(n, {
61
+ className: "ttw:pl-4",
62
+ searchSlot: /* @__PURE__ */ p(l, {
63
+ value: _.searchValue,
64
+ onChange: (e) => _.onSearchChange(e.target.value),
65
+ placeholder: v.searchPlaceholder,
66
+ "aria-label": v.searchAriaLabel,
67
+ className: "ttw:min-w-56"
68
+ }),
69
+ menuSlot: /* @__PURE__ */ m(o, {
70
+ open: C,
71
+ onOpenChange: E,
72
+ children: [/* @__PURE__ */ p(c, {
73
+ asChild: !0,
74
+ children: /* @__PURE__ */ p(r, {
75
+ activeCount: _.activeFilterCount,
76
+ onClick: x.toggleMenu,
77
+ "aria-label": v.filtersButtonAriaLabel
78
+ })
79
+ }), /* @__PURE__ */ m(s, {
80
+ align: "start",
81
+ className: `ttw:p-0 ${w}`,
82
+ children: [
83
+ x.isMenuOpen ? /* @__PURE__ */ p("div", {
84
+ className: "ttw:p-1",
85
+ children: S.map((e) => /* @__PURE__ */ m("button", {
86
+ type: "button",
87
+ className: "ttw:flex ttw:items-center ttw:gap-2 ttw:w-full ttw:px-2 ttw:py-1.5 ttw:rounded-md ttw:text-xs ttw:font-medium ttw:hover:bg-accent ttw:transition-colors ttw:cursor-pointer",
88
+ onClick: () => D(e.id),
89
+ children: [
90
+ /* @__PURE__ */ p(h, { className: "ttw:size-4 ttw:text-muted-foreground ttw:shrink-0" }),
91
+ e.label,
92
+ e.id === "card" && _.cardOnly ? /* @__PURE__ */ p("span", {
93
+ className: "ttw:ml-auto ttw:text-xs ttw:text-indigo-600 ttw:font-semibold",
94
+ children: v.cardOnlyOn
95
+ }) : null
96
+ ]
97
+ }, e.id))
98
+ }) : null,
99
+ x.activePanelId === "date" ? /* @__PURE__ */ p(t, {
100
+ from: _.dateFrom,
101
+ to: _.dateTo,
102
+ onRangeChange: _.onDateRangeChange,
103
+ selectedPreset: _.selectedDatePreset,
104
+ onPresetChange: _.onDatePresetChange,
105
+ presets: T,
106
+ labels: { fieldLabel: v.dateRangeFieldLabel }
107
+ }) : null,
108
+ x.activePanelId === "paymentStatus" ? /* @__PURE__ */ p(a, {
109
+ options: _.paymentStatusOptions,
110
+ selectedValues: _.selectedPaymentStatus,
111
+ onSelectionChange: _.onPaymentStatusChange
112
+ }) : null,
113
+ x.activePanelId === "approvalStatus" ? /* @__PURE__ */ p(a, {
114
+ options: _.approvalStatusOptions,
115
+ selectedValues: _.selectedApprovalStatus,
116
+ onSelectionChange: _.onApprovalStatusChange
117
+ }) : null,
118
+ x.activePanelId === "type" ? /* @__PURE__ */ p(a, {
119
+ options: _.typeOptions,
120
+ selectedValues: _.selectedTypes,
121
+ onSelectionChange: _.onTypeChange
122
+ }) : null,
123
+ x.activePanelId === "teamMember" ? /* @__PURE__ */ p(a, {
124
+ options: _.teamMemberOptions,
125
+ selectedValues: _.selectedTeamMembers,
126
+ onSelectionChange: _.onTeamMembersChange,
127
+ hasMore: _.teamMemberHasMore,
128
+ onLoadMore: _.onTeamMembersLoadMore
129
+ }) : null,
130
+ x.activePanelId === "amount" ? /* @__PURE__ */ p(e, {
131
+ mode: _.amountMode,
132
+ onModeChange: _.onAmountModeChange,
133
+ min: _.amountMin,
134
+ max: _.amountMax,
135
+ onMinChange: _.onAmountMinChange,
136
+ onMaxChange: _.onAmountMaxChange,
137
+ showFlowDirection: !0,
138
+ flowDirection: _.amountFlowDirection,
139
+ onFlowDirectionChange: _.onAmountFlowDirectionChange
140
+ }) : null
141
+ ]
142
+ })]
143
+ }),
144
+ activeChipsSlot: /* @__PURE__ */ m(f, { children: [_.activeChips.map((e) => /* @__PURE__ */ p(i, {
145
+ label: e.label,
146
+ count: e.count,
147
+ variant: "default",
148
+ onDismiss: () => _.onDismissChip(e.key)
149
+ }, e.key)), _.activeFilterCount > 0 ? /* @__PURE__ */ p("button", {
150
+ type: "button",
151
+ className: "ttw:text-xs ttw:text-muted-foreground ttw:hover:text-foreground ttw:transition-colors ttw:cursor-pointer ttw:whitespace-nowrap",
152
+ onClick: _.onClearAll,
153
+ children: v.clearAll
154
+ }) : null] })
155
+ });
156
+ }
157
+ //#endregion
158
+ export { _ as ExpensesTransactionsFilterBar, _ as default };
@@ -0,0 +1,18 @@
1
+ //#region ../../libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesTransactionsFilterBar/labels.js
2
+ var e = {
3
+ searchPlaceholder: "Search merchant...",
4
+ searchAriaLabel: "Search transactions by merchant",
5
+ filtersButtonAriaLabel: "Filters",
6
+ clearAll: "Clear all",
7
+ dateRangeFieldLabel: "Date range",
8
+ cardOnlyOn: "On",
9
+ fieldDate: "Date",
10
+ fieldPaymentStatus: "Payment Status",
11
+ fieldApprovalStatus: "Approval Status",
12
+ fieldType: "Type",
13
+ fieldTeamMember: "Team member",
14
+ fieldAmount: "Amount",
15
+ fieldCardOnly: "Card only"
16
+ };
17
+ //#endregion
18
+ export { e as EXPENSES_TRANSACTIONS_FILTER_BAR_LABELS_EN };
@@ -0,0 +1,148 @@
1
+ "use client";
2
+ "use client";
3
+ "use client";
4
+ "use client";
5
+ import { Button as e, DataTable as t, DataTableSortableHeader as n } from "../../../../../../../packages/shared-ui-shadcn/dist/index.js";
6
+ import { ExpenseStatusBadge as r } from "../ExpenseStatusBadge/ExpenseStatusBadge.js";
7
+ import { EXPENSES_TRANSACTIONS_TABLE_LABELS_EN as i } from "./labels.js";
8
+ import { useMemo as a } from "react";
9
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
10
+ import { Loader2 as c, Plus as l, ReceiptIcon as u } from "lucide-react";
11
+ //#region ../../libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesTransactionsTable/ExpensesTransactionsTable.js
12
+ function d({ labels: d, statusBadgeLabels: f, rows: p, isLoading: m, sorting: h, onSortingChange: g, pageSize: _, onPageSizeChange: v, pageSizeOptions: y, hasNextPage: b, hasPrevPage: x, onNextPage: S, onPrevPage: C, pageInfo: w, filterComponent: T, emptyState: E, showCardholderColumn: D = !0, showDepartmentColumn: O = !0, onAddReceiptClick: k, uploadingReceiptId: A, onRowClick: j }) {
13
+ let M = {
14
+ ...i,
15
+ ...d
16
+ }, N = j ? {
17
+ onRowClick: (e) => j(e.id),
18
+ rowAriaLabel: (e) => M.rowAriaLabel(e.merchantLabel, e.amountLabel)
19
+ } : {}, P = a(() => {
20
+ let t = [
21
+ {
22
+ id: "startedAt",
23
+ header: ({ column: e }) => /* @__PURE__ */ o(n, {
24
+ column: e,
25
+ title: M.dateColumn
26
+ }),
27
+ enableSorting: !0,
28
+ cell: ({ row: e }) => /* @__PURE__ */ o("span", {
29
+ className: "ttw:whitespace-nowrap",
30
+ children: e.original.dateLabel
31
+ })
32
+ },
33
+ {
34
+ id: "status",
35
+ header: M.statusColumn,
36
+ enableSorting: !1,
37
+ cell: ({ row: e }) => /* @__PURE__ */ o(r, {
38
+ status: e.original.status,
39
+ hasValidationErrors: e.original.hasValidationErrors,
40
+ labels: f
41
+ })
42
+ },
43
+ {
44
+ accessorKey: "merchantLabel",
45
+ header: M.merchantColumn,
46
+ enableSorting: !1,
47
+ cell: ({ row: e }) => /* @__PURE__ */ o("div", {
48
+ className: "ttw:truncate",
49
+ children: e.original.merchantLabel
50
+ })
51
+ }
52
+ ];
53
+ return D && t.push({
54
+ accessorKey: "cardholderLabel",
55
+ header: M.cardholderColumn,
56
+ enableSorting: !1,
57
+ cell: ({ row: e }) => /* @__PURE__ */ o("span", {
58
+ className: "ttw:inline-block ttw:w-[95%] ttw:truncate",
59
+ children: e.original.cardholderLabel
60
+ })
61
+ }), t.push({
62
+ accessorKey: "cardLabel",
63
+ header: M.cardColumn,
64
+ enableSorting: !1,
65
+ cell: ({ row: e }) => /* @__PURE__ */ s("div", {
66
+ className: "ttw:flex ttw:items-center ttw:gap-1",
67
+ children: [/* @__PURE__ */ o("span", {
68
+ className: "ttw:text-zinc-500",
69
+ children: e.original.cardLabel
70
+ }), e.original.cardFormatLabel ? /* @__PURE__ */ o("span", {
71
+ className: "ttw:rounded-sm ttw:bg-zinc-100 ttw:text-[10px] ttw:text-zinc-700 ttw:p-1",
72
+ children: e.original.cardFormatLabel
73
+ }) : null]
74
+ })
75
+ }), O && t.push({
76
+ accessorKey: "departmentLabel",
77
+ header: M.departmentColumn,
78
+ enableSorting: !1,
79
+ cell: ({ row: e }) => /* @__PURE__ */ o("span", {
80
+ className: "ttw:whitespace-nowrap",
81
+ children: e.original.departmentLabel
82
+ })
83
+ }), t.push({
84
+ id: "receipt",
85
+ header: M.receiptColumn,
86
+ enableSorting: !1,
87
+ cell: ({ row: t }) => {
88
+ if (t.original.hasReceipt) return /* @__PURE__ */ o(u, {
89
+ className: t.original.isReceiptHighlighted ? "ttw:size-4 ttw:text-purple-700" : "ttw:size-4",
90
+ role: "img",
91
+ "aria-label": M.receiptPresentAriaLabel
92
+ });
93
+ if (!k) return null;
94
+ let n = t.original.id === A;
95
+ return /* @__PURE__ */ o(e, {
96
+ type: "button",
97
+ variant: "outline",
98
+ size: "icon-sm",
99
+ "aria-label": n ? M.addingReceiptAriaLabel : M.addReceiptAriaLabel,
100
+ disabled: n,
101
+ onClick: (e) => {
102
+ e.stopPropagation(), k(t.original.id);
103
+ },
104
+ children: n ? /* @__PURE__ */ o(c, { className: "ttw:size-4 ttw:animate-spin" }) : /* @__PURE__ */ o(l, { className: "ttw:size-4" })
105
+ });
106
+ }
107
+ }, {
108
+ id: "amount",
109
+ header: ({ column: e }) => /* @__PURE__ */ o(n, {
110
+ column: e,
111
+ title: M.amountColumn
112
+ }),
113
+ enableSorting: !0,
114
+ cell: ({ row: e }) => /* @__PURE__ */ o("span", {
115
+ className: "ttw:font-medium ttw:whitespace-nowrap",
116
+ children: e.original.amountLabel
117
+ })
118
+ }), t;
119
+ }, [
120
+ M,
121
+ f,
122
+ D,
123
+ O,
124
+ k,
125
+ A
126
+ ]);
127
+ return /* @__PURE__ */ o(t, {
128
+ columns: P,
129
+ data: p,
130
+ sorting: h,
131
+ onSortingChange: g,
132
+ pageSize: _,
133
+ onPageSizeChange: v,
134
+ pageSizeOptions: y,
135
+ hasNextPage: b,
136
+ hasPrevPage: x,
137
+ onNextPage: S,
138
+ onPrevPage: C,
139
+ pageInfo: w,
140
+ filterComponent: T,
141
+ isLoading: m,
142
+ getRowId: (e) => e.id,
143
+ ...N,
144
+ children: E
145
+ });
146
+ }
147
+ //#endregion
148
+ export { d as ExpensesTransactionsTable, d as default };
@@ -0,0 +1,18 @@
1
+ //#region ../../libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesTransactionsTable/labels.js
2
+ var e = {
3
+ dateColumn: "Date",
4
+ statusColumn: "Status",
5
+ merchantColumn: "Merchant",
6
+ cardholderColumn: "Cardholder",
7
+ cardColumn: "Card",
8
+ departmentColumn: "Department",
9
+ receiptColumn: "Receipt",
10
+ amountColumn: "Amount",
11
+ receiptPresentAriaLabel: "Receipt attached",
12
+ receiptMissingAriaLabel: "No receipt attached",
13
+ addReceiptAriaLabel: "Add receipt",
14
+ addingReceiptAriaLabel: "Adding receipt",
15
+ rowAriaLabel: (e, t) => `Review expense — ${e}, ${t}`
16
+ };
17
+ //#endregion
18
+ export { e as EXPENSES_TRANSACTIONS_TABLE_LABELS_EN };
@@ -0,0 +1,107 @@
1
+ "use client";
2
+ "use client";
3
+ "use client";
4
+ "use client";
5
+ import { Button as e, DropdownMenu as t, DropdownMenuContent as n, DropdownMenuItem as r, DropdownMenuTrigger as i, cn as a } from "../../../../../../../packages/shared-ui-shadcn/dist/index.js";
6
+ import { isPdf as o } from "../isPdf.js";
7
+ import { FILE_VIEWER_LABELS_EN as s } from "./labels.js";
8
+ import { PdfFileViewer as c } from "./PdfFileViewer.js";
9
+ import { useState as l } from "react";
10
+ import { jsx as u, jsxs as d } from "react/jsx-runtime";
11
+ import { Download as f, MoreVertical as p, Trash2 as m, ZoomIn as h, ZoomOut as g } from "lucide-react";
12
+ //#region ../../libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/FileViewer/FileViewer.js
13
+ var _ = .25, v = .5, y = 3;
14
+ function b({ url: b, className: x, isPreview: S, showDeleteOption: C, onDeleteClick: w, labels: T }) {
15
+ let [E, D] = l(1), O = {
16
+ ...s,
17
+ ...T
18
+ }, k = () => D((e) => Math.max(v, e - _)), A = () => D((e) => Math.min(y, e + _)), j = a("ttw:h-full ttw:w-full", !o(b) && "ttw:object-contain", S && o(b) && "ttw:pointer-events-none ttw:border-none"), M = o(b) ? /* @__PURE__ */ u(c, {
19
+ url: b,
20
+ scale: E,
21
+ title: O.filePreview,
22
+ className: j
23
+ }) : /* @__PURE__ */ u("img", {
24
+ src: b,
25
+ alt: O.filePreview,
26
+ className: j
27
+ });
28
+ return S ? M : /* @__PURE__ */ d("div", {
29
+ className: a("ttw:relative ttw:flex-1 ttw:overflow-hidden ttw:rounded-md ttw:bg-background", x),
30
+ children: [/* @__PURE__ */ u("div", {
31
+ className: "ttw:absolute ttw:inset-0 ttw:overflow-auto",
32
+ children: /* @__PURE__ */ u("div", {
33
+ className: "ttw:box-border ttw:p-6",
34
+ style: o(b) ? void 0 : {
35
+ width: `${E * 100}%`,
36
+ height: `${E * 100}%`
37
+ },
38
+ children: M
39
+ })
40
+ }), /* @__PURE__ */ d("div", {
41
+ className: "ttw:absolute ttw:bottom-4 ttw:left-4 ttw:right-4 ttw:z-10 ttw:flex ttw:items-center ttw:justify-between",
42
+ children: [/* @__PURE__ */ d("div", {
43
+ className: "ttw:flex ttw:items-center ttw:rounded-[14px] ttw:border ttw:border-border ttw:bg-background",
44
+ children: [
45
+ /* @__PURE__ */ u(e, {
46
+ type: "button",
47
+ variant: "ghost",
48
+ size: "icon-sm",
49
+ "aria-label": O.zoomOut,
50
+ onClick: k,
51
+ disabled: E <= v,
52
+ className: "ttw:rounded-none ttw:rounded-bl-[14px] ttw:rounded-tl-[14px]",
53
+ children: /* @__PURE__ */ u(g, {
54
+ className: "ttw:size-4",
55
+ "aria-hidden": !0
56
+ })
57
+ }),
58
+ /* @__PURE__ */ u("div", { className: "ttw:w-px ttw:self-stretch ttw:bg-border" }),
59
+ /* @__PURE__ */ u(e, {
60
+ type: "button",
61
+ variant: "ghost",
62
+ size: "icon-sm",
63
+ "aria-label": O.zoomIn,
64
+ onClick: A,
65
+ disabled: E >= y,
66
+ className: "ttw:rounded-none ttw:rounded-br-[14px] ttw:rounded-tr-[14px]",
67
+ children: /* @__PURE__ */ u(h, {
68
+ className: "ttw:size-4",
69
+ "aria-hidden": !0
70
+ })
71
+ })
72
+ ]
73
+ }), /* @__PURE__ */ d(t, { children: [/* @__PURE__ */ u(i, {
74
+ asChild: !0,
75
+ children: /* @__PURE__ */ u(e, {
76
+ type: "button",
77
+ variant: "ghost",
78
+ size: "icon-sm",
79
+ "aria-label": O.moreActions,
80
+ className: "ttw:bg-background",
81
+ children: /* @__PURE__ */ u(p, {
82
+ className: "ttw:size-4",
83
+ "aria-hidden": !0
84
+ })
85
+ })
86
+ }), /* @__PURE__ */ d(n, {
87
+ align: "end",
88
+ children: [/* @__PURE__ */ u(r, {
89
+ asChild: !0,
90
+ children: /* @__PURE__ */ d("a", {
91
+ href: b,
92
+ download: !0,
93
+ target: "_blank",
94
+ rel: "noreferrer",
95
+ children: [/* @__PURE__ */ u(f, { "aria-hidden": !0 }), O.downloadAttachment]
96
+ })
97
+ }), C && /* @__PURE__ */ d(r, {
98
+ variant: "destructive",
99
+ onClick: w,
100
+ children: [/* @__PURE__ */ u(m, { "aria-hidden": !0 }), O.deleteAttachment]
101
+ })]
102
+ })] })]
103
+ })]
104
+ });
105
+ }
106
+ //#endregion
107
+ export { b as FileViewer, b as default };