braid-ui 1.0.57 → 1.0.58

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.
package/dist/index.d.cts CHANGED
@@ -1046,7 +1046,6 @@ interface NewTransactionViewProps {
1046
1046
  onEditCounterparty: () => void;
1047
1047
  onTransactionTypeChange: (type: string) => void;
1048
1048
  onSubmit: () => void;
1049
- onCancel: () => void;
1050
1049
  onConfirmationClose: () => void;
1051
1050
  onConfirmationOpenChange: (open: boolean) => void;
1052
1051
  onNewTransaction: () => void;
@@ -1068,7 +1067,7 @@ interface NewTransactionViewProps {
1068
1067
  showSuccessInfoBox?: boolean;
1069
1068
  successInfoMessage?: string;
1070
1069
  }
1071
- declare const NewTransactionView: ({ form, accountLookedUp, accountData, counterpartyLookedUp, counterpartyData, confirmationOpen, submissionStatus, errorMessage, transactionId, isAccountLoading, isCounterpartyLoading, isSubmitting, counterpartySearchResults, isCounterpartySearching, showCounterpartyDropdown, onAccountLookup, onEditAccount, onEditCounterparty, onTransactionTypeChange, onSubmit, onCancel, onConfirmationClose, onConfirmationOpenChange, onNewTransaction, onCounterpartySearchChange, onCounterpartySelect, onCounterpartyDropdownClose, counterpartyHasMore, counterpartyTotalResults, isLoadingMoreCounterparties, onLoadMoreCounterparties, receiverAccountLookedUp, receiverAccountData, isReceiverAccountLoading, onReceiverAccountLookup, onEditReceiverAccount, isReviewReady, adjustmentTypeOptions, transactionTypeOptions, showSuccessInfoBox, successInfoMessage, }: NewTransactionViewProps) => react_jsx_runtime.JSX.Element;
1070
+ declare const NewTransactionView: ({ form, accountLookedUp, accountData, counterpartyLookedUp, counterpartyData, confirmationOpen, submissionStatus, errorMessage, transactionId, isAccountLoading, isCounterpartyLoading, isSubmitting, counterpartySearchResults, isCounterpartySearching, showCounterpartyDropdown, onAccountLookup, onEditAccount, onEditCounterparty, onTransactionTypeChange, onSubmit, onConfirmationClose, onConfirmationOpenChange, onNewTransaction, onCounterpartySearchChange, onCounterpartySelect, onCounterpartyDropdownClose, counterpartyHasMore, counterpartyTotalResults, isLoadingMoreCounterparties, onLoadMoreCounterparties, receiverAccountLookedUp, receiverAccountData, isReceiverAccountLoading, onReceiverAccountLookup, onEditReceiverAccount, isReviewReady, adjustmentTypeOptions, transactionTypeOptions, showSuccessInfoBox, successInfoMessage, }: NewTransactionViewProps) => react_jsx_runtime.JSX.Element;
1072
1071
 
1073
1072
  interface AccountCardProps {
1074
1073
  account: {
package/dist/index.d.ts CHANGED
@@ -1046,7 +1046,6 @@ interface NewTransactionViewProps {
1046
1046
  onEditCounterparty: () => void;
1047
1047
  onTransactionTypeChange: (type: string) => void;
1048
1048
  onSubmit: () => void;
1049
- onCancel: () => void;
1050
1049
  onConfirmationClose: () => void;
1051
1050
  onConfirmationOpenChange: (open: boolean) => void;
1052
1051
  onNewTransaction: () => void;
@@ -1068,7 +1067,7 @@ interface NewTransactionViewProps {
1068
1067
  showSuccessInfoBox?: boolean;
1069
1068
  successInfoMessage?: string;
1070
1069
  }
1071
- declare const NewTransactionView: ({ form, accountLookedUp, accountData, counterpartyLookedUp, counterpartyData, confirmationOpen, submissionStatus, errorMessage, transactionId, isAccountLoading, isCounterpartyLoading, isSubmitting, counterpartySearchResults, isCounterpartySearching, showCounterpartyDropdown, onAccountLookup, onEditAccount, onEditCounterparty, onTransactionTypeChange, onSubmit, onCancel, onConfirmationClose, onConfirmationOpenChange, onNewTransaction, onCounterpartySearchChange, onCounterpartySelect, onCounterpartyDropdownClose, counterpartyHasMore, counterpartyTotalResults, isLoadingMoreCounterparties, onLoadMoreCounterparties, receiverAccountLookedUp, receiverAccountData, isReceiverAccountLoading, onReceiverAccountLookup, onEditReceiverAccount, isReviewReady, adjustmentTypeOptions, transactionTypeOptions, showSuccessInfoBox, successInfoMessage, }: NewTransactionViewProps) => react_jsx_runtime.JSX.Element;
1070
+ declare const NewTransactionView: ({ form, accountLookedUp, accountData, counterpartyLookedUp, counterpartyData, confirmationOpen, submissionStatus, errorMessage, transactionId, isAccountLoading, isCounterpartyLoading, isSubmitting, counterpartySearchResults, isCounterpartySearching, showCounterpartyDropdown, onAccountLookup, onEditAccount, onEditCounterparty, onTransactionTypeChange, onSubmit, onConfirmationClose, onConfirmationOpenChange, onNewTransaction, onCounterpartySearchChange, onCounterpartySelect, onCounterpartyDropdownClose, counterpartyHasMore, counterpartyTotalResults, isLoadingMoreCounterparties, onLoadMoreCounterparties, receiverAccountLookedUp, receiverAccountData, isReceiverAccountLoading, onReceiverAccountLookup, onEditReceiverAccount, isReviewReady, adjustmentTypeOptions, transactionTypeOptions, showSuccessInfoBox, successInfoMessage, }: NewTransactionViewProps) => react_jsx_runtime.JSX.Element;
1072
1071
 
1073
1072
  interface AccountCardProps {
1074
1073
  account: {
package/dist/index.js CHANGED
@@ -8225,7 +8225,7 @@ var StatementView = ({
8225
8225
  ] });
8226
8226
  };
8227
8227
  var ACHDetailsSection = ({ data }) => {
8228
- const formatCurrency3 = (value) => {
8228
+ const formatCurrency4 = (value) => {
8229
8229
  return new Intl.NumberFormat("en-US", {
8230
8230
  style: "currency",
8231
8231
  currency: "USD",
@@ -8261,7 +8261,7 @@ var ACHDetailsSection = ({ data }) => {
8261
8261
  layout: "horizontal"
8262
8262
  }
8263
8263
  ),
8264
- /* @__PURE__ */ jsx(InfoField, { label: "Amount", value: formatCurrency3(data.amount), layout: "horizontal" }),
8264
+ /* @__PURE__ */ jsx(InfoField, { label: "Amount", value: formatCurrency4(data.amount), layout: "horizontal" }),
8265
8265
  /* @__PURE__ */ jsx(InfoField, { label: "SEC Code", value: data.secCode, layout: "horizontal" }),
8266
8266
  /* @__PURE__ */ jsx(InfoField, { label: "Company Entry Description", value: data.companyEntryDescription, layout: "horizontal" }),
8267
8267
  data.companyDiscretionaryData && /* @__PURE__ */ jsx(InfoField, { label: "Company Discretionary Data", value: data.companyDiscretionaryData, layout: "horizontal" }),
@@ -8428,7 +8428,6 @@ var NewTransactionView = ({
8428
8428
  onEditCounterparty,
8429
8429
  onTransactionTypeChange,
8430
8430
  onSubmit,
8431
- onCancel,
8432
8431
  onConfirmationClose,
8433
8432
  onConfirmationOpenChange,
8434
8433
  onNewTransaction,
@@ -8818,25 +8817,22 @@ var NewTransactionView = ({
8818
8817
  ] })
8819
8818
  }
8820
8819
  ) }),
8821
- /* @__PURE__ */ jsxs("div", { className: "flex gap-3 justify-end pt-4 border-t border-border", children: [
8822
- /* @__PURE__ */ jsx(Button, { type: "button", variant: "outline", onClick: onCancel, className: "w-32", children: "Cancel" }),
8823
- /* @__PURE__ */ jsx(
8824
- Button,
8825
- {
8826
- type: "button",
8827
- onClick: onSubmit,
8828
- className: "w-48",
8829
- disabled: !transactionType || !accountNumber || requiresCounterparty && !counterpartyName || isTransfer && !receiverAccountLookedUp || isAdjustment && (!adjustmentDirection || !adjustmentType) || !amount || !form.watch("certifyInformation") || isSubmitting,
8830
- children: isSubmitting ? /* @__PURE__ */ jsxs(Fragment, { children: [
8831
- /* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 mr-2 animate-spin" }),
8832
- "Submitting..."
8833
- ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
8834
- /* @__PURE__ */ jsx(CheckCircle2, { className: "h-4 w-4 mr-2" }),
8835
- "Submit Transaction"
8836
- ] })
8837
- }
8838
- )
8839
- ] })
8820
+ /* @__PURE__ */ jsx("div", { className: "flex justify-end pt-4 border-t border-border", children: /* @__PURE__ */ jsx(
8821
+ Button,
8822
+ {
8823
+ type: "button",
8824
+ onClick: onSubmit,
8825
+ className: "w-48",
8826
+ disabled: !transactionType || !accountNumber || requiresCounterparty && !counterpartyName || isTransfer && !receiverAccountLookedUp || isAdjustment && (!adjustmentDirection || !adjustmentType) || !amount || !form.watch("certifyInformation") || isSubmitting,
8827
+ children: isSubmitting ? /* @__PURE__ */ jsxs(Fragment, { children: [
8828
+ /* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 mr-2 animate-spin" }),
8829
+ "Submitting..."
8830
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
8831
+ /* @__PURE__ */ jsx(CheckCircle2, { className: "h-4 w-4 mr-2" }),
8832
+ "Submit Transaction"
8833
+ ] })
8834
+ }
8835
+ ) })
8840
8836
  ] }) })
