@layerfi/components 0.1.39 → 0.1.41

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/esm/index.js CHANGED
@@ -4164,7 +4164,8 @@ var LinkedAccountsComponent = ({
4164
4164
  elevated,
4165
4165
  showLedgerBalance = true,
4166
4166
  showUnlinkItem = false,
4167
- showBreakConnection = false
4167
+ showBreakConnection = false,
4168
+ stringOverrides
4168
4169
  }) => {
4169
4170
  const { isLoading, error, isValidating, refetchAccounts } = useContext8(
4170
4171
  LinkedAccountsContext
@@ -4175,7 +4176,7 @@ var LinkedAccountsComponent = ({
4175
4176
  className: "Layer__linked-accounts__title",
4176
4177
  size: "secondary" /* secondary */
4177
4178
  },
4178
- "Linked Accounts"
4179
+ stringOverrides?.title || "Linked Accounts"
4179
4180
  )), isLoading && /* @__PURE__ */ React56.createElement("div", { className: "Layer__linked-accounts__loader-container" }, /* @__PURE__ */ React56.createElement(Loader2, null)), error && !isLoading ? /* @__PURE__ */ React56.createElement(
4180
4181
  DataState,
4181
4182
  {
@@ -4245,6 +4246,147 @@ import React85 from "react";
4245
4246
  // src/components/BankTransactionList/BankTransactionListItem.tsx
4246
4247
  import React84, { useEffect as useEffect13, useRef as useRef11, useState as useState16 } from "react";
4247
4248
 
4249
+ // src/hooks/useProfitAndLoss/useProfitAndLossLTM.tsx
4250
+ import { useEffect as useEffect8, useMemo as useMemo4, useState as useState10 } from "react";
4251
+ import { startOfMonth, sub } from "date-fns";
4252
+ import useSWR3 from "swr";
4253
+ var buildDates = ({ currentDate }) => {
4254
+ return {
4255
+ startYear: startOfMonth(currentDate).getFullYear() - 1,
4256
+ startMonth: startOfMonth(currentDate).getMonth() + 1,
4257
+ endYear: startOfMonth(currentDate).getFullYear(),
4258
+ endMonth: startOfMonth(currentDate).getMonth() + 1
4259
+ };
4260
+ };
4261
+ var buildMonthsArray = (startDate, endDate) => {
4262
+ if (startDate >= endDate) {
4263
+ return [];
4264
+ }
4265
+ var dates = [];
4266
+ for (var d = startDate; d <= endDate; d.setMonth(d.getMonth() + 1)) {
4267
+ dates.push(new Date(d));
4268
+ }
4269
+ return dates;
4270
+ };
4271
+ var useProfitAndLossLTM = ({ currentDate, tagFilter, reportingBasis } = {
4272
+ currentDate: /* @__PURE__ */ new Date()
4273
+ }) => {
4274
+ const { businessId, auth, apiUrl, syncTimestamps, read, hasBeenTouched } = useLayerContext();
4275
+ const [date, setDate] = useState10(currentDate);
4276
+ const [loaded, setLoaded] = useState10("initial");
4277
+ const [data, setData] = useState10([]);
4278
+ const { startYear, startMonth, endYear, endMonth } = useMemo4(() => {
4279
+ return buildDates({ currentDate: date });
4280
+ }, [date, businessId, tagFilter, reportingBasis]);
4281
+ const {
4282
+ data: rawData,
4283
+ isLoading,
4284
+ isValidating,
4285
+ error,
4286
+ mutate
4287
+ } = useSWR3(
4288
+ businessId && Boolean(startYear) && Boolean(startMonth) && Boolean(endYear) && Boolean(endMonth) && auth?.access_token && `profit-and-loss-summaries-${businessId}-${startYear.toString()}-${startMonth.toString()}-${tagFilter?.key}-${tagFilter?.values?.join(
4289
+ ","
4290
+ )}-${reportingBasis}`,
4291
+ Layer.getProfitAndLossSummaries(apiUrl, auth?.access_token, {
4292
+ params: {
4293
+ businessId,
4294
+ startYear: startYear.toString(),
4295
+ startMonth: startMonth.toString(),
4296
+ endYear: endYear.toString(),
4297
+ endMonth: endMonth.toString(),
4298
+ tagKey: tagFilter?.key,
4299
+ tagValues: tagFilter?.values?.join(","),
4300
+ reportingBasis
4301
+ }
4302
+ })
4303
+ );
4304
+ useEffect8(() => {
4305
+ const newData = data.slice();
4306
+ const newPeriod = buildMonthsArray(sub(date, { years: 1 }), date);
4307
+ if (newData && newPeriod) {
4308
+ newPeriod.forEach((x) => {
4309
+ if (!newData?.find(
4310
+ (n) => x.getMonth() + 1 === n.month && x.getFullYear() === n.year
4311
+ )) {
4312
+ newData.push({
4313
+ year: x.getFullYear(),
4314
+ month: x.getMonth() + 1,
4315
+ income: 0,
4316
+ costOfGoodsSold: 0,
4317
+ grossProfit: 0,
4318
+ operatingExpenses: 0,
4319
+ profitBeforeTaxes: 0,
4320
+ taxes: 0,
4321
+ netProfit: 0,
4322
+ fullyCategorized: false,
4323
+ totalExpenses: 0,
4324
+ uncategorizedInflows: 0,
4325
+ uncategorizedOutflows: 0,
4326
+ uncategorized_transactions: 0,
4327
+ isLoading: true
4328
+ });
4329
+ }
4330
+ });
4331
+ }
4332
+ if (newData) {
4333
+ setData(
4334
+ newData.sort(
4335
+ (a, b) => Number(new Date(a.year, a.month, 1)) - Number(new Date(b.year, b.month, 1))
4336
+ )
4337
+ );
4338
+ }
4339
+ }, [startYear, startMonth]);
4340
+ useEffect8(() => {
4341
+ const newData = rawData?.data?.months?.slice();
4342
+ if (data && newData) {
4343
+ data.forEach((x) => {
4344
+ if (!newData?.find((n) => x.month === n.month && x.year === n.year)) {
4345
+ newData.push({ ...x });
4346
+ }
4347
+ });
4348
+ }
4349
+ if (newData) {
4350
+ setData(
4351
+ newData.sort(
4352
+ (a, b) => Number(new Date(a.year, a.month, 1)) - Number(new Date(b.year, b.month, 1))
4353
+ )
4354
+ );
4355
+ }
4356
+ }, [rawData]);
4357
+ useEffect8(() => {
4358
+ if (isLoading && loaded === "initial") {
4359
+ setLoaded("loading");
4360
+ return;
4361
+ }
4362
+ if (!isLoading && rawData) {
4363
+ setLoaded("complete");
4364
+ }
4365
+ }, [data, isLoading]);
4366
+ const pullData = (date2) => setDate(date2);
4367
+ useEffect8(() => {
4368
+ if (isLoading || isValidating) {
4369
+ read("PROFIT_AND_LOSS" /* PROFIT_AND_LOSS */);
4370
+ }
4371
+ }, [isLoading, isValidating]);
4372
+ useEffect8(() => {
4373
+ if (hasBeenTouched("PROFIT_AND_LOSS" /* PROFIT_AND_LOSS */)) {
4374
+ mutate();
4375
+ }
4376
+ }, [syncTimestamps]);
4377
+ const refetch = () => {
4378
+ mutate();
4379
+ };
4380
+ return {
4381
+ data,
4382
+ isLoading,
4383
+ loaded,
4384
+ error,
4385
+ pullData,
4386
+ refetch
4387
+ };
4388
+ };
4389
+
4248
4390
  // src/icons/ChevronDownFill.tsx
4249
4391
  import * as React57 from "react";
4250
4392
  var ChevronDownFill = ({ size = 18, ...props }) => /* @__PURE__ */ React57.createElement(
@@ -4512,7 +4654,7 @@ var MinimizeTwo_default = MinimizeTwo;
4512
4654
  import React64, { useContext as useContext9 } from "react";
4513
4655
 
4514
4656
  // src/components/BankTransactionMobileList/BusinessCategories.tsx
4515
- import React63, { useState as useState10 } from "react";
4657
+ import React63, { useState as useState11 } from "react";
4516
4658
 
4517
4659
  // src/components/ActionableList/ActionableList.tsx
4518
4660
  import React62 from "react";
@@ -4608,8 +4750,8 @@ var getAssignedValue = (bankTransaction) => {
4608
4750
  var BusinessCategories = ({ select }) => {
4609
4751
  const { categories } = useLayerContext();
4610
4752
  const categoryOptions = flattenCategories(categories);
4611
- const [optionsToShow, setOptionsToShow] = useState10(categoryOptions);
4612
- const [selectedGroup, setSelectedGroup] = useState10();
4753
+ const [optionsToShow, setOptionsToShow] = useState11(categoryOptions);
4754
+ const [selectedGroup, setSelectedGroup] = useState11();
4613
4755
  const onCategorySelect = (v) => {
4614
4756
  if (v.value.type === "GROUP" && v.value.items) {
4615
4757
  setOptionsToShow(v.value.items);
@@ -5370,8 +5512,8 @@ var Textarea = ({
5370
5512
 
5371
5513
  // src/components/Toggle/Toggle.tsx
5372
5514
  import React78, {
5373
- useEffect as useEffect8,
5374
- useState as useState11
5515
+ useEffect as useEffect9,
5516
+ useState as useState12
5375
5517
  } from "react";
5376
5518
  import classNames31 from "classnames";
5377
5519
  var Toggle = ({
@@ -5381,9 +5523,9 @@ var Toggle = ({
5381
5523
  onChange,
5382
5524
  size = "medium" /* medium */
5383
5525
  }) => {
5384
- const [currentWidth, setCurrentWidth] = useState11(0);
5385
- const [thumbPos, setThumbPos] = useState11({ left: 0, width: 0 });
5386
- const [initialized, setInitialized] = useState11(false);
5526
+ const [currentWidth, setCurrentWidth] = useState12(0);
5527
+ const [thumbPos, setThumbPos] = useState12({ left: 0, width: 0 });
5528
+ const [initialized, setInitialized] = useState12(false);
5387
5529
  const toggleRef = useElementSize((a, b, c) => {
5388
5530
  if (c.width && c?.width !== currentWidth) {
5389
5531
  setCurrentWidth(c.width);
@@ -5418,14 +5560,14 @@ var Toggle = ({
5418
5560
  shift2 = shift2 + (size === "medium" /* medium */ ? 2 : 1.5);
5419
5561
  setThumbPos({ left: shift2, width });
5420
5562
  };
5421
- useEffect8(() => {
5563
+ useEffect9(() => {
5422
5564
  const selectedIndex = getSelectedIndex();
5423
5565
  updateThumbPosition(selectedIndex);
5424
5566
  setTimeout(() => {
5425
5567
  setInitialized(true);
5426
5568
  }, 400);
5427
5569
  }, []);
5428
- useEffect8(() => {
5570
+ useEffect9(() => {
5429
5571
  const selectedIndex = getSelectedIndex();
5430
5572
  updateThumbPosition(selectedIndex);
5431
5573
  }, [currentWidth]);
@@ -5513,7 +5655,7 @@ var ToggleOption = ({
5513
5655
  };
5514
5656
 
5515
5657
  // src/components/ExpandedBankTransactionRow/APIErrorNotifications.tsx
5516
- import React79, { useEffect as useEffect9, useState as useState12 } from "react";
5658
+ import React79, { useEffect as useEffect10, useState as useState13 } from "react";
5517
5659
  var ERROR_TITLE = "Approval Failed";
5518
5660
  var ERROR_MESSAGE = "Something went wrong, try again later";
5519
5661
  var NOTIFICATION_TIME = 4e3;
@@ -5523,7 +5665,7 @@ var APIErrorNotifications = ({
5523
5665
  bankTransaction,
5524
5666
  containerWidth
5525
5667
  }) => {
5526
- const [notifications, setNotifications] = useState12([]);
5668
+ const [notifications, setNotifications] = useState13([]);
5527
5669
  const pushNotification = (title, message) => {
5528
5670
  const timestamp = (/* @__PURE__ */ new Date()).valueOf();
5529
5671
  if (notificationsCache.find(
@@ -5552,7 +5694,7 @@ var APIErrorNotifications = ({
5552
5694
  );
5553
5695
  setNotifications(notificationsCache.concat());
5554
5696
  };
5555
- useEffect9(() => {
5697
+ useEffect10(() => {
5556
5698
  if (bankTransaction.error) {
5557
5699
  pushNotification(ERROR_TITLE, ERROR_MESSAGE);
5558
5700
  }
@@ -5577,8 +5719,8 @@ var Notification = ({
5577
5719
  notification,
5578
5720
  deleteNotification
5579
5721
  }) => {
5580
- const [visible, setVisible] = useState12(false);
5581
- useEffect9(() => {
5722
+ const [visible, setVisible] = useState13(false);
5723
+ useEffect10(() => {
5582
5724
  setVisible(true);
5583
5725
  const timer = setTimeout(() => {
5584
5726
  hideNotification();
@@ -5617,149 +5759,6 @@ var Notification = ({
5617
5759
 
5618
5760
  // src/components/ExpandedBankTransactionRow/ExpandedBankTransactionRow.tsx
5619
5761
  import classNames32 from "classnames";
5620
-
5621
- // src/hooks/useProfitAndLoss/useProfitAndLossLTM.tsx
5622
- import { useEffect as useEffect10, useMemo as useMemo4, useState as useState13 } from "react";
5623
- import { startOfMonth, sub } from "date-fns";
5624
- import useSWR3 from "swr";
5625
- var buildDates = ({ currentDate }) => {
5626
- return {
5627
- startYear: startOfMonth(currentDate).getFullYear() - 1,
5628
- startMonth: startOfMonth(currentDate).getMonth() + 1,
5629
- endYear: startOfMonth(currentDate).getFullYear(),
5630
- endMonth: startOfMonth(currentDate).getMonth() + 1
5631
- };
5632
- };
5633
- var buildMonthsArray = (startDate, endDate) => {
5634
- if (startDate >= endDate) {
5635
- return [];
5636
- }
5637
- var dates = [];
5638
- for (var d = startDate; d <= endDate; d.setMonth(d.getMonth() + 1)) {
5639
- dates.push(new Date(d));
5640
- }
5641
- return dates;
5642
- };
5643
- var useProfitAndLossLTM = ({ currentDate, tagFilter, reportingBasis } = {
5644
- currentDate: /* @__PURE__ */ new Date()
5645
- }) => {
5646
- const { businessId, auth, apiUrl, syncTimestamps, read, hasBeenTouched } = useLayerContext();
5647
- const [date, setDate] = useState13(currentDate);
5648
- const [loaded, setLoaded] = useState13("initial");
5649
- const [data, setData] = useState13([]);
5650
- const { startYear, startMonth, endYear, endMonth } = useMemo4(() => {
5651
- return buildDates({ currentDate: date });
5652
- }, [date, businessId, tagFilter, reportingBasis]);
5653
- const {
5654
- data: rawData,
5655
- isLoading,
5656
- isValidating,
5657
- error,
5658
- mutate
5659
- } = useSWR3(
5660
- businessId && Boolean(startYear) && Boolean(startMonth) && Boolean(endYear) && Boolean(endMonth) && auth?.access_token && `profit-and-loss-summaries-${businessId}-${startYear.toString()}-${startMonth.toString()}-${tagFilter?.key}-${tagFilter?.values?.join(
5661
- ","
5662
- )}-${reportingBasis}`,
5663
- Layer.getProfitAndLossSummaries(apiUrl, auth?.access_token, {
5664
- params: {
5665
- businessId,
5666
- startYear: startYear.toString(),
5667
- startMonth: startMonth.toString(),
5668
- endYear: endYear.toString(),
5669
- endMonth: endMonth.toString(),
5670
- tagKey: tagFilter?.key,
5671
- tagValues: tagFilter?.values?.join(","),
5672
- reportingBasis
5673
- }
5674
- })
5675
- );
5676
- useEffect10(() => {
5677
- const newData = data.slice();
5678
- const newPeriod = buildMonthsArray(sub(date, { years: 1 }), date);
5679
- if (newData && newPeriod) {
5680
- newPeriod.forEach((x) => {
5681
- if (!newData?.find(
5682
- (n) => x.getMonth() + 1 === n.month && x.getFullYear() === n.year
5683
- )) {
5684
- newData.push({
5685
- year: x.getFullYear(),
5686
- month: x.getMonth() + 1,
5687
- income: 0,
5688
- costOfGoodsSold: 0,
5689
- grossProfit: 0,
5690
- operatingExpenses: 0,
5691
- profitBeforeTaxes: 0,
5692
- taxes: 0,
5693
- netProfit: 0,
5694
- fullyCategorized: false,
5695
- totalExpenses: 0,
5696
- uncategorizedInflows: 0,
5697
- uncategorizedOutflows: 0,
5698
- uncategorized_transactions: 0,
5699
- isLoading: true
5700
- });
5701
- }
5702
- });
5703
- }
5704
- if (newData) {
5705
- setData(
5706
- newData.sort(
5707
- (a, b) => Number(new Date(a.year, a.month, 1)) - Number(new Date(b.year, b.month, 1))
5708
- )
5709
- );
5710
- }
5711
- }, [startYear, startMonth]);
5712
- useEffect10(() => {
5713
- const newData = rawData?.data?.months?.slice();
5714
- if (data && newData) {
5715
- data.forEach((x) => {
5716
- if (!newData?.find((n) => x.month === n.month && x.year === n.year)) {
5717
- newData.push({ ...x });
5718
- }
5719
- });
5720
- }
5721
- if (newData) {
5722
- setData(
5723
- newData.sort(
5724
- (a, b) => Number(new Date(a.year, a.month, 1)) - Number(new Date(b.year, b.month, 1))
5725
- )
5726
- );
5727
- }
5728
- }, [rawData]);
5729
- useEffect10(() => {
5730
- if (isLoading && loaded === "initial") {
5731
- setLoaded("loading");
5732
- return;
5733
- }
5734
- if (!isLoading && rawData) {
5735
- setLoaded("complete");
5736
- }
5737
- }, [data, isLoading]);
5738
- const pullData = (date2) => setDate(date2);
5739
- useEffect10(() => {
5740
- if (isLoading || isValidating) {
5741
- read("PROFIT_AND_LOSS" /* PROFIT_AND_LOSS */);
5742
- }
5743
- }, [isLoading, isValidating]);
5744
- useEffect10(() => {
5745
- if (hasBeenTouched("PROFIT_AND_LOSS" /* PROFIT_AND_LOSS */)) {
5746
- mutate();
5747
- }
5748
- }, [syncTimestamps]);
5749
- const refetch = () => {
5750
- mutate();
5751
- };
5752
- return {
5753
- data,
5754
- isLoading,
5755
- loaded,
5756
- error,
5757
- pullData,
5758
- refetch
5759
- };
5760
- };
5761
-
5762
- // src/components/ExpandedBankTransactionRow/ExpandedBankTransactionRow.tsx
5763
5762
  var isAlreadyMatched2 = (bankTransaction) => {
5764
5763
  if (bankTransaction?.match) {
5765
5764
  const foundMatch = bankTransaction.suggested_matches?.find(
@@ -6311,7 +6310,8 @@ var BankTransactionRow = ({
6311
6310
  initialLoad,
6312
6311
  showDescriptions,
6313
6312
  showReceiptUploads,
6314
- hardRefreshPnlOnCategorize
6313
+ hardRefreshPnlOnCategorize,
6314
+ stringOverrides
6315
6315
  }) => {
6316
6316
  const expandedRowRef = useRef10(null);
6317
6317
  const [showRetry, setShowRetry] = useState15(false);
@@ -6537,7 +6537,7 @@ var BankTransactionRow = ({
6537
6537
  active: open,
6538
6538
  action: categorized ? "save" /* SAVE */ : "update" /* UPDATE */
6539
6539
  },
6540
- categorized ? "Update" : "Approve"
6540
+ categorized ? stringOverrides?.updateButtonText || "Update" : stringOverrides?.approveButtonText || "Approve"
6541
6541
  ) : null,
6542
6542
  /* @__PURE__ */ React82.createElement(
6543
6543
  IconButton,
@@ -6619,7 +6619,8 @@ var BankTransactionListItem = ({
6619
6619
  showReceiptUploads,
6620
6620
  hardRefreshPnlOnCategorize,
6621
6621
  containerWidth,
6622
- removeTransaction
6622
+ removeTransaction,
6623
+ stringOverrides
6623
6624
  }) => {
6624
6625
  const expandedRowRef = useRef11(null);
6625
6626
  const [showRetry, setShowRetry] = useState16(false);
@@ -6712,7 +6713,7 @@ var BankTransactionListItem = ({
6712
6713
  close: () => setOpen(false),
6713
6714
  categorized,
6714
6715
  asListItem: true,
6715
- submitBtnText: categorized ? "Update" : "Approve",
6716
+ submitBtnText: categorized ? stringOverrides?.updateButtonText || "Update" : stringOverrides?.approveButtonText || "Approve",
6716
6717
  containerWidth,
6717
6718
  showDescriptions,
6718
6719
  showReceiptUploads,
@@ -6742,7 +6743,7 @@ var BankTransactionListItem = ({
6742
6743
  processing: bankTransaction.processing,
6743
6744
  action: !categorized ? "save" /* SAVE */ : "update" /* UPDATE */
6744
6745
  },
6745
- !categorized ? "Approve" : "Update"
6746
+ !categorized ? stringOverrides?.approveButtonText || "Approve" : stringOverrides?.updateButtonText || "Update"
6746
6747
  ) : null, !categorized && showRetry ? /* @__PURE__ */ React84.createElement(
6747
6748
  RetryButton,
6748
6749
  {
@@ -6767,7 +6768,8 @@ var BankTransactionList = ({
6767
6768
  containerWidth,
6768
6769
  showDescriptions = false,
6769
6770
  showReceiptUploads = false,
6770
- hardRefreshPnlOnCategorize = false
6771
+ hardRefreshPnlOnCategorize = false,
6772
+ stringOverrides
6771
6773
  }) => {
6772
6774
  return /* @__PURE__ */ React85.createElement("ul", { className: "Layer__bank-transactions__list" }, bankTransactions?.map(
6773
6775
  (bankTransaction, index) => /* @__PURE__ */ React85.createElement(
@@ -6782,7 +6784,8 @@ var BankTransactionList = ({
6782
6784
  containerWidth,
6783
6785
  showDescriptions,
6784
6786
  showReceiptUploads,
6785
- hardRefreshPnlOnCategorize
6787
+ hardRefreshPnlOnCategorize,
6788
+ stringOverrides
6786
6789
  }
6787
6790
  )
6788
6791
  ));
@@ -7601,6 +7604,7 @@ var BankTransactionsTable = ({
7601
7604
  showDescriptions = false,
7602
7605
  showReceiptUploads = false,
7603
7606
  hardRefreshPnlOnCategorize = false,
7607
+ stringOverrides,
7604
7608
  isSyncing = false,
7605
7609
  page,
7606
7610
  lastPage,
@@ -7612,7 +7616,7 @@ var BankTransactionsTable = ({
7612
7616
  width: "100%",
7613
7617
  className: "Layer__table Layer__bank-transactions__table with-cell-separators"
7614
7618
  },
7615
- /* @__PURE__ */ React98.createElement("thead", null, /* @__PURE__ */ React98.createElement("tr", null, /* @__PURE__ */ React98.createElement("th", { className: "Layer__table-header Layer__bank-transactions__date-col" }, "Date"), /* @__PURE__ */ React98.createElement("th", { className: "Layer__table-header Layer__bank-transactions__tx-col" }, "Transaction"), /* @__PURE__ */ React98.createElement("th", { className: "Layer__table-header Layer__bank-transactions__account-col" }, "Account"), /* @__PURE__ */ React98.createElement("th", { className: "Layer__table-header Layer__table-cell--amount Layer__table-cell__amount-col" }, "Amount"), categorizeView && editable ? /* @__PURE__ */ React98.createElement("th", { className: "Layer__table-header Layer__table-header--primary Layer__table-cell__category-col" }, "Categorize") : /* @__PURE__ */ React98.createElement("th", { className: "Layer__table-header Layer__table-cell__category-col" }, "Category"))),
7619
+ /* @__PURE__ */ React98.createElement("thead", null, /* @__PURE__ */ React98.createElement("tr", null, /* @__PURE__ */ React98.createElement("th", { className: "Layer__table-header Layer__bank-transactions__date-col" }, stringOverrides?.transactionsTable?.dateColumnHeaderText || "Date"), /* @__PURE__ */ React98.createElement("th", { className: "Layer__table-header Layer__bank-transactions__tx-col" }, stringOverrides?.transactionsTable?.transactionColumnHeaderText || "Transaction"), /* @__PURE__ */ React98.createElement("th", { className: "Layer__table-header Layer__bank-transactions__account-col" }, stringOverrides?.transactionsTable?.accountColumnHeaderText || "Account"), /* @__PURE__ */ React98.createElement("th", { className: "Layer__table-header Layer__table-cell--amount Layer__table-cell__amount-col" }, stringOverrides?.transactionsTable?.amountColumnHeaderText || "Amount"), categorizeView && editable ? /* @__PURE__ */ React98.createElement("th", { className: "Layer__table-header Layer__table-header--primary Layer__table-cell__category-col" }, stringOverrides?.transactionsTable?.categorizeColumnHeaderText || "Categorize") : /* @__PURE__ */ React98.createElement("th", { className: "Layer__table-header Layer__table-cell__category-col" }, stringOverrides?.transactionsTable?.categoryColumnHeaderText || "Category"))),
7616
7620
  isLoading && page && page === 1 ? /* @__PURE__ */ React98.createElement(BankTransactionsLoader, { isLoading: true }) : null,
7617
7621
  !isLoading && isSyncing && page && page === 1 ? /* @__PURE__ */ React98.createElement(BankTransactionsLoader, { isLoading: false }) : null,
7618
7622
  /* @__PURE__ */ React98.createElement("tbody", null, !isLoading && bankTransactions?.map(
@@ -7629,7 +7633,8 @@ var BankTransactionsTable = ({
7629
7633
  containerWidth,
7630
7634
  showDescriptions,
7631
7635
  showReceiptUploads,
7632
- hardRefreshPnlOnCategorize
7636
+ hardRefreshPnlOnCategorize,
7637
+ stringOverrides: stringOverrides?.bankTransactionCTAs
7633
7638
  }
7634
7639
  )
7635
7640
  ), isSyncing && (lastPage || (!bankTransactions || bankTransactions.length === 0) && page === 1) ? /* @__PURE__ */ React98.createElement("tr", null, /* @__PURE__ */ React98.createElement("td", { colSpan: 3 }, /* @__PURE__ */ React98.createElement(
@@ -8414,7 +8419,9 @@ var Tabs = ({ name, options, selected, onChange }) => {
8414
8419
  // src/components/BankTransactions/BankTransactionsHeader.tsx
8415
8420
  import classNames41 from "classnames";
8416
8421
  import { endOfMonth as endOfMonth2, startOfMonth as startOfMonth4 } from "date-fns";
8417
- var DownloadButton = () => {
8422
+ var DownloadButton = ({
8423
+ downloadButtonTextOverride
8424
+ }) => {
8418
8425
  const { auth, businessId, apiUrl } = useLayerContext();
8419
8426
  const [requestFailed, setRequestFailed] = useState26(false);
8420
8427
  const handleClick = async () => {
@@ -8456,7 +8463,7 @@ var DownloadButton = () => {
8456
8463
  rightIcon: /* @__PURE__ */ React108.createElement(DownloadCloud_default, { size: 12 }),
8457
8464
  onClick: handleClick
8458
8465
  },
8459
- "Download"
8466
+ downloadButtonTextOverride || "Download"
8460
8467
  );
8461
8468
  };
8462
8469
  var BankTransactionsHeader = ({
@@ -8471,6 +8478,7 @@ var BankTransactionsHeader = ({
8471
8478
  listView,
8472
8479
  dateRange,
8473
8480
  setDateRange,
8481
+ stringOverrides,
8474
8482
  isSyncing
8475
8483
  }) => {
8476
8484
  const { business } = useLayerContext();
@@ -8490,7 +8498,7 @@ var BankTransactionsHeader = ({
8490
8498
  className: "Layer__bank-transactions__title",
8491
8499
  size: asWidget ? "secondary" /* secondary */ : "secondary" /* secondary */
8492
8500
  },
8493
- "Transactions"
8501
+ stringOverrides?.header || "Transactions"
8494
8502
  ), isSyncing && /* @__PURE__ */ React108.createElement(
8495
8503
  SyncingComponent,
8496
8504
  {
@@ -8514,7 +8522,12 @@ var BankTransactionsHeader = ({
8514
8522
  minDate: getEarliestDateToBrowse(business)
8515
8523
  }
8516
8524
  ) : null),
8517
- /* @__PURE__ */ React108.createElement("div", { className: "Layer__header__actions-wrapper" }, !categorizedOnly && !(mobileComponent == "mobileList" && listView) && categorizeView && /* @__PURE__ */ React108.createElement("div", { className: "Layer__header__actions" }, /* @__PURE__ */ React108.createElement(DownloadButton, null), /* @__PURE__ */ React108.createElement(
8525
+ /* @__PURE__ */ React108.createElement("div", { className: "Layer__header__actions-wrapper" }, !categorizedOnly && !(mobileComponent == "mobileList" && listView) && categorizeView && /* @__PURE__ */ React108.createElement("div", { className: "Layer__header__actions" }, /* @__PURE__ */ React108.createElement(
8526
+ DownloadButton,
8527
+ {
8528
+ downloadButtonTextOverride: stringOverrides?.downloadButton
8529
+ }
8530
+ ), /* @__PURE__ */ React108.createElement(
8518
8531
  Toggle,
8519
8532
  {
8520
8533
  name: "bank-transaction-display",
@@ -8632,7 +8645,8 @@ var BankTransactionsContent = ({
8632
8645
  monthlyView = false,
8633
8646
  mobileComponent,
8634
8647
  filters: inputFilters,
8635
- hideHeader = false
8648
+ hideHeader = false,
8649
+ stringOverrides
8636
8650
  }) => {
8637
8651
  const [currentPage, setCurrentPage] = useState27(1);
8638
8652
  const [initialLoad, setInitialLoad] = useState27(true);
@@ -8789,6 +8803,7 @@ var BankTransactionsContent = ({
8789
8803
  listView,
8790
8804
  dateRange,
8791
8805
  setDateRange: (v) => setDateRange(v),
8806
+ stringOverrides: stringOverrides?.bankTransactionsHeader,
8792
8807
  isDataLoading: isLoading,
8793
8808
  isSyncing
8794
8809
  }
@@ -8808,6 +8823,7 @@ var BankTransactionsContent = ({
8808
8823
  showReceiptUploads,
8809
8824
  page: currentPage,
8810
8825
  hardRefreshPnlOnCategorize,
8826
+ stringOverrides,
8811
8827
  lastPage: isLastPage,
8812
8828
  onRefresh: refetch
8813
8829
  }
@@ -8819,7 +8835,8 @@ var BankTransactionsContent = ({
8819
8835
  editable,
8820
8836
  removeTransaction,
8821
8837
  containerWidth,
8822
- hardRefreshPnlOnCategorize
8838
+ hardRefreshPnlOnCategorize,
8839
+ stringOverrides: stringOverrides?.bankTransactionCTAs
8823
8840
  }
8824
8841
  ) : null,
8825
8842
  !isLoading && listView && mobileComponent === "mobileList" ? /* @__PURE__ */ React111.createElement(
@@ -10051,16 +10068,6 @@ var convertCurrencyToNumber = (amount) => {
10051
10068
  return parseFloat(inputValue);
10052
10069
  };
10053
10070
 
10054
- // src/components/ProfitAndLossDetailedCharts/DetailedChart.tsx
10055
- import {
10056
- PieChart,
10057
- Pie,
10058
- Cell as Cell2,
10059
- ResponsiveContainer as ResponsiveContainer2,
10060
- Label,
10061
- Text as ChartText
10062
- } from "recharts";
10063
-
10064
10071
  // src/components/ProfitAndLossDetailedCharts/DetailedTable.tsx
10065
10072
  import React118 from "react";
10066
10073
 
@@ -10079,7 +10086,7 @@ var DEFAULT_CHART_COLOR_TYPE = [
10079
10086
  "#6A52CC",
10080
10087
  "#71CC56"
10081
10088
  ];
10082
- var DEFAULT_CHART_COLORS = [
10089
+ var DEFAULT_MINICHART_COLORS = [
10083
10090
  {
10084
10091
  color: "#7417B3",
10085
10092
  opacity: 1
@@ -10221,14 +10228,14 @@ var SortArrows_default = SortArrows;
10221
10228
 
10222
10229
  // src/components/ProfitAndLossDetailedCharts/DetailedTable.tsx
10223
10230
  import classNames43 from "classnames";
10224
- var mapColorsToTypes = (data) => {
10231
+ var mapTypesToColors = (data, colorList = DEFAULT_CHART_COLOR_TYPE) => {
10225
10232
  const typeToColor = {};
10226
10233
  const typeToLastOpacity = {};
10227
10234
  let colorIndex = 0;
10228
10235
  return data.map((obj) => {
10229
10236
  const type = obj.type;
10230
10237
  if (!typeToColor[type]) {
10231
- typeToColor[type] = DEFAULT_CHART_COLOR_TYPE[colorIndex % DEFAULT_CHART_COLOR_TYPE.length];
10238
+ typeToColor[type] = colorList[colorIndex % colorList.length];
10232
10239
  colorIndex++;
10233
10240
  typeToLastOpacity[type] = 1;
10234
10241
  } else {
@@ -10247,7 +10254,9 @@ var DetailedTable = ({
10247
10254
  filters,
10248
10255
  sortBy,
10249
10256
  hoveredItem,
10250
- setHoveredItem
10257
+ setHoveredItem,
10258
+ chartColorsList,
10259
+ stringOverrides
10251
10260
  }) => {
10252
10261
  const buildColClass = (column) => {
10253
10262
  return classNames43(
@@ -10255,15 +10264,16 @@ var DetailedTable = ({
10255
10264
  sidebarScope && filters[sidebarScope]?.sortBy === column ? `sort--${(sidebarScope && filters[sidebarScope]?.sortDirection) ?? "desc"}` : ""
10256
10265
  );
10257
10266
  };
10258
- const typeColorMapping = mapColorsToTypes(filteredData);
10259
- let colorIndex = 0;
10267
+ const typeColorMapping = mapTypesToColors(filteredData, chartColorsList);
10268
+ const colorIndex = 0;
10260
10269
  return /* @__PURE__ */ React118.createElement("div", { className: "details-container" }, /* @__PURE__ */ React118.createElement("div", { className: "table" }, /* @__PURE__ */ React118.createElement("table", null, /* @__PURE__ */ React118.createElement("thead", null, /* @__PURE__ */ React118.createElement("tr", null, /* @__PURE__ */ React118.createElement(
10261
10270
  "th",
10262
10271
  {
10263
10272
  className: buildColClass("category"),
10264
10273
  onClick: () => sortBy(sidebarScope ?? "expenses", "category")
10265
10274
  },
10266
- "Category ",
10275
+ stringOverrides?.categoryColumnHeader || "Category",
10276
+ " ",
10267
10277
  /* @__PURE__ */ React118.createElement(SortArrows_default, { className: "Layer__sort-arrows" })
10268
10278
  ), /* @__PURE__ */ React118.createElement(
10269
10279
  "th",
@@ -10271,7 +10281,8 @@ var DetailedTable = ({
10271
10281
  className: buildColClass("type"),
10272
10282
  onClick: () => sortBy(sidebarScope ?? "expenses", "type")
10273
10283
  },
10274
- "Type ",
10284
+ stringOverrides?.typeColumnHeader || "Type",
10285
+ " ",
10275
10286
  /* @__PURE__ */ React118.createElement(SortArrows_default, { className: "Layer__sort-arrows" })
10276
10287
  ), /* @__PURE__ */ React118.createElement("th", null), /* @__PURE__ */ React118.createElement(
10277
10288
  "th",
@@ -10279,7 +10290,8 @@ var DetailedTable = ({
10279
10290
  className: buildColClass("value"),
10280
10291
  onClick: () => sortBy(sidebarScope ?? "expenses", "value")
10281
10292
  },
10282
- "Value ",
10293
+ stringOverrides?.valueColumnHeader || "Value",
10294
+ " ",
10283
10295
  /* @__PURE__ */ React118.createElement(SortArrows_default, { className: "Layer__sort-arrows" })
10284
10296
  ))), /* @__PURE__ */ React118.createElement("tbody", null, filteredData.filter((x) => !x.hidden).map((item, idx) => {
10285
10297
  return /* @__PURE__ */ React118.createElement(
@@ -10311,6 +10323,14 @@ var DetailedTable = ({
10311
10323
  };
10312
10324
 
10313
10325
  // src/components/ProfitAndLossDetailedCharts/DetailedChart.tsx
10326
+ import {
10327
+ PieChart,
10328
+ Pie,
10329
+ Cell as Cell2,
10330
+ ResponsiveContainer as ResponsiveContainer2,
10331
+ Label,
10332
+ Text as ChartText
10333
+ } from "recharts";
10314
10334
  var DetailedChart = ({
10315
10335
  filteredData,
10316
10336
  filteredTotal,
@@ -10318,6 +10338,7 @@ var DetailedChart = ({
10318
10338
  setHoveredItem,
10319
10339
  sidebarScope,
10320
10340
  date,
10341
+ chartColorsList,
10321
10342
  isLoading,
10322
10343
  showDatePicker = true
10323
10344
  }) => {
@@ -10341,7 +10362,7 @@ var DetailedChart = ({
10341
10362
  });
10342
10363
  }, [filteredData, isLoading]);
10343
10364
  const noValue = chartData.length === 0 || !chartData.find((x) => x.value !== 0);
10344
- const typeColorMapping = mapColorsToTypes(chartData);
10365
+ const typeColorMapping = mapTypesToColors(chartData, chartColorsList);
10345
10366
  return /* @__PURE__ */ React119.createElement("div", { className: "chart-field" }, /* @__PURE__ */ React119.createElement("div", { className: "header--tablet" }, showDatePicker && /* @__PURE__ */ React119.createElement(ProfitAndLossDatePicker, null)), /* @__PURE__ */ React119.createElement("div", { className: "chart-container" }, /* @__PURE__ */ React119.createElement(ResponsiveContainer2, null, /* @__PURE__ */ React119.createElement(PieChart, null, !isLoading && !noValue ? /* @__PURE__ */ React119.createElement(
10346
10367
  Pie,
10347
10368
  {
@@ -10620,7 +10641,9 @@ import { format as format2 } from "date-fns";
10620
10641
  var ProfitAndLossDetailedCharts = ({
10621
10642
  scope,
10622
10643
  hideClose = false,
10623
- showDatePicker = false
10644
+ showDatePicker = false,
10645
+ chartColorsList,
10646
+ stringOverrides
10624
10647
  }) => {
10625
10648
  const {
10626
10649
  filteredDataRevenue,
@@ -10657,6 +10680,7 @@ var ProfitAndLossDetailedCharts = ({
10657
10680
  sidebarScope: theScope,
10658
10681
  date: dateRange.startDate,
10659
10682
  isLoading,
10683
+ chartColorsList,
10660
10684
  showDatePicker
10661
10685
  }
10662
10686
  ), /* @__PURE__ */ React121.createElement("div", { className: "Layer__profit-and-loss-detailed-charts__table-wrapper" }, /* @__PURE__ */ React121.createElement(
@@ -10675,7 +10699,9 @@ var ProfitAndLossDetailedCharts = ({
10675
10699
  filters,
10676
10700
  sortBy,
10677
10701
  hoveredItem,
10678
- setHoveredItem
10702
+ setHoveredItem,
10703
+ chartColorsList,
10704
+ stringOverrides: stringOverrides?.detailedTableStringOverrides
10679
10705
  }
10680
10706
  ))));
10681
10707
  };
@@ -10705,7 +10731,7 @@ var MiniChart = ({ data }) => {
10705
10731
  animationEasing: "ease-in-out"
10706
10732
  },
10707
10733
  data.map((entry, index) => {
10708
- const colorConfig = DEFAULT_CHART_COLORS[index % DEFAULT_CHART_COLORS.length];
10734
+ const colorConfig = DEFAULT_MINICHART_COLORS[index % DEFAULT_MINICHART_COLORS.length];
10709
10735
  return /* @__PURE__ */ React122.createElement(
10710
10736
  Cell3,
10711
10737
  {
@@ -10749,8 +10775,10 @@ var buildMiniChartData = (scope, data) => {
10749
10775
  };
10750
10776
  var ProfitAndLossSummaries = ({
10751
10777
  vertical,
10752
- revenueLabel = "Revenue",
10753
- actionable = false
10778
+ actionable = false,
10779
+ revenueLabel,
10780
+ // deprecated
10781
+ stringOverrides
10754
10782
  }) => {
10755
10783
  const {
10756
10784
  data: storedData,
@@ -10797,7 +10825,7 @@ var ProfitAndLossSummaries = ({
10797
10825
  }
10798
10826
  },
10799
10827
  /* @__PURE__ */ React123.createElement(MiniChart, { data: revenueChartData }),
10800
- /* @__PURE__ */ React123.createElement("div", { className: "Layer__profit-and-loss-summaries__text" }, /* @__PURE__ */ React123.createElement("span", { className: "Layer__profit-and-loss-summaries__title" }, revenueLabel), isLoading || storedData === void 0 ? /* @__PURE__ */ React123.createElement("div", { className: "Layer__profit-and-loss-summaries__loader" }, /* @__PURE__ */ React123.createElement(SkeletonLoader, null)) : /* @__PURE__ */ React123.createElement(
10828
+ /* @__PURE__ */ React123.createElement("div", { className: "Layer__profit-and-loss-summaries__text" }, /* @__PURE__ */ React123.createElement("span", { className: "Layer__profit-and-loss-summaries__title" }, stringOverrides?.revenueLabel || revenueLabel || "Revenue"), isLoading || storedData === void 0 ? /* @__PURE__ */ React123.createElement("div", { className: "Layer__profit-and-loss-summaries__loader" }, /* @__PURE__ */ React123.createElement(SkeletonLoader, null)) : /* @__PURE__ */ React123.createElement(
10801
10829
  "span",
10802
10830
  {
10803
10831
  className: `Layer__profit-and-loss-summaries__amount ${incomeDirectionClass}`
@@ -10819,7 +10847,7 @@ var ProfitAndLossSummaries = ({
10819
10847
  }
10820
10848
  },
10821
10849
  /* @__PURE__ */ React123.createElement(MiniChart, { data: expensesChartData }),
10822
- /* @__PURE__ */ React123.createElement("div", { className: "Layer__profit-and-loss-summaries__text" }, /* @__PURE__ */ React123.createElement("span", { className: "Layer__profit-and-loss-summaries__title" }, "Expenses"), isLoading || storedData === void 0 ? /* @__PURE__ */ React123.createElement("div", { className: "Layer__profit-and-loss-summaries__loader" }, /* @__PURE__ */ React123.createElement(SkeletonLoader, { className: "Layer__profit-and-loss-summaries__loader" })) : /* @__PURE__ */ React123.createElement(
10850
+ /* @__PURE__ */ React123.createElement("div", { className: "Layer__profit-and-loss-summaries__text" }, /* @__PURE__ */ React123.createElement("span", { className: "Layer__profit-and-loss-summaries__title" }, stringOverrides?.expensesLabel || "Expenses"), isLoading || storedData === void 0 ? /* @__PURE__ */ React123.createElement("div", { className: "Layer__profit-and-loss-summaries__loader" }, /* @__PURE__ */ React123.createElement(SkeletonLoader, { className: "Layer__profit-and-loss-summaries__loader" })) : /* @__PURE__ */ React123.createElement(
10823
10851
  "span",
10824
10852
  {
10825
10853
  className: `Layer__profit-and-loss-summaries__amount ${expensesDirectionClass}`
@@ -10837,7 +10865,7 @@ var ProfitAndLossSummaries = ({
10837
10865
  actionable && "Layer__actionable"
10838
10866
  )
10839
10867
  },
10840
- /* @__PURE__ */ React123.createElement("div", { className: "Layer__profit-and-loss-summaries__text" }, /* @__PURE__ */ React123.createElement("span", { className: "Layer__profit-and-loss-summaries__title" }, "Net Profit"), isLoading || storedData === void 0 ? /* @__PURE__ */ React123.createElement("div", { className: "Layer__profit-and-loss-summaries__loader" }, /* @__PURE__ */ React123.createElement(SkeletonLoader, { className: "Layer__profit-and-loss-summaries__loader" })) : /* @__PURE__ */ React123.createElement(
10868
+ /* @__PURE__ */ React123.createElement("div", { className: "Layer__profit-and-loss-summaries__text" }, /* @__PURE__ */ React123.createElement("span", { className: "Layer__profit-and-loss-summaries__title" }, stringOverrides?.netProfitLabel || "Net Profit"), isLoading || storedData === void 0 ? /* @__PURE__ */ React123.createElement("div", { className: "Layer__profit-and-loss-summaries__loader" }, /* @__PURE__ */ React123.createElement(SkeletonLoader, { className: "Layer__profit-and-loss-summaries__loader" })) : /* @__PURE__ */ React123.createElement(
10841
10869
  "span",
10842
10870
  {
10843
10871
  className: `Layer__profit-and-loss-summaries__amount ${netProfitDirectionClass}`
@@ -11024,7 +11052,7 @@ var empty_profit_and_loss_report_default = {
11024
11052
 
11025
11053
  // src/components/ProfitAndLossTable/ProfitAndLossTable.tsx
11026
11054
  import classNames45 from "classnames";
11027
- var ProfitAndLossTable = ({ lockExpanded, asContainer }) => {
11055
+ var ProfitAndLossTable = ({ lockExpanded, asContainer, stringOverrides }) => {
11028
11056
  const {
11029
11057
  data: actualData,
11030
11058
  isLoading,
@@ -11077,7 +11105,7 @@ var ProfitAndLossTable = ({ lockExpanded, asContainer }) => {
11077
11105
  {
11078
11106
  lineItem: {
11079
11107
  value: data.gross_profit,
11080
- display_name: "Gross Profit"
11108
+ display_name: stringOverrides?.grossProfitLabel || "Gross Profit"
11081
11109
  },
11082
11110
  variant: "summation",
11083
11111
  direction: "CREDIT" /* CREDIT */,
@@ -11101,7 +11129,7 @@ var ProfitAndLossTable = ({ lockExpanded, asContainer }) => {
11101
11129
  {
11102
11130
  lineItem: {
11103
11131
  value: data.profit_before_taxes,
11104
- display_name: "Profit Before Taxes"
11132
+ display_name: stringOverrides?.profitBeforeTaxesLabel || "Profit Before Taxes"
11105
11133
  },
11106
11134
  variant: "summation",
11107
11135
  direction: "CREDIT" /* CREDIT */,
@@ -11125,7 +11153,7 @@ var ProfitAndLossTable = ({ lockExpanded, asContainer }) => {
11125
11153
  {
11126
11154
  lineItem: {
11127
11155
  value: data.net_profit,
11128
- display_name: "Net Profit"
11156
+ display_name: stringOverrides?.netProfitLabel || "Net Profit"
11129
11157
  },
11130
11158
  variant: "summation",
11131
11159
  direction: "CREDIT" /* CREDIT */,
@@ -11475,7 +11503,8 @@ var Table = ({
11475
11503
  // src/components/BalanceSheetTable/BalanceSheetTable.tsx
11476
11504
  var BalanceSheetTable = ({
11477
11505
  data,
11478
- config
11506
+ config,
11507
+ stringOverrides
11479
11508
  }) => {
11480
11509
  const { isOpen, setIsOpen, expandedAllRows } = useTableExpandRow();
11481
11510
  const allRowKeys = [];
@@ -11531,7 +11560,7 @@ var BalanceSheetTable = ({
11531
11560
  /* @__PURE__ */ React136.createElement(TableCell, { primary: true, isCurrency: true }, lineItem.value)
11532
11561
  ));
11533
11562
  };
11534
- return /* @__PURE__ */ React136.createElement(Table, { borderCollapse: "collapse" }, /* @__PURE__ */ React136.createElement(TableHead, null, /* @__PURE__ */ React136.createElement(TableRow, { isHeadRow: true, rowKey: "balance-sheet-head-row" }, /* @__PURE__ */ React136.createElement(TableCell, { isHeaderCell: true }, "Type"), /* @__PURE__ */ React136.createElement(TableCell, { isHeaderCell: true }, "Total"))), /* @__PURE__ */ React136.createElement(TableBody, null, config.map((row, idx) => /* @__PURE__ */ React136.createElement(React136.Fragment, { key: row.lineItem }, data[row.lineItem] && renderLineItem(
11563
+ return /* @__PURE__ */ React136.createElement(Table, { borderCollapse: "collapse" }, /* @__PURE__ */ React136.createElement(TableHead, null, /* @__PURE__ */ React136.createElement(TableRow, { isHeadRow: true, rowKey: "balance-sheet-head-row" }, /* @__PURE__ */ React136.createElement(TableCell, { isHeaderCell: true }, stringOverrides?.typeColumnHeader || "Type"), /* @__PURE__ */ React136.createElement(TableCell, { isHeaderCell: true }, stringOverrides?.totalColumnHeader || "Total"))), /* @__PURE__ */ React136.createElement(TableBody, null, config.map((row, idx) => /* @__PURE__ */ React136.createElement(React136.Fragment, { key: row.lineItem }, data[row.lineItem] && renderLineItem(
11535
11564
  data[row.lineItem],
11536
11565
  0,
11537
11566
  row.lineItem,
@@ -11633,11 +11662,12 @@ import { format as format4, parse, startOfDay as startOfDay2 } from "date-fns";
11633
11662
  var COMPONENT_NAME3 = "balance-sheet";
11634
11663
  var BalanceSheet = (props) => {
11635
11664
  const balanceSheetContextData = useBalanceSheet(props.effectiveDate);
11636
- return /* @__PURE__ */ React140.createElement(BalanceSheetContext.Provider, { value: balanceSheetContextData }, /* @__PURE__ */ React140.createElement(BalanceSheetView, { asWidget: props.asWidget, ...props }));
11665
+ return /* @__PURE__ */ React140.createElement(BalanceSheetContext.Provider, { value: balanceSheetContextData }, /* @__PURE__ */ React140.createElement(BalanceSheetView, { asWidget: props.asWidget, stringOverrides: props.stringOverrides, ...props }));
11637
11666
  };
11638
11667
  var BalanceSheetView = ({
11639
11668
  withExpandAllButton = true,
11640
- asWidget = false
11669
+ asWidget = false,
11670
+ stringOverrides
11641
11671
  }) => {
11642
11672
  const [effectiveDate, setEffectiveDate] = useState37(startOfDay2(/* @__PURE__ */ new Date()));
11643
11673
  const { data, isLoading, refetch } = useBalanceSheet(effectiveDate);
@@ -11666,7 +11696,7 @@ var BalanceSheetView = ({
11666
11696
  }
11667
11697
  ), withExpandAllButton && /* @__PURE__ */ React140.createElement(BalanceSheetExpandAllButton, null))
11668
11698
  },
11669
- !data || isLoading ? /* @__PURE__ */ React140.createElement("div", { className: `Layer__${COMPONENT_NAME3}__loader-container` }, /* @__PURE__ */ React140.createElement(Loader2, null)) : /* @__PURE__ */ React140.createElement(BalanceSheetTable, { data, config: BALANCE_SHEET_ROWS })
11699
+ !data || isLoading ? /* @__PURE__ */ React140.createElement("div", { className: `Layer__${COMPONENT_NAME3}__loader-container` }, /* @__PURE__ */ React140.createElement(Loader2, null)) : /* @__PURE__ */ React140.createElement(BalanceSheetTable, { data, config: BALANCE_SHEET_ROWS, stringOverrides: stringOverrides?.balanceSheetTable })
11670
11700
  )));
11671
11701
  }
11672
11702
  return /* @__PURE__ */ React140.createElement(TableProvider, null, /* @__PURE__ */ React140.createElement(
@@ -11681,7 +11711,7 @@ var BalanceSheetView = ({
11681
11711
  }
11682
11712
  ), withExpandAllButton && /* @__PURE__ */ React140.createElement(BalanceSheetExpandAllButton, null))
11683
11713
  },
11684
- !data || isLoading ? /* @__PURE__ */ React140.createElement("div", { className: `Layer__${COMPONENT_NAME3}__loader-container` }, /* @__PURE__ */ React140.createElement(Loader2, null)) : /* @__PURE__ */ React140.createElement(BalanceSheetTable, { data, config: BALANCE_SHEET_ROWS })
11714
+ !data || isLoading ? /* @__PURE__ */ React140.createElement("div", { className: `Layer__${COMPONENT_NAME3}__loader-container` }, /* @__PURE__ */ React140.createElement(Loader2, null)) : /* @__PURE__ */ React140.createElement(BalanceSheetTable, { data, config: BALANCE_SHEET_ROWS, stringOverrides: stringOverrides?.balanceSheetTable })
11685
11715
  ));
11686
11716
  };
11687
11717
 
@@ -11739,7 +11769,8 @@ var useStatementOfCashFlow = (startDate = /* @__PURE__ */ new Date(), endDate =
11739
11769
  import React141 from "react";
11740
11770
  var StatementOfCashFlowTable = ({
11741
11771
  data,
11742
- config
11772
+ config,
11773
+ stringOverrides
11743
11774
  }) => {
11744
11775
  const { isOpen, setIsOpen } = useTableExpandRow();
11745
11776
  const renderLineItem = (lineItem, depth = 0, rowKey, rowIndex) => {
@@ -11781,7 +11812,7 @@ var StatementOfCashFlowTable = ({
11781
11812
  /* @__PURE__ */ React141.createElement(TableCell, { primary: true, isCurrency: true }, lineItem.value)
11782
11813
  ));
11783
11814
  };
11784
- return /* @__PURE__ */ React141.createElement(Table, { borderCollapse: "collapse" }, /* @__PURE__ */ React141.createElement(TableHead, null, /* @__PURE__ */ React141.createElement(TableRow, { rowKey: "soc-flow-head-row", isHeadRow: true }, /* @__PURE__ */ React141.createElement(TableCell, { isHeaderCell: true }, "Type"), /* @__PURE__ */ React141.createElement(TableCell, { isHeaderCell: true }, "Total"))), /* @__PURE__ */ React141.createElement(TableBody, null, config.map((row, idx) => {
11815
+ return /* @__PURE__ */ React141.createElement(Table, { borderCollapse: "collapse" }, /* @__PURE__ */ React141.createElement(TableHead, null, /* @__PURE__ */ React141.createElement(TableRow, { rowKey: "soc-flow-head-row", isHeadRow: true }, /* @__PURE__ */ React141.createElement(TableCell, { isHeaderCell: true }, stringOverrides?.typeColumnHeader || "Type"), /* @__PURE__ */ React141.createElement(TableCell, { isHeaderCell: true }, stringOverrides?.totalColumnHeader || "Total"))), /* @__PURE__ */ React141.createElement(TableBody, null, config.map((row, idx) => {
11785
11816
  if (row.type === "line_item") {
11786
11817
  return /* @__PURE__ */ React141.createElement(React141.Fragment, { key: row.lineItem }, data[row.lineItem] && renderLineItem(
11787
11818
  data[row.lineItem],
@@ -11837,11 +11868,11 @@ var STATEMENT_OF_CASH_FLOW_ROWS = [
11837
11868
  // src/components/StatementOfCashFlow/StatementOfCashFlow.tsx
11838
11869
  import { startOfDay as startOfDay4, subWeeks } from "date-fns";
11839
11870
  var COMPONENT_NAME4 = "statement-of-cash-flow";
11840
- var StatementOfCashFlow = () => {
11871
+ var StatementOfCashFlow = ({ stringOverrides }) => {
11841
11872
  const cashContextData = useStatementOfCashFlow();
11842
- return /* @__PURE__ */ React142.createElement(StatementOfCashFlowContext.Provider, { value: cashContextData }, /* @__PURE__ */ React142.createElement(StatementOfCashFlowView, null));
11873
+ return /* @__PURE__ */ React142.createElement(StatementOfCashFlowContext.Provider, { value: cashContextData }, /* @__PURE__ */ React142.createElement(StatementOfCashFlowView, { stringOverrides }));
11843
11874
  };
11844
- var StatementOfCashFlowView = () => {
11875
+ var StatementOfCashFlowView = ({ stringOverrides }) => {
11845
11876
  const [startDate, setStartDate] = useState38(
11846
11877
  startOfDay4(subWeeks(/* @__PURE__ */ new Date(), 4))
11847
11878
  );
@@ -11879,7 +11910,8 @@ var StatementOfCashFlowView = () => {
11879
11910
  StatementOfCashFlowTable,
11880
11911
  {
11881
11912
  data,
11882
- config: STATEMENT_OF_CASH_FLOW_ROWS
11913
+ config: STATEMENT_OF_CASH_FLOW_ROWS,
11914
+ stringOverrides: stringOverrides?.statementOfCashFlowTable
11883
11915
  }
11884
11916
  )
11885
11917
  ));
@@ -12810,7 +12842,7 @@ var useParentOptions = (data) => useMemo12(
12810
12842
  );
12811
12843
 
12812
12844
  // src/components/ChartOfAccountsForm/ChartOfAccountsForm.tsx
12813
- var ChartOfAccountsForm = () => {
12845
+ var ChartOfAccountsForm = ({ stringOverrides }) => {
12814
12846
  const {
12815
12847
  form,
12816
12848
  data,
@@ -12841,7 +12873,7 @@ var ChartOfAccountsForm = () => {
12841
12873
  submitForm();
12842
12874
  }
12843
12875
  },
12844
- /* @__PURE__ */ React147.createElement("div", { className: "Layer__chart-of-accounts__sidebar__header" }, /* @__PURE__ */ React147.createElement(Text, { size: "lg" /* lg */, weight: "bold" /* bold */, className: "title" }, form?.action === "edit" ? "Edit" : "Add New", " Account"), /* @__PURE__ */ React147.createElement("div", { className: "actions" }, /* @__PURE__ */ React147.createElement(
12876
+ /* @__PURE__ */ React147.createElement("div", { className: "Layer__chart-of-accounts__sidebar__header" }, /* @__PURE__ */ React147.createElement(Text, { size: "lg" /* lg */, weight: "bold" /* bold */, className: "title" }, form?.action === "edit" ? stringOverrides?.editModeHeader || "Edit Account" : stringOverrides?.createModeHeader || "Add New Account"), /* @__PURE__ */ React147.createElement("div", { className: "actions" }, /* @__PURE__ */ React147.createElement(
12845
12877
  Button,
12846
12878
  {
12847
12879
  type: "button",
@@ -12849,7 +12881,7 @@ var ChartOfAccountsForm = () => {
12849
12881
  variant: "secondary" /* secondary */,
12850
12882
  disabled: sendingForm
12851
12883
  },
12852
- "Cancel"
12884
+ stringOverrides?.cancelButton || "Cancel"
12853
12885
  ), apiError && /* @__PURE__ */ React147.createElement(
12854
12886
  RetryButton,
12855
12887
  {
@@ -12858,7 +12890,7 @@ var ChartOfAccountsForm = () => {
12858
12890
  error: "Check connection and retry in few seconds.",
12859
12891
  disabled: sendingForm
12860
12892
  },
12861
- "Retry"
12893
+ stringOverrides?.retryButton || "Retry"
12862
12894
  ), !apiError && /* @__PURE__ */ React147.createElement(
12863
12895
  SubmitButton,
12864
12896
  {
@@ -12867,7 +12899,7 @@ var ChartOfAccountsForm = () => {
12867
12899
  active: true,
12868
12900
  disabled: sendingForm
12869
12901
  },
12870
- "Save"
12902
+ stringOverrides?.saveButton || "Save"
12871
12903
  ))),
12872
12904
  apiError && /* @__PURE__ */ React147.createElement(
12873
12905
  Text,
@@ -12878,7 +12910,7 @@ var ChartOfAccountsForm = () => {
12878
12910
  apiError
12879
12911
  ),
12880
12912
  entry && /* @__PURE__ */ React147.createElement("div", { className: "Layer__chart-of-accounts__form-edit-entry" }, /* @__PURE__ */ React147.createElement(Text, { weight: "bold" /* bold */ }, entry.name), /* @__PURE__ */ React147.createElement(Text, { weight: "bold" /* bold */ }, "$", centsToDollars(entry.balance || 0))),
12881
- /* @__PURE__ */ React147.createElement("div", { className: "Layer__chart-of-accounts__form" }, /* @__PURE__ */ React147.createElement(InputGroup, { name: "parent", label: "Parent", inline: true }, /* @__PURE__ */ React147.createElement(
12913
+ /* @__PURE__ */ React147.createElement("div", { className: "Layer__chart-of-accounts__form" }, /* @__PURE__ */ React147.createElement(InputGroup, { name: "parent", label: stringOverrides?.parentLabel || "Parent", inline: true }, /* @__PURE__ */ React147.createElement(
12882
12914
  Select2,
12883
12915
  {
12884
12916
  options: parentOptions,
@@ -12886,7 +12918,7 @@ var ChartOfAccountsForm = () => {
12886
12918
  onChange: (sel) => changeFormData("parent", sel),
12887
12919
  disabled: sendingForm
12888
12920
  }
12889
- )), /* @__PURE__ */ React147.createElement(InputGroup, { name: "name", label: "Name", inline: true }, /* @__PURE__ */ React147.createElement(
12921
+ )), /* @__PURE__ */ React147.createElement(InputGroup, { name: "name", label: stringOverrides?.nameLabel || "Name", inline: true }, /* @__PURE__ */ React147.createElement(
12890
12922
  Input,
12891
12923
  {
12892
12924
  name: "name",
@@ -12897,7 +12929,7 @@ var ChartOfAccountsForm = () => {
12897
12929
  disabled: sendingForm,
12898
12930
  onChange: (e) => changeFormData("name", e.target.value)
12899
12931
  }
12900
- )), /* @__PURE__ */ React147.createElement(InputGroup, { name: "type", label: "Type", inline: true }, /* @__PURE__ */ React147.createElement(
12932
+ )), /* @__PURE__ */ React147.createElement(InputGroup, { name: "type", label: stringOverrides?.typeLabel || "Type", inline: true }, /* @__PURE__ */ React147.createElement(
12901
12933
  Select2,
12902
12934
  {
12903
12935
  options: LEDGER_ACCOUNT_TYPES,
@@ -12907,7 +12939,7 @@ var ChartOfAccountsForm = () => {
12907
12939
  errorMessage: form?.errors?.find((x) => x.field === "type")?.message,
12908
12940
  disabled: sendingForm || form.action === "edit" || form.data.parent !== void 0
12909
12941
  }
12910
- )), /* @__PURE__ */ React147.createElement(InputGroup, { name: "subType", label: "Sub-Type", inline: true }, /* @__PURE__ */ React147.createElement(
12942
+ )), /* @__PURE__ */ React147.createElement(InputGroup, { name: "subType", label: stringOverrides?.subTypeLabel || "Sub-Type", inline: true }, /* @__PURE__ */ React147.createElement(
12911
12943
  Select2,
12912
12944
  {
12913
12945
  options: form?.data.type?.value !== void 0 ? LEDGER_ACCOUNT_SUBTYPES_FOR_TYPE[form?.data.type?.value] : LEDGER_ACCOUNT_SUBTYPES,
@@ -12915,7 +12947,7 @@ var ChartOfAccountsForm = () => {
12915
12947
  onChange: (sel) => changeFormData("subType", sel),
12916
12948
  disabled: sendingForm
12917
12949
  }
12918
- )), /* @__PURE__ */ React147.createElement(InputGroup, { name: "normality", label: "Normality", inline: true }, /* @__PURE__ */ React147.createElement(
12950
+ )), /* @__PURE__ */ React147.createElement(InputGroup, { name: "normality", label: stringOverrides?.normalityLabel || "Normality", inline: true }, /* @__PURE__ */ React147.createElement(
12919
12951
  Select2,
12920
12952
  {
12921
12953
  options: NORMALITY_OPTIONS,
@@ -12935,7 +12967,7 @@ var ChartOfAccountsForm = () => {
12935
12967
  variant: "secondary" /* secondary */,
12936
12968
  disabled: sendingForm
12937
12969
  },
12938
- "Cancel"
12970
+ stringOverrides?.cancelButton || "Cancel"
12939
12971
  ), apiError && /* @__PURE__ */ React147.createElement(
12940
12972
  RetryButton,
12941
12973
  {
@@ -12944,7 +12976,7 @@ var ChartOfAccountsForm = () => {
12944
12976
  error: "Check connection and retry in few seconds.",
12945
12977
  disabled: sendingForm
12946
12978
  },
12947
- "Retry"
12979
+ stringOverrides?.retryButton || "Retry"
12948
12980
  ), !apiError && /* @__PURE__ */ React147.createElement(
12949
12981
  SubmitButton,
12950
12982
  {
@@ -12953,16 +12985,17 @@ var ChartOfAccountsForm = () => {
12953
12985
  active: true,
12954
12986
  disabled: sendingForm
12955
12987
  },
12956
- "Save"
12988
+ stringOverrides?.saveButton || "Save"
12957
12989
  )))
12958
12990
  );
12959
12991
  };
12960
12992
 
12961
12993
  // src/components/ChartOfAccountsSidebar/ChartOfAccountsSidebar.tsx
12962
12994
  var ChartOfAccountsSidebar = ({
12963
- parentRef: _parentRef
12995
+ parentRef: _parentRef,
12996
+ stringOverrides
12964
12997
  }) => {
12965
- return /* @__PURE__ */ React148.createElement(ChartOfAccountsForm, null);
12998
+ return /* @__PURE__ */ React148.createElement(ChartOfAccountsForm, { stringOverrides });
12966
12999
  };
12967
13000
 
12968
13001
  // src/components/ChartOfAccountsTable/ChartOfAccountsTable.tsx
@@ -12972,7 +13005,8 @@ var ChartOfAccountsTable = ({
12972
13005
  containerRef,
12973
13006
  asWidget = false,
12974
13007
  withDateControl = false,
12975
- withExpandAllButton = false
13008
+ withExpandAllButton = false,
13009
+ stringOverrides
12976
13010
  }) => {
12977
13011
  const { data, isLoading, addAccount, error, isValidating, refetch, form } = useContext21(ChartOfAccountsContext);
12978
13012
  const [expandAll, setExpandAll] = useState42();
@@ -12981,7 +13015,13 @@ var ChartOfAccountsTable = ({
12981
13015
  return /* @__PURE__ */ React149.createElement(
12982
13016
  Panel,
12983
13017
  {
12984
- sidebar: /* @__PURE__ */ React149.createElement(ChartOfAccountsSidebar, { parentRef: containerRef }),
13018
+ sidebar: /* @__PURE__ */ React149.createElement(
13019
+ ChartOfAccountsSidebar,
13020
+ {
13021
+ parentRef: containerRef,
13022
+ stringOverrides: stringOverrides?.chartOfAccountsForm
13023
+ }
13024
+ ),
12985
13025
  sidebarIsOpen: Boolean(form),
12986
13026
  parentRef: containerRef
12987
13027
  },
@@ -12997,7 +13037,7 @@ var ChartOfAccountsTable = ({
12997
13037
  className: `Layer__${COMPONENT_NAME5}__title`,
12998
13038
  size: asWidget ? "secondary" /* secondary */ : "primary" /* primary */
12999
13039
  },
13000
- "Chart of Accounts"
13040
+ stringOverrides?.headerText || "Chart of Accounts"
13001
13041
  ),
13002
13042
  /* @__PURE__ */ React149.createElement(
13003
13043
  "div",
@@ -13014,10 +13054,10 @@ var ChartOfAccountsTable = ({
13014
13054
  },
13015
13055
  !expandAll || expandAll === "collapsed" ? "Expand all rows" : "Collapse all rows"
13016
13056
  )) : null,
13017
- /* @__PURE__ */ React149.createElement("div", { className: "Layer__header__actions-col" }, /* @__PURE__ */ React149.createElement(Button, { onClick: () => addAccount(), disabled: isLoading }, "Add Account"))
13057
+ /* @__PURE__ */ React149.createElement("div", { className: "Layer__header__actions-col" }, /* @__PURE__ */ React149.createElement(Button, { onClick: () => addAccount(), disabled: isLoading }, stringOverrides?.addAccountButtonText || "Add Account"))
13018
13058
  )
13019
13059
  ),
13020
- /* @__PURE__ */ React149.createElement("table", { className: "Layer__chart-of-accounts__table" }, /* @__PURE__ */ React149.createElement("thead", null, /* @__PURE__ */ React149.createElement("tr", { className: "Layer__table-row--header" }, /* @__PURE__ */ React149.createElement("th", { className: "Layer__table-header Layer__coa__name" }, "Name"), /* @__PURE__ */ React149.createElement("th", { className: "Layer__table-header Layer__coa__type" }, "Type"), /* @__PURE__ */ React149.createElement("th", { className: "Layer__table-header Layer__coa__subtype Layer__mobile--hidden" }, "Sub-Type"), /* @__PURE__ */ React149.createElement("th", { className: "Layer__table-header Layer__coa__balance" }, "Balance"), /* @__PURE__ */ React149.createElement("th", { className: "Layer__table-header Layer__coa__actions" }))), /* @__PURE__ */ React149.createElement("tbody", null, !error && data?.accounts.map((account, idx) => {
13060
+ /* @__PURE__ */ React149.createElement("table", { className: "Layer__chart-of-accounts__table" }, /* @__PURE__ */ React149.createElement("thead", null, /* @__PURE__ */ React149.createElement("tr", { className: "Layer__table-row--header" }, /* @__PURE__ */ React149.createElement("th", { className: "Layer__table-header Layer__coa__name" }, stringOverrides?.nameColumnHeader || "Name"), /* @__PURE__ */ React149.createElement("th", { className: "Layer__table-header Layer__coa__type" }, stringOverrides?.typeColumnHeader || "Type"), /* @__PURE__ */ React149.createElement("th", { className: "Layer__table-header Layer__coa__subtype Layer__mobile--hidden" }, stringOverrides?.subtypeColumnHeader || "Sub-Type"), /* @__PURE__ */ React149.createElement("th", { className: "Layer__table-header Layer__coa__balance" }, stringOverrides?.balanceColumnHeader || "Balance"), /* @__PURE__ */ React149.createElement("th", { className: "Layer__table-header Layer__coa__actions" }))), /* @__PURE__ */ React149.createElement("tbody", null, !error && data?.accounts.map((account, idx) => {
13021
13061
  const currentCumulativeIndex = cumulativeIndex;
13022
13062
  cumulativeIndex = (account.sub_accounts?.length || 0) + cumulativeIndex + 1;
13023
13063
  return /* @__PURE__ */ React149.createElement(
@@ -13144,41 +13184,41 @@ var DetailsListItem = ({
13144
13184
  };
13145
13185
 
13146
13186
  // src/components/LedgerAccountEntryDetails/LedgerAccountEntryDetails.tsx
13147
- var SourceDetailView = ({ source }) => {
13187
+ var SourceDetailView = ({ source, stringOverrides }) => {
13148
13188
  switch (source.type) {
13149
13189
  case "Transaction_Ledger_Entry_Source": {
13150
13190
  const transactionSource = source;
13151
- return /* @__PURE__ */ React154.createElement(React154.Fragment, null, /* @__PURE__ */ React154.createElement(DetailsListItem, { label: "Account name" }, transactionSource.account_name), /* @__PURE__ */ React154.createElement(DetailsListItem, { label: "Date" }, /* @__PURE__ */ React154.createElement(DateTime, { value: transactionSource.date })), /* @__PURE__ */ React154.createElement(DetailsListItem, { label: "Amount" }, `$${centsToDollars(transactionSource.amount)}`), /* @__PURE__ */ React154.createElement(DetailsListItem, { label: "Direction" }, transactionSource.direction), /* @__PURE__ */ React154.createElement(DetailsListItem, { label: "Counterparty" }, transactionSource.counterparty));
13191
+ return /* @__PURE__ */ React154.createElement(React154.Fragment, null, /* @__PURE__ */ React154.createElement(DetailsListItem, { label: stringOverrides?.accountNameLabel || "Account name" }, transactionSource.account_name), /* @__PURE__ */ React154.createElement(DetailsListItem, { label: stringOverrides?.dateLabel || "Date" }, /* @__PURE__ */ React154.createElement(DateTime, { value: transactionSource.date })), /* @__PURE__ */ React154.createElement(DetailsListItem, { label: stringOverrides?.amountLabel || "Amount" }, `$${centsToDollars(transactionSource.amount)}`), /* @__PURE__ */ React154.createElement(DetailsListItem, { label: stringOverrides?.directionLabel || "Direction" }, transactionSource.direction), /* @__PURE__ */ React154.createElement(DetailsListItem, { label: stringOverrides?.counterpartyLabel || "Counterparty" }, transactionSource.counterparty));
13152
13192
  }
13153
13193
  case "Invoice_Ledger_Entry_Source": {
13154
13194
  const invoiceSource = source;
13155
- return /* @__PURE__ */ React154.createElement(React154.Fragment, null, /* @__PURE__ */ React154.createElement(DetailsListItem, { label: "Invoice number" }, invoiceSource.invoice_number), /* @__PURE__ */ React154.createElement(DetailsListItem, { label: "Recipient name" }, invoiceSource.recipient_name), /* @__PURE__ */ React154.createElement(DetailsListItem, { label: "Date" }, /* @__PURE__ */ React154.createElement(DateTime, { value: invoiceSource.date })), /* @__PURE__ */ React154.createElement(DetailsListItem, { label: "Amount" }, `$${centsToDollars(invoiceSource.amount)}`));
13195
+ return /* @__PURE__ */ React154.createElement(React154.Fragment, null, /* @__PURE__ */ React154.createElement(DetailsListItem, { label: stringOverrides?.invoiceNumberLabel || "Invoice number" }, invoiceSource.invoice_number), /* @__PURE__ */ React154.createElement(DetailsListItem, { label: stringOverrides?.recipientNameLabel || "Recipient name" }, invoiceSource.recipient_name), /* @__PURE__ */ React154.createElement(DetailsListItem, { label: stringOverrides?.dateLabel || "Date" }, /* @__PURE__ */ React154.createElement(DateTime, { value: invoiceSource.date })), /* @__PURE__ */ React154.createElement(DetailsListItem, { label: stringOverrides?.amountLabel || "Amount" }, `$${centsToDollars(invoiceSource.amount)}`));
13156
13196
  }
13157
13197
  case "Manual_Ledger_Entry_Source": {
13158
13198
  const manualSource = source;
13159
- return /* @__PURE__ */ React154.createElement(React154.Fragment, null, /* @__PURE__ */ React154.createElement(DetailsListItem, { label: "Memo" }, manualSource.memo), /* @__PURE__ */ React154.createElement(DetailsListItem, { label: "Created by" }, manualSource.created_by));
13199
+ return /* @__PURE__ */ React154.createElement(React154.Fragment, null, /* @__PURE__ */ React154.createElement(DetailsListItem, { label: stringOverrides?.memoLabel || "Memo" }, manualSource.memo), /* @__PURE__ */ React154.createElement(DetailsListItem, { label: stringOverrides?.createdByLabel || "Created by" }, manualSource.created_by));
13160
13200
  }
13161
13201
  case "Invoice_Payment_Ledger_Entry_Source": {
13162
13202
  const invoicePaymentSource = source;
13163
- return /* @__PURE__ */ React154.createElement(React154.Fragment, null, /* @__PURE__ */ React154.createElement(DetailsListItem, { label: "Invoice number" }, invoicePaymentSource.invoice_number), /* @__PURE__ */ React154.createElement(DetailsListItem, { label: "Amount" }, `$${centsToDollars(invoicePaymentSource.amount)}`));
13203
+ return /* @__PURE__ */ React154.createElement(React154.Fragment, null, /* @__PURE__ */ React154.createElement(DetailsListItem, { label: stringOverrides?.invoiceNumberLabel || "Invoice number" }, invoicePaymentSource.invoice_number), /* @__PURE__ */ React154.createElement(DetailsListItem, { label: stringOverrides?.amountLabel || "Amount" }, `$${centsToDollars(invoicePaymentSource.amount)}`));
13164
13204
  }
13165
13205
  case "Refund_Ledger_Entry_Source": {
13166
13206
  const refundSource = source;
13167
- return /* @__PURE__ */ React154.createElement(React154.Fragment, null, /* @__PURE__ */ React154.createElement(DetailsListItem, { label: "Amount" }, `$${centsToDollars(refundSource.refunded_to_customer_amount)}`), /* @__PURE__ */ React154.createElement(DetailsListItem, { label: "Recipient name" }, refundSource.recipient_name));
13207
+ return /* @__PURE__ */ React154.createElement(React154.Fragment, null, /* @__PURE__ */ React154.createElement(DetailsListItem, { label: stringOverrides?.amountLabel || "Amount" }, `$${centsToDollars(refundSource.refunded_to_customer_amount)}`), /* @__PURE__ */ React154.createElement(DetailsListItem, { label: stringOverrides?.recipientNameLabel || "Recipient name" }, refundSource.recipient_name));
13168
13208
  }
13169
13209
  case "Opening_Balance_Ledger_Entry_Source": {
13170
13210
  const openingBalanceSource = source;
13171
- return /* @__PURE__ */ React154.createElement(React154.Fragment, null, /* @__PURE__ */ React154.createElement(DetailsListItem, { label: "Account name" }, openingBalanceSource.account_name));
13211
+ return /* @__PURE__ */ React154.createElement(React154.Fragment, null, /* @__PURE__ */ React154.createElement(DetailsListItem, { label: stringOverrides?.accountNameLabel || "Account name" }, openingBalanceSource.account_name));
13172
13212
  }
13173
13213
  case "Payout_Ledger_Entry_Source": {
13174
13214
  const payoutSource = source;
13175
- return /* @__PURE__ */ React154.createElement(React154.Fragment, null, /* @__PURE__ */ React154.createElement(DetailsListItem, { label: "Amount" }, `$${centsToDollars(payoutSource.paid_out_amount)}`), /* @__PURE__ */ React154.createElement(DetailsListItem, { label: "Processor" }, payoutSource.processor));
13215
+ return /* @__PURE__ */ React154.createElement(React154.Fragment, null, /* @__PURE__ */ React154.createElement(DetailsListItem, { label: stringOverrides?.amountLabel || "Amount" }, `$${centsToDollars(payoutSource.paid_out_amount)}`), /* @__PURE__ */ React154.createElement(DetailsListItem, { label: stringOverrides?.processorLabel || "Processor" }, payoutSource.processor));
13176
13216
  }
13177
13217
  default:
13178
13218
  return null;
13179
13219
  }
13180
13220
  };
13181
- var LedgerAccountEntryDetails = () => {
13221
+ var LedgerAccountEntryDetails = ({ stringOverrides }) => {
13182
13222
  const { entryData, isLoadingEntry, closeSelectedEntry, errorEntry } = useContext22(LedgerAccountsContext);
13183
13223
  const { totalDebit, totalCredit } = useMemo14(() => {
13184
13224
  let totalDebit2 = 0;
@@ -13192,10 +13232,10 @@ var LedgerAccountEntryDetails = () => {
13192
13232
  });
13193
13233
  return { totalDebit: totalDebit2, totalCredit: totalCredit2 };
13194
13234
  }, [entryData]);
13195
- return /* @__PURE__ */ React154.createElement("div", { className: "Layer__ledger-account__entry-details" }, /* @__PURE__ */ React154.createElement("div", { className: "Layer__ledger-account__entry-details__back-btn" }, /* @__PURE__ */ React154.createElement(BackButton, { onClick: () => closeSelectedEntry() }), /* @__PURE__ */ React154.createElement("div", { className: "Layer__ledger-account__entry-details__title-container" }, /* @__PURE__ */ React154.createElement(Text, { weight: "bold" /* bold */ }, "Transaction details"))), /* @__PURE__ */ React154.createElement(
13235
+ return /* @__PURE__ */ React154.createElement("div", { className: "Layer__ledger-account__entry-details" }, /* @__PURE__ */ React154.createElement("div", { className: "Layer__ledger-account__entry-details__back-btn" }, /* @__PURE__ */ React154.createElement(BackButton, { onClick: () => closeSelectedEntry() }), /* @__PURE__ */ React154.createElement("div", { className: "Layer__ledger-account__entry-details__title-container" }, /* @__PURE__ */ React154.createElement(Text, { weight: "bold" /* bold */ }, stringOverrides?.title || "Transaction details"))), /* @__PURE__ */ React154.createElement(
13196
13236
  DetailsList,
13197
13237
  {
13198
- title: "Transaction source",
13238
+ title: stringOverrides?.transactionSource?.header || "Transaction source",
13199
13239
  actions: /* @__PURE__ */ React154.createElement(
13200
13240
  Button,
13201
13241
  {
@@ -13207,25 +13247,32 @@ var LedgerAccountEntryDetails = () => {
13207
13247
  }
13208
13248
  )
13209
13249
  },
13210
- /* @__PURE__ */ React154.createElement(DetailsListItem, { label: "Source", isLoading: isLoadingEntry }, /* @__PURE__ */ React154.createElement(Badge, null, entryData?.source?.entity_name)),
13250
+ /* @__PURE__ */ React154.createElement(
13251
+ DetailsListItem,
13252
+ {
13253
+ label: stringOverrides?.transactionSource?.details?.sourceLabel || "Source",
13254
+ isLoading: isLoadingEntry
13255
+ },
13256
+ /* @__PURE__ */ React154.createElement(Badge, null, entryData?.source?.entity_name)
13257
+ ),
13211
13258
  entryData?.source?.display_description && /* @__PURE__ */ React154.createElement(SourceDetailView, { source: entryData?.source })
13212
13259
  ), /* @__PURE__ */ React154.createElement(
13213
13260
  DetailsList,
13214
13261
  {
13215
- title: `Journal Entry ${entryData?.id.substring(0, 5)}`,
13262
+ title: stringOverrides?.journalEntry?.header ? stringOverrides?.journalEntry?.header(entryData?.id.substring(0, 5)) : `Journal Entry ${entryData?.id.substring(0, 5)}`,
13216
13263
  className: "Layer__border-top"
13217
13264
  },
13218
- /* @__PURE__ */ React154.createElement(DetailsListItem, { label: "Entry type", isLoading: isLoadingEntry }, humanizeEnum(entryData?.entry_type ?? "")),
13219
- /* @__PURE__ */ React154.createElement(DetailsListItem, { label: "Date", isLoading: isLoadingEntry }, entryData?.entry_at && /* @__PURE__ */ React154.createElement(DateTime, { value: entryData?.entry_at })),
13220
- /* @__PURE__ */ React154.createElement(DetailsListItem, { label: "Creation date", isLoading: isLoadingEntry }, entryData?.date && /* @__PURE__ */ React154.createElement(DateTime, { value: entryData?.date })),
13221
- entryData?.reversal_id && /* @__PURE__ */ React154.createElement(DetailsListItem, { label: "Reversal", isLoading: isLoadingEntry }, entryData?.reversal_id.substring(0, 5))
13265
+ /* @__PURE__ */ React154.createElement(DetailsListItem, { label: stringOverrides?.journalEntry?.details?.entryTypeLabel || "Entry type", isLoading: isLoadingEntry }, humanizeEnum(entryData?.entry_type ?? "")),
13266
+ /* @__PURE__ */ React154.createElement(DetailsListItem, { label: stringOverrides?.journalEntry?.details?.dateLabel || "Date", isLoading: isLoadingEntry }, entryData?.entry_at && /* @__PURE__ */ React154.createElement(DateTime, { value: entryData?.entry_at })),
13267
+ /* @__PURE__ */ React154.createElement(DetailsListItem, { label: stringOverrides?.journalEntry?.details?.creationDateLabel || "Creation date", isLoading: isLoadingEntry }, entryData?.date && /* @__PURE__ */ React154.createElement(DateTime, { value: entryData?.date })),
13268
+ entryData?.reversal_id && /* @__PURE__ */ React154.createElement(DetailsListItem, { label: stringOverrides?.journalEntry?.details?.reversalLabel || "Reversal", isLoading: isLoadingEntry }, entryData?.reversal_id.substring(0, 5))
13222
13269
  ), !isLoadingEntry && !errorEntry ? /* @__PURE__ */ React154.createElement("div", { className: "Layer__ledger-account__entry-details__line-items" }, /* @__PURE__ */ React154.createElement(Card, null, /* @__PURE__ */ React154.createElement(
13223
13270
  Table,
13224
13271
  {
13225
13272
  componentName: "ledger-account__entry-details",
13226
13273
  borderCollapse: "collapse"
13227
13274
  },
13228
- /* @__PURE__ */ React154.createElement(TableHead, null, /* @__PURE__ */ React154.createElement(TableRow, { rowKey: "soc-flow-head-row", isHeadRow: true }, /* @__PURE__ */ React154.createElement(TableCell, null, "Line items"), /* @__PURE__ */ React154.createElement(TableCell, null, "Debit"), /* @__PURE__ */ React154.createElement(TableCell, null, "Credit"))),
13275
+ /* @__PURE__ */ React154.createElement(TableHead, null, /* @__PURE__ */ React154.createElement(TableRow, { rowKey: "soc-flow-head-row", isHeadRow: true }, /* @__PURE__ */ React154.createElement(TableCell, null, stringOverrides?.lineItemsTable?.lineItemsColumnHeader || "Line items"), /* @__PURE__ */ React154.createElement(TableCell, null, stringOverrides?.lineItemsTable?.debitColumnHeader || "Debit"), /* @__PURE__ */ React154.createElement(TableCell, null, stringOverrides?.lineItemsTable?.creditColumnHeader || "Credit"))),
13229
13276
  /* @__PURE__ */ React154.createElement(TableBody, null, entryData?.line_items?.map((item, index) => /* @__PURE__ */ React154.createElement(
13230
13277
  TableRow,
13231
13278
  {
@@ -13241,7 +13288,7 @@ var LedgerAccountEntryDetails = () => {
13241
13288
  rowKey: "ledger-line-item-summation",
13242
13289
  variant: "summation"
13243
13290
  },
13244
- /* @__PURE__ */ React154.createElement(TableCell, { primary: true }, "Total"),
13291
+ /* @__PURE__ */ React154.createElement(TableCell, { primary: true }, stringOverrides?.lineItemsTable?.totalRowHeader || "Total"),
13245
13292
  /* @__PURE__ */ React154.createElement(TableCell, { isCurrency: true, primary: true }, totalDebit || 0),
13246
13293
  /* @__PURE__ */ React154.createElement(TableCell, { isCurrency: true, primary: true }, totalCredit || 0)
13247
13294
  ))
@@ -13366,7 +13413,8 @@ import classNames55 from "classnames";
13366
13413
  var LedgerAccount = ({
13367
13414
  containerRef,
13368
13415
  pageSize = 15,
13369
- view
13416
+ view,
13417
+ stringOverrides
13370
13418
  }) => {
13371
13419
  const [currentPage, setCurrentPage] = useState44(1);
13372
13420
  const [initialLoad, setInitialLoad] = useState44(true);
@@ -13411,7 +13459,12 @@ var LedgerAccount = ({
13411
13459
  return /* @__PURE__ */ React156.createElement(
13412
13460
  Panel,
13413
13461
  {
13414
- sidebar: /* @__PURE__ */ React156.createElement(LedgerAccountEntryDetails, null),
13462
+ sidebar: /* @__PURE__ */ React156.createElement(
13463
+ LedgerAccountEntryDetails,
13464
+ {
13465
+ stringOverrides: stringOverrides?.ledgerEntryDetail
13466
+ }
13467
+ ),
13415
13468
  sidebarIsOpen: Boolean(selectedEntryId),
13416
13469
  parentRef: containerRef,
13417
13470
  className: "Layer__ledger-account__panel"
@@ -13438,7 +13491,7 @@ var LedgerAccount = ({
13438
13491
  },
13439
13492
  "$",
13440
13493
  centsToDollars(entry?.balance || 0)
13441
- )))), /* @__PURE__ */ React156.createElement("table", { className: "Layer__table Layer__table--hover-effect Layer__ledger-account-table" }, /* @__PURE__ */ React156.createElement("thead", null, /* @__PURE__ */ React156.createElement("tr", null, view !== "desktop" && /* @__PURE__ */ React156.createElement("th", null), view === "desktop" && /* @__PURE__ */ React156.createElement(React156.Fragment, null, /* @__PURE__ */ React156.createElement("th", { className: "Layer__table-header" }, "Date"), /* @__PURE__ */ React156.createElement("th", { className: "Layer__table-header" }, "Journal id #"), /* @__PURE__ */ React156.createElement("th", { className: "Layer__table-header" }, "Source")), view !== "mobile" && /* @__PURE__ */ React156.createElement(React156.Fragment, null, /* @__PURE__ */ React156.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, "Debit"), /* @__PURE__ */ React156.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, "Credit"), /* @__PURE__ */ React156.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, "Running balance")))), /* @__PURE__ */ React156.createElement("tbody", null, data?.map((x, index) => /* @__PURE__ */ React156.createElement(
13494
+ )))), /* @__PURE__ */ React156.createElement("table", { className: "Layer__table Layer__table--hover-effect Layer__ledger-account-table" }, /* @__PURE__ */ React156.createElement("thead", null, /* @__PURE__ */ React156.createElement("tr", null, view !== "desktop" && /* @__PURE__ */ React156.createElement("th", null), view === "desktop" && /* @__PURE__ */ React156.createElement(React156.Fragment, null, /* @__PURE__ */ React156.createElement("th", { className: "Layer__table-header" }, stringOverrides?.ledgerEntriesTable?.dateColumnHeader || "Date"), /* @__PURE__ */ React156.createElement("th", { className: "Layer__table-header" }, stringOverrides?.ledgerEntriesTable?.journalIdColumnHeader || "Journal id #"), /* @__PURE__ */ React156.createElement("th", { className: "Layer__table-header" }, stringOverrides?.ledgerEntriesTable?.sourceColumnHeader || "Source")), view !== "mobile" && /* @__PURE__ */ React156.createElement(React156.Fragment, null, /* @__PURE__ */ React156.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, stringOverrides?.ledgerEntriesTable?.debitColumnHeader || "Debit"), /* @__PURE__ */ React156.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, stringOverrides?.ledgerEntriesTable?.creditColumnHeader || "Credit"), /* @__PURE__ */ React156.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, stringOverrides?.ledgerEntriesTable?.runningBalanceColumnHeader || "Running balance")))), /* @__PURE__ */ React156.createElement("tbody", null, data?.map((x, index) => /* @__PURE__ */ React156.createElement(
13442
13495
  LedgerAccountRow,
13443
13496
  {
13444
13497
  key: x.id,
@@ -13487,7 +13540,8 @@ var ChartOfAccounts = (props) => {
13487
13540
  var ChartOfAccountsContent = ({
13488
13541
  asWidget,
13489
13542
  withDateControl,
13490
- withExpandAllButton
13543
+ withExpandAllButton,
13544
+ stringOverrides
13491
13545
  }) => {
13492
13546
  const { accountId } = useContext25(LedgerAccountsContext);
13493
13547
  const [view, setView] = useState45("desktop");
@@ -13502,14 +13556,15 @@ var ChartOfAccountsContent = ({
13502
13556
  }
13503
13557
  }
13504
13558
  });
13505
- return /* @__PURE__ */ React157.createElement(Container, { name: "chart-of-accounts", ref: containerRef, asWidget }, accountId ? /* @__PURE__ */ React157.createElement(LedgerAccount, { view, containerRef }) : /* @__PURE__ */ React157.createElement(
13559
+ return /* @__PURE__ */ React157.createElement(Container, { name: "chart-of-accounts", ref: containerRef, asWidget }, accountId ? /* @__PURE__ */ React157.createElement(LedgerAccount, { view, containerRef, stringOverrides: stringOverrides?.ledgerAccount }) : /* @__PURE__ */ React157.createElement(
13506
13560
  ChartOfAccountsTable,
13507
13561
  {
13508
13562
  asWidget,
13509
13563
  withDateControl,
13510
13564
  withExpandAllButton,
13511
13565
  view,
13512
- containerRef
13566
+ containerRef,
13567
+ stringOverrides: stringOverrides?.chartOfAccountsTable
13513
13568
  }
13514
13569
  ));
13515
13570
  };
@@ -13518,8 +13573,8 @@ var ChartOfAccountsContent = ({
13518
13573
  import React164, { useState as useState49 } from "react";
13519
13574
 
13520
13575
  // src/contexts/JournalContext/JournalContext.tsx
13521
- import { createContext as createContext13 } from "react";
13522
- var JournalContext = createContext13({
13576
+ import { createContext as createContext12 } from "react";
13577
+ var JournalContext = createContext12({
13523
13578
  data: void 0,
13524
13579
  isLoading: false,
13525
13580
  error: void 0,
@@ -14227,7 +14282,7 @@ var JournalFormEntryLines = ({
14227
14282
  };
14228
14283
 
14229
14284
  // src/components/JournalForm/JournalForm.tsx
14230
- var JournalForm = ({ config }) => {
14285
+ var JournalForm = ({ config, stringOverrides }) => {
14231
14286
  const {
14232
14287
  form,
14233
14288
  cancelForm,
@@ -14247,7 +14302,7 @@ var JournalForm = ({ config }) => {
14247
14302
  submitForm();
14248
14303
  }
14249
14304
  },
14250
- /* @__PURE__ */ React161.createElement("div", { className: "Layer__journal__sidebar__header" }, /* @__PURE__ */ React161.createElement(Text, { size: "lg" /* lg */, weight: "bold" /* bold */, className: "title" }, "Add New Entry"), /* @__PURE__ */ React161.createElement("div", { className: "actions" }, /* @__PURE__ */ React161.createElement(
14305
+ /* @__PURE__ */ React161.createElement("div", { className: "Layer__journal__sidebar__header" }, /* @__PURE__ */ React161.createElement(Text, { size: "lg" /* lg */, weight: "bold" /* bold */, className: "title" }, stringOverrides?.header && "Add New Entry"), /* @__PURE__ */ React161.createElement("div", { className: "actions" }, /* @__PURE__ */ React161.createElement(
14251
14306
  Button,
14252
14307
  {
14253
14308
  type: "button",
@@ -14255,7 +14310,7 @@ var JournalForm = ({ config }) => {
14255
14310
  variant: "secondary" /* secondary */,
14256
14311
  disabled: sendingForm
14257
14312
  },
14258
- "Cancel"
14313
+ stringOverrides?.cancelButton || "Cancel"
14259
14314
  ), apiError && /* @__PURE__ */ React161.createElement(
14260
14315
  RetryButton,
14261
14316
  {
@@ -14264,7 +14319,7 @@ var JournalForm = ({ config }) => {
14264
14319
  error: "Check connection and retry in few seconds.",
14265
14320
  disabled: sendingForm
14266
14321
  },
14267
- "Retry"
14322
+ stringOverrides?.retryButton || "Retry"
14268
14323
  ), !apiError && /* @__PURE__ */ React161.createElement(
14269
14324
  SubmitButton,
14270
14325
  {
@@ -14273,7 +14328,7 @@ var JournalForm = ({ config }) => {
14273
14328
  active: true,
14274
14329
  disabled: sendingForm
14275
14330
  },
14276
- "Save"
14331
+ stringOverrides?.saveButton || "Save"
14277
14332
  ))),
14278
14333
  apiError && /* @__PURE__ */ React161.createElement(
14279
14334
  Text,
@@ -14339,7 +14394,7 @@ var JournalForm = ({ config }) => {
14339
14394
  variant: "secondary" /* secondary */,
14340
14395
  disabled: sendingForm
14341
14396
  },
14342
- "Cancel"
14397
+ stringOverrides?.cancelButton || "Cancel"
14343
14398
  ), apiError && /* @__PURE__ */ React161.createElement(
14344
14399
  RetryButton,
14345
14400
  {
@@ -14348,7 +14403,7 @@ var JournalForm = ({ config }) => {
14348
14403
  error: "Check connection and retry in few seconds.",
14349
14404
  disabled: sendingForm
14350
14405
  },
14351
- "Retry"
14406
+ stringOverrides?.retryButton || "Retry"
14352
14407
  ), !apiError && /* @__PURE__ */ React161.createElement(
14353
14408
  SubmitButton,
14354
14409
  {
@@ -14357,7 +14412,7 @@ var JournalForm = ({ config }) => {
14357
14412
  active: true,
14358
14413
  disabled: sendingForm
14359
14414
  },
14360
- "Save"
14415
+ stringOverrides?.saveButton || "Save"
14361
14416
  ))
14362
14417
  );
14363
14418
  };
@@ -14365,13 +14420,14 @@ var JournalForm = ({ config }) => {
14365
14420
  // src/components/JournalSidebar/JournalSidebar.tsx
14366
14421
  var JournalSidebar = ({
14367
14422
  parentRef: _parentRef,
14368
- config
14423
+ config,
14424
+ stringOverrides
14369
14425
  }) => {
14370
14426
  const { selectedEntryId } = useContext30(JournalContext);
14371
14427
  if (selectedEntryId !== "new") {
14372
14428
  return /* @__PURE__ */ React162.createElement(JournalEntryDetails, null);
14373
14429
  }
14374
- return /* @__PURE__ */ React162.createElement(JournalForm, { config });
14430
+ return /* @__PURE__ */ React162.createElement(JournalForm, { config, stringOverrides });
14375
14431
  };
14376
14432
 
14377
14433
  // src/components/JournalTable/JournalTable.tsx
@@ -14380,7 +14436,8 @@ var JournalTable = ({
14380
14436
  view,
14381
14437
  containerRef,
14382
14438
  pageSize = 15,
14383
- config
14439
+ config,
14440
+ stringOverrides
14384
14441
  }) => {
14385
14442
  const [currentPage, setCurrentPage] = useState48(1);
14386
14443
  const {
@@ -14400,12 +14457,12 @@ var JournalTable = ({
14400
14457
  return /* @__PURE__ */ React163.createElement(
14401
14458
  Panel,
14402
14459
  {
14403
- sidebar: /* @__PURE__ */ React163.createElement(JournalSidebar, { parentRef: containerRef, config }),
14460
+ sidebar: /* @__PURE__ */ React163.createElement(JournalSidebar, { parentRef: containerRef, config, stringOverrides: stringOverrides?.journalForm }),
14404
14461
  sidebarIsOpen: Boolean(selectedEntryId),
14405
14462
  parentRef: containerRef
14406
14463
  },
14407
- /* @__PURE__ */ React163.createElement(Header, { className: `Layer__${COMPONENT_NAME6}__header` }, /* @__PURE__ */ React163.createElement(Heading, { className: `Layer__${COMPONENT_NAME6}__title` }, "Journal"), /* @__PURE__ */ React163.createElement("div", { className: `Layer__${COMPONENT_NAME6}__actions` }, /* @__PURE__ */ React163.createElement(Button, { onClick: () => addEntry(), disabled: isLoading }, "Add Entry"))),
14408
- /* @__PURE__ */ React163.createElement("table", { className: "Layer__table Layer__table--hover-effect Layer__journal__table" }, /* @__PURE__ */ React163.createElement("thead", null, /* @__PURE__ */ React163.createElement("tr", null, /* @__PURE__ */ React163.createElement("th", { className: "Layer__table-header" }), /* @__PURE__ */ React163.createElement("th", { className: "Layer__table-header" }, "Id"), /* @__PURE__ */ React163.createElement("th", { className: "Layer__table-header" }, "Date"), /* @__PURE__ */ React163.createElement("th", { className: "Layer__table-header" }, "Transaction"), /* @__PURE__ */ React163.createElement("th", { className: "Layer__table-header" }, "Account"), /* @__PURE__ */ React163.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, "Debit"), /* @__PURE__ */ React163.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, "Credit"))), /* @__PURE__ */ React163.createElement("tbody", null, !error && data?.map((entry, idx) => {
14464
+ /* @__PURE__ */ React163.createElement(Header, { className: `Layer__${COMPONENT_NAME6}__header` }, /* @__PURE__ */ React163.createElement(Heading, { className: `Layer__${COMPONENT_NAME6}__title` }, stringOverrides?.componentTitle || "Journal"), /* @__PURE__ */ React163.createElement("div", { className: `Layer__${COMPONENT_NAME6}__actions` }, /* @__PURE__ */ React163.createElement(Button, { onClick: () => addEntry(), disabled: isLoading }, stringOverrides?.addEntryButton || "Add Entry"))),
14465
+ /* @__PURE__ */ React163.createElement("table", { className: "Layer__table Layer__table--hover-effect Layer__journal__table" }, /* @__PURE__ */ React163.createElement("thead", null, /* @__PURE__ */ React163.createElement("tr", null, /* @__PURE__ */ React163.createElement("th", { className: "Layer__table-header" }), /* @__PURE__ */ React163.createElement("th", { className: "Layer__table-header" }, stringOverrides?.idColumnHeader || "Id"), /* @__PURE__ */ React163.createElement("th", { className: "Layer__table-header" }, stringOverrides?.dateColumnHeader || "Date"), /* @__PURE__ */ React163.createElement("th", { className: "Layer__table-header" }, stringOverrides?.transactionColumnHeader || "Transaction"), /* @__PURE__ */ React163.createElement("th", { className: "Layer__table-header" }, stringOverrides?.accountColumnHeader || "Account"), /* @__PURE__ */ React163.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, stringOverrides?.debitColumnHeader || "Debit"), /* @__PURE__ */ React163.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, stringOverrides?.creditColumnHeader || "Credit"))), /* @__PURE__ */ React163.createElement("tbody", null, !error && data?.map((entry, idx) => {
14409
14466
  return /* @__PURE__ */ React163.createElement(
14410
14467
  JournalRow,
14411
14468
  {
@@ -14452,7 +14509,8 @@ var Journal = (props) => {
14452
14509
  };
14453
14510
  var JournalContent = ({
14454
14511
  asWidget,
14455
- config = JOURNAL_CONFIG
14512
+ config = JOURNAL_CONFIG,
14513
+ stringOverrides
14456
14514
  }) => {
14457
14515
  const [view, setView] = useState49("desktop");
14458
14516
  const containerRef = useElementSize((_a, _b, { width }) => {
@@ -14466,12 +14524,20 @@ var JournalContent = ({
14466
14524
  }
14467
14525
  }
14468
14526
  });
14469
- return /* @__PURE__ */ React164.createElement(Container, { name: "journal", ref: containerRef, asWidget }, /* @__PURE__ */ React164.createElement(JournalTable, { view, containerRef, config }));
14527
+ return /* @__PURE__ */ React164.createElement(Container, { name: "journal", ref: containerRef, asWidget }, /* @__PURE__ */ React164.createElement(
14528
+ JournalTable,
14529
+ {
14530
+ view,
14531
+ containerRef,
14532
+ config,
14533
+ stringOverrides: stringOverrides?.journalTable
14534
+ }
14535
+ ));
14470
14536
  };
14471
14537
 
14472
14538
  // src/components/Tasks/Tasks.tsx
14473
14539
  import React171, {
14474
- createContext as createContext15,
14540
+ createContext as createContext14,
14475
14541
  useContext as useContext36,
14476
14542
  useEffect as useEffect44,
14477
14543
  useMemo as useMemo19,
@@ -14479,8 +14545,8 @@ import React171, {
14479
14545
  } from "react";
14480
14546
 
14481
14547
  // src/contexts/TasksContext/TasksContext.tsx
14482
- import { createContext as createContext14 } from "react";
14483
- var TasksContext = createContext14({
14548
+ import { createContext as createContext13 } from "react";
14549
+ var TasksContext = createContext13({
14484
14550
  data: void 0,
14485
14551
  isLoading: false,
14486
14552
  loadedStatus: "initial",
@@ -14908,7 +14974,7 @@ var TasksPending = () => {
14908
14974
 
14909
14975
  // src/components/Tasks/Tasks.tsx
14910
14976
  import classNames59 from "classnames";
14911
- var UseTasksContext = createContext15({
14977
+ var UseTasksContext = createContext14({
14912
14978
  data: void 0,
14913
14979
  isLoading: void 0,
14914
14980
  loadedStatus: "initial",
@@ -14920,18 +14986,21 @@ var UseTasksContext = createContext15({
14920
14986
  }
14921
14987
  });
14922
14988
  var Tasks = ({
14923
- tasksHeader,
14924
14989
  collapsable = false,
14925
14990
  defaultCollapsed = false,
14926
- collapsedWhenComplete
14991
+ collapsedWhenComplete,
14992
+ tasksHeader,
14993
+ // deprecated
14994
+ stringOverrides
14927
14995
  }) => {
14928
14996
  return /* @__PURE__ */ React171.createElement(TasksProvider, null, /* @__PURE__ */ React171.createElement(
14929
14997
  TasksComponent,
14930
14998
  {
14931
- tasksHeader,
14932
14999
  collapsable,
14933
15000
  defaultCollapsed,
14934
- collapsedWhenComplete
15001
+ collapsedWhenComplete,
15002
+ tasksHeader,
15003
+ stringOverrides
14935
15004
  }
14936
15005
  ));
14937
15006
  };
@@ -14940,10 +15009,12 @@ var TasksProvider = ({ children }) => {
14940
15009
  return /* @__PURE__ */ React171.createElement(TasksContext.Provider, { value: contextData }, children);
14941
15010
  };
14942
15011
  var TasksComponent = ({
14943
- tasksHeader,
14944
15012
  collapsable = false,
14945
15013
  defaultCollapsed = false,
14946
- collapsedWhenComplete
15014
+ collapsedWhenComplete,
15015
+ tasksHeader,
15016
+ // deprecated
15017
+ stringOverrides
14947
15018
  }) => {
14948
15019
  const { isLoading, loadedStatus, data } = useContext36(TasksContext);
14949
15020
  const allComplete = useMemo19(() => {
@@ -14966,7 +15037,7 @@ var TasksComponent = ({
14966
15037
  return /* @__PURE__ */ React171.createElement("div", { className: "Layer__tasks-component" }, /* @__PURE__ */ React171.createElement(
14967
15038
  TasksHeader,
14968
15039
  {
14969
- tasksHeader,
15040
+ tasksHeader: stringOverrides?.header || tasksHeader,
14970
15041
  collapsable,
14971
15042
  open,
14972
15043
  toggleContent: () => setOpen(!open)
@@ -15076,7 +15147,9 @@ var BookkeepingUpsellBar = ({
15076
15147
  import React175, { useState as useState54 } from "react";
15077
15148
  import classNames60 from "classnames";
15078
15149
  var BookkeepingOverview = ({
15079
- title = "Bookkeeping overview"
15150
+ title,
15151
+ // deprecated
15152
+ stringOverrides
15080
15153
  }) => {
15081
15154
  const [pnlToggle, setPnlToggle] = useState54("revenue");
15082
15155
  const [width] = useWindowSize();
@@ -15084,16 +15157,16 @@ var BookkeepingOverview = ({
15084
15157
  View,
15085
15158
  {
15086
15159
  viewClassName: "Layer__bookkeeping-overview--view",
15087
- title,
15160
+ title: stringOverrides?.title || title || "Bookkeeping overview",
15088
15161
  withSidebar: width > 1100,
15089
- sidebar: /* @__PURE__ */ React175.createElement(TasksComponent, { tasksHeader: "Bookkeeeping Tasks" })
15162
+ sidebar: /* @__PURE__ */ React175.createElement(TasksComponent, { stringOverrides: stringOverrides?.tasks })
15090
15163
  },
15091
15164
  width <= 1100 && /* @__PURE__ */ React175.createElement(
15092
15165
  TasksComponent,
15093
15166
  {
15094
- tasksHeader: "Bookkeeeping Tasks",
15095
15167
  collapsable: true,
15096
- collapsedWhenComplete: true
15168
+ collapsedWhenComplete: true,
15169
+ stringOverrides: stringOverrides?.tasks
15097
15170
  }
15098
15171
  ),
15099
15172
  /* @__PURE__ */ React175.createElement(
@@ -15103,8 +15176,13 @@ var BookkeepingOverview = ({
15103
15176
  asWidget: true,
15104
15177
  elevated: true
15105
15178
  },
15106
- /* @__PURE__ */ React175.createElement(Header, null, /* @__PURE__ */ React175.createElement(Heading, { size: "secondary" /* secondary */ }, "Profit & Loss"), /* @__PURE__ */ React175.createElement(ProfitAndLoss.DatePicker, null)),
15107
- /* @__PURE__ */ React175.createElement("div", { className: "Layer__bookkeeping-overview__summaries-row" }, /* @__PURE__ */ React175.createElement(ProfitAndLoss.Summaries, null)),
15179
+ /* @__PURE__ */ React175.createElement(Header, null, /* @__PURE__ */ React175.createElement(Heading, { size: "secondary" /* secondary */ }, stringOverrides?.profitAndLoss?.header || "Profit & Loss"), /* @__PURE__ */ React175.createElement(ProfitAndLoss.DatePicker, null)),
15180
+ /* @__PURE__ */ React175.createElement("div", { className: "Layer__bookkeeping-overview__summaries-row" }, /* @__PURE__ */ React175.createElement(
15181
+ ProfitAndLoss.Summaries,
15182
+ {
15183
+ stringOverrides: stringOverrides?.profitAndLoss?.summaries
15184
+ }
15185
+ )),
15108
15186
  /* @__PURE__ */ React175.createElement(ProfitAndLoss.Chart, null)
15109
15187
  ),
15110
15188
  /* @__PURE__ */ React175.createElement("div", { className: "Layer__bookkeeping-overview-profit-and-loss-charts" }, /* @__PURE__ */ React175.createElement(
@@ -15132,7 +15210,14 @@ var BookkeepingOverview = ({
15132
15210
  pnlToggle !== "revenue" && "bookkeeping-overview-profit-and-loss-chart--hidden"
15133
15211
  )
15134
15212
  },
15135
- /* @__PURE__ */ React175.createElement(ProfitAndLoss.DetailedCharts, { scope: "revenue", hideClose: true })
15213
+ /* @__PURE__ */ React175.createElement(
15214
+ ProfitAndLoss.DetailedCharts,
15215
+ {
15216
+ scope: "revenue",
15217
+ hideClose: true,
15218
+ stringOverrides: stringOverrides?.profitAndLoss?.detailedCharts
15219
+ }
15220
+ )
15136
15221
  ), /* @__PURE__ */ React175.createElement(
15137
15222
  Container,
15138
15223
  {
@@ -15141,7 +15226,14 @@ var BookkeepingOverview = ({
15141
15226
  pnlToggle !== "expenses" && "bookkeeping-overview-profit-and-loss-chart--hidden"
15142
15227
  )
15143
15228
  },
15144
- /* @__PURE__ */ React175.createElement(ProfitAndLoss.DetailedCharts, { scope: "expenses", hideClose: true })
15229
+ /* @__PURE__ */ React175.createElement(
15230
+ ProfitAndLoss.DetailedCharts,
15231
+ {
15232
+ scope: "expenses",
15233
+ hideClose: true,
15234
+ stringOverrides: stringOverrides?.profitAndLoss?.detailedCharts
15235
+ }
15236
+ )
15145
15237
  ))
15146
15238
  )));
15147
15239
  };
@@ -15250,7 +15342,9 @@ var AccountingOverview = ({
15250
15342
  title = "Accounting overview",
15251
15343
  enableOnboarding = false,
15252
15344
  onTransactionsToReviewClick,
15253
- middleBanner
15345
+ middleBanner,
15346
+ chartColorsList,
15347
+ stringOverrides
15254
15348
  }) => {
15255
15349
  const [pnlToggle, setPnlToggle] = useState56("revenue");
15256
15350
  return /* @__PURE__ */ React179.createElement(ProfitAndLoss, { asContainer: false }, /* @__PURE__ */ React179.createElement(View, { title, headerControls: /* @__PURE__ */ React179.createElement(ProfitAndLoss.DatePicker, null) }, enableOnboarding && /* @__PURE__ */ React179.createElement(
@@ -15258,7 +15352,12 @@ var AccountingOverview = ({
15258
15352
  {
15259
15353
  onTransactionsToReviewClick
15260
15354
  }
15261
- ), /* @__PURE__ */ React179.createElement("div", { className: "Layer__accounting-overview__summaries-row" }, /* @__PURE__ */ React179.createElement(ProfitAndLoss.Summaries, null), /* @__PURE__ */ React179.createElement(
15355
+ ), /* @__PURE__ */ React179.createElement("div", { className: "Layer__accounting-overview__summaries-row" }, /* @__PURE__ */ React179.createElement(
15356
+ ProfitAndLoss.Summaries,
15357
+ {
15358
+ stringOverrides: stringOverrides?.profitAndLoss?.summaries
15359
+ }
15360
+ ), /* @__PURE__ */ React179.createElement(
15262
15361
  TransactionToReviewCard,
15263
15362
  {
15264
15363
  usePnlDateRange: true,
@@ -15271,7 +15370,7 @@ var AccountingOverview = ({
15271
15370
  asWidget: true,
15272
15371
  elevated: true
15273
15372
  },
15274
- /* @__PURE__ */ React179.createElement(Header, null, /* @__PURE__ */ React179.createElement(Heading, { size: "secondary" /* secondary */ }, "Profit & Loss")),
15373
+ /* @__PURE__ */ React179.createElement(Header, null, /* @__PURE__ */ React179.createElement(Heading, { size: "secondary" /* secondary */ }, stringOverrides?.header || "Profit & Loss")),
15275
15374
  /* @__PURE__ */ React179.createElement(ProfitAndLoss.Chart, null)
15276
15375
  ), middleBanner && /* @__PURE__ */ React179.createElement(Container, { name: "accounting-overview-middle-banner" }, middleBanner), /* @__PURE__ */ React179.createElement("div", { className: "Layer__accounting-overview-profit-and-loss-charts" }, /* @__PURE__ */ React179.createElement(
15277
15376
  Toggle,
@@ -15298,7 +15397,15 @@ var AccountingOverview = ({
15298
15397
  pnlToggle !== "revenue" && "accounting-overview-profit-and-loss-chart--hidden"
15299
15398
  )
15300
15399
  },
15301
- /* @__PURE__ */ React179.createElement(ProfitAndLoss.DetailedCharts, { scope: "revenue", hideClose: true })
15400
+ /* @__PURE__ */ React179.createElement(
15401
+ ProfitAndLoss.DetailedCharts,
15402
+ {
15403
+ scope: "revenue",
15404
+ hideClose: true,
15405
+ stringOverrides: stringOverrides?.profitAndLoss?.detailedCharts,
15406
+ chartColorsList
15407
+ }
15408
+ )
15302
15409
  ), /* @__PURE__ */ React179.createElement(
15303
15410
  Container,
15304
15411
  {
@@ -15307,14 +15414,23 @@ var AccountingOverview = ({
15307
15414
  pnlToggle !== "expenses" && "accounting-overview-profit-and-loss-chart--hidden"
15308
15415
  )
15309
15416
  },
15310
- /* @__PURE__ */ React179.createElement(ProfitAndLoss.DetailedCharts, { scope: "expenses", hideClose: true })
15417
+ /* @__PURE__ */ React179.createElement(
15418
+ ProfitAndLoss.DetailedCharts,
15419
+ {
15420
+ scope: "expenses",
15421
+ hideClose: true,
15422
+ stringOverrides: stringOverrides?.profitAndLoss?.detailedCharts,
15423
+ chartColorsList
15424
+ }
15425
+ )
15311
15426
  ))));
15312
15427
  };
15313
15428
 
15314
15429
  // src/views/BankTransactionsWithLinkedAccounts/BankTransactionsWithLinkedAccounts.tsx
15315
15430
  import React180 from "react";
15316
15431
  var BankTransactionsWithLinkedAccounts = ({
15317
- title = "Bank transactions",
15432
+ title,
15433
+ // deprecated
15318
15434
  elevatedLinkedAccounts = true,
15319
15435
  showLedgerBalance = true,
15320
15436
  showUnlinkItem = false,
@@ -15323,15 +15439,17 @@ var BankTransactionsWithLinkedAccounts = ({
15323
15439
  hardRefreshPnlOnCategorize = false,
15324
15440
  showDescriptions,
15325
15441
  showReceiptUploads,
15326
- mobileComponent
15442
+ mobileComponent,
15443
+ stringOverrides
15327
15444
  }) => {
15328
- return /* @__PURE__ */ React180.createElement(View, { title }, /* @__PURE__ */ React180.createElement(
15445
+ return /* @__PURE__ */ React180.createElement(View, { title: stringOverrides?.title || title || "Bank transactions" }, /* @__PURE__ */ React180.createElement(
15329
15446
  LinkedAccounts,
15330
15447
  {
15331
15448
  elevated: elevatedLinkedAccounts,
15332
15449
  showLedgerBalance,
15333
15450
  showUnlinkItem,
15334
- showBreakConnection
15451
+ showBreakConnection,
15452
+ stringOverrides: stringOverrides?.linkedAccounts
15335
15453
  }
15336
15454
  ), /* @__PURE__ */ React180.createElement(
15337
15455
  BankTransactions,
@@ -15341,7 +15459,8 @@ var BankTransactionsWithLinkedAccounts = ({
15341
15459
  showReceiptUploads,
15342
15460
  mobileComponent,
15343
15461
  categorizedOnly,
15344
- hardRefreshPnlOnCategorize
15462
+ hardRefreshPnlOnCategorize,
15463
+ stringOverrides: stringOverrides?.bankTransactions
15345
15464
  }
15346
15465
  ));
15347
15466
  };
@@ -15349,32 +15468,41 @@ var BankTransactionsWithLinkedAccounts = ({
15349
15468
  // src/views/GeneralLedger/GeneralLedger.tsx
15350
15469
  import React181, { useState as useState57 } from "react";
15351
15470
  var GeneralLedgerView = ({
15352
- title = "General Ledger"
15471
+ title,
15472
+ // deprecated
15473
+ stringOverrides
15353
15474
  }) => {
15354
15475
  const [activeTab, setActiveTab] = useState57("chartOfAccounts");
15355
- return /* @__PURE__ */ React181.createElement(ProfitAndLoss, { asContainer: false }, /* @__PURE__ */ React181.createElement(View, { title }, /* @__PURE__ */ React181.createElement(
15476
+ return /* @__PURE__ */ React181.createElement(ProfitAndLoss, { asContainer: false }, /* @__PURE__ */ React181.createElement(View, { title: stringOverrides?.title || title || "General Ledger" }, /* @__PURE__ */ React181.createElement(
15356
15477
  Toggle,
15357
15478
  {
15358
15479
  name: "general-ledger-tabs",
15359
15480
  options: [
15360
15481
  {
15361
15482
  value: "chartOfAccounts",
15362
- label: "Chart of accounts"
15483
+ label: stringOverrides?.chartOfAccountsToggleOption || "Chart of accounts"
15363
15484
  },
15364
15485
  {
15365
15486
  value: "journal",
15366
- label: "Journal"
15487
+ label: stringOverrides?.journalToggleOption || "Journal"
15367
15488
  }
15368
15489
  ],
15369
15490
  selected: activeTab,
15370
15491
  onChange: (opt) => setActiveTab(opt.target.value)
15371
15492
  }
15372
- ), /* @__PURE__ */ React181.createElement(Container, { name: "generalLedger" }, activeTab === "chartOfAccounts" ? /* @__PURE__ */ React181.createElement(ChartOfAccounts, { asWidget: true, withExpandAllButton: true }) : /* @__PURE__ */ React181.createElement(Journal, null))));
15493
+ ), /* @__PURE__ */ React181.createElement(Container, { name: "generalLedger" }, activeTab === "chartOfAccounts" ? /* @__PURE__ */ React181.createElement(
15494
+ ChartOfAccounts,
15495
+ {
15496
+ asWidget: true,
15497
+ withExpandAllButton: true,
15498
+ stringOverrides: stringOverrides?.chartOfAccounts
15499
+ }
15500
+ ) : /* @__PURE__ */ React181.createElement(Journal, { stringOverrides: stringOverrides?.journal }))));
15373
15501
  };
15374
15502
 
15375
15503
  // src/views/Reports/Reports.tsx
15376
15504
  import React182, { useContext as useContext38, useRef as useRef16, useState as useState58 } from "react";
15377
- var DownloadButton2 = () => {
15505
+ var DownloadButton2 = ({ stringOverrides }) => {
15378
15506
  const { dateRange } = useContext38(ProfitAndLoss.Context);
15379
15507
  const { auth, businessId, apiUrl } = useLayerContext();
15380
15508
  const [requestFailed, setRequestFailed] = useState58(false);
@@ -15411,7 +15539,7 @@ var DownloadButton2 = () => {
15411
15539
  className: "Layer__download-retry-btn",
15412
15540
  error: "Approval failed. Check connection and retry in few seconds."
15413
15541
  },
15414
- "Retry"
15542
+ stringOverrides?.retryButtonText || "Retry"
15415
15543
  ) : /* @__PURE__ */ React182.createElement(
15416
15544
  Button,
15417
15545
  {
@@ -15419,13 +15547,13 @@ var DownloadButton2 = () => {
15419
15547
  rightIcon: /* @__PURE__ */ React182.createElement(DownloadCloud_default, { size: 12 }),
15420
15548
  onClick: handleClick
15421
15549
  },
15422
- "Download"
15550
+ stringOverrides?.downloadButtonText || "Download"
15423
15551
  );
15424
15552
  };
15425
- var Reports = ({ title = "Reports" }) => {
15553
+ var Reports = ({ title, stringOverrides }) => {
15426
15554
  const containerRef = useRef16(null);
15427
15555
  const [activeTab, setActiveTab] = useState58("profitAndLoss");
15428
- return /* @__PURE__ */ React182.createElement(View, { title }, /* @__PURE__ */ React182.createElement("div", { className: "Layer__component Layer__header__actions" }, /* @__PURE__ */ React182.createElement(
15556
+ return /* @__PURE__ */ React182.createElement(View, { title: stringOverrides?.title || title || "Reports" }, /* @__PURE__ */ React182.createElement("div", { className: "Layer__component Layer__header__actions" }, /* @__PURE__ */ React182.createElement(
15429
15557
  Toggle,
15430
15558
  {
15431
15559
  name: "reports-tabs",
@@ -15440,26 +15568,38 @@ var Reports = ({ title = "Reports" }) => {
15440
15568
  selected: activeTab,
15441
15569
  onChange: (opt) => setActiveTab(opt.target.value)
15442
15570
  }
15443
- )), /* @__PURE__ */ React182.createElement(Container, { name: "reports", ref: containerRef }, /* @__PURE__ */ React182.createElement(ProfitAndLoss, { asContainer: false }, /* @__PURE__ */ React182.createElement(ReportsPanel, { containerRef, openReport: activeTab }))));
15571
+ )), /* @__PURE__ */ React182.createElement(Container, { name: "reports", ref: containerRef }, /* @__PURE__ */ React182.createElement(ProfitAndLoss, { asContainer: false }, /* @__PURE__ */ React182.createElement(ReportsPanel, { containerRef, openReport: activeTab, stringOverrides }))));
15444
15572
  };
15445
- var ReportsPanel = ({ containerRef, openReport }) => {
15573
+ var ReportsPanel = ({ containerRef, openReport, stringOverrides }) => {
15446
15574
  const { sidebarScope } = useContext38(ProfitAndLoss.Context);
15447
15575
  return /* @__PURE__ */ React182.createElement(React182.Fragment, null, openReport === "profitAndLoss" && /* @__PURE__ */ React182.createElement(
15448
15576
  View,
15449
15577
  {
15450
15578
  type: "panel",
15451
- headerControls: /* @__PURE__ */ React182.createElement(React182.Fragment, null, /* @__PURE__ */ React182.createElement(ProfitAndLoss.DatePicker, null), /* @__PURE__ */ React182.createElement(DownloadButton2, null))
15579
+ headerControls: /* @__PURE__ */ React182.createElement(React182.Fragment, null, /* @__PURE__ */ React182.createElement(ProfitAndLoss.DatePicker, null), /* @__PURE__ */ React182.createElement(DownloadButton2, { stringOverrides: stringOverrides?.downloadButton }))
15452
15580
  },
15453
15581
  /* @__PURE__ */ React182.createElement(
15454
15582
  Panel,
15455
15583
  {
15456
- sidebar: /* @__PURE__ */ React182.createElement(ProfitAndLoss.DetailedCharts, { showDatePicker: false }),
15584
+ sidebar: /* @__PURE__ */ React182.createElement(
15585
+ ProfitAndLoss.DetailedCharts,
15586
+ {
15587
+ showDatePicker: false,
15588
+ stringOverrides: stringOverrides?.profitAndLoss?.detailedCharts
15589
+ }
15590
+ ),
15457
15591
  sidebarIsOpen: Boolean(sidebarScope),
15458
15592
  parentRef: containerRef
15459
15593
  },
15460
- /* @__PURE__ */ React182.createElement(ProfitAndLoss.Table, { asContainer: false })
15594
+ /* @__PURE__ */ React182.createElement(
15595
+ ProfitAndLoss.Table,
15596
+ {
15597
+ asContainer: false,
15598
+ stringOverrides: stringOverrides?.profitAndLoss?.table
15599
+ }
15600
+ )
15461
15601
  )
15462
- ), openReport === "balanceSheet" && /* @__PURE__ */ React182.createElement(BalanceSheet, null), openReport === "statementOfCashFlow" && /* @__PURE__ */ React182.createElement(StatementOfCashFlow, null));
15602
+ ), openReport === "balanceSheet" && /* @__PURE__ */ React182.createElement(BalanceSheet, { stringOverrides: stringOverrides?.balanceSheet }), openReport === "statementOfCashFlow" && /* @__PURE__ */ React182.createElement(StatementOfCashFlow, { stringOverrides: stringOverrides?.statementOfCashflow }));
15463
15603
  };
15464
15604
 
15465
15605
  // src/components/ProfitAndLossView/ProfitAndLossView.tsx
@@ -15471,23 +15611,30 @@ var ProfitAndLossView = (props) => {
15471
15611
  };
15472
15612
  var ProfitAndLossPanel = ({
15473
15613
  containerRef,
15614
+ stringOverrides,
15474
15615
  ...props
15475
15616
  }) => {
15476
15617
  const { sidebarScope } = useContext39(ProfitAndLoss.Context);
15477
15618
  return /* @__PURE__ */ React183.createElement(
15478
15619
  Panel,
15479
15620
  {
15480
- sidebar: /* @__PURE__ */ React183.createElement(ProfitAndLossDetailedCharts, null),
15621
+ sidebar: /* @__PURE__ */ React183.createElement(
15622
+ ProfitAndLossDetailedCharts,
15623
+ {
15624
+ stringOverrides: stringOverrides?.profitAndLossDetailedCharts
15625
+ }
15626
+ ),
15481
15627
  sidebarIsOpen: Boolean(sidebarScope),
15482
15628
  parentRef: containerRef
15483
15629
  },
15484
- /* @__PURE__ */ React183.createElement(Header, { className: `Layer__${COMPONENT_NAME7}__header` }, /* @__PURE__ */ React183.createElement(Heading, { className: "Layer__profit-and-loss__title" }, "Profit & Loss")),
15485
- /* @__PURE__ */ React183.createElement(Components, { ...props })
15630
+ /* @__PURE__ */ React183.createElement(Header, { className: `Layer__${COMPONENT_NAME7}__header` }, /* @__PURE__ */ React183.createElement(Heading, { className: "Layer__profit-and-loss__title" }, stringOverrides?.header || "Profit & Loss")),
15631
+ /* @__PURE__ */ React183.createElement(Components, { stringOverrides, ...props })
15486
15632
  );
15487
15633
  };
15488
15634
  var Components = ({
15489
15635
  hideChart = false,
15490
- hideTable = false
15636
+ hideTable = false,
15637
+ stringOverrides
15491
15638
  }) => {
15492
15639
  const { error, isLoading, isValidating, refetch } = useContext39(
15493
15640
  ProfitAndLoss.Context
@@ -15510,14 +15657,26 @@ var Components = ({
15510
15657
  className: `Layer__${COMPONENT_NAME7}__chart_with_summaries__summary-col`
15511
15658
  },
15512
15659
  /* @__PURE__ */ React183.createElement(ProfitAndLoss.DatePicker, null),
15513
- /* @__PURE__ */ React183.createElement(ProfitAndLoss.Summaries, { vertical: true, actionable: true })
15660
+ /* @__PURE__ */ React183.createElement(
15661
+ ProfitAndLoss.Summaries,
15662
+ {
15663
+ vertical: true,
15664
+ actionable: true,
15665
+ stringOverrides: stringOverrides?.profitAndLossSummaries
15666
+ }
15667
+ )
15514
15668
  ), /* @__PURE__ */ React183.createElement(
15515
15669
  "div",
15516
15670
  {
15517
15671
  className: `Layer__${COMPONENT_NAME7}__chart_with_summaries__chart-col`
15518
15672
  },
15519
15673
  /* @__PURE__ */ React183.createElement(ProfitAndLoss.Chart, null)
15520
- )), !hideTable && /* @__PURE__ */ React183.createElement(ProfitAndLoss.Table, null));
15674
+ )), !hideTable && /* @__PURE__ */ React183.createElement(
15675
+ ProfitAndLoss.Table,
15676
+ {
15677
+ stringOverrides: stringOverrides?.profitAndLossTable
15678
+ }
15679
+ ));
15521
15680
  };
15522
15681
  export {
15523
15682
  AccountingOverview,