@layerfi/components 0.1.39 → 0.1.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -4203,7 +4203,8 @@ var LinkedAccountsComponent = ({
4203
4203
  elevated,
4204
4204
  showLedgerBalance = true,
4205
4205
  showUnlinkItem = false,
4206
- showBreakConnection = false
4206
+ showBreakConnection = false,
4207
+ stringOverrides
4207
4208
  }) => {
4208
4209
  const { isLoading, error, isValidating, refetchAccounts } = (0, import_react49.useContext)(
4209
4210
  LinkedAccountsContext
@@ -4214,7 +4215,7 @@ var LinkedAccountsComponent = ({
4214
4215
  className: "Layer__linked-accounts__title",
4215
4216
  size: "secondary" /* secondary */
4216
4217
  },
4217
- "Linked Accounts"
4218
+ stringOverrides?.title || "Linked Accounts"
4218
4219
  )), isLoading && /* @__PURE__ */ import_react49.default.createElement("div", { className: "Layer__linked-accounts__loader-container" }, /* @__PURE__ */ import_react49.default.createElement(Loader2, null)), error && !isLoading ? /* @__PURE__ */ import_react49.default.createElement(
4219
4220
  DataState,
4220
4221
  {
@@ -4284,6 +4285,147 @@ var import_react72 = __toESM(require("react"));
4284
4285
  // src/components/BankTransactionList/BankTransactionListItem.tsx
4285
4286
  var import_react71 = __toESM(require("react"));
4286
4287
 
4288
+ // src/hooks/useProfitAndLoss/useProfitAndLossLTM.tsx
4289
+ var import_react51 = require("react");
4290
+ var import_date_fns4 = require("date-fns");
4291
+ var import_swr3 = __toESM(require("swr"));
4292
+ var buildDates = ({ currentDate }) => {
4293
+ return {
4294
+ startYear: (0, import_date_fns4.startOfMonth)(currentDate).getFullYear() - 1,
4295
+ startMonth: (0, import_date_fns4.startOfMonth)(currentDate).getMonth() + 1,
4296
+ endYear: (0, import_date_fns4.startOfMonth)(currentDate).getFullYear(),
4297
+ endMonth: (0, import_date_fns4.startOfMonth)(currentDate).getMonth() + 1
4298
+ };
4299
+ };
4300
+ var buildMonthsArray = (startDate, endDate) => {
4301
+ if (startDate >= endDate) {
4302
+ return [];
4303
+ }
4304
+ var dates = [];
4305
+ for (var d = startDate; d <= endDate; d.setMonth(d.getMonth() + 1)) {
4306
+ dates.push(new Date(d));
4307
+ }
4308
+ return dates;
4309
+ };
4310
+ var useProfitAndLossLTM = ({ currentDate, tagFilter, reportingBasis } = {
4311
+ currentDate: /* @__PURE__ */ new Date()
4312
+ }) => {
4313
+ const { businessId, auth, apiUrl, syncTimestamps, read, hasBeenTouched } = useLayerContext();
4314
+ const [date, setDate] = (0, import_react51.useState)(currentDate);
4315
+ const [loaded, setLoaded] = (0, import_react51.useState)("initial");
4316
+ const [data, setData] = (0, import_react51.useState)([]);
4317
+ const { startYear, startMonth, endYear, endMonth } = (0, import_react51.useMemo)(() => {
4318
+ return buildDates({ currentDate: date });
4319
+ }, [date, businessId, tagFilter, reportingBasis]);
4320
+ const {
4321
+ data: rawData,
4322
+ isLoading,
4323
+ isValidating,
4324
+ error,
4325
+ mutate
4326
+ } = (0, import_swr3.default)(
4327
+ 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(
4328
+ ","
4329
+ )}-${reportingBasis}`,
4330
+ Layer.getProfitAndLossSummaries(apiUrl, auth?.access_token, {
4331
+ params: {
4332
+ businessId,
4333
+ startYear: startYear.toString(),
4334
+ startMonth: startMonth.toString(),
4335
+ endYear: endYear.toString(),
4336
+ endMonth: endMonth.toString(),
4337
+ tagKey: tagFilter?.key,
4338
+ tagValues: tagFilter?.values?.join(","),
4339
+ reportingBasis
4340
+ }
4341
+ })
4342
+ );
4343
+ (0, import_react51.useEffect)(() => {
4344
+ const newData = data.slice();
4345
+ const newPeriod = buildMonthsArray((0, import_date_fns4.sub)(date, { years: 1 }), date);
4346
+ if (newData && newPeriod) {
4347
+ newPeriod.forEach((x) => {
4348
+ if (!newData?.find(
4349
+ (n) => x.getMonth() + 1 === n.month && x.getFullYear() === n.year
4350
+ )) {
4351
+ newData.push({
4352
+ year: x.getFullYear(),
4353
+ month: x.getMonth() + 1,
4354
+ income: 0,
4355
+ costOfGoodsSold: 0,
4356
+ grossProfit: 0,
4357
+ operatingExpenses: 0,
4358
+ profitBeforeTaxes: 0,
4359
+ taxes: 0,
4360
+ netProfit: 0,
4361
+ fullyCategorized: false,
4362
+ totalExpenses: 0,
4363
+ uncategorizedInflows: 0,
4364
+ uncategorizedOutflows: 0,
4365
+ uncategorized_transactions: 0,
4366
+ isLoading: true
4367
+ });
4368
+ }
4369
+ });
4370
+ }
4371
+ if (newData) {
4372
+ setData(
4373
+ newData.sort(
4374
+ (a, b) => Number(new Date(a.year, a.month, 1)) - Number(new Date(b.year, b.month, 1))
4375
+ )
4376
+ );
4377
+ }
4378
+ }, [startYear, startMonth]);
4379
+ (0, import_react51.useEffect)(() => {
4380
+ const newData = rawData?.data?.months?.slice();
4381
+ if (data && newData) {
4382
+ data.forEach((x) => {
4383
+ if (!newData?.find((n) => x.month === n.month && x.year === n.year)) {
4384
+ newData.push({ ...x });
4385
+ }
4386
+ });
4387
+ }
4388
+ if (newData) {
4389
+ setData(
4390
+ newData.sort(
4391
+ (a, b) => Number(new Date(a.year, a.month, 1)) - Number(new Date(b.year, b.month, 1))
4392
+ )
4393
+ );
4394
+ }
4395
+ }, [rawData]);
4396
+ (0, import_react51.useEffect)(() => {
4397
+ if (isLoading && loaded === "initial") {
4398
+ setLoaded("loading");
4399
+ return;
4400
+ }
4401
+ if (!isLoading && rawData) {
4402
+ setLoaded("complete");
4403
+ }
4404
+ }, [data, isLoading]);
4405
+ const pullData = (date2) => setDate(date2);
4406
+ (0, import_react51.useEffect)(() => {
4407
+ if (isLoading || isValidating) {
4408
+ read("PROFIT_AND_LOSS" /* PROFIT_AND_LOSS */);
4409
+ }
4410
+ }, [isLoading, isValidating]);
4411
+ (0, import_react51.useEffect)(() => {
4412
+ if (hasBeenTouched("PROFIT_AND_LOSS" /* PROFIT_AND_LOSS */)) {
4413
+ mutate();
4414
+ }
4415
+ }, [syncTimestamps]);
4416
+ const refetch = () => {
4417
+ mutate();
4418
+ };
4419
+ return {
4420
+ data,
4421
+ isLoading,
4422
+ loaded,
4423
+ error,
4424
+ pullData,
4425
+ refetch
4426
+ };
4427
+ };
4428
+
4287
4429
  // src/icons/ChevronDownFill.tsx
4288
4430
  var React57 = __toESM(require("react"));
4289
4431
  var ChevronDownFill = ({ size = 18, ...props }) => /* @__PURE__ */ React57.createElement(
@@ -4443,7 +4585,7 @@ var Scissors = ({ size = 11, ...props }) => /* @__PURE__ */ React58.createElemen
4443
4585
  var Scissors_default = Scissors;
4444
4586
 
4445
4587
  // src/components/CategorySelect/CategorySelect.tsx
4446
- var import_react54 = __toESM(require("react"));
4588
+ var import_react55 = __toESM(require("react"));
4447
4589
  var import_react_select = __toESM(require("react-select"));
4448
4590
 
4449
4591
  // src/icons/Check.tsx
@@ -4546,20 +4688,20 @@ var MinimizeTwo = ({ size = 18, ...props }) => /* @__PURE__ */ React61.createEle
4546
4688
  var MinimizeTwo_default = MinimizeTwo;
4547
4689
 
4548
4690
  // src/components/CategorySelect/CategorySelectDrawer.tsx
4549
- var import_react53 = __toESM(require("react"));
4691
+ var import_react54 = __toESM(require("react"));
4550
4692
 
4551
4693
  // src/components/BankTransactionMobileList/BusinessCategories.tsx
4552
- var import_react52 = __toESM(require("react"));
4694
+ var import_react53 = __toESM(require("react"));
4553
4695
 
4554
4696
  // src/components/ActionableList/ActionableList.tsx
4555
- var import_react51 = __toESM(require("react"));
4697
+ var import_react52 = __toESM(require("react"));
4556
4698
  var import_classnames21 = __toESM(require("classnames"));
4557
4699
  var ActionableList = ({
4558
4700
  options,
4559
4701
  onClick,
4560
4702
  selected
4561
4703
  }) => {
4562
- return /* @__PURE__ */ import_react51.default.createElement("ul", { className: "Layer__actionable-list" }, options.map((x, idx) => /* @__PURE__ */ import_react51.default.createElement(
4704
+ return /* @__PURE__ */ import_react52.default.createElement("ul", { className: "Layer__actionable-list" }, options.map((x, idx) => /* @__PURE__ */ import_react52.default.createElement(
4563
4705
  "li",
4564
4706
  {
4565
4707
  role: "button",
@@ -4570,15 +4712,15 @@ var ActionableList = ({
4570
4712
  x.asLink && "Layer__actionable-list-item--as-link"
4571
4713
  )
4572
4714
  },
4573
- /* @__PURE__ */ import_react51.default.createElement(Text, null, x.label),
4574
- !x.asLink && selected && selected.id === x.id ? /* @__PURE__ */ import_react51.default.createElement(
4715
+ /* @__PURE__ */ import_react52.default.createElement(Text, null, x.label),
4716
+ !x.asLink && selected && selected.id === x.id ? /* @__PURE__ */ import_react52.default.createElement(
4575
4717
  Check_default,
4576
4718
  {
4577
4719
  size: 16,
4578
4720
  className: "Layer__actionable-list__selected-icon"
4579
4721
  }
4580
4722
  ) : null,
4581
- x.asLink && /* @__PURE__ */ import_react51.default.createElement(
4723
+ x.asLink && /* @__PURE__ */ import_react52.default.createElement(
4582
4724
  ChevronRight_default,
4583
4725
  {
4584
4726
  size: 16,
@@ -4645,8 +4787,8 @@ var getAssignedValue = (bankTransaction) => {
4645
4787
  var BusinessCategories = ({ select }) => {
4646
4788
  const { categories } = useLayerContext();
4647
4789
  const categoryOptions = flattenCategories(categories);
4648
- const [optionsToShow, setOptionsToShow] = (0, import_react52.useState)(categoryOptions);
4649
- const [selectedGroup, setSelectedGroup] = (0, import_react52.useState)();
4790
+ const [optionsToShow, setOptionsToShow] = (0, import_react53.useState)(categoryOptions);
4791
+ const [selectedGroup, setSelectedGroup] = (0, import_react53.useState)();
4650
4792
  const onCategorySelect = (v) => {
4651
4793
  if (v.value.type === "GROUP" && v.value.items) {
4652
4794
  setOptionsToShow(v.value.items);
@@ -4655,14 +4797,14 @@ var BusinessCategories = ({ select }) => {
4655
4797
  }
4656
4798
  select(v);
4657
4799
  };
4658
- return /* @__PURE__ */ import_react52.default.createElement("div", { className: "Layer__bank-transaction-mobile-list-item__categories_list-container" }, /* @__PURE__ */ import_react52.default.createElement(
4800
+ return /* @__PURE__ */ import_react53.default.createElement("div", { className: "Layer__bank-transaction-mobile-list-item__categories_list-container" }, /* @__PURE__ */ import_react53.default.createElement(
4659
4801
  Text,
4660
4802
  {
4661
4803
  weight: "bold" /* bold */,
4662
4804
  className: "Layer__bank-transaction-mobile-list-item__categories_list-title"
4663
4805
  },
4664
4806
  selectedGroup ?? "Select category"
4665
- ), /* @__PURE__ */ import_react52.default.createElement(
4807
+ ), /* @__PURE__ */ import_react53.default.createElement(
4666
4808
  ActionableList,
4667
4809
  {
4668
4810
  options: optionsToShow,
@@ -4677,12 +4819,12 @@ var CategorySelectDrawer = ({
4677
4819
  onSelect,
4678
4820
  selected
4679
4821
  }) => {
4680
- const { setContent, close } = (0, import_react53.useContext)(DrawerContext);
4822
+ const { setContent, close } = (0, import_react54.useContext)(DrawerContext);
4681
4823
  const onDrawerCategorySelect = (value) => {
4682
4824
  close();
4683
4825
  onSelect(value);
4684
4826
  };
4685
- return /* @__PURE__ */ import_react53.default.createElement(
4827
+ return /* @__PURE__ */ import_react54.default.createElement(
4686
4828
  "button",
4687
4829
  {
4688
4830
  "aria-label": "Select category",
@@ -4691,11 +4833,11 @@ var CategorySelectDrawer = ({
4691
4833
  selected && "Layer__category-menu__drawer-btn--selected"
4692
4834
  ),
4693
4835
  onClick: () => setContent(
4694
- /* @__PURE__ */ import_react53.default.createElement(CategorySelectDrawerContent, { onSelect: onDrawerCategorySelect })
4836
+ /* @__PURE__ */ import_react54.default.createElement(CategorySelectDrawerContent, { onSelect: onDrawerCategorySelect })
4695
4837
  )
4696
4838
  },
4697
4839
  selected?.payload?.display_name ?? "Select...",
4698
- /* @__PURE__ */ import_react53.default.createElement(
4840
+ /* @__PURE__ */ import_react54.default.createElement(
4699
4841
  ChevronDown_default,
4700
4842
  {
4701
4843
  size: 16,
@@ -4706,7 +4848,7 @@ var CategorySelectDrawer = ({
4706
4848
  };
4707
4849
  var CategorySelectDrawerContent = ({
4708
4850
  onSelect
4709
- }) => /* @__PURE__ */ import_react53.default.createElement(
4851
+ }) => /* @__PURE__ */ import_react54.default.createElement(
4710
4852
  BusinessCategories,
4711
4853
  {
4712
4854
  select: (option) => {
@@ -4722,7 +4864,7 @@ var CategorySelectDrawerContent = ({
4722
4864
 
4723
4865
  // src/components/CategorySelect/CategorySelect.tsx
4724
4866
  var import_classnames23 = __toESM(require("classnames"));
4725
- var import_date_fns4 = require("date-fns");
4867
+ var import_date_fns5 = require("date-fns");
4726
4868
  var mapCategoryToOption2 = (category) => {
4727
4869
  return {
4728
4870
  type: "category" /* CATEGORY */,
@@ -4749,10 +4891,10 @@ var mapSuggestedMatchToOption = (record) => {
4749
4891
  };
4750
4892
  };
4751
4893
  var DropdownIndicator = (props) => {
4752
- return /* @__PURE__ */ import_react54.default.createElement(import_react_select.components.DropdownIndicator, { ...props }, /* @__PURE__ */ import_react54.default.createElement(ChevronDown_default, null));
4894
+ return /* @__PURE__ */ import_react55.default.createElement(import_react_select.components.DropdownIndicator, { ...props }, /* @__PURE__ */ import_react55.default.createElement(ChevronDown_default, null));
4753
4895
  };
4754
4896
  var GroupHeading = (props) => {
4755
- return /* @__PURE__ */ import_react54.default.createElement(
4897
+ return /* @__PURE__ */ import_react55.default.createElement(
4756
4898
  import_react_select.components.GroupHeading,
4757
4899
  {
4758
4900
  className: (0, import_classnames23.default)(
@@ -4768,24 +4910,24 @@ var Option2 = (props) => {
4768
4910
  return;
4769
4911
  }
4770
4912
  if (props.data.type === "match") {
4771
- return /* @__PURE__ */ import_react54.default.createElement(
4913
+ return /* @__PURE__ */ import_react55.default.createElement(
4772
4914
  import_react_select.components.Option,
4773
4915
  {
4774
4916
  ...props,
4775
4917
  className: `${props.className} Layer__select__option-content__match`
4776
4918
  },
4777
- /* @__PURE__ */ import_react54.default.createElement("div", { className: "Layer__select__option-content__match__main-row" }, /* @__PURE__ */ import_react54.default.createElement("span", { className: "Layer__select__option-content__match__date" }, props.data.payload.date && (0, import_date_fns4.format)((0, import_date_fns4.parseISO)(props.data.payload.date), DATE_FORMAT)), /* @__PURE__ */ import_react54.default.createElement("span", { className: "Layer__select__option-content__match__description" }, props.data.payload.display_name)),
4778
- /* @__PURE__ */ import_react54.default.createElement("div", { className: "Layer__select__option-content__match__amount-row" }, /* @__PURE__ */ import_react54.default.createElement("span", { className: "Layer__select__option-content__match__amount" }, "$", centsToDollars(props.data.payload.amount)))
4919
+ /* @__PURE__ */ import_react55.default.createElement("div", { className: "Layer__select__option-content__match__main-row" }, /* @__PURE__ */ import_react55.default.createElement("span", { className: "Layer__select__option-content__match__date" }, props.data.payload.date && (0, import_date_fns5.format)((0, import_date_fns5.parseISO)(props.data.payload.date), DATE_FORMAT)), /* @__PURE__ */ import_react55.default.createElement("span", { className: "Layer__select__option-content__match__description" }, props.data.payload.display_name)),
4920
+ /* @__PURE__ */ import_react55.default.createElement("div", { className: "Layer__select__option-content__match__amount-row" }, /* @__PURE__ */ import_react55.default.createElement("span", { className: "Layer__select__option-content__match__amount" }, "$", centsToDollars(props.data.payload.amount)))
4779
4921
  );
4780
4922
  }
4781
- return /* @__PURE__ */ import_react54.default.createElement(
4923
+ return /* @__PURE__ */ import_react55.default.createElement(
4782
4924
  import_react_select.components.Option,
4783
4925
  {
4784
4926
  ...props,
4785
4927
  className: `Layer__select__option-menu-content ${props.className}`
4786
4928
  },
4787
- /* @__PURE__ */ import_react54.default.createElement("div", null, props.data.payload.display_name),
4788
- props.isSelected ? /* @__PURE__ */ import_react54.default.createElement("span", { className: "Layer__select__option-menu-content-check" }, /* @__PURE__ */ import_react54.default.createElement(Check_default, { size: 16 })) : null
4929
+ /* @__PURE__ */ import_react55.default.createElement("div", null, props.data.payload.display_name),
4930
+ props.isSelected ? /* @__PURE__ */ import_react55.default.createElement("span", { className: "Layer__select__option-menu-content-check" }, /* @__PURE__ */ import_react55.default.createElement(Check_default, { size: 16 })) : null
4789
4931
  );
4790
4932
  };
4791
4933
  var allCategoriesDivider = [
@@ -4871,9 +5013,9 @@ var CategorySelect = ({
4871
5013
  const selected = value ? value : !excludeMatches && matchOptions?.length === 1 && matchOptions[0].options.length === 1 ? matchOptions[0].options[0] : void 0;
4872
5014
  const placeholder = matchOptions?.length === 1 && matchOptions[0].options.length > 1 ? `${matchOptions[0].options.length} possible matches...` : "Categorize or match...";
4873
5015
  if (asDrawer) {
4874
- return /* @__PURE__ */ import_react54.default.createElement(CategorySelectDrawer, { onSelect: onChange, selected: value });
5016
+ return /* @__PURE__ */ import_react55.default.createElement(CategorySelectDrawer, { onSelect: onChange, selected: value });
4875
5017
  }
4876
- return /* @__PURE__ */ import_react54.default.createElement(
5018
+ return /* @__PURE__ */ import_react55.default.createElement(
4877
5019
  import_react_select.default,
4878
5020
  {
4879
5021
  name,
@@ -4886,7 +5028,7 @@ var CategorySelect = ({
4886
5028
  isSearchable: true,
4887
5029
  placeholder,
4888
5030
  defaultValue: selected,
4889
- formatOptionLabel: (props) => /* @__PURE__ */ import_react54.default.createElement("div", { className: "Layer__select__option-label" }, props.type === "match" && /* @__PURE__ */ import_react54.default.createElement(Badge, { size: "small" /* SMALL */, icon: /* @__PURE__ */ import_react54.default.createElement(MinimizeTwo_default, { size: 11 }) }, "Match"), /* @__PURE__ */ import_react54.default.createElement("span", null, props.payload.display_name)),
5031
+ formatOptionLabel: (props) => /* @__PURE__ */ import_react55.default.createElement("div", { className: "Layer__select__option-label" }, props.type === "match" && /* @__PURE__ */ import_react55.default.createElement(Badge, { size: "small" /* SMALL */, icon: /* @__PURE__ */ import_react55.default.createElement(MinimizeTwo_default, { size: 11 }) }, "Match"), /* @__PURE__ */ import_react55.default.createElement("span", null, props.payload.display_name)),
4890
5032
  value,
4891
5033
  onChange: (newValue) => newValue && onChange(newValue),
4892
5034
  getOptionLabel: (category) => category.payload.display_name,
@@ -5018,7 +5160,7 @@ var Trash = ({ size = 18, ...props }) => /* @__PURE__ */ React67.createElement(
5018
5160
  var Trash_default = Trash;
5019
5161
 
5020
5162
  // src/components/Input/Input.tsx
5021
- var import_react55 = __toESM(require("react"));
5163
+ var import_react56 = __toESM(require("react"));
5022
5164
  var import_classnames24 = __toESM(require("classnames"));
5023
5165
  var Input = ({
5024
5166
  className,
@@ -5033,11 +5175,11 @@ var Input = ({
5033
5175
  leftText ? "Layer__input--with-left-text" : "",
5034
5176
  className
5035
5177
  );
5036
- return /* @__PURE__ */ import_react55.default.createElement(Tooltip, { disabled: !isInvalid || !errorMessage }, /* @__PURE__ */ import_react55.default.createElement(TooltipTrigger, { className: "Layer__input-tooltip" }, /* @__PURE__ */ import_react55.default.createElement("input", { ...props, className: baseClassName }), leftText && /* @__PURE__ */ import_react55.default.createElement("span", { className: "Layer__input-left-text" }, leftText)), /* @__PURE__ */ import_react55.default.createElement(TooltipContent, { className: "Layer__tooltip" }, errorMessage));
5178
+ return /* @__PURE__ */ import_react56.default.createElement(Tooltip, { disabled: !isInvalid || !errorMessage }, /* @__PURE__ */ import_react56.default.createElement(TooltipTrigger, { className: "Layer__input-tooltip" }, /* @__PURE__ */ import_react56.default.createElement("input", { ...props, className: baseClassName }), leftText && /* @__PURE__ */ import_react56.default.createElement("span", { className: "Layer__input-left-text" }, leftText)), /* @__PURE__ */ import_react56.default.createElement(TooltipContent, { className: "Layer__tooltip" }, errorMessage));
5037
5179
  };
5038
5180
 
5039
5181
  // src/components/Input/InputGroup.tsx
5040
- var import_react56 = __toESM(require("react"));
5182
+ var import_react57 = __toESM(require("react"));
5041
5183
  var import_classnames25 = __toESM(require("classnames"));
5042
5184
  var InputGroup = ({
5043
5185
  label,
@@ -5051,7 +5193,7 @@ var InputGroup = ({
5051
5193
  className,
5052
5194
  inline && "Layer__input-group--inline"
5053
5195
  );
5054
- return /* @__PURE__ */ import_react56.default.createElement("div", { className: baseClassName }, label && /* @__PURE__ */ import_react56.default.createElement(
5196
+ return /* @__PURE__ */ import_react57.default.createElement("div", { className: baseClassName }, label && /* @__PURE__ */ import_react57.default.createElement(
5055
5197
  Text,
5056
5198
  {
5057
5199
  as: "label",
@@ -5064,7 +5206,7 @@ var InputGroup = ({
5064
5206
  };
5065
5207
 
5066
5208
  // src/components/Input/FileInput.tsx
5067
- var import_react57 = __toESM(require("react"));
5209
+ var import_react58 = __toESM(require("react"));
5068
5210
 
5069
5211
  // src/icons/UploadCloud.tsx
5070
5212
  var React70 = __toESM(require("react"));
@@ -5119,7 +5261,7 @@ var UploadCloud_default = UploadCloud;
5119
5261
 
5120
5262
  // src/components/Input/FileInput.tsx
5121
5263
  var FileInput = ({ text = "Upload", onUpload }) => {
5122
- const hiddenFileInput = (0, import_react57.useRef)(null);
5264
+ const hiddenFileInput = (0, import_react58.useRef)(null);
5123
5265
  const onClick = () => {
5124
5266
  if (hiddenFileInput.current) {
5125
5267
  hiddenFileInput.current.click();
@@ -5131,15 +5273,15 @@ var FileInput = ({ text = "Upload", onUpload }) => {
5131
5273
  onUpload(fileUploaded);
5132
5274
  }
5133
5275
  };
5134
- return /* @__PURE__ */ import_react57.default.createElement(import_react57.default.Fragment, null, /* @__PURE__ */ import_react57.default.createElement(
5276
+ return /* @__PURE__ */ import_react58.default.createElement(import_react58.default.Fragment, null, /* @__PURE__ */ import_react58.default.createElement(
5135
5277
  Button,
5136
5278
  {
5137
5279
  onClick,
5138
5280
  variant: "secondary" /* secondary */,
5139
- rightIcon: /* @__PURE__ */ import_react57.default.createElement(UploadCloud_default, null)
5281
+ rightIcon: /* @__PURE__ */ import_react58.default.createElement(UploadCloud_default, null)
5140
5282
  },
5141
5283
  text
5142
- ), /* @__PURE__ */ import_react57.default.createElement(
5284
+ ), /* @__PURE__ */ import_react58.default.createElement(
5143
5285
  "input",
5144
5286
  {
5145
5287
  type: "file",
@@ -5151,11 +5293,11 @@ var FileInput = ({ text = "Upload", onUpload }) => {
5151
5293
  };
5152
5294
 
5153
5295
  // src/components/Input/Select.tsx
5154
- var import_react58 = __toESM(require("react"));
5296
+ var import_react59 = __toESM(require("react"));
5155
5297
  var import_react_select2 = __toESM(require("react-select"));
5156
5298
  var import_classnames26 = __toESM(require("classnames"));
5157
5299
  var DropdownIndicator2 = (props) => {
5158
- return /* @__PURE__ */ import_react58.default.createElement(import_react_select2.components.DropdownIndicator, { ...props }, /* @__PURE__ */ import_react58.default.createElement(ChevronDownFill_default, null));
5300
+ return /* @__PURE__ */ import_react59.default.createElement(import_react_select2.components.DropdownIndicator, { ...props }, /* @__PURE__ */ import_react59.default.createElement(ChevronDownFill_default, null));
5159
5301
  };
5160
5302
  var Select2 = ({
5161
5303
  name,
@@ -5174,7 +5316,7 @@ var Select2 = ({
5174
5316
  isInvalid ? "Layer__select--error" : "",
5175
5317
  className
5176
5318
  );
5177
- return /* @__PURE__ */ import_react58.default.createElement(Tooltip, { disabled: !isInvalid || !errorMessage }, /* @__PURE__ */ import_react58.default.createElement(TooltipTrigger, { className: "Layer__input-tooltip" }, /* @__PURE__ */ import_react58.default.createElement(
5319
+ return /* @__PURE__ */ import_react59.default.createElement(Tooltip, { disabled: !isInvalid || !errorMessage }, /* @__PURE__ */ import_react59.default.createElement(TooltipTrigger, { className: "Layer__input-tooltip" }, /* @__PURE__ */ import_react59.default.createElement(
5178
5320
  import_react_select2.default,
5179
5321
  {
5180
5322
  name,
@@ -5189,11 +5331,11 @@ var Select2 = ({
5189
5331
  components: { DropdownIndicator: DropdownIndicator2 },
5190
5332
  isDisabled: disabled
5191
5333
  }
5192
- )), /* @__PURE__ */ import_react58.default.createElement(TooltipContent, { className: "Layer__tooltip" }, errorMessage));
5334
+ )), /* @__PURE__ */ import_react59.default.createElement(TooltipContent, { className: "Layer__tooltip" }, errorMessage));
5193
5335
  };
5194
5336
 
5195
5337
  // src/components/Input/InputWithBadge.tsx
5196
- var import_react59 = __toESM(require("react"));
5338
+ var import_react60 = __toESM(require("react"));
5197
5339
  var import_classnames27 = __toESM(require("classnames"));
5198
5340
  var InputWithBadge = ({
5199
5341
  className,
@@ -5210,15 +5352,15 @@ var InputWithBadge = ({
5210
5352
  leftText ? "Layer__input--with-left-text" : "",
5211
5353
  className
5212
5354
  );
5213
- return /* @__PURE__ */ import_react59.default.createElement(Tooltip, { disabled: !isInvalid || !errorMessage }, /* @__PURE__ */ import_react59.default.createElement(TooltipTrigger, { className: "Layer__input-tooltip" }, /* @__PURE__ */ import_react59.default.createElement("div", { className: "Layer__input-with-badge" }, /* @__PURE__ */ import_react59.default.createElement("input", { ...props, className: baseClassName }), badge && /* @__PURE__ */ import_react59.default.createElement(Badge, { variant }, badge)), leftText && /* @__PURE__ */ import_react59.default.createElement("span", { className: "Layer__input-left-text" }, leftText)), /* @__PURE__ */ import_react59.default.createElement(TooltipContent, { className: "Layer__tooltip" }, errorMessage));
5355
+ return /* @__PURE__ */ import_react60.default.createElement(Tooltip, { disabled: !isInvalid || !errorMessage }, /* @__PURE__ */ import_react60.default.createElement(TooltipTrigger, { className: "Layer__input-tooltip" }, /* @__PURE__ */ import_react60.default.createElement("div", { className: "Layer__input-with-badge" }, /* @__PURE__ */ import_react60.default.createElement("input", { ...props, className: baseClassName }), badge && /* @__PURE__ */ import_react60.default.createElement(Badge, { variant }, badge)), leftText && /* @__PURE__ */ import_react60.default.createElement("span", { className: "Layer__input-left-text" }, leftText)), /* @__PURE__ */ import_react60.default.createElement(TooltipContent, { className: "Layer__tooltip" }, errorMessage));
5214
5356
  };
5215
5357
 
5216
5358
  // src/components/MatchForm/MatchForm.tsx
5217
- var import_react61 = __toESM(require("react"));
5359
+ var import_react62 = __toESM(require("react"));
5218
5360
 
5219
5361
  // src/components/BankTransactionRow/MatchBadge.tsx
5220
- var import_react60 = __toESM(require("react"));
5221
- var import_date_fns5 = require("date-fns");
5362
+ var import_react61 = __toESM(require("react"));
5363
+ var import_date_fns6 = require("date-fns");
5222
5364
  var MatchBadge = ({
5223
5365
  bankTransaction,
5224
5366
  classNamePrefix,
@@ -5227,11 +5369,11 @@ var MatchBadge = ({
5227
5369
  }) => {
5228
5370
  if (bankTransaction.categorization_status === "MATCHED" /* MATCHED */ && bankTransaction.match) {
5229
5371
  const { date, amount } = bankTransaction.match.bank_transaction;
5230
- return /* @__PURE__ */ import_react60.default.createElement(
5372
+ return /* @__PURE__ */ import_react61.default.createElement(
5231
5373
  Badge,
5232
5374
  {
5233
- icon: /* @__PURE__ */ import_react60.default.createElement(MinimizeTwo_default, { size: 11 }),
5234
- tooltip: /* @__PURE__ */ import_react60.default.createElement("span", { className: `${classNamePrefix}__match-tooltip` }, /* @__PURE__ */ import_react60.default.createElement("div", { className: `${classNamePrefix}__match-tooltip__date` }, (0, import_date_fns5.format)((0, import_date_fns5.parseISO)(date), dateFormat)), /* @__PURE__ */ import_react60.default.createElement("div", { className: `${classNamePrefix}__match-tooltip__description` }, bankTransaction.match?.details?.description ?? ""), /* @__PURE__ */ import_react60.default.createElement("div", { className: `${classNamePrefix}__match-tooltip__amount` }, "$", centsToDollars(amount)))
5375
+ icon: /* @__PURE__ */ import_react61.default.createElement(MinimizeTwo_default, { size: 11 }),
5376
+ tooltip: /* @__PURE__ */ import_react61.default.createElement("span", { className: `${classNamePrefix}__match-tooltip` }, /* @__PURE__ */ import_react61.default.createElement("div", { className: `${classNamePrefix}__match-tooltip__date` }, (0, import_date_fns6.format)((0, import_date_fns6.parseISO)(date), dateFormat)), /* @__PURE__ */ import_react61.default.createElement("div", { className: `${classNamePrefix}__match-tooltip__description` }, bankTransaction.match?.details?.description ?? ""), /* @__PURE__ */ import_react61.default.createElement("div", { className: `${classNamePrefix}__match-tooltip__amount` }, "$", centsToDollars(amount)))
5235
5377
  },
5236
5378
  text
5237
5379
  );
@@ -5241,7 +5383,7 @@ var MatchBadge = ({
5241
5383
 
5242
5384
  // src/components/MatchForm/MatchForm.tsx
5243
5385
  var import_classnames28 = __toESM(require("classnames"));
5244
- var import_date_fns6 = require("date-fns");
5386
+ var import_date_fns7 = require("date-fns");
5245
5387
  var MatchForm = ({
5246
5388
  classNamePrefix,
5247
5389
  bankTransaction,
@@ -5249,13 +5391,13 @@ var MatchForm = ({
5249
5391
  setSelectedMatchId,
5250
5392
  matchFormError
5251
5393
  }) => {
5252
- return /* @__PURE__ */ import_react61.default.createElement("div", { className: `${classNamePrefix}__match-table` }, /* @__PURE__ */ import_react61.default.createElement("div", { className: `${classNamePrefix}__match-table__header` }, /* @__PURE__ */ import_react61.default.createElement("div", { className: `${classNamePrefix}__match-table__date` }, "Date"), /* @__PURE__ */ import_react61.default.createElement("div", { className: `${classNamePrefix}__match-table__desc` }, "Description"), /* @__PURE__ */ import_react61.default.createElement("div", { className: `${classNamePrefix}__match-table__amount` }, "Amount"), /* @__PURE__ */ import_react61.default.createElement(
5394
+ return /* @__PURE__ */ import_react62.default.createElement("div", { className: `${classNamePrefix}__match-table` }, /* @__PURE__ */ import_react62.default.createElement("div", { className: `${classNamePrefix}__match-table__header` }, /* @__PURE__ */ import_react62.default.createElement("div", { className: `${classNamePrefix}__match-table__date` }, "Date"), /* @__PURE__ */ import_react62.default.createElement("div", { className: `${classNamePrefix}__match-table__desc` }, "Description"), /* @__PURE__ */ import_react62.default.createElement("div", { className: `${classNamePrefix}__match-table__amount` }, "Amount"), /* @__PURE__ */ import_react62.default.createElement(
5253
5395
  "div",
5254
5396
  {
5255
5397
  className: `${classNamePrefix}__match-table__status ${bankTransaction.match ? "" : "no-match"}`
5256
5398
  }
5257
5399
  )), bankTransaction.suggested_matches?.map((match, idx) => {
5258
- return /* @__PURE__ */ import_react61.default.createElement(
5400
+ return /* @__PURE__ */ import_react62.default.createElement(
5259
5401
  "div",
5260
5402
  {
5261
5403
  key: idx,
@@ -5271,15 +5413,15 @@ var MatchForm = ({
5271
5413
  setSelectedMatchId(match.id);
5272
5414
  }
5273
5415
  },
5274
- /* @__PURE__ */ import_react61.default.createElement(
5416
+ /* @__PURE__ */ import_react62.default.createElement(
5275
5417
  "div",
5276
5418
  {
5277
5419
  className: `Layer__nowrap ${classNamePrefix}__match-table__date`
5278
5420
  },
5279
- /* @__PURE__ */ import_react61.default.createElement("span", null, (0, import_date_fns6.format)((0, import_date_fns6.parseISO)(match.details.date), DATE_FORMAT)),
5280
- /* @__PURE__ */ import_react61.default.createElement("span", { className: "amount-next-to-date" }, "$", centsToDollars(match.details.amount))
5421
+ /* @__PURE__ */ import_react62.default.createElement("span", null, (0, import_date_fns7.format)((0, import_date_fns7.parseISO)(match.details.date), DATE_FORMAT)),
5422
+ /* @__PURE__ */ import_react62.default.createElement("span", { className: "amount-next-to-date" }, "$", centsToDollars(match.details.amount))
5281
5423
  ),
5282
- /* @__PURE__ */ import_react61.default.createElement("div", { className: `${classNamePrefix}__match-table__desc` }, /* @__PURE__ */ import_react61.default.createElement(
5424
+ /* @__PURE__ */ import_react62.default.createElement("div", { className: `${classNamePrefix}__match-table__desc` }, /* @__PURE__ */ import_react62.default.createElement(
5283
5425
  Text,
5284
5426
  {
5285
5427
  className: `${classNamePrefix}__match-table__desc-tooltip`,
@@ -5287,7 +5429,7 @@ var MatchForm = ({
5287
5429
  as: "span"
5288
5430
  },
5289
5431
  match.details.description
5290
- ), match.details.id === bankTransaction.match?.details.id && /* @__PURE__ */ import_react61.default.createElement("span", { className: "match-badge" }, /* @__PURE__ */ import_react61.default.createElement(
5432
+ ), match.details.id === bankTransaction.match?.details.id && /* @__PURE__ */ import_react62.default.createElement("span", { className: "match-badge" }, /* @__PURE__ */ import_react62.default.createElement(
5291
5433
  MatchBadge,
5292
5434
  {
5293
5435
  classNamePrefix,
@@ -5296,13 +5438,13 @@ var MatchForm = ({
5296
5438
  text: "Matched"
5297
5439
  }
5298
5440
  ))),
5299
- /* @__PURE__ */ import_react61.default.createElement("div", { className: `${classNamePrefix}__match-table__amount` }, "$", centsToDollars(match.details.amount)),
5300
- /* @__PURE__ */ import_react61.default.createElement(
5441
+ /* @__PURE__ */ import_react62.default.createElement("div", { className: `${classNamePrefix}__match-table__amount` }, "$", centsToDollars(match.details.amount)),
5442
+ /* @__PURE__ */ import_react62.default.createElement(
5301
5443
  "div",
5302
5444
  {
5303
5445
  className: `${classNamePrefix}__match-table__status ${bankTransaction.match ? "" : "no-match"}`
5304
5446
  },
5305
- match.details.id === bankTransaction.match?.details.id && /* @__PURE__ */ import_react61.default.createElement(
5447
+ match.details.id === bankTransaction.match?.details.id && /* @__PURE__ */ import_react62.default.createElement(
5306
5448
  MatchBadge,
5307
5449
  {
5308
5450
  classNamePrefix,
@@ -5313,13 +5455,13 @@ var MatchForm = ({
5313
5455
  )
5314
5456
  )
5315
5457
  );
5316
- }), matchFormError && /* @__PURE__ */ import_react61.default.createElement(ErrorText, null, matchFormError));
5458
+ }), matchFormError && /* @__PURE__ */ import_react62.default.createElement(ErrorText, null, matchFormError));
5317
5459
  };
5318
5460
 
5319
5461
  // src/components/MatchForm/MatchFormMobile.tsx
5320
- var import_react62 = __toESM(require("react"));
5462
+ var import_react63 = __toESM(require("react"));
5321
5463
  var import_classnames29 = __toESM(require("classnames"));
5322
- var import_date_fns7 = require("date-fns");
5464
+ var import_date_fns8 = require("date-fns");
5323
5465
  var MatchFormMobile = ({
5324
5466
  classNamePrefix,
5325
5467
  bankTransaction,
@@ -5327,8 +5469,8 @@ var MatchFormMobile = ({
5327
5469
  setSelectedMatchId,
5328
5470
  matchFormError
5329
5471
  }) => {
5330
- return /* @__PURE__ */ import_react62.default.createElement("div", { className: `${classNamePrefix}__match-list` }, bankTransaction.suggested_matches?.map((match, idx) => {
5331
- return /* @__PURE__ */ import_react62.default.createElement(
5472
+ return /* @__PURE__ */ import_react63.default.createElement("div", { className: `${classNamePrefix}__match-list` }, bankTransaction.suggested_matches?.map((match, idx) => {
5473
+ return /* @__PURE__ */ import_react63.default.createElement(
5332
5474
  "div",
5333
5475
  {
5334
5476
  key: idx,
@@ -5344,14 +5486,14 @@ var MatchFormMobile = ({
5344
5486
  setSelectedMatchId(match.id);
5345
5487
  }
5346
5488
  },
5347
- /* @__PURE__ */ import_react62.default.createElement("div", { className: `${classNamePrefix}__match-item__col-details` }, /* @__PURE__ */ import_react62.default.createElement("div", { className: `${classNamePrefix}__match-item__heading` }, /* @__PURE__ */ import_react62.default.createElement(
5489
+ /* @__PURE__ */ import_react63.default.createElement("div", { className: `${classNamePrefix}__match-item__col-details` }, /* @__PURE__ */ import_react63.default.createElement("div", { className: `${classNamePrefix}__match-item__heading` }, /* @__PURE__ */ import_react63.default.createElement(
5348
5490
  Text,
5349
5491
  {
5350
5492
  className: `${classNamePrefix}__match-item__name`,
5351
5493
  as: "span"
5352
5494
  },
5353
5495
  match.details.description
5354
- ), /* @__PURE__ */ import_react62.default.createElement(
5496
+ ), /* @__PURE__ */ import_react63.default.createElement(
5355
5497
  Text,
5356
5498
  {
5357
5499
  className: `${classNamePrefix}__match-item__amount`,
@@ -5359,16 +5501,16 @@ var MatchFormMobile = ({
5359
5501
  },
5360
5502
  "$",
5361
5503
  centsToDollars(match.details.amount)
5362
- )), /* @__PURE__ */ import_react62.default.createElement("div", { className: `${classNamePrefix}__match-item__details` }, /* @__PURE__ */ import_react62.default.createElement(
5504
+ )), /* @__PURE__ */ import_react63.default.createElement("div", { className: `${classNamePrefix}__match-item__details` }, /* @__PURE__ */ import_react63.default.createElement(
5363
5505
  Text,
5364
5506
  {
5365
5507
  className: `${classNamePrefix}__match-item__date`,
5366
5508
  size: "sm" /* sm */,
5367
5509
  as: "span"
5368
5510
  },
5369
- (0, import_date_fns7.format)((0, import_date_fns7.parseISO)(match.details.date), MONTH_DAY_FORMAT)
5511
+ (0, import_date_fns8.format)((0, import_date_fns8.parseISO)(match.details.date), MONTH_DAY_FORMAT)
5370
5512
  ))),
5371
- /* @__PURE__ */ import_react62.default.createElement("div", { className: `${classNamePrefix}__match-item__col-status` }, selectedMatchId && selectedMatchId === match.id ? /* @__PURE__ */ import_react62.default.createElement(
5513
+ /* @__PURE__ */ import_react63.default.createElement("div", { className: `${classNamePrefix}__match-item__col-status` }, selectedMatchId && selectedMatchId === match.id ? /* @__PURE__ */ import_react63.default.createElement(
5372
5514
  Check_default,
5373
5515
  {
5374
5516
  size: 16,
@@ -5376,11 +5518,11 @@ var MatchFormMobile = ({
5376
5518
  }
5377
5519
  ) : null)
5378
5520
  );
5379
- }), matchFormError && /* @__PURE__ */ import_react62.default.createElement(ErrorText, null, matchFormError));
5521
+ }), matchFormError && /* @__PURE__ */ import_react63.default.createElement(ErrorText, null, matchFormError));
5380
5522
  };
5381
5523
 
5382
5524
  // src/components/Textarea/Textarea.tsx
5383
- var import_react63 = __toESM(require("react"));
5525
+ var import_react64 = __toESM(require("react"));
5384
5526
  var import_classnames30 = __toESM(require("classnames"));
5385
5527
  var Textarea = ({
5386
5528
  className,
@@ -5393,11 +5535,11 @@ var Textarea = ({
5393
5535
  isInvalid ? "Layer__textarea--error" : "",
5394
5536
  className
5395
5537
  );
5396
- return /* @__PURE__ */ import_react63.default.createElement(Tooltip, { disabled: !isInvalid || !errorMessage }, /* @__PURE__ */ import_react63.default.createElement(TooltipTrigger, { className: "Layer__input-tooltip" }, /* @__PURE__ */ import_react63.default.createElement("textarea", { ...props, className: baseClassName })), /* @__PURE__ */ import_react63.default.createElement(TooltipContent, { className: "Layer__tooltip" }, errorMessage));
5538
+ return /* @__PURE__ */ import_react64.default.createElement(Tooltip, { disabled: !isInvalid || !errorMessage }, /* @__PURE__ */ import_react64.default.createElement(TooltipTrigger, { className: "Layer__input-tooltip" }, /* @__PURE__ */ import_react64.default.createElement("textarea", { ...props, className: baseClassName })), /* @__PURE__ */ import_react64.default.createElement(TooltipContent, { className: "Layer__tooltip" }, errorMessage));
5397
5539
  };
5398
5540
 
5399
5541
  // src/components/Toggle/Toggle.tsx
5400
- var import_react64 = __toESM(require("react"));
5542
+ var import_react65 = __toESM(require("react"));
5401
5543
  var import_classnames31 = __toESM(require("classnames"));
5402
5544
  var Toggle = ({
5403
5545
  name,
@@ -5406,9 +5548,9 @@ var Toggle = ({
5406
5548
  onChange,
5407
5549
  size = "medium" /* medium */
5408
5550
  }) => {
5409
- const [currentWidth, setCurrentWidth] = (0, import_react64.useState)(0);
5410
- const [thumbPos, setThumbPos] = (0, import_react64.useState)({ left: 0, width: 0 });
5411
- const [initialized, setInitialized] = (0, import_react64.useState)(false);
5551
+ const [currentWidth, setCurrentWidth] = (0, import_react65.useState)(0);
5552
+ const [thumbPos, setThumbPos] = (0, import_react65.useState)({ left: 0, width: 0 });
5553
+ const [initialized, setInitialized] = (0, import_react65.useState)(false);
5412
5554
  const toggleRef = useElementSize((a, b, c) => {
5413
5555
  if (c.width && c?.width !== currentWidth) {
5414
5556
  setCurrentWidth(c.width);
@@ -5443,14 +5585,14 @@ var Toggle = ({
5443
5585
  shift2 = shift2 + (size === "medium" /* medium */ ? 2 : 1.5);
5444
5586
  setThumbPos({ left: shift2, width });
5445
5587
  };
5446
- (0, import_react64.useEffect)(() => {
5588
+ (0, import_react65.useEffect)(() => {
5447
5589
  const selectedIndex = getSelectedIndex();
5448
5590
  updateThumbPosition(selectedIndex);
5449
5591
  setTimeout(() => {
5450
5592
  setInitialized(true);
5451
5593
  }, 400);
5452
5594
  }, []);
5453
- (0, import_react64.useEffect)(() => {
5595
+ (0, import_react65.useEffect)(() => {
5454
5596
  const selectedIndex = getSelectedIndex();
5455
5597
  updateThumbPosition(selectedIndex);
5456
5598
  }, [currentWidth]);
@@ -5463,7 +5605,7 @@ var Toggle = ({
5463
5605
  }
5464
5606
  return selectedIndex;
5465
5607
  };
5466
- return /* @__PURE__ */ import_react64.default.createElement("div", { className: baseClassName, ref: toggleRef }, options.map((option, index) => /* @__PURE__ */ import_react64.default.createElement(
5608
+ return /* @__PURE__ */ import_react65.default.createElement("div", { className: baseClassName, ref: toggleRef }, options.map((option, index) => /* @__PURE__ */ import_react65.default.createElement(
5467
5609
  ToggleOption,
5468
5610
  {
5469
5611
  ...option,
@@ -5476,7 +5618,7 @@ var Toggle = ({
5476
5618
  disabledMessage: option.disabledMessage,
5477
5619
  index
5478
5620
  }
5479
- )), /* @__PURE__ */ import_react64.default.createElement("span", { className: "Layer__toggle__thumb", style: { ...thumbPos } }));
5621
+ )), /* @__PURE__ */ import_react65.default.createElement("span", { className: "Layer__toggle__thumb", style: { ...thumbPos } }));
5480
5622
  };
5481
5623
  var ToggleOption = ({
5482
5624
  checked,
@@ -5492,14 +5634,14 @@ var ToggleOption = ({
5492
5634
  index
5493
5635
  }) => {
5494
5636
  if (disabled) {
5495
- return /* @__PURE__ */ import_react64.default.createElement(Tooltip, null, /* @__PURE__ */ import_react64.default.createElement(TooltipTrigger, null, /* @__PURE__ */ import_react64.default.createElement(
5637
+ return /* @__PURE__ */ import_react65.default.createElement(Tooltip, null, /* @__PURE__ */ import_react65.default.createElement(TooltipTrigger, null, /* @__PURE__ */ import_react65.default.createElement(
5496
5638
  "label",
5497
5639
  {
5498
5640
  className: `Layer__toggle-option`,
5499
5641
  "data-checked": checked,
5500
5642
  style
5501
5643
  },
5502
- /* @__PURE__ */ import_react64.default.createElement(
5644
+ /* @__PURE__ */ import_react65.default.createElement(
5503
5645
  "input",
5504
5646
  {
5505
5647
  type: "radio",
@@ -5511,17 +5653,17 @@ var ToggleOption = ({
5511
5653
  "data-idx": index
5512
5654
  }
5513
5655
  ),
5514
- /* @__PURE__ */ import_react64.default.createElement("span", { className: "Layer__toggle-option-content" }, leftIcon && /* @__PURE__ */ import_react64.default.createElement("span", { className: "Layer__toggle-option__icon" }, leftIcon), /* @__PURE__ */ import_react64.default.createElement("span", null, label))
5515
- )), /* @__PURE__ */ import_react64.default.createElement(TooltipContent, { className: "Layer__tooltip" }, disabledMessage));
5656
+ /* @__PURE__ */ import_react65.default.createElement("span", { className: "Layer__toggle-option-content" }, leftIcon && /* @__PURE__ */ import_react65.default.createElement("span", { className: "Layer__toggle-option__icon" }, leftIcon), /* @__PURE__ */ import_react65.default.createElement("span", null, label))
5657
+ )), /* @__PURE__ */ import_react65.default.createElement(TooltipContent, { className: "Layer__tooltip" }, disabledMessage));
5516
5658
  }
5517
- return /* @__PURE__ */ import_react64.default.createElement(
5659
+ return /* @__PURE__ */ import_react65.default.createElement(
5518
5660
  "label",
5519
5661
  {
5520
5662
  className: `Layer__toggle-option`,
5521
5663
  "data-checked": checked,
5522
5664
  style
5523
5665
  },
5524
- /* @__PURE__ */ import_react64.default.createElement(
5666
+ /* @__PURE__ */ import_react65.default.createElement(
5525
5667
  "input",
5526
5668
  {
5527
5669
  type: "radio",
@@ -5533,12 +5675,12 @@ var ToggleOption = ({
5533
5675
  "data-idx": index
5534
5676
  }
5535
5677
  ),
5536
- /* @__PURE__ */ import_react64.default.createElement("span", { className: "Layer__toggle-option-content" }, leftIcon && /* @__PURE__ */ import_react64.default.createElement("span", { className: "Layer__toggle-option__icon" }, leftIcon), /* @__PURE__ */ import_react64.default.createElement("span", null, label))
5678
+ /* @__PURE__ */ import_react65.default.createElement("span", { className: "Layer__toggle-option-content" }, leftIcon && /* @__PURE__ */ import_react65.default.createElement("span", { className: "Layer__toggle-option__icon" }, leftIcon), /* @__PURE__ */ import_react65.default.createElement("span", null, label))
5537
5679
  );
5538
5680
  };
5539
5681
 
5540
5682
  // src/components/ExpandedBankTransactionRow/APIErrorNotifications.tsx
5541
- var import_react65 = __toESM(require("react"));
5683
+ var import_react66 = __toESM(require("react"));
5542
5684
  var ERROR_TITLE = "Approval Failed";
5543
5685
  var ERROR_MESSAGE = "Something went wrong, try again later";
5544
5686
  var NOTIFICATION_TIME = 4e3;
@@ -5548,7 +5690,7 @@ var APIErrorNotifications = ({
5548
5690
  bankTransaction,
5549
5691
  containerWidth
5550
5692
  }) => {
5551
- const [notifications, setNotifications] = (0, import_react65.useState)([]);
5693
+ const [notifications, setNotifications] = (0, import_react66.useState)([]);
5552
5694
  const pushNotification = (title, message) => {
5553
5695
  const timestamp = (/* @__PURE__ */ new Date()).valueOf();
5554
5696
  if (notificationsCache.find(
@@ -5577,18 +5719,18 @@ var APIErrorNotifications = ({
5577
5719
  );
5578
5720
  setNotifications(notificationsCache.concat());
5579
5721
  };
5580
- (0, import_react65.useEffect)(() => {
5722
+ (0, import_react66.useEffect)(() => {
5581
5723
  if (bankTransaction.error) {
5582
5724
  pushNotification(ERROR_TITLE, ERROR_MESSAGE);
5583
5725
  }
5584
5726
  }, [bankTransaction.error]);
5585
- return /* @__PURE__ */ import_react65.default.createElement(
5727
+ return /* @__PURE__ */ import_react66.default.createElement(
5586
5728
  "div",
5587
5729
  {
5588
5730
  className: "Layer__bank-transactions__notifications",
5589
5731
  style: containerWidth ? { left: containerWidth - 324 } : {}
5590
5732
  },
5591
- notifications.filter((n) => n.bankTransactionId === bankTransaction.id).map((notification) => /* @__PURE__ */ import_react65.default.createElement(
5733
+ notifications.filter((n) => n.bankTransactionId === bankTransaction.id).map((notification) => /* @__PURE__ */ import_react66.default.createElement(
5592
5734
  Notification,
5593
5735
  {
5594
5736
  key: notification.timestamp,
@@ -5602,8 +5744,8 @@ var Notification = ({
5602
5744
  notification,
5603
5745
  deleteNotification
5604
5746
  }) => {
5605
- const [visible, setVisible] = (0, import_react65.useState)(false);
5606
- (0, import_react65.useEffect)(() => {
5747
+ const [visible, setVisible] = (0, import_react66.useState)(false);
5748
+ (0, import_react66.useEffect)(() => {
5607
5749
  setVisible(true);
5608
5750
  const timer = setTimeout(() => {
5609
5751
  hideNotification();
@@ -5616,20 +5758,20 @@ var Notification = ({
5616
5758
  deleteNotification(notification.timestamp);
5617
5759
  }, FADE_OUT_TIME_WAIT);
5618
5760
  };
5619
- return /* @__PURE__ */ import_react65.default.createElement(
5761
+ return /* @__PURE__ */ import_react66.default.createElement(
5620
5762
  "div",
5621
5763
  {
5622
5764
  className: `Layer__bank-transactions__notification ${visible ? "notification-enter" : "notification-exit"}`,
5623
5765
  onClick: hideNotification
5624
5766
  },
5625
- /* @__PURE__ */ import_react65.default.createElement("div", { className: "Layer__bank-transactions__notification-content" }, /* @__PURE__ */ import_react65.default.createElement("div", { className: "Layer__bank-transactions__notification-icon" }, /* @__PURE__ */ import_react65.default.createElement(AlertOctagon_default, { size: 14 })), /* @__PURE__ */ import_react65.default.createElement("div", { className: "Layer__bank-transactions__notification-text" }, /* @__PURE__ */ import_react65.default.createElement(
5767
+ /* @__PURE__ */ import_react66.default.createElement("div", { className: "Layer__bank-transactions__notification-content" }, /* @__PURE__ */ import_react66.default.createElement("div", { className: "Layer__bank-transactions__notification-icon" }, /* @__PURE__ */ import_react66.default.createElement(AlertOctagon_default, { size: 14 })), /* @__PURE__ */ import_react66.default.createElement("div", { className: "Layer__bank-transactions__notification-text" }, /* @__PURE__ */ import_react66.default.createElement(
5626
5768
  Text,
5627
5769
  {
5628
5770
  as: "span",
5629
5771
  className: "Layer__bank-transactions__notification-title"
5630
5772
  },
5631
5773
  notification.title
5632
- ), /* @__PURE__ */ import_react65.default.createElement(
5774
+ ), /* @__PURE__ */ import_react66.default.createElement(
5633
5775
  Text,
5634
5776
  {
5635
5777
  as: "span",
@@ -5642,149 +5784,6 @@ var Notification = ({
5642
5784
 
5643
5785
  // src/components/ExpandedBankTransactionRow/ExpandedBankTransactionRow.tsx
5644
5786
  var import_classnames32 = __toESM(require("classnames"));
5645
-
5646
- // src/hooks/useProfitAndLoss/useProfitAndLossLTM.tsx
5647
- var import_react66 = require("react");
5648
- var import_date_fns8 = require("date-fns");
5649
- var import_swr3 = __toESM(require("swr"));
5650
- var buildDates = ({ currentDate }) => {
5651
- return {
5652
- startYear: (0, import_date_fns8.startOfMonth)(currentDate).getFullYear() - 1,
5653
- startMonth: (0, import_date_fns8.startOfMonth)(currentDate).getMonth() + 1,
5654
- endYear: (0, import_date_fns8.startOfMonth)(currentDate).getFullYear(),
5655
- endMonth: (0, import_date_fns8.startOfMonth)(currentDate).getMonth() + 1
5656
- };
5657
- };
5658
- var buildMonthsArray = (startDate, endDate) => {
5659
- if (startDate >= endDate) {
5660
- return [];
5661
- }
5662
- var dates = [];
5663
- for (var d = startDate; d <= endDate; d.setMonth(d.getMonth() + 1)) {
5664
- dates.push(new Date(d));
5665
- }
5666
- return dates;
5667
- };
5668
- var useProfitAndLossLTM = ({ currentDate, tagFilter, reportingBasis } = {
5669
- currentDate: /* @__PURE__ */ new Date()
5670
- }) => {
5671
- const { businessId, auth, apiUrl, syncTimestamps, read, hasBeenTouched } = useLayerContext();
5672
- const [date, setDate] = (0, import_react66.useState)(currentDate);
5673
- const [loaded, setLoaded] = (0, import_react66.useState)("initial");
5674
- const [data, setData] = (0, import_react66.useState)([]);
5675
- const { startYear, startMonth, endYear, endMonth } = (0, import_react66.useMemo)(() => {
5676
- return buildDates({ currentDate: date });
5677
- }, [date, businessId, tagFilter, reportingBasis]);
5678
- const {
5679
- data: rawData,
5680
- isLoading,
5681
- isValidating,
5682
- error,
5683
- mutate
5684
- } = (0, import_swr3.default)(
5685
- 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(
5686
- ","
5687
- )}-${reportingBasis}`,
5688
- Layer.getProfitAndLossSummaries(apiUrl, auth?.access_token, {
5689
- params: {
5690
- businessId,
5691
- startYear: startYear.toString(),
5692
- startMonth: startMonth.toString(),
5693
- endYear: endYear.toString(),
5694
- endMonth: endMonth.toString(),
5695
- tagKey: tagFilter?.key,
5696
- tagValues: tagFilter?.values?.join(","),
5697
- reportingBasis
5698
- }
5699
- })
5700
- );
5701
- (0, import_react66.useEffect)(() => {
5702
- const newData = data.slice();
5703
- const newPeriod = buildMonthsArray((0, import_date_fns8.sub)(date, { years: 1 }), date);
5704
- if (newData && newPeriod) {
5705
- newPeriod.forEach((x) => {
5706
- if (!newData?.find(
5707
- (n) => x.getMonth() + 1 === n.month && x.getFullYear() === n.year
5708
- )) {
5709
- newData.push({
5710
- year: x.getFullYear(),
5711
- month: x.getMonth() + 1,
5712
- income: 0,
5713
- costOfGoodsSold: 0,
5714
- grossProfit: 0,
5715
- operatingExpenses: 0,
5716
- profitBeforeTaxes: 0,
5717
- taxes: 0,
5718
- netProfit: 0,
5719
- fullyCategorized: false,
5720
- totalExpenses: 0,
5721
- uncategorizedInflows: 0,
5722
- uncategorizedOutflows: 0,
5723
- uncategorized_transactions: 0,
5724
- isLoading: true
5725
- });
5726
- }
5727
- });
5728
- }
5729
- if (newData) {
5730
- setData(
5731
- newData.sort(
5732
- (a, b) => Number(new Date(a.year, a.month, 1)) - Number(new Date(b.year, b.month, 1))
5733
- )
5734
- );
5735
- }
5736
- }, [startYear, startMonth]);
5737
- (0, import_react66.useEffect)(() => {
5738
- const newData = rawData?.data?.months?.slice();
5739
- if (data && newData) {
5740
- data.forEach((x) => {
5741
- if (!newData?.find((n) => x.month === n.month && x.year === n.year)) {
5742
- newData.push({ ...x });
5743
- }
5744
- });
5745
- }
5746
- if (newData) {
5747
- setData(
5748
- newData.sort(
5749
- (a, b) => Number(new Date(a.year, a.month, 1)) - Number(new Date(b.year, b.month, 1))
5750
- )
5751
- );
5752
- }
5753
- }, [rawData]);
5754
- (0, import_react66.useEffect)(() => {
5755
- if (isLoading && loaded === "initial") {
5756
- setLoaded("loading");
5757
- return;
5758
- }
5759
- if (!isLoading && rawData) {
5760
- setLoaded("complete");
5761
- }
5762
- }, [data, isLoading]);
5763
- const pullData = (date2) => setDate(date2);
5764
- (0, import_react66.useEffect)(() => {
5765
- if (isLoading || isValidating) {
5766
- read("PROFIT_AND_LOSS" /* PROFIT_AND_LOSS */);
5767
- }
5768
- }, [isLoading, isValidating]);
5769
- (0, import_react66.useEffect)(() => {
5770
- if (hasBeenTouched("PROFIT_AND_LOSS" /* PROFIT_AND_LOSS */)) {
5771
- mutate();
5772
- }
5773
- }, [syncTimestamps]);
5774
- const refetch = () => {
5775
- mutate();
5776
- };
5777
- return {
5778
- data,
5779
- isLoading,
5780
- loaded,
5781
- error,
5782
- pullData,
5783
- refetch
5784
- };
5785
- };
5786
-
5787
- // src/components/ExpandedBankTransactionRow/ExpandedBankTransactionRow.tsx
5788
5787
  var isAlreadyMatched2 = (bankTransaction) => {
5789
5788
  if (bankTransaction?.match) {
5790
5789
  const foundMatch = bankTransaction.suggested_matches?.find(
@@ -6336,7 +6335,8 @@ var BankTransactionRow = ({
6336
6335
  initialLoad,
6337
6336
  showDescriptions,
6338
6337
  showReceiptUploads,
6339
- hardRefreshPnlOnCategorize
6338
+ hardRefreshPnlOnCategorize,
6339
+ stringOverrides
6340
6340
  }) => {
6341
6341
  const expandedRowRef = (0, import_react69.useRef)(null);
6342
6342
  const [showRetry, setShowRetry] = (0, import_react69.useState)(false);
@@ -6562,7 +6562,7 @@ var BankTransactionRow = ({
6562
6562
  active: open,
6563
6563
  action: categorized ? "save" /* SAVE */ : "update" /* UPDATE */
6564
6564
  },
6565
- categorized ? "Update" : "Approve"
6565
+ categorized ? stringOverrides?.updateButtonText || "Update" : stringOverrides?.approveButtonText || "Approve"
6566
6566
  ) : null,
6567
6567
  /* @__PURE__ */ import_react69.default.createElement(
6568
6568
  IconButton,
@@ -6644,7 +6644,8 @@ var BankTransactionListItem = ({
6644
6644
  showReceiptUploads,
6645
6645
  hardRefreshPnlOnCategorize,
6646
6646
  containerWidth,
6647
- removeTransaction
6647
+ removeTransaction,
6648
+ stringOverrides
6648
6649
  }) => {
6649
6650
  const expandedRowRef = (0, import_react71.useRef)(null);
6650
6651
  const [showRetry, setShowRetry] = (0, import_react71.useState)(false);
@@ -6737,7 +6738,7 @@ var BankTransactionListItem = ({
6737
6738
  close: () => setOpen(false),
6738
6739
  categorized,
6739
6740
  asListItem: true,
6740
- submitBtnText: categorized ? "Update" : "Approve",
6741
+ submitBtnText: categorized ? stringOverrides?.updateButtonText || "Update" : stringOverrides?.approveButtonText || "Approve",
6741
6742
  containerWidth,
6742
6743
  showDescriptions,
6743
6744
  showReceiptUploads,
@@ -6767,7 +6768,7 @@ var BankTransactionListItem = ({
6767
6768
  processing: bankTransaction.processing,
6768
6769
  action: !categorized ? "save" /* SAVE */ : "update" /* UPDATE */
6769
6770
  },
6770
- !categorized ? "Approve" : "Update"
6771
+ !categorized ? stringOverrides?.approveButtonText || "Approve" : stringOverrides?.updateButtonText || "Update"
6771
6772
  ) : null, !categorized && showRetry ? /* @__PURE__ */ import_react71.default.createElement(
6772
6773
  RetryButton,
6773
6774
  {
@@ -6792,7 +6793,8 @@ var BankTransactionList = ({
6792
6793
  containerWidth,
6793
6794
  showDescriptions = false,
6794
6795
  showReceiptUploads = false,
6795
- hardRefreshPnlOnCategorize = false
6796
+ hardRefreshPnlOnCategorize = false,
6797
+ stringOverrides
6796
6798
  }) => {
6797
6799
  return /* @__PURE__ */ import_react72.default.createElement("ul", { className: "Layer__bank-transactions__list" }, bankTransactions?.map(
6798
6800
  (bankTransaction, index) => /* @__PURE__ */ import_react72.default.createElement(
@@ -6807,7 +6809,8 @@ var BankTransactionList = ({
6807
6809
  containerWidth,
6808
6810
  showDescriptions,
6809
6811
  showReceiptUploads,
6810
- hardRefreshPnlOnCategorize
6812
+ hardRefreshPnlOnCategorize,
6813
+ stringOverrides
6811
6814
  }
6812
6815
  )
6813
6816
  ));
@@ -7626,6 +7629,7 @@ var BankTransactionsTable = ({
7626
7629
  showDescriptions = false,
7627
7630
  showReceiptUploads = false,
7628
7631
  hardRefreshPnlOnCategorize = false,
7632
+ stringOverrides,
7629
7633
  isSyncing = false,
7630
7634
  page,
7631
7635
  lastPage,
@@ -7637,7 +7641,7 @@ var BankTransactionsTable = ({
7637
7641
  width: "100%",
7638
7642
  className: "Layer__table Layer__bank-transactions__table with-cell-separators"
7639
7643
  },
7640
- /* @__PURE__ */ import_react86.default.createElement("thead", null, /* @__PURE__ */ import_react86.default.createElement("tr", null, /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__bank-transactions__date-col" }, "Date"), /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__bank-transactions__tx-col" }, "Transaction"), /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__bank-transactions__account-col" }, "Account"), /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount Layer__table-cell__amount-col" }, "Amount"), categorizeView && editable ? /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__table-header--primary Layer__table-cell__category-col" }, "Categorize") : /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__table-cell__category-col" }, "Category"))),
7644
+ /* @__PURE__ */ import_react86.default.createElement("thead", null, /* @__PURE__ */ import_react86.default.createElement("tr", null, /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__bank-transactions__date-col" }, stringOverrides?.transactionsTable?.dateColumnHeaderText || "Date"), /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__bank-transactions__tx-col" }, stringOverrides?.transactionsTable?.transactionColumnHeaderText || "Transaction"), /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__bank-transactions__account-col" }, stringOverrides?.transactionsTable?.accountColumnHeaderText || "Account"), /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount Layer__table-cell__amount-col" }, stringOverrides?.transactionsTable?.amountColumnHeaderText || "Amount"), categorizeView && editable ? /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__table-header--primary Layer__table-cell__category-col" }, stringOverrides?.transactionsTable?.categorizeColumnHeaderText || "Categorize") : /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__table-cell__category-col" }, stringOverrides?.transactionsTable?.categoryColumnHeaderText || "Category"))),
7641
7645
  isLoading && page && page === 1 ? /* @__PURE__ */ import_react86.default.createElement(BankTransactionsLoader, { isLoading: true }) : null,
7642
7646
  !isLoading && isSyncing && page && page === 1 ? /* @__PURE__ */ import_react86.default.createElement(BankTransactionsLoader, { isLoading: false }) : null,
7643
7647
  /* @__PURE__ */ import_react86.default.createElement("tbody", null, !isLoading && bankTransactions?.map(
@@ -7654,7 +7658,8 @@ var BankTransactionsTable = ({
7654
7658
  containerWidth,
7655
7659
  showDescriptions,
7656
7660
  showReceiptUploads,
7657
- hardRefreshPnlOnCategorize
7661
+ hardRefreshPnlOnCategorize,
7662
+ stringOverrides: stringOverrides?.bankTransactionCTAs
7658
7663
  }
7659
7664
  )
7660
7665
  ), isSyncing && (lastPage || (!bankTransactions || bankTransactions.length === 0) && page === 1) ? /* @__PURE__ */ import_react86.default.createElement("tr", null, /* @__PURE__ */ import_react86.default.createElement("td", { colSpan: 3 }, /* @__PURE__ */ import_react86.default.createElement(
@@ -8429,7 +8434,9 @@ var Tabs = ({ name, options, selected, onChange }) => {
8429
8434
  // src/components/BankTransactions/BankTransactionsHeader.tsx
8430
8435
  var import_classnames42 = __toESM(require("classnames"));
8431
8436
  var import_date_fns15 = require("date-fns");
8432
- var DownloadButton = () => {
8437
+ var DownloadButton = ({
8438
+ downloadButtonTextOverride
8439
+ }) => {
8433
8440
  const { auth, businessId, apiUrl } = useLayerContext();
8434
8441
  const [requestFailed, setRequestFailed] = (0, import_react95.useState)(false);
8435
8442
  const handleClick = async () => {
@@ -8471,7 +8478,7 @@ var DownloadButton = () => {
8471
8478
  rightIcon: /* @__PURE__ */ import_react95.default.createElement(DownloadCloud_default, { size: 12 }),
8472
8479
  onClick: handleClick
8473
8480
  },
8474
- "Download"
8481
+ downloadButtonTextOverride || "Download"
8475
8482
  );
8476
8483
  };
8477
8484
  var BankTransactionsHeader = ({
@@ -8486,6 +8493,7 @@ var BankTransactionsHeader = ({
8486
8493
  listView,
8487
8494
  dateRange,
8488
8495
  setDateRange,
8496
+ stringOverrides,
8489
8497
  isSyncing
8490
8498
  }) => {
8491
8499
  const { business } = useLayerContext();
@@ -8505,7 +8513,7 @@ var BankTransactionsHeader = ({
8505
8513
  className: "Layer__bank-transactions__title",
8506
8514
  size: asWidget ? "secondary" /* secondary */ : "secondary" /* secondary */
8507
8515
  },
8508
- "Transactions"
8516
+ stringOverrides?.header || "Transactions"
8509
8517
  ), isSyncing && /* @__PURE__ */ import_react95.default.createElement(
8510
8518
  SyncingComponent,
8511
8519
  {
@@ -8529,7 +8537,12 @@ var BankTransactionsHeader = ({
8529
8537
  minDate: getEarliestDateToBrowse(business)
8530
8538
  }
8531
8539
  ) : null),
8532
- /* @__PURE__ */ import_react95.default.createElement("div", { className: "Layer__header__actions-wrapper" }, !categorizedOnly && !(mobileComponent == "mobileList" && listView) && categorizeView && /* @__PURE__ */ import_react95.default.createElement("div", { className: "Layer__header__actions" }, /* @__PURE__ */ import_react95.default.createElement(DownloadButton, null), /* @__PURE__ */ import_react95.default.createElement(
8540
+ /* @__PURE__ */ import_react95.default.createElement("div", { className: "Layer__header__actions-wrapper" }, !categorizedOnly && !(mobileComponent == "mobileList" && listView) && categorizeView && /* @__PURE__ */ import_react95.default.createElement("div", { className: "Layer__header__actions" }, /* @__PURE__ */ import_react95.default.createElement(
8541
+ DownloadButton,
8542
+ {
8543
+ downloadButtonTextOverride: stringOverrides?.downloadButton
8544
+ }
8545
+ ), /* @__PURE__ */ import_react95.default.createElement(
8533
8546
  Toggle,
8534
8547
  {
8535
8548
  name: "bank-transaction-display",
@@ -8647,7 +8660,8 @@ var BankTransactionsContent = ({
8647
8660
  monthlyView = false,
8648
8661
  mobileComponent,
8649
8662
  filters: inputFilters,
8650
- hideHeader = false
8663
+ hideHeader = false,
8664
+ stringOverrides
8651
8665
  }) => {
8652
8666
  const [currentPage, setCurrentPage] = (0, import_react97.useState)(1);
8653
8667
  const [initialLoad, setInitialLoad] = (0, import_react97.useState)(true);
@@ -8804,6 +8818,7 @@ var BankTransactionsContent = ({
8804
8818
  listView,
8805
8819
  dateRange,
8806
8820
  setDateRange: (v) => setDateRange(v),
8821
+ stringOverrides: stringOverrides?.bankTransactionsHeader,
8807
8822
  isDataLoading: isLoading,
8808
8823
  isSyncing
8809
8824
  }
@@ -8823,6 +8838,7 @@ var BankTransactionsContent = ({
8823
8838
  showReceiptUploads,
8824
8839
  page: currentPage,
8825
8840
  hardRefreshPnlOnCategorize,
8841
+ stringOverrides,
8826
8842
  lastPage: isLastPage,
8827
8843
  onRefresh: refetch
8828
8844
  }
@@ -8834,7 +8850,8 @@ var BankTransactionsContent = ({
8834
8850
  editable,
8835
8851
  removeTransaction,
8836
8852
  containerWidth,
8837
- hardRefreshPnlOnCategorize
8853
+ hardRefreshPnlOnCategorize,
8854
+ stringOverrides: stringOverrides?.bankTransactionCTAs
8838
8855
  }
8839
8856
  ) : null,
8840
8857
  !isLoading && listView && mobileComponent === "mobileList" ? /* @__PURE__ */ import_react97.default.createElement(
@@ -10234,7 +10251,8 @@ var DetailedTable = ({
10234
10251
  filters,
10235
10252
  sortBy,
10236
10253
  hoveredItem,
10237
- setHoveredItem
10254
+ setHoveredItem,
10255
+ stringOverrides
10238
10256
  }) => {
10239
10257
  const buildColClass = (column) => {
10240
10258
  return (0, import_classnames44.default)(
@@ -10250,7 +10268,8 @@ var DetailedTable = ({
10250
10268
  className: buildColClass("category"),
10251
10269
  onClick: () => sortBy(sidebarScope ?? "expenses", "category")
10252
10270
  },
10253
- "Category ",
10271
+ stringOverrides?.categoryColumnHeader || "Category",
10272
+ " ",
10254
10273
  /* @__PURE__ */ import_react105.default.createElement(SortArrows_default, { className: "Layer__sort-arrows" })
10255
10274
  ), /* @__PURE__ */ import_react105.default.createElement(
10256
10275
  "th",
@@ -10258,7 +10277,8 @@ var DetailedTable = ({
10258
10277
  className: buildColClass("type"),
10259
10278
  onClick: () => sortBy(sidebarScope ?? "expenses", "type")
10260
10279
  },
10261
- "Type ",
10280
+ stringOverrides?.typeColumnHeader || "Type",
10281
+ " ",
10262
10282
  /* @__PURE__ */ import_react105.default.createElement(SortArrows_default, { className: "Layer__sort-arrows" })
10263
10283
  ), /* @__PURE__ */ import_react105.default.createElement("th", null), /* @__PURE__ */ import_react105.default.createElement(
10264
10284
  "th",
@@ -10266,7 +10286,8 @@ var DetailedTable = ({
10266
10286
  className: buildColClass("value"),
10267
10287
  onClick: () => sortBy(sidebarScope ?? "expenses", "value")
10268
10288
  },
10269
- "Value ",
10289
+ stringOverrides?.valueColumnHeader || "Value",
10290
+ " ",
10270
10291
  /* @__PURE__ */ import_react105.default.createElement(SortArrows_default, { className: "Layer__sort-arrows" })
10271
10292
  ))), /* @__PURE__ */ import_react105.default.createElement("tbody", null, filteredData.filter((x) => !x.hidden).map((item, idx) => {
10272
10293
  return /* @__PURE__ */ import_react105.default.createElement(
@@ -10607,7 +10628,8 @@ var import_date_fns21 = require("date-fns");
10607
10628
  var ProfitAndLossDetailedCharts = ({
10608
10629
  scope,
10609
10630
  hideClose = false,
10610
- showDatePicker = false
10631
+ showDatePicker = false,
10632
+ stringOverrides
10611
10633
  }) => {
10612
10634
  const {
10613
10635
  filteredDataRevenue,
@@ -10662,7 +10684,8 @@ var ProfitAndLossDetailedCharts = ({
10662
10684
  filters,
10663
10685
  sortBy,
10664
10686
  hoveredItem,
10665
- setHoveredItem
10687
+ setHoveredItem,
10688
+ stringOverrides: stringOverrides?.detailedTableStringOverrides
10666
10689
  }
10667
10690
  ))));
10668
10691
  };
@@ -10736,8 +10759,10 @@ var buildMiniChartData = (scope, data) => {
10736
10759
  };
10737
10760
  var ProfitAndLossSummaries = ({
10738
10761
  vertical,
10739
- revenueLabel = "Revenue",
10740
- actionable = false
10762
+ actionable = false,
10763
+ revenueLabel,
10764
+ // deprecated
10765
+ stringOverrides
10741
10766
  }) => {
10742
10767
  const {
10743
10768
  data: storedData,
@@ -10784,7 +10809,7 @@ var ProfitAndLossSummaries = ({
10784
10809
  }
10785
10810
  },
10786
10811
  /* @__PURE__ */ import_react110.default.createElement(MiniChart, { data: revenueChartData }),
10787
- /* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__text" }, /* @__PURE__ */ import_react110.default.createElement("span", { className: "Layer__profit-and-loss-summaries__title" }, revenueLabel), isLoading || storedData === void 0 ? /* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__loader" }, /* @__PURE__ */ import_react110.default.createElement(SkeletonLoader, null)) : /* @__PURE__ */ import_react110.default.createElement(
10812
+ /* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__text" }, /* @__PURE__ */ import_react110.default.createElement("span", { className: "Layer__profit-and-loss-summaries__title" }, stringOverrides?.revenueLabel || revenueLabel || "Revenue"), isLoading || storedData === void 0 ? /* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__loader" }, /* @__PURE__ */ import_react110.default.createElement(SkeletonLoader, null)) : /* @__PURE__ */ import_react110.default.createElement(
10788
10813
  "span",
10789
10814
  {
10790
10815
  className: `Layer__profit-and-loss-summaries__amount ${incomeDirectionClass}`
@@ -10806,7 +10831,7 @@ var ProfitAndLossSummaries = ({
10806
10831
  }
10807
10832
  },
10808
10833
  /* @__PURE__ */ import_react110.default.createElement(MiniChart, { data: expensesChartData }),
10809
- /* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__text" }, /* @__PURE__ */ import_react110.default.createElement("span", { className: "Layer__profit-and-loss-summaries__title" }, "Expenses"), isLoading || storedData === void 0 ? /* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__loader" }, /* @__PURE__ */ import_react110.default.createElement(SkeletonLoader, { className: "Layer__profit-and-loss-summaries__loader" })) : /* @__PURE__ */ import_react110.default.createElement(
10834
+ /* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__text" }, /* @__PURE__ */ import_react110.default.createElement("span", { className: "Layer__profit-and-loss-summaries__title" }, stringOverrides?.expensesLabel || "Expenses"), isLoading || storedData === void 0 ? /* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__loader" }, /* @__PURE__ */ import_react110.default.createElement(SkeletonLoader, { className: "Layer__profit-and-loss-summaries__loader" })) : /* @__PURE__ */ import_react110.default.createElement(
10810
10835
  "span",
10811
10836
  {
10812
10837
  className: `Layer__profit-and-loss-summaries__amount ${expensesDirectionClass}`
@@ -10824,7 +10849,7 @@ var ProfitAndLossSummaries = ({
10824
10849
  actionable && "Layer__actionable"
10825
10850
  )
10826
10851
  },
10827
- /* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__text" }, /* @__PURE__ */ import_react110.default.createElement("span", { className: "Layer__profit-and-loss-summaries__title" }, "Net Profit"), isLoading || storedData === void 0 ? /* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__loader" }, /* @__PURE__ */ import_react110.default.createElement(SkeletonLoader, { className: "Layer__profit-and-loss-summaries__loader" })) : /* @__PURE__ */ import_react110.default.createElement(
10852
+ /* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__text" }, /* @__PURE__ */ import_react110.default.createElement("span", { className: "Layer__profit-and-loss-summaries__title" }, stringOverrides?.netProfitLabel || "Net Profit"), isLoading || storedData === void 0 ? /* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__loader" }, /* @__PURE__ */ import_react110.default.createElement(SkeletonLoader, { className: "Layer__profit-and-loss-summaries__loader" })) : /* @__PURE__ */ import_react110.default.createElement(
10828
10853
  "span",
10829
10854
  {
10830
10855
  className: `Layer__profit-and-loss-summaries__amount ${netProfitDirectionClass}`
@@ -11011,7 +11036,7 @@ var empty_profit_and_loss_report_default = {
11011
11036
 
11012
11037
  // src/components/ProfitAndLossTable/ProfitAndLossTable.tsx
11013
11038
  var import_classnames46 = __toESM(require("classnames"));
11014
- var ProfitAndLossTable = ({ lockExpanded, asContainer }) => {
11039
+ var ProfitAndLossTable = ({ lockExpanded, asContainer, stringOverrides }) => {
11015
11040
  const {
11016
11041
  data: actualData,
11017
11042
  isLoading,
@@ -11064,7 +11089,7 @@ var ProfitAndLossTable = ({ lockExpanded, asContainer }) => {
11064
11089
  {
11065
11090
  lineItem: {
11066
11091
  value: data.gross_profit,
11067
- display_name: "Gross Profit"
11092
+ display_name: stringOverrides?.grossProfitLabel || "Gross Profit"
11068
11093
  },
11069
11094
  variant: "summation",
11070
11095
  direction: "CREDIT" /* CREDIT */,
@@ -11088,7 +11113,7 @@ var ProfitAndLossTable = ({ lockExpanded, asContainer }) => {
11088
11113
  {
11089
11114
  lineItem: {
11090
11115
  value: data.profit_before_taxes,
11091
- display_name: "Profit Before Taxes"
11116
+ display_name: stringOverrides?.profitBeforeTaxesLabel || "Profit Before Taxes"
11092
11117
  },
11093
11118
  variant: "summation",
11094
11119
  direction: "CREDIT" /* CREDIT */,
@@ -11112,7 +11137,7 @@ var ProfitAndLossTable = ({ lockExpanded, asContainer }) => {
11112
11137
  {
11113
11138
  lineItem: {
11114
11139
  value: data.net_profit,
11115
- display_name: "Net Profit"
11140
+ display_name: stringOverrides?.netProfitLabel || "Net Profit"
11116
11141
  },
11117
11142
  variant: "summation",
11118
11143
  direction: "CREDIT" /* CREDIT */,
@@ -11462,7 +11487,8 @@ var Table = ({
11462
11487
  // src/components/BalanceSheetTable/BalanceSheetTable.tsx
11463
11488
  var BalanceSheetTable = ({
11464
11489
  data,
11465
- config
11490
+ config,
11491
+ stringOverrides
11466
11492
  }) => {
11467
11493
  const { isOpen, setIsOpen, expandedAllRows } = useTableExpandRow();
11468
11494
  const allRowKeys = [];
@@ -11518,7 +11544,7 @@ var BalanceSheetTable = ({
11518
11544
  /* @__PURE__ */ import_react125.default.createElement(TableCell, { primary: true, isCurrency: true }, lineItem.value)
11519
11545
  ));
11520
11546
  };
11521
- return /* @__PURE__ */ import_react125.default.createElement(Table, { borderCollapse: "collapse" }, /* @__PURE__ */ import_react125.default.createElement(TableHead, null, /* @__PURE__ */ import_react125.default.createElement(TableRow, { isHeadRow: true, rowKey: "balance-sheet-head-row" }, /* @__PURE__ */ import_react125.default.createElement(TableCell, { isHeaderCell: true }, "Type"), /* @__PURE__ */ import_react125.default.createElement(TableCell, { isHeaderCell: true }, "Total"))), /* @__PURE__ */ import_react125.default.createElement(TableBody, null, config.map((row, idx) => /* @__PURE__ */ import_react125.default.createElement(import_react125.default.Fragment, { key: row.lineItem }, data[row.lineItem] && renderLineItem(
11547
+ return /* @__PURE__ */ import_react125.default.createElement(Table, { borderCollapse: "collapse" }, /* @__PURE__ */ import_react125.default.createElement(TableHead, null, /* @__PURE__ */ import_react125.default.createElement(TableRow, { isHeadRow: true, rowKey: "balance-sheet-head-row" }, /* @__PURE__ */ import_react125.default.createElement(TableCell, { isHeaderCell: true }, stringOverrides?.typeColumnHeader || "Type"), /* @__PURE__ */ import_react125.default.createElement(TableCell, { isHeaderCell: true }, stringOverrides?.totalColumnHeader || "Total"))), /* @__PURE__ */ import_react125.default.createElement(TableBody, null, config.map((row, idx) => /* @__PURE__ */ import_react125.default.createElement(import_react125.default.Fragment, { key: row.lineItem }, data[row.lineItem] && renderLineItem(
11522
11548
  data[row.lineItem],
11523
11549
  0,
11524
11550
  row.lineItem,
@@ -11620,11 +11646,12 @@ var import_date_fns24 = require("date-fns");
11620
11646
  var COMPONENT_NAME3 = "balance-sheet";
11621
11647
  var BalanceSheet = (props) => {
11622
11648
  const balanceSheetContextData = useBalanceSheet(props.effectiveDate);
11623
- return /* @__PURE__ */ import_react129.default.createElement(BalanceSheetContext.Provider, { value: balanceSheetContextData }, /* @__PURE__ */ import_react129.default.createElement(BalanceSheetView, { asWidget: props.asWidget, ...props }));
11649
+ return /* @__PURE__ */ import_react129.default.createElement(BalanceSheetContext.Provider, { value: balanceSheetContextData }, /* @__PURE__ */ import_react129.default.createElement(BalanceSheetView, { asWidget: props.asWidget, stringOverrides: props.stringOverrides, ...props }));
11624
11650
  };
11625
11651
  var BalanceSheetView = ({
11626
11652
  withExpandAllButton = true,
11627
- asWidget = false
11653
+ asWidget = false,
11654
+ stringOverrides
11628
11655
  }) => {
11629
11656
  const [effectiveDate, setEffectiveDate] = (0, import_react129.useState)((0, import_date_fns24.startOfDay)(/* @__PURE__ */ new Date()));
11630
11657
  const { data, isLoading, refetch } = useBalanceSheet(effectiveDate);
@@ -11653,7 +11680,7 @@ var BalanceSheetView = ({
11653
11680
  }
11654
11681
  ), withExpandAllButton && /* @__PURE__ */ import_react129.default.createElement(BalanceSheetExpandAllButton, null))
11655
11682
  },
11656
- !data || isLoading ? /* @__PURE__ */ import_react129.default.createElement("div", { className: `Layer__${COMPONENT_NAME3}__loader-container` }, /* @__PURE__ */ import_react129.default.createElement(Loader2, null)) : /* @__PURE__ */ import_react129.default.createElement(BalanceSheetTable, { data, config: BALANCE_SHEET_ROWS })
11683
+ !data || isLoading ? /* @__PURE__ */ import_react129.default.createElement("div", { className: `Layer__${COMPONENT_NAME3}__loader-container` }, /* @__PURE__ */ import_react129.default.createElement(Loader2, null)) : /* @__PURE__ */ import_react129.default.createElement(BalanceSheetTable, { data, config: BALANCE_SHEET_ROWS, stringOverrides: stringOverrides?.balanceSheetTable })
11657
11684
  )));
11658
11685
  }
11659
11686
  return /* @__PURE__ */ import_react129.default.createElement(TableProvider, null, /* @__PURE__ */ import_react129.default.createElement(
@@ -11668,7 +11695,7 @@ var BalanceSheetView = ({
11668
11695
  }
11669
11696
  ), withExpandAllButton && /* @__PURE__ */ import_react129.default.createElement(BalanceSheetExpandAllButton, null))
11670
11697
  },
11671
- !data || isLoading ? /* @__PURE__ */ import_react129.default.createElement("div", { className: `Layer__${COMPONENT_NAME3}__loader-container` }, /* @__PURE__ */ import_react129.default.createElement(Loader2, null)) : /* @__PURE__ */ import_react129.default.createElement(BalanceSheetTable, { data, config: BALANCE_SHEET_ROWS })
11698
+ !data || isLoading ? /* @__PURE__ */ import_react129.default.createElement("div", { className: `Layer__${COMPONENT_NAME3}__loader-container` }, /* @__PURE__ */ import_react129.default.createElement(Loader2, null)) : /* @__PURE__ */ import_react129.default.createElement(BalanceSheetTable, { data, config: BALANCE_SHEET_ROWS, stringOverrides: stringOverrides?.balanceSheetTable })
11672
11699
  ));
11673
11700
  };
11674
11701
 
@@ -11726,7 +11753,8 @@ var useStatementOfCashFlow = (startDate = /* @__PURE__ */ new Date(), endDate =
11726
11753
  var import_react132 = __toESM(require("react"));
11727
11754
  var StatementOfCashFlowTable = ({
11728
11755
  data,
11729
- config
11756
+ config,
11757
+ stringOverrides
11730
11758
  }) => {
11731
11759
  const { isOpen, setIsOpen } = useTableExpandRow();
11732
11760
  const renderLineItem = (lineItem, depth = 0, rowKey, rowIndex) => {
@@ -11768,7 +11796,7 @@ var StatementOfCashFlowTable = ({
11768
11796
  /* @__PURE__ */ import_react132.default.createElement(TableCell, { primary: true, isCurrency: true }, lineItem.value)
11769
11797
  ));
11770
11798
  };
11771
- return /* @__PURE__ */ import_react132.default.createElement(Table, { borderCollapse: "collapse" }, /* @__PURE__ */ import_react132.default.createElement(TableHead, null, /* @__PURE__ */ import_react132.default.createElement(TableRow, { rowKey: "soc-flow-head-row", isHeadRow: true }, /* @__PURE__ */ import_react132.default.createElement(TableCell, { isHeaderCell: true }, "Type"), /* @__PURE__ */ import_react132.default.createElement(TableCell, { isHeaderCell: true }, "Total"))), /* @__PURE__ */ import_react132.default.createElement(TableBody, null, config.map((row, idx) => {
11799
+ return /* @__PURE__ */ import_react132.default.createElement(Table, { borderCollapse: "collapse" }, /* @__PURE__ */ import_react132.default.createElement(TableHead, null, /* @__PURE__ */ import_react132.default.createElement(TableRow, { rowKey: "soc-flow-head-row", isHeadRow: true }, /* @__PURE__ */ import_react132.default.createElement(TableCell, { isHeaderCell: true }, stringOverrides?.typeColumnHeader || "Type"), /* @__PURE__ */ import_react132.default.createElement(TableCell, { isHeaderCell: true }, stringOverrides?.totalColumnHeader || "Total"))), /* @__PURE__ */ import_react132.default.createElement(TableBody, null, config.map((row, idx) => {
11772
11800
  if (row.type === "line_item") {
11773
11801
  return /* @__PURE__ */ import_react132.default.createElement(import_react132.default.Fragment, { key: row.lineItem }, data[row.lineItem] && renderLineItem(
11774
11802
  data[row.lineItem],
@@ -11824,11 +11852,11 @@ var STATEMENT_OF_CASH_FLOW_ROWS = [
11824
11852
  // src/components/StatementOfCashFlow/StatementOfCashFlow.tsx
11825
11853
  var import_date_fns26 = require("date-fns");
11826
11854
  var COMPONENT_NAME4 = "statement-of-cash-flow";
11827
- var StatementOfCashFlow = () => {
11855
+ var StatementOfCashFlow = ({ stringOverrides }) => {
11828
11856
  const cashContextData = useStatementOfCashFlow();
11829
- return /* @__PURE__ */ import_react133.default.createElement(StatementOfCashFlowContext.Provider, { value: cashContextData }, /* @__PURE__ */ import_react133.default.createElement(StatementOfCashFlowView, null));
11857
+ return /* @__PURE__ */ import_react133.default.createElement(StatementOfCashFlowContext.Provider, { value: cashContextData }, /* @__PURE__ */ import_react133.default.createElement(StatementOfCashFlowView, { stringOverrides }));
11830
11858
  };
11831
- var StatementOfCashFlowView = () => {
11859
+ var StatementOfCashFlowView = ({ stringOverrides }) => {
11832
11860
  const [startDate, setStartDate] = (0, import_react133.useState)(
11833
11861
  (0, import_date_fns26.startOfDay)((0, import_date_fns26.subWeeks)(/* @__PURE__ */ new Date(), 4))
11834
11862
  );
@@ -11866,7 +11894,8 @@ var StatementOfCashFlowView = () => {
11866
11894
  StatementOfCashFlowTable,
11867
11895
  {
11868
11896
  data,
11869
- config: STATEMENT_OF_CASH_FLOW_ROWS
11897
+ config: STATEMENT_OF_CASH_FLOW_ROWS,
11898
+ stringOverrides: stringOverrides?.statementOfCashFlowTable
11870
11899
  }
11871
11900
  )
11872
11901
  ));
@@ -12797,7 +12826,7 @@ var useParentOptions = (data) => (0, import_react140.useMemo)(
12797
12826
  );
12798
12827
 
12799
12828
  // src/components/ChartOfAccountsForm/ChartOfAccountsForm.tsx
12800
- var ChartOfAccountsForm = () => {
12829
+ var ChartOfAccountsForm = ({ stringOverrides }) => {
12801
12830
  const {
12802
12831
  form,
12803
12832
  data,
@@ -12828,7 +12857,7 @@ var ChartOfAccountsForm = () => {
12828
12857
  submitForm();
12829
12858
  }
12830
12859
  },
12831
- /* @__PURE__ */ import_react141.default.createElement("div", { className: "Layer__chart-of-accounts__sidebar__header" }, /* @__PURE__ */ import_react141.default.createElement(Text, { size: "lg" /* lg */, weight: "bold" /* bold */, className: "title" }, form?.action === "edit" ? "Edit" : "Add New", " Account"), /* @__PURE__ */ import_react141.default.createElement("div", { className: "actions" }, /* @__PURE__ */ import_react141.default.createElement(
12860
+ /* @__PURE__ */ import_react141.default.createElement("div", { className: "Layer__chart-of-accounts__sidebar__header" }, /* @__PURE__ */ import_react141.default.createElement(Text, { size: "lg" /* lg */, weight: "bold" /* bold */, className: "title" }, form?.action === "edit" ? stringOverrides?.editModeHeader || "Edit Account" : stringOverrides?.createModeHeader || "Add New Account"), /* @__PURE__ */ import_react141.default.createElement("div", { className: "actions" }, /* @__PURE__ */ import_react141.default.createElement(
12832
12861
  Button,
12833
12862
  {
12834
12863
  type: "button",
@@ -12836,7 +12865,7 @@ var ChartOfAccountsForm = () => {
12836
12865
  variant: "secondary" /* secondary */,
12837
12866
  disabled: sendingForm
12838
12867
  },
12839
- "Cancel"
12868
+ stringOverrides?.cancelButton || "Cancel"
12840
12869
  ), apiError && /* @__PURE__ */ import_react141.default.createElement(
12841
12870
  RetryButton,
12842
12871
  {
@@ -12845,7 +12874,7 @@ var ChartOfAccountsForm = () => {
12845
12874
  error: "Check connection and retry in few seconds.",
12846
12875
  disabled: sendingForm
12847
12876
  },
12848
- "Retry"
12877
+ stringOverrides?.retryButton || "Retry"
12849
12878
  ), !apiError && /* @__PURE__ */ import_react141.default.createElement(
12850
12879
  SubmitButton,
12851
12880
  {
@@ -12854,7 +12883,7 @@ var ChartOfAccountsForm = () => {
12854
12883
  active: true,
12855
12884
  disabled: sendingForm
12856
12885
  },
12857
- "Save"
12886
+ stringOverrides?.saveButton || "Save"
12858
12887
  ))),
12859
12888
  apiError && /* @__PURE__ */ import_react141.default.createElement(
12860
12889
  Text,
@@ -12865,7 +12894,7 @@ var ChartOfAccountsForm = () => {
12865
12894
  apiError
12866
12895
  ),
12867
12896
  entry && /* @__PURE__ */ import_react141.default.createElement("div", { className: "Layer__chart-of-accounts__form-edit-entry" }, /* @__PURE__ */ import_react141.default.createElement(Text, { weight: "bold" /* bold */ }, entry.name), /* @__PURE__ */ import_react141.default.createElement(Text, { weight: "bold" /* bold */ }, "$", centsToDollars(entry.balance || 0))),
12868
- /* @__PURE__ */ import_react141.default.createElement("div", { className: "Layer__chart-of-accounts__form" }, /* @__PURE__ */ import_react141.default.createElement(InputGroup, { name: "parent", label: "Parent", inline: true }, /* @__PURE__ */ import_react141.default.createElement(
12897
+ /* @__PURE__ */ import_react141.default.createElement("div", { className: "Layer__chart-of-accounts__form" }, /* @__PURE__ */ import_react141.default.createElement(InputGroup, { name: "parent", label: stringOverrides?.parentLabel || "Parent", inline: true }, /* @__PURE__ */ import_react141.default.createElement(
12869
12898
  Select2,
12870
12899
  {
12871
12900
  options: parentOptions,
@@ -12873,7 +12902,7 @@ var ChartOfAccountsForm = () => {
12873
12902
  onChange: (sel) => changeFormData("parent", sel),
12874
12903
  disabled: sendingForm
12875
12904
  }
12876
- )), /* @__PURE__ */ import_react141.default.createElement(InputGroup, { name: "name", label: "Name", inline: true }, /* @__PURE__ */ import_react141.default.createElement(
12905
+ )), /* @__PURE__ */ import_react141.default.createElement(InputGroup, { name: "name", label: stringOverrides?.nameLabel || "Name", inline: true }, /* @__PURE__ */ import_react141.default.createElement(
12877
12906
  Input,
12878
12907
  {
12879
12908
  name: "name",
@@ -12884,7 +12913,7 @@ var ChartOfAccountsForm = () => {
12884
12913
  disabled: sendingForm,
12885
12914
  onChange: (e) => changeFormData("name", e.target.value)
12886
12915
  }
12887
- )), /* @__PURE__ */ import_react141.default.createElement(InputGroup, { name: "type", label: "Type", inline: true }, /* @__PURE__ */ import_react141.default.createElement(
12916
+ )), /* @__PURE__ */ import_react141.default.createElement(InputGroup, { name: "type", label: stringOverrides?.typeLabel || "Type", inline: true }, /* @__PURE__ */ import_react141.default.createElement(
12888
12917
  Select2,
12889
12918
  {
12890
12919
  options: LEDGER_ACCOUNT_TYPES,
@@ -12894,7 +12923,7 @@ var ChartOfAccountsForm = () => {
12894
12923
  errorMessage: form?.errors?.find((x) => x.field === "type")?.message,
12895
12924
  disabled: sendingForm || form.action === "edit" || form.data.parent !== void 0
12896
12925
  }
12897
- )), /* @__PURE__ */ import_react141.default.createElement(InputGroup, { name: "subType", label: "Sub-Type", inline: true }, /* @__PURE__ */ import_react141.default.createElement(
12926
+ )), /* @__PURE__ */ import_react141.default.createElement(InputGroup, { name: "subType", label: stringOverrides?.subTypeLabel || "Sub-Type", inline: true }, /* @__PURE__ */ import_react141.default.createElement(
12898
12927
  Select2,
12899
12928
  {
12900
12929
  options: form?.data.type?.value !== void 0 ? LEDGER_ACCOUNT_SUBTYPES_FOR_TYPE[form?.data.type?.value] : LEDGER_ACCOUNT_SUBTYPES,
@@ -12902,7 +12931,7 @@ var ChartOfAccountsForm = () => {
12902
12931
  onChange: (sel) => changeFormData("subType", sel),
12903
12932
  disabled: sendingForm
12904
12933
  }
12905
- )), /* @__PURE__ */ import_react141.default.createElement(InputGroup, { name: "normality", label: "Normality", inline: true }, /* @__PURE__ */ import_react141.default.createElement(
12934
+ )), /* @__PURE__ */ import_react141.default.createElement(InputGroup, { name: "normality", label: stringOverrides?.normalityLabel || "Normality", inline: true }, /* @__PURE__ */ import_react141.default.createElement(
12906
12935
  Select2,
12907
12936
  {
12908
12937
  options: NORMALITY_OPTIONS,
@@ -12922,7 +12951,7 @@ var ChartOfAccountsForm = () => {
12922
12951
  variant: "secondary" /* secondary */,
12923
12952
  disabled: sendingForm
12924
12953
  },
12925
- "Cancel"
12954
+ stringOverrides?.cancelButton || "Cancel"
12926
12955
  ), apiError && /* @__PURE__ */ import_react141.default.createElement(
12927
12956
  RetryButton,
12928
12957
  {
@@ -12931,7 +12960,7 @@ var ChartOfAccountsForm = () => {
12931
12960
  error: "Check connection and retry in few seconds.",
12932
12961
  disabled: sendingForm
12933
12962
  },
12934
- "Retry"
12963
+ stringOverrides?.retryButton || "Retry"
12935
12964
  ), !apiError && /* @__PURE__ */ import_react141.default.createElement(
12936
12965
  SubmitButton,
12937
12966
  {
@@ -12940,16 +12969,17 @@ var ChartOfAccountsForm = () => {
12940
12969
  active: true,
12941
12970
  disabled: sendingForm
12942
12971
  },
12943
- "Save"
12972
+ stringOverrides?.saveButton || "Save"
12944
12973
  )))
12945
12974
  );
12946
12975
  };
12947
12976
 
12948
12977
  // src/components/ChartOfAccountsSidebar/ChartOfAccountsSidebar.tsx
12949
12978
  var ChartOfAccountsSidebar = ({
12950
- parentRef: _parentRef
12979
+ parentRef: _parentRef,
12980
+ stringOverrides
12951
12981
  }) => {
12952
- return /* @__PURE__ */ import_react142.default.createElement(ChartOfAccountsForm, null);
12982
+ return /* @__PURE__ */ import_react142.default.createElement(ChartOfAccountsForm, { stringOverrides });
12953
12983
  };
12954
12984
 
12955
12985
  // src/components/ChartOfAccountsTable/ChartOfAccountsTable.tsx
@@ -12959,7 +12989,8 @@ var ChartOfAccountsTable = ({
12959
12989
  containerRef,
12960
12990
  asWidget = false,
12961
12991
  withDateControl = false,
12962
- withExpandAllButton = false
12992
+ withExpandAllButton = false,
12993
+ stringOverrides
12963
12994
  }) => {
12964
12995
  const { data, isLoading, addAccount, error, isValidating, refetch, form } = (0, import_react143.useContext)(ChartOfAccountsContext);
12965
12996
  const [expandAll, setExpandAll] = (0, import_react143.useState)();
@@ -12968,7 +12999,13 @@ var ChartOfAccountsTable = ({
12968
12999
  return /* @__PURE__ */ import_react143.default.createElement(
12969
13000
  Panel,
12970
13001
  {
12971
- sidebar: /* @__PURE__ */ import_react143.default.createElement(ChartOfAccountsSidebar, { parentRef: containerRef }),
13002
+ sidebar: /* @__PURE__ */ import_react143.default.createElement(
13003
+ ChartOfAccountsSidebar,
13004
+ {
13005
+ parentRef: containerRef,
13006
+ stringOverrides: stringOverrides?.chartOfAccountsForm
13007
+ }
13008
+ ),
12972
13009
  sidebarIsOpen: Boolean(form),
12973
13010
  parentRef: containerRef
12974
13011
  },
@@ -12984,7 +13021,7 @@ var ChartOfAccountsTable = ({
12984
13021
  className: `Layer__${COMPONENT_NAME5}__title`,
12985
13022
  size: asWidget ? "secondary" /* secondary */ : "primary" /* primary */
12986
13023
  },
12987
- "Chart of Accounts"
13024
+ stringOverrides?.headerText || "Chart of Accounts"
12988
13025
  ),
12989
13026
  /* @__PURE__ */ import_react143.default.createElement(
12990
13027
  "div",
@@ -13001,10 +13038,10 @@ var ChartOfAccountsTable = ({
13001
13038
  },
13002
13039
  !expandAll || expandAll === "collapsed" ? "Expand all rows" : "Collapse all rows"
13003
13040
  )) : null,
13004
- /* @__PURE__ */ import_react143.default.createElement("div", { className: "Layer__header__actions-col" }, /* @__PURE__ */ import_react143.default.createElement(Button, { onClick: () => addAccount(), disabled: isLoading }, "Add Account"))
13041
+ /* @__PURE__ */ import_react143.default.createElement("div", { className: "Layer__header__actions-col" }, /* @__PURE__ */ import_react143.default.createElement(Button, { onClick: () => addAccount(), disabled: isLoading }, stringOverrides?.addAccountButtonText || "Add Account"))
13005
13042
  )
13006
13043
  ),
13007
- /* @__PURE__ */ import_react143.default.createElement("table", { className: "Layer__chart-of-accounts__table" }, /* @__PURE__ */ import_react143.default.createElement("thead", null, /* @__PURE__ */ import_react143.default.createElement("tr", { className: "Layer__table-row--header" }, /* @__PURE__ */ import_react143.default.createElement("th", { className: "Layer__table-header Layer__coa__name" }, "Name"), /* @__PURE__ */ import_react143.default.createElement("th", { className: "Layer__table-header Layer__coa__type" }, "Type"), /* @__PURE__ */ import_react143.default.createElement("th", { className: "Layer__table-header Layer__coa__subtype Layer__mobile--hidden" }, "Sub-Type"), /* @__PURE__ */ import_react143.default.createElement("th", { className: "Layer__table-header Layer__coa__balance" }, "Balance"), /* @__PURE__ */ import_react143.default.createElement("th", { className: "Layer__table-header Layer__coa__actions" }))), /* @__PURE__ */ import_react143.default.createElement("tbody", null, !error && data?.accounts.map((account, idx) => {
13044
+ /* @__PURE__ */ import_react143.default.createElement("table", { className: "Layer__chart-of-accounts__table" }, /* @__PURE__ */ import_react143.default.createElement("thead", null, /* @__PURE__ */ import_react143.default.createElement("tr", { className: "Layer__table-row--header" }, /* @__PURE__ */ import_react143.default.createElement("th", { className: "Layer__table-header Layer__coa__name" }, stringOverrides?.nameColumnHeader || "Name"), /* @__PURE__ */ import_react143.default.createElement("th", { className: "Layer__table-header Layer__coa__type" }, stringOverrides?.typeColumnHeader || "Type"), /* @__PURE__ */ import_react143.default.createElement("th", { className: "Layer__table-header Layer__coa__subtype Layer__mobile--hidden" }, stringOverrides?.subtypeColumnHeader || "Sub-Type"), /* @__PURE__ */ import_react143.default.createElement("th", { className: "Layer__table-header Layer__coa__balance" }, stringOverrides?.balanceColumnHeader || "Balance"), /* @__PURE__ */ import_react143.default.createElement("th", { className: "Layer__table-header Layer__coa__actions" }))), /* @__PURE__ */ import_react143.default.createElement("tbody", null, !error && data?.accounts.map((account, idx) => {
13008
13045
  const currentCumulativeIndex = cumulativeIndex;
13009
13046
  cumulativeIndex = (account.sub_accounts?.length || 0) + cumulativeIndex + 1;
13010
13047
  return /* @__PURE__ */ import_react143.default.createElement(
@@ -13126,41 +13163,41 @@ var DetailsListItem = ({
13126
13163
  };
13127
13164
 
13128
13165
  // src/components/LedgerAccountEntryDetails/LedgerAccountEntryDetails.tsx
13129
- var SourceDetailView = ({ source }) => {
13166
+ var SourceDetailView = ({ source, stringOverrides }) => {
13130
13167
  switch (source.type) {
13131
13168
  case "Transaction_Ledger_Entry_Source": {
13132
13169
  const transactionSource = source;
13133
- return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Account name" }, transactionSource.account_name), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Date" }, /* @__PURE__ */ import_react148.default.createElement(DateTime, { value: transactionSource.date })), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Amount" }, `$${centsToDollars(transactionSource.amount)}`), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Direction" }, transactionSource.direction), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Counterparty" }, transactionSource.counterparty));
13170
+ return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.accountNameLabel || "Account name" }, transactionSource.account_name), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.dateLabel || "Date" }, /* @__PURE__ */ import_react148.default.createElement(DateTime, { value: transactionSource.date })), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.amountLabel || "Amount" }, `$${centsToDollars(transactionSource.amount)}`), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.directionLabel || "Direction" }, transactionSource.direction), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.counterpartyLabel || "Counterparty" }, transactionSource.counterparty));
13134
13171
  }
13135
13172
  case "Invoice_Ledger_Entry_Source": {
13136
13173
  const invoiceSource = source;
13137
- return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Invoice number" }, invoiceSource.invoice_number), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Recipient name" }, invoiceSource.recipient_name), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Date" }, /* @__PURE__ */ import_react148.default.createElement(DateTime, { value: invoiceSource.date })), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Amount" }, `$${centsToDollars(invoiceSource.amount)}`));
13174
+ return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.invoiceNumberLabel || "Invoice number" }, invoiceSource.invoice_number), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.recipientNameLabel || "Recipient name" }, invoiceSource.recipient_name), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.dateLabel || "Date" }, /* @__PURE__ */ import_react148.default.createElement(DateTime, { value: invoiceSource.date })), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.amountLabel || "Amount" }, `$${centsToDollars(invoiceSource.amount)}`));
13138
13175
  }
13139
13176
  case "Manual_Ledger_Entry_Source": {
13140
13177
  const manualSource = source;
13141
- return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Memo" }, manualSource.memo), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Created by" }, manualSource.created_by));
13178
+ return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.memoLabel || "Memo" }, manualSource.memo), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.createdByLabel || "Created by" }, manualSource.created_by));
13142
13179
  }
13143
13180
  case "Invoice_Payment_Ledger_Entry_Source": {
13144
13181
  const invoicePaymentSource = source;
13145
- return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Invoice number" }, invoicePaymentSource.invoice_number), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Amount" }, `$${centsToDollars(invoicePaymentSource.amount)}`));
13182
+ return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.invoiceNumberLabel || "Invoice number" }, invoicePaymentSource.invoice_number), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.amountLabel || "Amount" }, `$${centsToDollars(invoicePaymentSource.amount)}`));
13146
13183
  }
13147
13184
  case "Refund_Ledger_Entry_Source": {
13148
13185
  const refundSource = source;
13149
- return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Amount" }, `$${centsToDollars(refundSource.refunded_to_customer_amount)}`), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Recipient name" }, refundSource.recipient_name));
13186
+ return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.amountLabel || "Amount" }, `$${centsToDollars(refundSource.refunded_to_customer_amount)}`), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.recipientNameLabel || "Recipient name" }, refundSource.recipient_name));
13150
13187
  }
13151
13188
  case "Opening_Balance_Ledger_Entry_Source": {
13152
13189
  const openingBalanceSource = source;
13153
- return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Account name" }, openingBalanceSource.account_name));
13190
+ return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.accountNameLabel || "Account name" }, openingBalanceSource.account_name));
13154
13191
  }
13155
13192
  case "Payout_Ledger_Entry_Source": {
13156
13193
  const payoutSource = source;
13157
- return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Amount" }, `$${centsToDollars(payoutSource.paid_out_amount)}`), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Processor" }, payoutSource.processor));
13194
+ return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.amountLabel || "Amount" }, `$${centsToDollars(payoutSource.paid_out_amount)}`), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.processorLabel || "Processor" }, payoutSource.processor));
13158
13195
  }
13159
13196
  default:
13160
13197
  return null;
13161
13198
  }
13162
13199
  };
13163
- var LedgerAccountEntryDetails = () => {
13200
+ var LedgerAccountEntryDetails = ({ stringOverrides }) => {
13164
13201
  const { entryData, isLoadingEntry, closeSelectedEntry, errorEntry } = (0, import_react148.useContext)(LedgerAccountsContext);
13165
13202
  const { totalDebit, totalCredit } = (0, import_react148.useMemo)(() => {
13166
13203
  let totalDebit2 = 0;
@@ -13174,10 +13211,10 @@ var LedgerAccountEntryDetails = () => {
13174
13211
  });
13175
13212
  return { totalDebit: totalDebit2, totalCredit: totalCredit2 };
13176
13213
  }, [entryData]);
13177
- return /* @__PURE__ */ import_react148.default.createElement("div", { className: "Layer__ledger-account__entry-details" }, /* @__PURE__ */ import_react148.default.createElement("div", { className: "Layer__ledger-account__entry-details__back-btn" }, /* @__PURE__ */ import_react148.default.createElement(BackButton, { onClick: () => closeSelectedEntry() }), /* @__PURE__ */ import_react148.default.createElement("div", { className: "Layer__ledger-account__entry-details__title-container" }, /* @__PURE__ */ import_react148.default.createElement(Text, { weight: "bold" /* bold */ }, "Transaction details"))), /* @__PURE__ */ import_react148.default.createElement(
13214
+ return /* @__PURE__ */ import_react148.default.createElement("div", { className: "Layer__ledger-account__entry-details" }, /* @__PURE__ */ import_react148.default.createElement("div", { className: "Layer__ledger-account__entry-details__back-btn" }, /* @__PURE__ */ import_react148.default.createElement(BackButton, { onClick: () => closeSelectedEntry() }), /* @__PURE__ */ import_react148.default.createElement("div", { className: "Layer__ledger-account__entry-details__title-container" }, /* @__PURE__ */ import_react148.default.createElement(Text, { weight: "bold" /* bold */ }, stringOverrides?.title || "Transaction details"))), /* @__PURE__ */ import_react148.default.createElement(
13178
13215
  DetailsList,
13179
13216
  {
13180
- title: "Transaction source",
13217
+ title: stringOverrides?.transactionSource?.header || "Transaction source",
13181
13218
  actions: /* @__PURE__ */ import_react148.default.createElement(
13182
13219
  Button,
13183
13220
  {
@@ -13189,25 +13226,32 @@ var LedgerAccountEntryDetails = () => {
13189
13226
  }
13190
13227
  )
13191
13228
  },
13192
- /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Source", isLoading: isLoadingEntry }, /* @__PURE__ */ import_react148.default.createElement(Badge, null, entryData?.source?.entity_name)),
13229
+ /* @__PURE__ */ import_react148.default.createElement(
13230
+ DetailsListItem,
13231
+ {
13232
+ label: stringOverrides?.transactionSource?.details?.sourceLabel || "Source",
13233
+ isLoading: isLoadingEntry
13234
+ },
13235
+ /* @__PURE__ */ import_react148.default.createElement(Badge, null, entryData?.source?.entity_name)
13236
+ ),
13193
13237
  entryData?.source?.display_description && /* @__PURE__ */ import_react148.default.createElement(SourceDetailView, { source: entryData?.source })
13194
13238
  ), /* @__PURE__ */ import_react148.default.createElement(
13195
13239
  DetailsList,
13196
13240
  {
13197
- title: `Journal Entry ${entryData?.id.substring(0, 5)}`,
13241
+ title: stringOverrides?.journalEntry?.header ? stringOverrides?.journalEntry?.header(entryData?.id.substring(0, 5)) : `Journal Entry ${entryData?.id.substring(0, 5)}`,
13198
13242
  className: "Layer__border-top"
13199
13243
  },
13200
- /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Entry type", isLoading: isLoadingEntry }, humanizeEnum(entryData?.entry_type ?? "")),
13201
- /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Date", isLoading: isLoadingEntry }, entryData?.entry_at && /* @__PURE__ */ import_react148.default.createElement(DateTime, { value: entryData?.entry_at })),
13202
- /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Creation date", isLoading: isLoadingEntry }, entryData?.date && /* @__PURE__ */ import_react148.default.createElement(DateTime, { value: entryData?.date })),
13203
- entryData?.reversal_id && /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Reversal", isLoading: isLoadingEntry }, entryData?.reversal_id.substring(0, 5))
13244
+ /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.journalEntry?.details?.entryTypeLabel || "Entry type", isLoading: isLoadingEntry }, humanizeEnum(entryData?.entry_type ?? "")),
13245
+ /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.journalEntry?.details?.dateLabel || "Date", isLoading: isLoadingEntry }, entryData?.entry_at && /* @__PURE__ */ import_react148.default.createElement(DateTime, { value: entryData?.entry_at })),
13246
+ /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.journalEntry?.details?.creationDateLabel || "Creation date", isLoading: isLoadingEntry }, entryData?.date && /* @__PURE__ */ import_react148.default.createElement(DateTime, { value: entryData?.date })),
13247
+ entryData?.reversal_id && /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.journalEntry?.details?.reversalLabel || "Reversal", isLoading: isLoadingEntry }, entryData?.reversal_id.substring(0, 5))
13204
13248
  ), !isLoadingEntry && !errorEntry ? /* @__PURE__ */ import_react148.default.createElement("div", { className: "Layer__ledger-account__entry-details__line-items" }, /* @__PURE__ */ import_react148.default.createElement(Card, null, /* @__PURE__ */ import_react148.default.createElement(
13205
13249
  Table,
13206
13250
  {
13207
13251
  componentName: "ledger-account__entry-details",
13208
13252
  borderCollapse: "collapse"
13209
13253
  },
13210
- /* @__PURE__ */ import_react148.default.createElement(TableHead, null, /* @__PURE__ */ import_react148.default.createElement(TableRow, { rowKey: "soc-flow-head-row", isHeadRow: true }, /* @__PURE__ */ import_react148.default.createElement(TableCell, null, "Line items"), /* @__PURE__ */ import_react148.default.createElement(TableCell, null, "Debit"), /* @__PURE__ */ import_react148.default.createElement(TableCell, null, "Credit"))),
13254
+ /* @__PURE__ */ import_react148.default.createElement(TableHead, null, /* @__PURE__ */ import_react148.default.createElement(TableRow, { rowKey: "soc-flow-head-row", isHeadRow: true }, /* @__PURE__ */ import_react148.default.createElement(TableCell, null, stringOverrides?.lineItemsTable?.lineItemsColumnHeader || "Line items"), /* @__PURE__ */ import_react148.default.createElement(TableCell, null, stringOverrides?.lineItemsTable?.debitColumnHeader || "Debit"), /* @__PURE__ */ import_react148.default.createElement(TableCell, null, stringOverrides?.lineItemsTable?.creditColumnHeader || "Credit"))),
13211
13255
  /* @__PURE__ */ import_react148.default.createElement(TableBody, null, entryData?.line_items?.map((item, index) => /* @__PURE__ */ import_react148.default.createElement(
13212
13256
  TableRow,
13213
13257
  {
@@ -13223,7 +13267,7 @@ var LedgerAccountEntryDetails = () => {
13223
13267
  rowKey: "ledger-line-item-summation",
13224
13268
  variant: "summation"
13225
13269
  },
13226
- /* @__PURE__ */ import_react148.default.createElement(TableCell, { primary: true }, "Total"),
13270
+ /* @__PURE__ */ import_react148.default.createElement(TableCell, { primary: true }, stringOverrides?.lineItemsTable?.totalRowHeader || "Total"),
13227
13271
  /* @__PURE__ */ import_react148.default.createElement(TableCell, { isCurrency: true, primary: true }, totalDebit || 0),
13228
13272
  /* @__PURE__ */ import_react148.default.createElement(TableCell, { isCurrency: true, primary: true }, totalCredit || 0)
13229
13273
  ))
@@ -13348,7 +13392,8 @@ var import_classnames56 = __toESM(require("classnames"));
13348
13392
  var LedgerAccount = ({
13349
13393
  containerRef,
13350
13394
  pageSize = 15,
13351
- view
13395
+ view,
13396
+ stringOverrides
13352
13397
  }) => {
13353
13398
  const [currentPage, setCurrentPage] = (0, import_react150.useState)(1);
13354
13399
  const [initialLoad, setInitialLoad] = (0, import_react150.useState)(true);
@@ -13393,7 +13438,12 @@ var LedgerAccount = ({
13393
13438
  return /* @__PURE__ */ import_react150.default.createElement(
13394
13439
  Panel,
13395
13440
  {
13396
- sidebar: /* @__PURE__ */ import_react150.default.createElement(LedgerAccountEntryDetails, null),
13441
+ sidebar: /* @__PURE__ */ import_react150.default.createElement(
13442
+ LedgerAccountEntryDetails,
13443
+ {
13444
+ stringOverrides: stringOverrides?.ledgerEntryDetail
13445
+ }
13446
+ ),
13397
13447
  sidebarIsOpen: Boolean(selectedEntryId),
13398
13448
  parentRef: containerRef,
13399
13449
  className: "Layer__ledger-account__panel"
@@ -13420,7 +13470,7 @@ var LedgerAccount = ({
13420
13470
  },
13421
13471
  "$",
13422
13472
  centsToDollars(entry?.balance || 0)
13423
- )))), /* @__PURE__ */ import_react150.default.createElement("table", { className: "Layer__table Layer__table--hover-effect Layer__ledger-account-table" }, /* @__PURE__ */ import_react150.default.createElement("thead", null, /* @__PURE__ */ import_react150.default.createElement("tr", null, view !== "desktop" && /* @__PURE__ */ import_react150.default.createElement("th", null), view === "desktop" && /* @__PURE__ */ import_react150.default.createElement(import_react150.default.Fragment, null, /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header" }, "Date"), /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header" }, "Journal id #"), /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header" }, "Source")), view !== "mobile" && /* @__PURE__ */ import_react150.default.createElement(import_react150.default.Fragment, null, /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, "Debit"), /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, "Credit"), /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, "Running balance")))), /* @__PURE__ */ import_react150.default.createElement("tbody", null, data?.map((x, index) => /* @__PURE__ */ import_react150.default.createElement(
13473
+ )))), /* @__PURE__ */ import_react150.default.createElement("table", { className: "Layer__table Layer__table--hover-effect Layer__ledger-account-table" }, /* @__PURE__ */ import_react150.default.createElement("thead", null, /* @__PURE__ */ import_react150.default.createElement("tr", null, view !== "desktop" && /* @__PURE__ */ import_react150.default.createElement("th", null), view === "desktop" && /* @__PURE__ */ import_react150.default.createElement(import_react150.default.Fragment, null, /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header" }, stringOverrides?.ledgerEntriesTable?.dateColumnHeader || "Date"), /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header" }, stringOverrides?.ledgerEntriesTable?.journalIdColumnHeader || "Journal id #"), /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header" }, stringOverrides?.ledgerEntriesTable?.sourceColumnHeader || "Source")), view !== "mobile" && /* @__PURE__ */ import_react150.default.createElement(import_react150.default.Fragment, null, /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, stringOverrides?.ledgerEntriesTable?.debitColumnHeader || "Debit"), /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, stringOverrides?.ledgerEntriesTable?.creditColumnHeader || "Credit"), /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, stringOverrides?.ledgerEntriesTable?.runningBalanceColumnHeader || "Running balance")))), /* @__PURE__ */ import_react150.default.createElement("tbody", null, data?.map((x, index) => /* @__PURE__ */ import_react150.default.createElement(
13424
13474
  LedgerAccountRow,
13425
13475
  {
13426
13476
  key: x.id,
@@ -13469,7 +13519,8 @@ var ChartOfAccounts = (props) => {
13469
13519
  var ChartOfAccountsContent = ({
13470
13520
  asWidget,
13471
13521
  withDateControl,
13472
- withExpandAllButton
13522
+ withExpandAllButton,
13523
+ stringOverrides
13473
13524
  }) => {
13474
13525
  const { accountId } = (0, import_react151.useContext)(LedgerAccountsContext);
13475
13526
  const [view, setView] = (0, import_react151.useState)("desktop");
@@ -13484,14 +13535,15 @@ var ChartOfAccountsContent = ({
13484
13535
  }
13485
13536
  }
13486
13537
  });
13487
- return /* @__PURE__ */ import_react151.default.createElement(Container, { name: "chart-of-accounts", ref: containerRef, asWidget }, accountId ? /* @__PURE__ */ import_react151.default.createElement(LedgerAccount, { view, containerRef }) : /* @__PURE__ */ import_react151.default.createElement(
13538
+ return /* @__PURE__ */ import_react151.default.createElement(Container, { name: "chart-of-accounts", ref: containerRef, asWidget }, accountId ? /* @__PURE__ */ import_react151.default.createElement(LedgerAccount, { view, containerRef, stringOverrides: stringOverrides?.ledgerAccount }) : /* @__PURE__ */ import_react151.default.createElement(
13488
13539
  ChartOfAccountsTable,
13489
13540
  {
13490
13541
  asWidget,
13491
13542
  withDateControl,
13492
13543
  withExpandAllButton,
13493
13544
  view,
13494
- containerRef
13545
+ containerRef,
13546
+ stringOverrides: stringOverrides?.chartOfAccountsTable
13495
13547
  }
13496
13548
  ));
13497
13549
  };
@@ -14209,7 +14261,7 @@ var JournalFormEntryLines = ({
14209
14261
  };
14210
14262
 
14211
14263
  // src/components/JournalForm/JournalForm.tsx
14212
- var JournalForm = ({ config }) => {
14264
+ var JournalForm = ({ config, stringOverrides }) => {
14213
14265
  const {
14214
14266
  form,
14215
14267
  cancelForm,
@@ -14229,7 +14281,7 @@ var JournalForm = ({ config }) => {
14229
14281
  submitForm();
14230
14282
  }
14231
14283
  },
14232
- /* @__PURE__ */ import_react157.default.createElement("div", { className: "Layer__journal__sidebar__header" }, /* @__PURE__ */ import_react157.default.createElement(Text, { size: "lg" /* lg */, weight: "bold" /* bold */, className: "title" }, "Add New Entry"), /* @__PURE__ */ import_react157.default.createElement("div", { className: "actions" }, /* @__PURE__ */ import_react157.default.createElement(
14284
+ /* @__PURE__ */ import_react157.default.createElement("div", { className: "Layer__journal__sidebar__header" }, /* @__PURE__ */ import_react157.default.createElement(Text, { size: "lg" /* lg */, weight: "bold" /* bold */, className: "title" }, stringOverrides?.header && "Add New Entry"), /* @__PURE__ */ import_react157.default.createElement("div", { className: "actions" }, /* @__PURE__ */ import_react157.default.createElement(
14233
14285
  Button,
14234
14286
  {
14235
14287
  type: "button",
@@ -14237,7 +14289,7 @@ var JournalForm = ({ config }) => {
14237
14289
  variant: "secondary" /* secondary */,
14238
14290
  disabled: sendingForm
14239
14291
  },
14240
- "Cancel"
14292
+ stringOverrides?.cancelButton || "Cancel"
14241
14293
  ), apiError && /* @__PURE__ */ import_react157.default.createElement(
14242
14294
  RetryButton,
14243
14295
  {
@@ -14246,7 +14298,7 @@ var JournalForm = ({ config }) => {
14246
14298
  error: "Check connection and retry in few seconds.",
14247
14299
  disabled: sendingForm
14248
14300
  },
14249
- "Retry"
14301
+ stringOverrides?.retryButton || "Retry"
14250
14302
  ), !apiError && /* @__PURE__ */ import_react157.default.createElement(
14251
14303
  SubmitButton,
14252
14304
  {
@@ -14255,7 +14307,7 @@ var JournalForm = ({ config }) => {
14255
14307
  active: true,
14256
14308
  disabled: sendingForm
14257
14309
  },
14258
- "Save"
14310
+ stringOverrides?.saveButton || "Save"
14259
14311
  ))),
14260
14312
  apiError && /* @__PURE__ */ import_react157.default.createElement(
14261
14313
  Text,
@@ -14321,7 +14373,7 @@ var JournalForm = ({ config }) => {
14321
14373
  variant: "secondary" /* secondary */,
14322
14374
  disabled: sendingForm
14323
14375
  },
14324
- "Cancel"
14376
+ stringOverrides?.cancelButton || "Cancel"
14325
14377
  ), apiError && /* @__PURE__ */ import_react157.default.createElement(
14326
14378
  RetryButton,
14327
14379
  {
@@ -14330,7 +14382,7 @@ var JournalForm = ({ config }) => {
14330
14382
  error: "Check connection and retry in few seconds.",
14331
14383
  disabled: sendingForm
14332
14384
  },
14333
- "Retry"
14385
+ stringOverrides?.retryButton || "Retry"
14334
14386
  ), !apiError && /* @__PURE__ */ import_react157.default.createElement(
14335
14387
  SubmitButton,
14336
14388
  {
@@ -14339,7 +14391,7 @@ var JournalForm = ({ config }) => {
14339
14391
  active: true,
14340
14392
  disabled: sendingForm
14341
14393
  },
14342
- "Save"
14394
+ stringOverrides?.saveButton || "Save"
14343
14395
  ))
14344
14396
  );
14345
14397
  };
@@ -14347,13 +14399,14 @@ var JournalForm = ({ config }) => {
14347
14399
  // src/components/JournalSidebar/JournalSidebar.tsx
14348
14400
  var JournalSidebar = ({
14349
14401
  parentRef: _parentRef,
14350
- config
14402
+ config,
14403
+ stringOverrides
14351
14404
  }) => {
14352
14405
  const { selectedEntryId } = (0, import_react158.useContext)(JournalContext);
14353
14406
  if (selectedEntryId !== "new") {
14354
14407
  return /* @__PURE__ */ import_react158.default.createElement(JournalEntryDetails, null);
14355
14408
  }
14356
- return /* @__PURE__ */ import_react158.default.createElement(JournalForm, { config });
14409
+ return /* @__PURE__ */ import_react158.default.createElement(JournalForm, { config, stringOverrides });
14357
14410
  };
14358
14411
 
14359
14412
  // src/components/JournalTable/JournalTable.tsx
@@ -14362,7 +14415,8 @@ var JournalTable = ({
14362
14415
  view,
14363
14416
  containerRef,
14364
14417
  pageSize = 15,
14365
- config
14418
+ config,
14419
+ stringOverrides
14366
14420
  }) => {
14367
14421
  const [currentPage, setCurrentPage] = (0, import_react159.useState)(1);
14368
14422
  const {
@@ -14382,12 +14436,12 @@ var JournalTable = ({
14382
14436
  return /* @__PURE__ */ import_react159.default.createElement(
14383
14437
  Panel,
14384
14438
  {
14385
- sidebar: /* @__PURE__ */ import_react159.default.createElement(JournalSidebar, { parentRef: containerRef, config }),
14439
+ sidebar: /* @__PURE__ */ import_react159.default.createElement(JournalSidebar, { parentRef: containerRef, config, stringOverrides: stringOverrides?.journalForm }),
14386
14440
  sidebarIsOpen: Boolean(selectedEntryId),
14387
14441
  parentRef: containerRef
14388
14442
  },
14389
- /* @__PURE__ */ import_react159.default.createElement(Header, { className: `Layer__${COMPONENT_NAME6}__header` }, /* @__PURE__ */ import_react159.default.createElement(Heading, { className: `Layer__${COMPONENT_NAME6}__title` }, "Journal"), /* @__PURE__ */ import_react159.default.createElement("div", { className: `Layer__${COMPONENT_NAME6}__actions` }, /* @__PURE__ */ import_react159.default.createElement(Button, { onClick: () => addEntry(), disabled: isLoading }, "Add Entry"))),
14390
- /* @__PURE__ */ import_react159.default.createElement("table", { className: "Layer__table Layer__table--hover-effect Layer__journal__table" }, /* @__PURE__ */ import_react159.default.createElement("thead", null, /* @__PURE__ */ import_react159.default.createElement("tr", null, /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header" }), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header" }, "Id"), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header" }, "Date"), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header" }, "Transaction"), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header" }, "Account"), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, "Debit"), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, "Credit"))), /* @__PURE__ */ import_react159.default.createElement("tbody", null, !error && data?.map((entry, idx) => {
14443
+ /* @__PURE__ */ import_react159.default.createElement(Header, { className: `Layer__${COMPONENT_NAME6}__header` }, /* @__PURE__ */ import_react159.default.createElement(Heading, { className: `Layer__${COMPONENT_NAME6}__title` }, stringOverrides?.componentTitle || "Journal"), /* @__PURE__ */ import_react159.default.createElement("div", { className: `Layer__${COMPONENT_NAME6}__actions` }, /* @__PURE__ */ import_react159.default.createElement(Button, { onClick: () => addEntry(), disabled: isLoading }, stringOverrides?.addEntryButton || "Add Entry"))),
14444
+ /* @__PURE__ */ import_react159.default.createElement("table", { className: "Layer__table Layer__table--hover-effect Layer__journal__table" }, /* @__PURE__ */ import_react159.default.createElement("thead", null, /* @__PURE__ */ import_react159.default.createElement("tr", null, /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header" }), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header" }, stringOverrides?.idColumnHeader || "Id"), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header" }, stringOverrides?.dateColumnHeader || "Date"), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header" }, stringOverrides?.transactionColumnHeader || "Transaction"), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header" }, stringOverrides?.accountColumnHeader || "Account"), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, stringOverrides?.debitColumnHeader || "Debit"), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, stringOverrides?.creditColumnHeader || "Credit"))), /* @__PURE__ */ import_react159.default.createElement("tbody", null, !error && data?.map((entry, idx) => {
14391
14445
  return /* @__PURE__ */ import_react159.default.createElement(
14392
14446
  JournalRow,
14393
14447
  {
@@ -14434,7 +14488,8 @@ var Journal = (props) => {
14434
14488
  };
14435
14489
  var JournalContent = ({
14436
14490
  asWidget,
14437
- config = JOURNAL_CONFIG
14491
+ config = JOURNAL_CONFIG,
14492
+ stringOverrides
14438
14493
  }) => {
14439
14494
  const [view, setView] = (0, import_react160.useState)("desktop");
14440
14495
  const containerRef = useElementSize((_a, _b, { width }) => {
@@ -14448,7 +14503,15 @@ var JournalContent = ({
14448
14503
  }
14449
14504
  }
14450
14505
  });
14451
- return /* @__PURE__ */ import_react160.default.createElement(Container, { name: "journal", ref: containerRef, asWidget }, /* @__PURE__ */ import_react160.default.createElement(JournalTable, { view, containerRef, config }));
14506
+ return /* @__PURE__ */ import_react160.default.createElement(Container, { name: "journal", ref: containerRef, asWidget }, /* @__PURE__ */ import_react160.default.createElement(
14507
+ JournalTable,
14508
+ {
14509
+ view,
14510
+ containerRef,
14511
+ config,
14512
+ stringOverrides: stringOverrides?.journalTable
14513
+ }
14514
+ ));
14452
14515
  };
14453
14516
 
14454
14517
  // src/components/Tasks/Tasks.tsx
@@ -14896,18 +14959,21 @@ var UseTasksContext = (0, import_react167.createContext)({
14896
14959
  }
14897
14960
  });
14898
14961
  var Tasks = ({
14899
- tasksHeader,
14900
14962
  collapsable = false,
14901
14963
  defaultCollapsed = false,
14902
- collapsedWhenComplete
14964
+ collapsedWhenComplete,
14965
+ tasksHeader,
14966
+ // deprecated
14967
+ stringOverrides
14903
14968
  }) => {
14904
14969
  return /* @__PURE__ */ import_react167.default.createElement(TasksProvider, null, /* @__PURE__ */ import_react167.default.createElement(
14905
14970
  TasksComponent,
14906
14971
  {
14907
- tasksHeader,
14908
14972
  collapsable,
14909
14973
  defaultCollapsed,
14910
- collapsedWhenComplete
14974
+ collapsedWhenComplete,
14975
+ tasksHeader,
14976
+ stringOverrides
14911
14977
  }
14912
14978
  ));
14913
14979
  };
@@ -14916,10 +14982,12 @@ var TasksProvider = ({ children }) => {
14916
14982
  return /* @__PURE__ */ import_react167.default.createElement(TasksContext.Provider, { value: contextData }, children);
14917
14983
  };
14918
14984
  var TasksComponent = ({
14919
- tasksHeader,
14920
14985
  collapsable = false,
14921
14986
  defaultCollapsed = false,
14922
- collapsedWhenComplete
14987
+ collapsedWhenComplete,
14988
+ tasksHeader,
14989
+ // deprecated
14990
+ stringOverrides
14923
14991
  }) => {
14924
14992
  const { isLoading, loadedStatus, data } = (0, import_react167.useContext)(TasksContext);
14925
14993
  const allComplete = (0, import_react167.useMemo)(() => {
@@ -14942,7 +15010,7 @@ var TasksComponent = ({
14942
15010
  return /* @__PURE__ */ import_react167.default.createElement("div", { className: "Layer__tasks-component" }, /* @__PURE__ */ import_react167.default.createElement(
14943
15011
  TasksHeader,
14944
15012
  {
14945
- tasksHeader,
15013
+ tasksHeader: stringOverrides?.header || tasksHeader,
14946
15014
  collapsable,
14947
15015
  open,
14948
15016
  toggleContent: () => setOpen(!open)
@@ -15052,7 +15120,9 @@ var BookkeepingUpsellBar = ({
15052
15120
  var import_react170 = __toESM(require("react"));
15053
15121
  var import_classnames61 = __toESM(require("classnames"));
15054
15122
  var BookkeepingOverview = ({
15055
- title = "Bookkeeping overview"
15123
+ title,
15124
+ // deprecated
15125
+ stringOverrides
15056
15126
  }) => {
15057
15127
  const [pnlToggle, setPnlToggle] = (0, import_react170.useState)("revenue");
15058
15128
  const [width] = useWindowSize();
@@ -15060,16 +15130,16 @@ var BookkeepingOverview = ({
15060
15130
  View,
15061
15131
  {
15062
15132
  viewClassName: "Layer__bookkeeping-overview--view",
15063
- title,
15133
+ title: stringOverrides?.title || title || "Bookkeeping overview",
15064
15134
  withSidebar: width > 1100,
15065
- sidebar: /* @__PURE__ */ import_react170.default.createElement(TasksComponent, { tasksHeader: "Bookkeeeping Tasks" })
15135
+ sidebar: /* @__PURE__ */ import_react170.default.createElement(TasksComponent, { stringOverrides: stringOverrides?.tasks })
15066
15136
  },
15067
15137
  width <= 1100 && /* @__PURE__ */ import_react170.default.createElement(
15068
15138
  TasksComponent,
15069
15139
  {
15070
- tasksHeader: "Bookkeeeping Tasks",
15071
15140
  collapsable: true,
15072
- collapsedWhenComplete: true
15141
+ collapsedWhenComplete: true,
15142
+ stringOverrides: stringOverrides?.tasks
15073
15143
  }
15074
15144
  ),
15075
15145
  /* @__PURE__ */ import_react170.default.createElement(
@@ -15079,8 +15149,13 @@ var BookkeepingOverview = ({
15079
15149
  asWidget: true,
15080
15150
  elevated: true
15081
15151
  },
15082
- /* @__PURE__ */ import_react170.default.createElement(Header, null, /* @__PURE__ */ import_react170.default.createElement(Heading, { size: "secondary" /* secondary */ }, "Profit & Loss"), /* @__PURE__ */ import_react170.default.createElement(ProfitAndLoss.DatePicker, null)),
15083
- /* @__PURE__ */ import_react170.default.createElement("div", { className: "Layer__bookkeeping-overview__summaries-row" }, /* @__PURE__ */ import_react170.default.createElement(ProfitAndLoss.Summaries, null)),
15152
+ /* @__PURE__ */ import_react170.default.createElement(Header, null, /* @__PURE__ */ import_react170.default.createElement(Heading, { size: "secondary" /* secondary */ }, stringOverrides?.profitAndLoss?.header || "Profit & Loss"), /* @__PURE__ */ import_react170.default.createElement(ProfitAndLoss.DatePicker, null)),
15153
+ /* @__PURE__ */ import_react170.default.createElement("div", { className: "Layer__bookkeeping-overview__summaries-row" }, /* @__PURE__ */ import_react170.default.createElement(
15154
+ ProfitAndLoss.Summaries,
15155
+ {
15156
+ stringOverrides: stringOverrides?.profitAndLoss?.summaries
15157
+ }
15158
+ )),
15084
15159
  /* @__PURE__ */ import_react170.default.createElement(ProfitAndLoss.Chart, null)
15085
15160
  ),
15086
15161
  /* @__PURE__ */ import_react170.default.createElement("div", { className: "Layer__bookkeeping-overview-profit-and-loss-charts" }, /* @__PURE__ */ import_react170.default.createElement(
@@ -15108,7 +15183,14 @@ var BookkeepingOverview = ({
15108
15183
  pnlToggle !== "revenue" && "bookkeeping-overview-profit-and-loss-chart--hidden"
15109
15184
  )
15110
15185
  },
15111
- /* @__PURE__ */ import_react170.default.createElement(ProfitAndLoss.DetailedCharts, { scope: "revenue", hideClose: true })
15186
+ /* @__PURE__ */ import_react170.default.createElement(
15187
+ ProfitAndLoss.DetailedCharts,
15188
+ {
15189
+ scope: "revenue",
15190
+ hideClose: true,
15191
+ stringOverrides: stringOverrides?.profitAndLoss?.detailedCharts
15192
+ }
15193
+ )
15112
15194
  ), /* @__PURE__ */ import_react170.default.createElement(
15113
15195
  Container,
15114
15196
  {
@@ -15117,7 +15199,14 @@ var BookkeepingOverview = ({
15117
15199
  pnlToggle !== "expenses" && "bookkeeping-overview-profit-and-loss-chart--hidden"
15118
15200
  )
15119
15201
  },
15120
- /* @__PURE__ */ import_react170.default.createElement(ProfitAndLoss.DetailedCharts, { scope: "expenses", hideClose: true })
15202
+ /* @__PURE__ */ import_react170.default.createElement(
15203
+ ProfitAndLoss.DetailedCharts,
15204
+ {
15205
+ scope: "expenses",
15206
+ hideClose: true,
15207
+ stringOverrides: stringOverrides?.profitAndLoss?.detailedCharts
15208
+ }
15209
+ )
15121
15210
  ))
15122
15211
  )));
15123
15212
  };
@@ -15226,7 +15315,8 @@ var AccountingOverview = ({
15226
15315
  title = "Accounting overview",
15227
15316
  enableOnboarding = false,
15228
15317
  onTransactionsToReviewClick,
15229
- middleBanner
15318
+ middleBanner,
15319
+ stringOverrides
15230
15320
  }) => {
15231
15321
  const [pnlToggle, setPnlToggle] = (0, import_react174.useState)("revenue");
15232
15322
  return /* @__PURE__ */ import_react174.default.createElement(ProfitAndLoss, { asContainer: false }, /* @__PURE__ */ import_react174.default.createElement(View, { title, headerControls: /* @__PURE__ */ import_react174.default.createElement(ProfitAndLoss.DatePicker, null) }, enableOnboarding && /* @__PURE__ */ import_react174.default.createElement(
@@ -15234,7 +15324,12 @@ var AccountingOverview = ({
15234
15324
  {
15235
15325
  onTransactionsToReviewClick
15236
15326
  }
15237
- ), /* @__PURE__ */ import_react174.default.createElement("div", { className: "Layer__accounting-overview__summaries-row" }, /* @__PURE__ */ import_react174.default.createElement(ProfitAndLoss.Summaries, null), /* @__PURE__ */ import_react174.default.createElement(
15327
+ ), /* @__PURE__ */ import_react174.default.createElement("div", { className: "Layer__accounting-overview__summaries-row" }, /* @__PURE__ */ import_react174.default.createElement(
15328
+ ProfitAndLoss.Summaries,
15329
+ {
15330
+ stringOverrides: stringOverrides?.profitAndLoss?.summaries
15331
+ }
15332
+ ), /* @__PURE__ */ import_react174.default.createElement(
15238
15333
  TransactionToReviewCard,
15239
15334
  {
15240
15335
  usePnlDateRange: true,
@@ -15247,7 +15342,7 @@ var AccountingOverview = ({
15247
15342
  asWidget: true,
15248
15343
  elevated: true
15249
15344
  },
15250
- /* @__PURE__ */ import_react174.default.createElement(Header, null, /* @__PURE__ */ import_react174.default.createElement(Heading, { size: "secondary" /* secondary */ }, "Profit & Loss")),
15345
+ /* @__PURE__ */ import_react174.default.createElement(Header, null, /* @__PURE__ */ import_react174.default.createElement(Heading, { size: "secondary" /* secondary */ }, stringOverrides?.header || "Profit & Loss")),
15251
15346
  /* @__PURE__ */ import_react174.default.createElement(ProfitAndLoss.Chart, null)
15252
15347
  ), middleBanner && /* @__PURE__ */ import_react174.default.createElement(Container, { name: "accounting-overview-middle-banner" }, middleBanner), /* @__PURE__ */ import_react174.default.createElement("div", { className: "Layer__accounting-overview-profit-and-loss-charts" }, /* @__PURE__ */ import_react174.default.createElement(
15253
15348
  Toggle,
@@ -15274,7 +15369,14 @@ var AccountingOverview = ({
15274
15369
  pnlToggle !== "revenue" && "accounting-overview-profit-and-loss-chart--hidden"
15275
15370
  )
15276
15371
  },
15277
- /* @__PURE__ */ import_react174.default.createElement(ProfitAndLoss.DetailedCharts, { scope: "revenue", hideClose: true })
15372
+ /* @__PURE__ */ import_react174.default.createElement(
15373
+ ProfitAndLoss.DetailedCharts,
15374
+ {
15375
+ scope: "revenue",
15376
+ hideClose: true,
15377
+ stringOverrides: stringOverrides?.profitAndLoss?.detailedCharts
15378
+ }
15379
+ )
15278
15380
  ), /* @__PURE__ */ import_react174.default.createElement(
15279
15381
  Container,
15280
15382
  {
@@ -15283,14 +15385,22 @@ var AccountingOverview = ({
15283
15385
  pnlToggle !== "expenses" && "accounting-overview-profit-and-loss-chart--hidden"
15284
15386
  )
15285
15387
  },
15286
- /* @__PURE__ */ import_react174.default.createElement(ProfitAndLoss.DetailedCharts, { scope: "expenses", hideClose: true })
15388
+ /* @__PURE__ */ import_react174.default.createElement(
15389
+ ProfitAndLoss.DetailedCharts,
15390
+ {
15391
+ scope: "expenses",
15392
+ hideClose: true,
15393
+ stringOverrides: stringOverrides?.profitAndLoss?.detailedCharts
15394
+ }
15395
+ )
15287
15396
  ))));
15288
15397
  };
15289
15398
 
15290
15399
  // src/views/BankTransactionsWithLinkedAccounts/BankTransactionsWithLinkedAccounts.tsx
15291
15400
  var import_react175 = __toESM(require("react"));
15292
15401
  var BankTransactionsWithLinkedAccounts = ({
15293
- title = "Bank transactions",
15402
+ title,
15403
+ // deprecated
15294
15404
  elevatedLinkedAccounts = true,
15295
15405
  showLedgerBalance = true,
15296
15406
  showUnlinkItem = false,
@@ -15299,15 +15409,17 @@ var BankTransactionsWithLinkedAccounts = ({
15299
15409
  hardRefreshPnlOnCategorize = false,
15300
15410
  showDescriptions,
15301
15411
  showReceiptUploads,
15302
- mobileComponent
15412
+ mobileComponent,
15413
+ stringOverrides
15303
15414
  }) => {
15304
- return /* @__PURE__ */ import_react175.default.createElement(View, { title }, /* @__PURE__ */ import_react175.default.createElement(
15415
+ return /* @__PURE__ */ import_react175.default.createElement(View, { title: stringOverrides?.title || title || "Bank transactions" }, /* @__PURE__ */ import_react175.default.createElement(
15305
15416
  LinkedAccounts,
15306
15417
  {
15307
15418
  elevated: elevatedLinkedAccounts,
15308
15419
  showLedgerBalance,
15309
15420
  showUnlinkItem,
15310
- showBreakConnection
15421
+ showBreakConnection,
15422
+ stringOverrides: stringOverrides?.linkedAccounts
15311
15423
  }
15312
15424
  ), /* @__PURE__ */ import_react175.default.createElement(
15313
15425
  BankTransactions,
@@ -15317,7 +15429,8 @@ var BankTransactionsWithLinkedAccounts = ({
15317
15429
  showReceiptUploads,
15318
15430
  mobileComponent,
15319
15431
  categorizedOnly,
15320
- hardRefreshPnlOnCategorize
15432
+ hardRefreshPnlOnCategorize,
15433
+ stringOverrides: stringOverrides?.bankTransactions
15321
15434
  }
15322
15435
  ));
15323
15436
  };
@@ -15325,32 +15438,41 @@ var BankTransactionsWithLinkedAccounts = ({
15325
15438
  // src/views/GeneralLedger/GeneralLedger.tsx
15326
15439
  var import_react176 = __toESM(require("react"));
15327
15440
  var GeneralLedgerView = ({
15328
- title = "General Ledger"
15441
+ title,
15442
+ // deprecated
15443
+ stringOverrides
15329
15444
  }) => {
15330
15445
  const [activeTab, setActiveTab] = (0, import_react176.useState)("chartOfAccounts");
15331
- return /* @__PURE__ */ import_react176.default.createElement(ProfitAndLoss, { asContainer: false }, /* @__PURE__ */ import_react176.default.createElement(View, { title }, /* @__PURE__ */ import_react176.default.createElement(
15446
+ return /* @__PURE__ */ import_react176.default.createElement(ProfitAndLoss, { asContainer: false }, /* @__PURE__ */ import_react176.default.createElement(View, { title: stringOverrides?.title || title || "General Ledger" }, /* @__PURE__ */ import_react176.default.createElement(
15332
15447
  Toggle,
15333
15448
  {
15334
15449
  name: "general-ledger-tabs",
15335
15450
  options: [
15336
15451
  {
15337
15452
  value: "chartOfAccounts",
15338
- label: "Chart of accounts"
15453
+ label: stringOverrides?.chartOfAccountsToggleOption || "Chart of accounts"
15339
15454
  },
15340
15455
  {
15341
15456
  value: "journal",
15342
- label: "Journal"
15457
+ label: stringOverrides?.journalToggleOption || "Journal"
15343
15458
  }
15344
15459
  ],
15345
15460
  selected: activeTab,
15346
15461
  onChange: (opt) => setActiveTab(opt.target.value)
15347
15462
  }
15348
- ), /* @__PURE__ */ import_react176.default.createElement(Container, { name: "generalLedger" }, activeTab === "chartOfAccounts" ? /* @__PURE__ */ import_react176.default.createElement(ChartOfAccounts, { asWidget: true, withExpandAllButton: true }) : /* @__PURE__ */ import_react176.default.createElement(Journal, null))));
15463
+ ), /* @__PURE__ */ import_react176.default.createElement(Container, { name: "generalLedger" }, activeTab === "chartOfAccounts" ? /* @__PURE__ */ import_react176.default.createElement(
15464
+ ChartOfAccounts,
15465
+ {
15466
+ asWidget: true,
15467
+ withExpandAllButton: true,
15468
+ stringOverrides: stringOverrides?.chartOfAccounts
15469
+ }
15470
+ ) : /* @__PURE__ */ import_react176.default.createElement(Journal, { stringOverrides: stringOverrides?.journal }))));
15349
15471
  };
15350
15472
 
15351
15473
  // src/views/Reports/Reports.tsx
15352
15474
  var import_react177 = __toESM(require("react"));
15353
- var DownloadButton2 = () => {
15475
+ var DownloadButton2 = ({ stringOverrides }) => {
15354
15476
  const { dateRange } = (0, import_react177.useContext)(ProfitAndLoss.Context);
15355
15477
  const { auth, businessId, apiUrl } = useLayerContext();
15356
15478
  const [requestFailed, setRequestFailed] = (0, import_react177.useState)(false);
@@ -15387,7 +15509,7 @@ var DownloadButton2 = () => {
15387
15509
  className: "Layer__download-retry-btn",
15388
15510
  error: "Approval failed. Check connection and retry in few seconds."
15389
15511
  },
15390
- "Retry"
15512
+ stringOverrides?.retryButtonText || "Retry"
15391
15513
  ) : /* @__PURE__ */ import_react177.default.createElement(
15392
15514
  Button,
15393
15515
  {
@@ -15395,13 +15517,13 @@ var DownloadButton2 = () => {
15395
15517
  rightIcon: /* @__PURE__ */ import_react177.default.createElement(DownloadCloud_default, { size: 12 }),
15396
15518
  onClick: handleClick
15397
15519
  },
15398
- "Download"
15520
+ stringOverrides?.downloadButtonText || "Download"
15399
15521
  );
15400
15522
  };
15401
- var Reports = ({ title = "Reports" }) => {
15523
+ var Reports = ({ title, stringOverrides }) => {
15402
15524
  const containerRef = (0, import_react177.useRef)(null);
15403
15525
  const [activeTab, setActiveTab] = (0, import_react177.useState)("profitAndLoss");
15404
- return /* @__PURE__ */ import_react177.default.createElement(View, { title }, /* @__PURE__ */ import_react177.default.createElement("div", { className: "Layer__component Layer__header__actions" }, /* @__PURE__ */ import_react177.default.createElement(
15526
+ return /* @__PURE__ */ import_react177.default.createElement(View, { title: stringOverrides?.title || title || "Reports" }, /* @__PURE__ */ import_react177.default.createElement("div", { className: "Layer__component Layer__header__actions" }, /* @__PURE__ */ import_react177.default.createElement(
15405
15527
  Toggle,
15406
15528
  {
15407
15529
  name: "reports-tabs",
@@ -15416,26 +15538,38 @@ var Reports = ({ title = "Reports" }) => {
15416
15538
  selected: activeTab,
15417
15539
  onChange: (opt) => setActiveTab(opt.target.value)
15418
15540
  }
15419
- )), /* @__PURE__ */ import_react177.default.createElement(Container, { name: "reports", ref: containerRef }, /* @__PURE__ */ import_react177.default.createElement(ProfitAndLoss, { asContainer: false }, /* @__PURE__ */ import_react177.default.createElement(ReportsPanel, { containerRef, openReport: activeTab }))));
15541
+ )), /* @__PURE__ */ import_react177.default.createElement(Container, { name: "reports", ref: containerRef }, /* @__PURE__ */ import_react177.default.createElement(ProfitAndLoss, { asContainer: false }, /* @__PURE__ */ import_react177.default.createElement(ReportsPanel, { containerRef, openReport: activeTab, stringOverrides }))));
15420
15542
  };
15421
- var ReportsPanel = ({ containerRef, openReport }) => {
15543
+ var ReportsPanel = ({ containerRef, openReport, stringOverrides }) => {
15422
15544
  const { sidebarScope } = (0, import_react177.useContext)(ProfitAndLoss.Context);
15423
15545
  return /* @__PURE__ */ import_react177.default.createElement(import_react177.default.Fragment, null, openReport === "profitAndLoss" && /* @__PURE__ */ import_react177.default.createElement(
15424
15546
  View,
15425
15547
  {
15426
15548
  type: "panel",
15427
- headerControls: /* @__PURE__ */ import_react177.default.createElement(import_react177.default.Fragment, null, /* @__PURE__ */ import_react177.default.createElement(ProfitAndLoss.DatePicker, null), /* @__PURE__ */ import_react177.default.createElement(DownloadButton2, null))
15549
+ headerControls: /* @__PURE__ */ import_react177.default.createElement(import_react177.default.Fragment, null, /* @__PURE__ */ import_react177.default.createElement(ProfitAndLoss.DatePicker, null), /* @__PURE__ */ import_react177.default.createElement(DownloadButton2, { stringOverrides: stringOverrides?.downloadButton }))
15428
15550
  },
15429
15551
  /* @__PURE__ */ import_react177.default.createElement(
15430
15552
  Panel,
15431
15553
  {
15432
- sidebar: /* @__PURE__ */ import_react177.default.createElement(ProfitAndLoss.DetailedCharts, { showDatePicker: false }),
15554
+ sidebar: /* @__PURE__ */ import_react177.default.createElement(
15555
+ ProfitAndLoss.DetailedCharts,
15556
+ {
15557
+ showDatePicker: false,
15558
+ stringOverrides: stringOverrides?.profitAndLoss?.detailedCharts
15559
+ }
15560
+ ),
15433
15561
  sidebarIsOpen: Boolean(sidebarScope),
15434
15562
  parentRef: containerRef
15435
15563
  },
15436
- /* @__PURE__ */ import_react177.default.createElement(ProfitAndLoss.Table, { asContainer: false })
15564
+ /* @__PURE__ */ import_react177.default.createElement(
15565
+ ProfitAndLoss.Table,
15566
+ {
15567
+ asContainer: false,
15568
+ stringOverrides: stringOverrides?.profitAndLoss?.table
15569
+ }
15570
+ )
15437
15571
  )
15438
- ), openReport === "balanceSheet" && /* @__PURE__ */ import_react177.default.createElement(BalanceSheet, null), openReport === "statementOfCashFlow" && /* @__PURE__ */ import_react177.default.createElement(StatementOfCashFlow, null));
15572
+ ), openReport === "balanceSheet" && /* @__PURE__ */ import_react177.default.createElement(BalanceSheet, { stringOverrides: stringOverrides?.balanceSheet }), openReport === "statementOfCashFlow" && /* @__PURE__ */ import_react177.default.createElement(StatementOfCashFlow, { stringOverrides: stringOverrides?.statementOfCashflow }));
15439
15573
  };
15440
15574
 
15441
15575
  // src/components/ProfitAndLossView/ProfitAndLossView.tsx
@@ -15447,23 +15581,30 @@ var ProfitAndLossView = (props) => {
15447
15581
  };
15448
15582
  var ProfitAndLossPanel = ({
15449
15583
  containerRef,
15584
+ stringOverrides,
15450
15585
  ...props
15451
15586
  }) => {
15452
15587
  const { sidebarScope } = (0, import_react178.useContext)(ProfitAndLoss.Context);
15453
15588
  return /* @__PURE__ */ import_react178.default.createElement(
15454
15589
  Panel,
15455
15590
  {
15456
- sidebar: /* @__PURE__ */ import_react178.default.createElement(ProfitAndLossDetailedCharts, null),
15591
+ sidebar: /* @__PURE__ */ import_react178.default.createElement(
15592
+ ProfitAndLossDetailedCharts,
15593
+ {
15594
+ stringOverrides: stringOverrides?.profitAndLossDetailedCharts
15595
+ }
15596
+ ),
15457
15597
  sidebarIsOpen: Boolean(sidebarScope),
15458
15598
  parentRef: containerRef
15459
15599
  },
15460
- /* @__PURE__ */ import_react178.default.createElement(Header, { className: `Layer__${COMPONENT_NAME7}__header` }, /* @__PURE__ */ import_react178.default.createElement(Heading, { className: "Layer__profit-and-loss__title" }, "Profit & Loss")),
15461
- /* @__PURE__ */ import_react178.default.createElement(Components, { ...props })
15600
+ /* @__PURE__ */ import_react178.default.createElement(Header, { className: `Layer__${COMPONENT_NAME7}__header` }, /* @__PURE__ */ import_react178.default.createElement(Heading, { className: "Layer__profit-and-loss__title" }, stringOverrides?.header || "Profit & Loss")),
15601
+ /* @__PURE__ */ import_react178.default.createElement(Components, { stringOverrides, ...props })
15462
15602
  );
15463
15603
  };
15464
15604
  var Components = ({
15465
15605
  hideChart = false,
15466
- hideTable = false
15606
+ hideTable = false,
15607
+ stringOverrides
15467
15608
  }) => {
15468
15609
  const { error, isLoading, isValidating, refetch } = (0, import_react178.useContext)(
15469
15610
  ProfitAndLoss.Context
@@ -15486,14 +15627,26 @@ var Components = ({
15486
15627
  className: `Layer__${COMPONENT_NAME7}__chart_with_summaries__summary-col`
15487
15628
  },
15488
15629
  /* @__PURE__ */ import_react178.default.createElement(ProfitAndLoss.DatePicker, null),
15489
- /* @__PURE__ */ import_react178.default.createElement(ProfitAndLoss.Summaries, { vertical: true, actionable: true })
15630
+ /* @__PURE__ */ import_react178.default.createElement(
15631
+ ProfitAndLoss.Summaries,
15632
+ {
15633
+ vertical: true,
15634
+ actionable: true,
15635
+ stringOverrides: stringOverrides?.profitAndLossSummaries
15636
+ }
15637
+ )
15490
15638
  ), /* @__PURE__ */ import_react178.default.createElement(
15491
15639
  "div",
15492
15640
  {
15493
15641
  className: `Layer__${COMPONENT_NAME7}__chart_with_summaries__chart-col`
15494
15642
  },
15495
15643
  /* @__PURE__ */ import_react178.default.createElement(ProfitAndLoss.Chart, null)
15496
- )), !hideTable && /* @__PURE__ */ import_react178.default.createElement(ProfitAndLoss.Table, null));
15644
+ )), !hideTable && /* @__PURE__ */ import_react178.default.createElement(
15645
+ ProfitAndLoss.Table,
15646
+ {
15647
+ stringOverrides: stringOverrides?.profitAndLossTable
15648
+ }
15649
+ ));
15497
15650
  };
15498
15651
  // Annotate the CommonJS export names for ESM import in node:
15499
15652
  0 && (module.exports = {