8841
8837
  ] }) }),
8842
8838
  /* @__PURE__ */ jsx(Dialog, { open: confirmationOpen, onOpenChange: () => {
@@ -8898,17 +8894,11 @@ var NewTransactionView = ({
8898
8894
  /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "Please review the error message above and try again. If the problem persists, contact support." })
8899
8895
  ] }) }),
8900
8896
  /* @__PURE__ */ jsxs(DialogFooter, { className: "sm:justify-end gap-2 flex-shrink-0", children: [
8901
- submissionStatus === "error" && /* @__PURE__ */ jsx(Button, { type: "button", variant: "outline", onClick: () => onConfirmationOpenChange(false), children: "Edit" }),
8902
- submissionStatus === "success" && /* @__PURE__ */ jsx(Button, { type: "button", variant: "outline", onClick: onNewTransaction, children: "New Transaction" }),
8903
- /* @__PURE__ */ jsx(
8904
- Button,
8905
- {
8906
- type: "button",
8907
- onClick: onConfirmationClose,
8908
- variant: submissionStatus === "success" ? "default" : "outline",
8909
- children: submissionStatus === "success" ? "View Transaction" : "Close"
8910
- }
8911
- )
8897
+ submissionStatus === "error" && /* @__PURE__ */ jsx(Button, { type: "button", onClick: () => onConfirmationOpenChange(false), children: "Edit" }),
8898
+ submissionStatus === "success" && /* @__PURE__ */ jsxs(Fragment, { children: [
8899
+ /* @__PURE__ */ jsx(Button, { type: "button", variant: "outline", onClick: onNewTransaction, children: "New Transaction" }),
8900
+ /* @__PURE__ */ jsx(Button, { type: "button", onClick: onConfirmationClose, children: "View Transaction" })
8901
+ ] })
8912
8902
  ] })
8913
8903
  ] }) })
8914
8904
  ] });
@@ -14000,7 +13990,7 @@ var TransactionHistory = () => {
14000
13990
  setRowsPerPage(value);
14001
13991
  setCurrentPage(1);
14002
13992
  };
14003
- const formatCurrency3 = (value) => {
13993
+ const formatCurrency4 = (value) => {
14004
13994
  const formatted = new Intl.NumberFormat("en-US", {
14005
13995
  style: "currency",
14006
13996
  currency: "USD",
@@ -14289,7 +14279,7 @@ var TransactionHistory = () => {
14289
14279
  children: [
14290
14280
  /* @__PURE__ */ jsx("td", { className: "px-3 py-2 text-xs", children: transaction.created }),
14291
14281
  /* @__PURE__ */ jsx("td", { className: "px-3 py-2 text-xs", children: transaction.accountNumber }),
14292
- /* @__PURE__ */ jsx("td", { className: "px-3 py-2 text-xs text-right", children: /* @__PURE__ */ jsx("span", { className: transaction.amount < 0 ? "text-destructive" : "", children: formatCurrency3(transaction.amount) }) }),
14282
+ /* @__PURE__ */ jsx("td", { className: "px-3 py-2 text-xs text-right", children: /* @__PURE__ */ jsx("span", { className: transaction.amount < 0 ? "text-destructive" : "", children: formatCurrency4(transaction.amount) }) }),
14293
14283
  /* @__PURE__ */ jsx("td", { className: "px-3 py-2", children: /* @__PURE__ */ jsx(Button, { variant: "link", className: "h-auto p-0 font-normal text-xs", children: transaction.customer }) }),
14294
14284
  /* @__PURE__ */ jsx("td", { className: "px-3 py-2", children: /* @__PURE__ */ jsx(Button, { variant: "link", className: "h-auto p-0 font-normal text-xs", children: transaction.counterparty }) }),
14295
14285
  /* @__PURE__ */ jsx("td", { className: "px-3 py-2 text-xs truncate", children: transaction.description }),
@@ -14772,9 +14762,6 @@ function NewTransaction() {
14772
14762
  setConfirmationOpen(false);
14773
14763
  resetForm();
14774
14764
  };
14775
- const handleCancel = () => {
14776
- navigate("/dashboard");
14777
- };
14778
14765
  const isReviewReady = useMemo(() => {
14779
14766
  const data = form.watch();
14780
14767
  const requiresCounterparty = ["ach", "wire"].includes(data.transactionType);
@@ -14819,7 +14806,6 @@ function NewTransaction() {
14819
14806
  onEditCounterparty: handleEditCounterparty,
14820
14807
  onTransactionTypeChange: handleTransactionTypeChange,
14821
14808
  onSubmit: handleSubmit,
14822
- onCancel: handleCancel,
14823
14809
  onConfirmationClose: handleConfirmationClose,
14824
14810
  onConfirmationOpenChange: setConfirmationOpen,
14825
14811
  onNewTransaction: handleNewTransaction,
@@ -14830,66 +14816,60 @@ function NewTransaction() {
14830
14816
  onEditReceiverAccount: handleEditReceiverAccount,
14831
14817
  isReviewReady,
14832
14818
  adjustmentTypeOptions,
14833
- transactionTypeOptions
14819
+ transactionTypeOptions,
14820
+ showSuccessInfoBox: true,
14821
+ successInfoMessage: "The transaction is being manually reviewed"
14834
14822
  }
14835
14823
  );
14836
14824
  }
14837
- var TransactionDetail = () => {
14838
- const { id } = useParams();
14839
- const navigate = useNavigate();
14840
- const transaction = mockTransactions.find((t) => t.id === id);
14841
- if (!transaction) {
14842
- return /* @__PURE__ */ jsx("div", { className: "container mx-auto px-4 py-8", children: /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
14843
- /* @__PURE__ */ jsx("h1", { className: "text-2xl font-bold mb-2", children: "Transaction Not Found" }),
14844
- /* @__PURE__ */ jsxs("p", { className: "text-muted-foreground mb-4", children: [
14845
- "The transaction #",
14846
- id,
14847
- " could not be found."
14848
- ] }),
14849
- /* @__PURE__ */ jsx(Button, { onClick: () => navigate("/transactions/history"), children: "Back to Transaction History" })
14850
- ] }) });
14825
+ var getStatusVariant = (status) => {
14826
+ switch (status) {
14827
+ case "POSTED":
14828
+ return "success";
14829
+ case "PENDING":
14830
+ return "warning";
14831
+ case "FAILED":
14832
+ return "destructive";
14833
+ case "CANCELLED":
14834
+ return "outline";
14835
+ default:
14836
+ return "outline";
14851
14837
  }
14852
- const getStatusVariant3 = (status) => {
14853
- switch (status) {
14854
- case "POSTED":
14855
- return "success";
14856
- case "PENDING":
14857
- return "warning";
14858
- case "FAILED":
14859
- return "destructive";
14860
- case "CANCELLED":
14861
- return "outline";
14862
- default:
14863
- return "outline";
14864
- }
14865
- };
14866
- const getProcessingStatusVariant = (status) => {
14867
- switch (status) {
14868
- case "CONFIRMED":
14869
- return "success";
14870
- case "SENT":
14871
- return "success";
14872
- case "SUBMITTED":
14873
- return "warning";
14874
- case "CUSTOMER_REVIEW":
14875
- return "warning";
14876
- case "MANUAL_REVIEW":
14877
- return "warning";
14878
- case "INITIATED":
14879
- return "outline";
14880
- default:
14881
- return "outline";
14882
- }
14883
- };
14884
- const formatCurrency3 = (value) => {
14885
- return new Intl.NumberFormat("en-US", {
14886
- style: "currency",
14887
- currency: "USD",
14888
- minimumFractionDigits: 2
14889
- }).format(value);
14890
- };
14891
- const isWireTransfer = transaction.transactionType.toLowerCase().includes("wire");
14892
- const isACHTransfer = transaction.transactionType.toLowerCase().includes("ach");
14838
+ };
14839
+ var getProcessingStatusVariant = (status) => {
14840
+ switch (status) {
14841
+ case "CONFIRMED":
14842
+ case "SENT":
14843
+ return "success";
14844
+ case "SUBMITTED":
14845
+ case "CUSTOMER_REVIEW":
14846
+ case "MANUAL_REVIEW":
14847
+ return "warning";
14848
+ case "INITIATED":
14849
+ default:
14850
+ return "outline";
14851
+ }
14852
+ };
14853
+ var formatCurrency3 = (value) => {
14854
+ return new Intl.NumberFormat("en-US", {
14855
+ style: "currency",
14856
+ currency: "USD",
14857
+ minimumFractionDigits: 2
14858
+ }).format(value);
14859
+ };
14860
+ var TransactionDetailView = ({
14861
+ transaction,
14862
+ timelineEvents,
14863
+ isWireTransfer,
14864
+ isACHTransfer,
14865
+ onReturn,
14866
+ onCancel,
14867
+ onAccountClick,
14868
+ onCustomerClick,
14869
+ onCounterpartyClick,
14870
+ onOFACClick,
14871
+ onProductClick
14872
+ }) => {
14893
14873
  return /* @__PURE__ */ jsx(
14894
14874
  PageLayout,
14895
14875
  {
@@ -14905,7 +14885,7 @@ var TransactionDetail = () => {
14905
14885
  isInbound: transaction.isInbound
14906
14886
  }
14907
14887
  ),
14908
- /* @__PURE__ */ jsx(Badge, { variant: getStatusVariant3(transaction.status), children: transaction.status }),
14888
+ /* @__PURE__ */ jsx(Badge, { variant: getStatusVariant(transaction.status), children: transaction.status }),
14909
14889
  /* @__PURE__ */ jsx(Badge, { variant: getProcessingStatusVariant(transaction.processingStatus), children: transaction.processingStatus })
14910
14890
  ] }),
14911
14891
  maxWidth: "full",
@@ -14913,12 +14893,12 @@ var TransactionDetail = () => {
14913
14893
  {
14914
14894
  label: "Return",
14915
14895
  variant: "outline",
14916
- onClick: () => console.log("Return transaction")
14896
+ onClick: onReturn
14917
14897
  },
14918
14898
  {
14919
14899
  label: "Cancel",
14920
14900
  variant: "default",
14921
- onClick: () => console.log("Cancel transaction")
14901
+ onClick: onCancel
14922
14902
  }
14923
14903
  ],
14924
14904
  children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col lg:flex-row items-start gap-6", children: [
@@ -14928,7 +14908,15 @@ var TransactionDetail = () => {
14928
14908
  InfoField,
14929
14909
  {
14930
14910
  label: "Account Number",
14931
- value: /* @__PURE__ */ jsx(Button, { variant: "link", className: "h-auto p-0 text-sm", children: transaction.accountNumber }),
14911
+ value: /* @__PURE__ */ jsx(
14912
+ Button,
14913
+ {
14914
+ variant: "link",
14915
+ className: "h-auto p-0 text-sm",
14916
+ onClick: () => onAccountClick(transaction.accountNumber),
14917
+ children: transaction.accountNumber
14918
+ }
14919
+ ),
14932
14920
  layout: "horizontal"
14933
14921
  }
14934
14922
  ),
@@ -14936,7 +14924,15 @@ var TransactionDetail = () => {
14936
14924
  InfoField,
14937
14925
  {
14938
14926
  label: "Customer",
14939
- value: /* @__PURE__ */ jsx(Button, { variant: "link", className: "h-auto p-0 text-sm", children: transaction.customer }),
14927
+ value: /* @__PURE__ */ jsx(
14928
+ Button,
14929
+ {
14930
+ variant: "link",
14931
+ className: "h-auto p-0 text-sm",
14932
+ onClick: () => onCustomerClick(transaction.customer),
14933
+ children: transaction.customer
14934
+ }
14935
+ ),
14940
14936
  layout: "horizontal"
14941
14937
  }
14942
14938
  ),
@@ -14945,12 +14941,35 @@ var TransactionDetail = () => {
14945
14941
  InfoField,
14946
14942
  {
14947
14943
  label: "Counterparty",
14948
- value: /* @__PURE__ */ jsx(Button, { variant: "link", className: "h-auto p-0 text-sm", children: transaction.counterparty }),
14944
+ value: /* @__PURE__ */ jsx(
14945
+ Button,
14946
+ {
14947
+ variant: "link",
14948
+ className: "h-auto p-0 text-sm",
14949
+ onClick: () => onCounterpartyClick(transaction.counterparty),
14950
+ children: transaction.counterparty
14951
+ }
14952
+ ),
14949
14953
  layout: "horizontal"
14950
14954
  }
14951
14955
  ),
14952
14956
  /* @__PURE__ */ jsx(InfoField, { label: "Post Date", value: transaction.created.split(" ")[0], layout: "horizontal" }),
14953
- /* @__PURE__ */ jsx(InfoField, { label: "OFAC ID", value: /* @__PURE__ */ jsx(Button, { variant: "link", className: "h-auto p-0 text-sm", children: "18323208" }), layout: "horizontal" }),
14957
+ /* @__PURE__ */ jsx(
14958
+ InfoField,
14959
+ {
14960
+ label: "OFAC ID",
14961
+ value: /* @__PURE__ */ jsx(
14962
+ Button,
14963
+ {
14964
+ variant: "link",
14965
+ className: "h-auto p-0 text-sm",
14966
+ onClick: () => onOFACClick("18323208"),
14967
+ children: "18323208"
14968
+ }
14969
+ ),
14970
+ layout: "horizontal"
14971
+ }
14972
+ ),
14954
14973
  /* @__PURE__ */ jsx(InfoField, { label: "Original Filename", value: "-", layout: "horizontal" }),
14955
14974
  /* @__PURE__ */ jsx(InfoField, { label: "Loaded From File", value: "iso21130757012764355B7.xml.126534273Q299", layout: "horizontal" }),
14956
14975
  /* @__PURE__ */ jsx(InfoField, { label: "Payment ID", value: transaction.id, layout: "horizontal" }),
@@ -14966,7 +14985,15 @@ var TransactionDetail = () => {
14966
14985
  InfoField,
14967
14986
  {
14968
14987
  label: "Product ID",
14969
- value: /* @__PURE__ */ jsx(Button, { variant: "link", className: "h-auto p-0 text-sm", children: "130" }),
14988
+ value: /* @__PURE__ */ jsx(
14989
+ Button,
14990
+ {
14991
+ variant: "link",
14992
+ className: "h-auto p-0 text-sm",
14993
+ onClick: () => onProductClick("130"),
14994
+ children: "130"
14995
+ }
14996
+ ),
14970
14997
  layout: "horizontal"
14971
14998
  }
14972
14999
  ),
@@ -14976,11 +15003,66 @@ var TransactionDetail = () => {
14976
15003
  isACHTransfer && transaction.achDetails && /* @__PURE__ */ jsx(ACHDetailsSection, { data: transaction.achDetails }),
14977
15004
  isWireTransfer && transaction.wireDetails && /* @__PURE__ */ jsx(WireDetailsSection, { data: transaction.wireDetails })
14978
15005
  ] }),
14979
- /* @__PURE__ */ jsx("div", { className: "lg:w-64", children: /* @__PURE__ */ jsx(FormCard, { title: "Transaction Timeline", children: /* @__PURE__ */ jsx(AlertTimeline, { events: mockTransactionTimeline }) }) })
15006
+ /* @__PURE__ */ jsx("div", { className: "lg:w-64", children: /* @__PURE__ */ jsx(FormCard, { title: "Transaction Timeline", children: /* @__PURE__ */ jsx(AlertTimeline, { events: timelineEvents }) }) })
14980
15007
  ] })
14981
15008
  }
14982
15009
  );
14983
15010
  };
15011
+ var TransactionDetail = () => {
15012
+ const { id } = useParams();
15013
+ const navigate = useNavigate();
15014
+ const transaction = mockTransactions.find((t) => t.id === id);
15015
+ if (!transaction) {
15016
+ return /* @__PURE__ */ jsx("div", { className: "container mx-auto px-4 py-8", children: /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
15017
+ /* @__PURE__ */ jsx("h1", { className: "text-2xl font-bold mb-2", children: "Transaction Not Found" }),
15018
+ /* @__PURE__ */ jsxs("p", { className: "text-muted-foreground mb-4", children: [
15019
+ "The transaction #",
15020
+ id,
15021
+ " could not be found."
15022
+ ] }),
15023
+ /* @__PURE__ */ jsx(Button, { onClick: () => navigate("/transactions/history"), children: "Back to Transaction History" })
15024
+ ] }) });
15025
+ }
15026
+ const isWireTransfer = transaction.transactionType.toLowerCase().includes("wire");
15027
+ const isACHTransfer = transaction.transactionType.toLowerCase().includes("ach");
15028
+ const handleReturn = () => {
15029
+ console.log("Return transaction");
15030
+ };
15031
+ const handleCancel = () => {
15032
+ console.log("Cancel transaction");
15033
+ };
15034
+ const handleAccountClick = (accountNumber) => {
15035
+ navigate(`/accounts/${accountNumber}`);
15036
+ };
15037
+ const handleCustomerClick = (customer) => {
15038
+ console.log("Navigate to customer:", customer);
15039
+ };
15040
+ const handleCounterpartyClick = (counterparty) => {
15041
+ console.log("Navigate to counterparty:", counterparty);
15042
+ };
15043
+ const handleOFACClick = (ofacId) => {
15044
+ navigate(`/compliance/ofac/${ofacId}`);
15045
+ };
15046
+ const handleProductClick = (productId) => {
15047
+ console.log("Navigate to product:", productId);
15048
+ };
15049
+ return /* @__PURE__ */ jsx(
15050
+ TransactionDetailView,
15051
+ {
15052
+ transaction,
15053
+ timelineEvents: mockTransactionTimeline,
15054
+ isWireTransfer,
15055
+ isACHTransfer,
15056
+ onReturn: handleReturn,
15057
+ onCancel: handleCancel,
15058
+ onAccountClick: handleAccountClick,
15059
+ onCustomerClick: handleCustomerClick,
15060
+ onCounterpartyClick: handleCounterpartyClick,
15061
+ onOFACClick: handleOFACClick,
15062
+ onProductClick: handleProductClick
15063
+ }
15064
+ );
15065
+ };
14984
15066
  var TransactionDetail_default = TransactionDetail;
14985
15067
  function UIKit() {
14986
15068
  const breadcrumbs = [
@@ -15299,7 +15381,7 @@ var mockVelocityLimits = [
15299
15381
  comparisonMethod: "fuzzy"
15300
15382
  }
15301
15383
  ];
15302
- var getStatusVariant = (status) => {
15384
+ var getStatusVariant2 = (status) => {
15303
15385
  switch (status) {
15304
15386
  case "ACTIVE":
15305
15387
  return "success";
@@ -15415,7 +15497,7 @@ function VelocityLimits() {
15415
15497
  key: "status",
15416
15498
  title: "Status",
15417
15499
  sortable: true,
15418
- render: (value) => /* @__PURE__ */ jsx(Badge, { variant: getStatusVariant(value), children: value })
15500
+ render: (value) => /* @__PURE__ */ jsx(Badge, { variant: getStatusVariant2(value), children: value })
15419
15501
  },
15420
15502
  {
15421
15503
  key: "associatedEntity",
@@ -15798,7 +15880,7 @@ function CreateVelocityLimit() {
15798
15880
  ] }) }) }) }) })
15799
15881
  ] });
15800
15882
  }
15801
- var getStatusVariant2 = (status) => {
15883
+ var getStatusVariant3 = (status) => {
15802
15884
  switch (status) {
15803
15885
  case "ACTIVE":
15804
15886
  return "success";
@@ -16035,7 +16117,7 @@ function VelocityLimitDetail() {
16035
16117
  {
16036
16118
  title: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
16037
16119
  /* @__PURE__ */ jsx("span", { children: limit.limitName }),
16038
- /* @__PURE__ */ jsx(Badge, { variant: getStatusVariant2(limit.status), children: limit.status })
16120
+ /* @__PURE__ */ jsx(Badge, { variant: getStatusVariant3(limit.status), children: limit.status })
16039
16121
  ] }),
16040
16122
  cards: [
16041
16123
  {