@layerfi/components 0.1.108-alpha.1 → 0.1.108

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.
@@ -5570,7 +5570,7 @@ import { useState as useState3 } from "react";
5570
5570
  import { useReducer, useEffect } from "react";
5571
5571
 
5572
5572
  // package.json
5573
- var version = "0.1.108-alpha.1";
5573
+ var version = "0.1.108";
5574
5574
 
5575
5575
  // src/models/APIError.ts
5576
5576
  var APIError = class _APIError extends Error {
@@ -8696,7 +8696,7 @@ import {
8696
8696
  startOfMonth,
8697
8697
  startOfYear
8698
8698
  } from "date-fns";
8699
- import { useState as useState2, createContext as createContext5, useContext as useContext5 } from "react";
8699
+ import { useState as useState2, createContext as createContext5, useContext as useContext5, useMemo as useMemo7 } from "react";
8700
8700
  import { createStore, useStore } from "zustand";
8701
8701
 
8702
8702
  // src/utils/switch/assertUnreachable.ts
@@ -8869,13 +8869,9 @@ var getEffectiveDateRangeForMode = (mode, { start, end }) => {
8869
8869
  };
8870
8870
  function useGlobalDateRange({ displayMode = "monthPicker" }) {
8871
8871
  const store = useContext5(GlobalDateStoreContext);
8872
- const rawStart = useStoreWithDateSelected(store, ({ start: start2 }) => start2);
8873
- const rawEnd = useStoreWithDateSelected(store, ({ end: end2 }) => end2);
8874
- const { start, end } = getEffectiveDateRangeForMode(displayMode, { start: rawStart, end: rawEnd });
8875
- return {
8876
- start,
8877
- end
8878
- };
8872
+ const rawStart = useStoreWithDateSelected(store, ({ start }) => start);
8873
+ const rawEnd = useStoreWithDateSelected(store, ({ end }) => end);
8874
+ return useMemo7(() => getEffectiveDateRangeForMode(displayMode, { start: rawStart, end: rawEnd }), [displayMode, rawEnd, rawStart]);
8879
8875
  }
8880
8876
  function useGlobalDateRangeActions() {
8881
8877
  const store = useContext5(GlobalDateStoreContext);
@@ -9485,10 +9481,10 @@ var Header = forwardRef2(
9485
9481
  Header.displayName = "Header";
9486
9482
 
9487
9483
  // src/components/Onboarding/ConnectAccount.tsx
9488
- import { useContext as useContext8, useMemo as useMemo11 } from "react";
9484
+ import { useContext as useContext8, useMemo as useMemo12 } from "react";
9489
9485
 
9490
9486
  // src/hooks/useBankTransactions/useAugmentedBankTransactions.tsx
9491
- import { useCallback as useCallback9, useEffect as useEffect3, useMemo as useMemo9, useRef, useState as useState6 } from "react";
9487
+ import { useCallback as useCallback9, useEffect as useEffect3, useMemo as useMemo10, useRef, useState as useState6 } from "react";
9492
9488
 
9493
9489
  // src/components/BankTransactions/constants.ts
9494
9490
  var CategorizedCategories = [
@@ -9559,7 +9555,7 @@ import { endOfMonth as endOfMonth2, startOfMonth as startOfMonth2 } from "date-f
9559
9555
  // src/hooks/useBankTransactions/useBankTransactions.ts
9560
9556
  import useSWRInfinite from "swr/infinite";
9561
9557
  var import_lodash4 = __toESM(require_lodash2());
9562
- import { useCallback as useCallback5, useMemo as useMemo7 } from "react";
9558
+ import { useCallback as useCallback5, useMemo as useMemo8 } from "react";
9563
9559
  var BANK_TRANSACTIONS_TAG_KEY = "#bank-transactions";
9564
9560
  function keyLoader(previousPageData, {
9565
9561
  access_token: accessToken,
@@ -9661,7 +9657,7 @@ function useBankTransactionsInvalidator() {
9661
9657
  ),
9662
9658
  [invalidate]
9663
9659
  );
9664
- const debouncedInvalidateBankTransactions = useMemo7(
9660
+ const debouncedInvalidateBankTransactions = useMemo8(
9665
9661
  () => (0, import_lodash4.debounce)(
9666
9662
  invalidateBankTransactions,
9667
9663
  INVALIDATION_DEBOUNCE_OPTIONS.wait,
@@ -9751,7 +9747,7 @@ var useBankAccounts = () => {
9751
9747
  // src/hooks/useProfitAndLoss/useProfitAndLossDetailLines.tsx
9752
9748
  import useSWR7 from "swr";
9753
9749
  var import_lodash5 = __toESM(require_lodash2());
9754
- import { useCallback as useCallback6, useMemo as useMemo8 } from "react";
9750
+ import { useCallback as useCallback6, useMemo as useMemo9 } from "react";
9755
9751
  import { Schema as Schema9 } from "effect";
9756
9752
  var LIST_PNL_DETAIL_LINES_TAG_KEY = "#list-pnl-detail-lines";
9757
9753
  var PnlDetailLinesSWRResponse = class {
@@ -9867,7 +9863,7 @@ function usePnlDetailLinesInvalidator() {
9867
9863
  () => invalidate((tags) => tags.includes(LIST_PNL_DETAIL_LINES_TAG_KEY)),
9868
9864
  [invalidate]
9869
9865
  );
9870
- const debouncedInvalidatePnlDetailLines = useMemo8(
9866
+ const debouncedInvalidatePnlDetailLines = useMemo9(
9871
9867
  () => (0, import_lodash5.debounce)(
9872
9868
  invalidatePnlDetailLines,
9873
9869
  INVALIDATION_DEBOUNCE_OPTIONS2.wait,
@@ -10093,7 +10089,7 @@ var useAugmentedBankTransactions = (params) => {
10093
10089
  } = useLayerContext();
10094
10090
  const dateFilterMode = (params == null ? void 0 : params.applyGlobalDateRange) ? "GlobalDateRange" /* GlobalDateRange */ : (params == null ? void 0 : params.monthlyView) ? "MonthlyView" /* MonthlyView */ : void 0;
10095
10091
  const { start, end } = useGlobalDateRange({ displayMode: "monthPicker" });
10096
- const globalDateRange = useMemo9(() => ({
10092
+ const globalDateRange = useMemo10(() => ({
10097
10093
  startDate: start,
10098
10094
  endDate: end
10099
10095
  }), [start, end]);
@@ -10103,7 +10099,7 @@ var useAugmentedBankTransactions = (params) => {
10103
10099
  };
10104
10100
  const initialFilters = __spreadValues(__spreadValues({}, (params == null ? void 0 : params.scope) && { categorizationStatus: params == null ? void 0 : params.scope }), dateFilterMode === "MonthlyView" /* MonthlyView */ && { dateRange: defaultDateRange });
10105
10101
  const [baseFilters, setBaseFilters] = useState6(initialFilters);
10106
- const filters = useMemo9(() => __spreadValues(__spreadValues({}, baseFilters), dateFilterMode === "GlobalDateRange" /* GlobalDateRange */ && { dateRange: globalDateRange }), [dateFilterMode, baseFilters, globalDateRange]);
10102
+ const filters = useMemo10(() => __spreadValues(__spreadValues({}, baseFilters), dateFilterMode === "GlobalDateRange" /* GlobalDateRange */ && { dateRange: globalDateRange }), [dateFilterMode, baseFilters, globalDateRange]);
10107
10103
  const display = (_a = filters == null ? void 0 : filters.categorizationStatus) != null ? _a : "categorized" /* categorized */;
10108
10104
  const {
10109
10105
  data: rawResponseData,
@@ -10116,19 +10112,19 @@ var useAugmentedBankTransactions = (params) => {
10116
10112
  } = useBankTransactions(
10117
10113
  bankTransactionFiltersToHookOptions(filters)
10118
10114
  );
10119
- const data = useMemo9(() => {
10115
+ const data = useMemo10(() => {
10120
10116
  if (rawResponseData && rawResponseData.length > 0) {
10121
10117
  return rawResponseData == null ? void 0 : rawResponseData.map((x) => x == null ? void 0 : x.data).flat().filter((x) => !!x);
10122
10118
  }
10123
10119
  return void 0;
10124
10120
  }, [rawResponseData]);
10125
- const lastMetadata = useMemo9(() => {
10121
+ const lastMetadata = useMemo10(() => {
10126
10122
  if (rawResponseData && rawResponseData.length > 0) {
10127
10123
  return rawResponseData[rawResponseData.length - 1].meta;
10128
10124
  }
10129
10125
  return void 0;
10130
10126
  }, [rawResponseData]);
10131
- const hasMore = useMemo9(() => {
10127
+ const hasMore = useMemo10(() => {
10132
10128
  var _a2, _b, _c, _d;
10133
10129
  if (rawResponseData && rawResponseData.length > 0) {
10134
10130
  const lastElement = rawResponseData[rawResponseData.length - 1];
@@ -10138,14 +10134,14 @@ var useAugmentedBankTransactions = (params) => {
10138
10134
  }
10139
10135
  return false;
10140
10136
  }, [rawResponseData]);
10141
- const accountsList = useMemo9(
10137
+ const accountsList = useMemo10(
10142
10138
  () => data ? collectAccounts(data) : [],
10143
10139
  [data]
10144
10140
  );
10145
10141
  const setFilters = useCallback9((newFilters) => {
10146
10142
  setBaseFilters((prevFilters) => __spreadValues(__spreadValues({}, prevFilters), newFilters));
10147
10143
  }, []);
10148
- const filteredData = useMemo9(() => {
10144
+ const filteredData = useMemo10(() => {
10149
10145
  var _a2, _b;
10150
10146
  let filtered = data;
10151
10147
  if (!filtered) {
@@ -10302,14 +10298,14 @@ var useAugmentedBankTransactions = (params) => {
10302
10298
  }
10303
10299
  }, [syncTimestamps, filters]);
10304
10300
  const { data: linkedAccounts, refetchAccounts } = useLinkedAccounts();
10305
- const anyAccountSyncing = useMemo9(
10301
+ const anyAccountSyncing = useMemo10(
10306
10302
  () => Boolean(linkedAccounts == null ? void 0 : linkedAccounts.some((item) => item.is_syncing)),
10307
10303
  [linkedAccounts]
10308
10304
  );
10309
10305
  const [pollIntervalMs, setPollIntervalMs] = useState6(
10310
10306
  INITIAL_POLL_INTERVAL_MS
10311
10307
  );
10312
- const transactionsNotSynced = useMemo9(
10308
+ const transactionsNotSynced = useMemo10(
10313
10309
  () => isLoading === false && anyAccountSyncing && (!data || (data == null ? void 0 : data.length) === 0),
10314
10310
  [data, anyAccountSyncing, isLoading]
10315
10311
  );
@@ -10797,7 +10793,7 @@ import {
10797
10793
  } from "react";
10798
10794
 
10799
10795
  // src/components/Tooltip/useTooltip.ts
10800
- import { useMemo as useMemo10, useState as useState7, createContext as createContext8, useContext as useContext7 } from "react";
10796
+ import { useMemo as useMemo11, useState as useState7, createContext as createContext8, useContext as useContext7 } from "react";
10801
10797
  import {
10802
10798
  useFloating,
10803
10799
  autoUpdate,
@@ -10866,7 +10862,7 @@ var useTooltip = ({
10866
10862
  },
10867
10863
  duration: 300
10868
10864
  });
10869
- return useMemo10(
10865
+ return useMemo11(
10870
10866
  () => __spreadValues(__spreadValues({
10871
10867
  open,
10872
10868
  setOpen,
@@ -12142,7 +12138,7 @@ var ConnectAccount = ({
12142
12138
  const { data, isLoading } = useAugmentedBankTransactions({
12143
12139
  scope: "review" /* review */
12144
12140
  });
12145
- const transactionsToReview = useMemo11(
12141
+ const transactionsToReview = useMemo12(
12146
12142
  () => countTransactionsToReview({ transactions: data }),
12147
12143
  [data, isLoading]
12148
12144
  );
@@ -13078,7 +13074,7 @@ function LinkedAccountPill({ label, items }) {
13078
13074
  }
13079
13075
 
13080
13076
  // src/components/LinkedAccounts/UnlinkAccountConfirmationModal/UnlinkAccountConfirmationModal.tsx
13081
- import { useContext as useContext10, useMemo as useMemo12 } from "react";
13077
+ import { useContext as useContext10, useMemo as useMemo13 } from "react";
13082
13078
 
13083
13079
  // src/components/ui/Modal/Modal.tsx
13084
13080
  import { forwardRef as forwardRef7 } from "react";
@@ -13232,15 +13228,16 @@ Button2.displayName = "Button";
13232
13228
  // src/components/ui/Typography/Heading.tsx
13233
13229
  import { forwardRef as forwardRef9 } from "react";
13234
13230
  import { Heading as ReactAriaHeading } from "react-aria-components";
13231
+ import classNames22 from "classnames";
13235
13232
  import { jsx as jsx66 } from "react/jsx-runtime";
13236
13233
  var HEADING_CLASS_NAME = "Layer__UI__Heading";
13237
13234
  var Heading2 = forwardRef9((_a, ref) => {
13238
- var _b = _a, { align, pie, pbe, size, variant, weight } = _b, restProps = __objRest(_b, ["align", "pie", "pbe", "size", "variant", "weight"]);
13239
- const dataProperties = toDataProperties({ pbe, pie, size, align, variant, weight });
13235
+ var _b = _a, { align, pie, pbe, size, variant, weight, ellipsis, className } = _b, restProps = __objRest(_b, ["align", "pie", "pbe", "size", "variant", "weight", "ellipsis", "className"]);
13236
+ const dataProperties = toDataProperties({ pbe, pie, size, align, variant, weight, ellipsis });
13240
13237
  return /* @__PURE__ */ jsx66(
13241
13238
  ReactAriaHeading,
13242
13239
  __spreadProps(__spreadValues(__spreadValues({}, restProps), dataProperties), {
13243
- className: HEADING_CLASS_NAME,
13240
+ className: classNames22(HEADING_CLASS_NAME, className),
13244
13241
  ref
13245
13242
  })
13246
13243
  );
@@ -13248,13 +13245,13 @@ var Heading2 = forwardRef9((_a, ref) => {
13248
13245
  Heading2.displayName = "Heading";
13249
13246
 
13250
13247
  // src/components/ui/Modal/ModalSlots.tsx
13251
- import classNames22 from "classnames";
13248
+ import classNames23 from "classnames";
13252
13249
  import { jsx as jsx67, jsxs as jsxs34 } from "react/jsx-runtime";
13253
13250
  var MODAL_CLOSE_BUTTON_CLASS_NAME = "Layer__ModalCloseButton";
13254
13251
  var ModalCloseButton = ({ onClose, positionAbsolute = false }) => /* @__PURE__ */ jsx67(
13255
13252
  "div",
13256
13253
  {
13257
- className: classNames22(
13254
+ className: classNames23(
13258
13255
  MODAL_CLOSE_BUTTON_CLASS_NAME,
13259
13256
  positionAbsolute && `${MODAL_CLOSE_BUTTON_CLASS_NAME}--position-absolute`
13260
13257
  ),
@@ -13326,7 +13323,7 @@ function ModalActions({ children }) {
13326
13323
 
13327
13324
  // src/components/ui/Stack/Stack.tsx
13328
13325
  import { forwardRef as forwardRef11 } from "react";
13329
- import classNames23 from "classnames";
13326
+ import classNames24 from "classnames";
13330
13327
  import { jsx as jsx68 } from "react/jsx-runtime";
13331
13328
  var CLASS_NAME2 = "Layer__Stack";
13332
13329
  var Stack = forwardRef11(
@@ -13381,7 +13378,7 @@ var Stack = forwardRef11(
13381
13378
  __spreadProps(__spreadValues(__spreadValues({
13382
13379
  ref
13383
13380
  }, restProps), dataProperties), {
13384
- className: classNames23(CLASS_NAME2, className),
13381
+ className: classNames24(CLASS_NAME2, className),
13385
13382
  children
13386
13383
  })
13387
13384
  );
@@ -13469,7 +13466,7 @@ import { jsx as jsx70 } from "react/jsx-runtime";
13469
13466
  function UnlinkAccountConfirmationModal({ isOpen, onOpenChange, account }) {
13470
13467
  const { unlinkAccount: unlinkAccount2 } = useContext10(LinkedAccountsContext);
13471
13468
  const variant = account.external_account_source === "CUSTOM" ? "DELETE" : "UNLINK";
13472
- const modalContent = useMemo12(() => {
13469
+ const modalContent = useMemo13(() => {
13473
13470
  switch (variant) {
13474
13471
  case "DELETE":
13475
13472
  return {
@@ -13655,7 +13652,7 @@ var LinkedAccountItemThumb = ({
13655
13652
  };
13656
13653
 
13657
13654
  // src/components/LinkedAccounts/LinkedAccountsContent.tsx
13658
- import classNames25 from "classnames";
13655
+ import classNames26 from "classnames";
13659
13656
 
13660
13657
  // src/components/LinkedAccounts/ConfirmationModal/LinkedAccountsConfirmationModal.tsx
13661
13658
  import { useState as useState15 } from "react";
@@ -13687,14 +13684,14 @@ function ConditionalList({
13687
13684
 
13688
13685
  // src/components/ui/Checkbox/Checkbox.tsx
13689
13686
  import { Check } from "lucide-react";
13690
- import { useMemo as useMemo13 } from "react";
13687
+ import { useMemo as useMemo14 } from "react";
13691
13688
  import { Checkbox as ReactAriaCheckbox } from "react-aria-components";
13692
- import classNames24 from "classnames";
13689
+ import classNames25 from "classnames";
13693
13690
  import { Fragment as Fragment7, jsx as jsx73, jsxs as jsxs37 } from "react/jsx-runtime";
13694
13691
  var CLASS_NAME3 = "Layer__Checkbox";
13695
13692
  function Checkbox(_a) {
13696
13693
  var _b = _a, { children, className, variant = "default", size = "md" } = _b, props = __objRest(_b, ["children", "className", "variant", "size"]);
13697
- const dataProperties = useMemo13(() => toDataProperties({
13694
+ const dataProperties = useMemo14(() => toDataProperties({
13698
13695
  size,
13699
13696
  variant,
13700
13697
  labeled: typeof children === "string" && children.length > 0
@@ -13702,7 +13699,7 @@ function Checkbox(_a) {
13702
13699
  return /* @__PURE__ */ jsx73(
13703
13700
  ReactAriaCheckbox,
13704
13701
  __spreadProps(__spreadValues(__spreadValues({}, dataProperties), props), {
13705
- className: classNames24(CLASS_NAME3, className),
13702
+ className: classNames25(CLASS_NAME3, className),
13706
13703
  children: withRenderProp(children, (node) => /* @__PURE__ */ jsxs37(Fragment7, { children: [
13707
13704
  /* @__PURE__ */ jsx73("div", { slot: "checkbox", children: /* @__PURE__ */ jsx73(Check, { size: size === "lg" ? 16 : 12 }) }),
13708
13705
  node
@@ -14004,7 +14001,7 @@ var LinkedAccountsContent = ({
14004
14001
  showBreakConnection
14005
14002
  }) => {
14006
14003
  const { data, addConnection } = useContext12(LinkedAccountsContext);
14007
- const linkedAccountsNewAccountClassName = classNames25(
14004
+ const linkedAccountsNewAccountClassName = classNames26(
14008
14005
  "Layer__linked-accounts__new-account",
14009
14006
  asWidget && "--as-widget",
14010
14007
  showLedgerBalance && "--show-ledger-balance",
@@ -14044,7 +14041,7 @@ var LinkedAccountsContent = ({
14044
14041
  };
14045
14042
 
14046
14043
  // src/components/LinkedAccounts/OpeningBalanceModal/OpeningBalanceModal.tsx
14047
- import { useContext as useContext13, useMemo as useMemo17, useState as useState18 } from "react";
14044
+ import { useContext as useContext13, useMemo as useMemo18, useState as useState18 } from "react";
14048
14045
 
14049
14046
  // src/utils/business.ts
14050
14047
  import { differenceInCalendarMonths, parseISO as parseISO2, startOfMonth as startOfMonth3 } from "date-fns";
@@ -14077,10 +14074,10 @@ var isDateAllowedToBrowse = (date, business) => {
14077
14074
  };
14078
14075
 
14079
14076
  // src/components/LinkedAccounts/AccountFormBox/AccountFormBox.tsx
14080
- import { useMemo as useMemo16 } from "react";
14077
+ import { useMemo as useMemo17 } from "react";
14081
14078
 
14082
14079
  // src/components/Input/Input.tsx
14083
- import classNames26 from "classnames";
14080
+ import classNames27 from "classnames";
14084
14081
  import { jsx as jsx78, jsxs as jsxs42 } from "react/jsx-runtime";
14085
14082
  var Input = (_a) => {
14086
14083
  var _b = _a, {
@@ -14094,7 +14091,7 @@ var Input = (_a) => {
14094
14091
  "errorMessage",
14095
14092
  "leftText"
14096
14093
  ]);
14097
- const baseClassName = classNames26(
14094
+ const baseClassName = classNames27(
14098
14095
  "Layer__input",
14099
14096
  isInvalid ? "Layer__input--error" : "",
14100
14097
  leftText ? "Layer__input--with-left-text" : "",
@@ -14110,7 +14107,7 @@ var Input = (_a) => {
14110
14107
  };
14111
14108
 
14112
14109
  // src/components/Input/InputGroup.tsx
14113
- import classNames27 from "classnames";
14110
+ import classNames28 from "classnames";
14114
14111
  import { jsx as jsx79, jsxs as jsxs43 } from "react/jsx-runtime";
14115
14112
  var InputGroup = ({
14116
14113
  label,
@@ -14119,7 +14116,7 @@ var InputGroup = ({
14119
14116
  inline,
14120
14117
  children
14121
14118
  }) => {
14122
- const baseClassName = classNames27(
14119
+ const baseClassName = classNames28(
14123
14120
  "Layer__input-group",
14124
14121
  className,
14125
14122
  inline && "Layer__input-group--inline"
@@ -14298,7 +14295,7 @@ var ChevronDownFill = (_a) => {
14298
14295
  var ChevronDownFill_default = ChevronDownFill;
14299
14296
 
14300
14297
  // src/components/Input/Select.tsx
14301
- import classNames28 from "classnames";
14298
+ import classNames29 from "classnames";
14302
14299
  import { jsx as jsx83, jsxs as jsxs47 } from "react/jsx-runtime";
14303
14300
  var Select = ({
14304
14301
  name,
@@ -14315,7 +14312,7 @@ var Select = ({
14315
14312
  isLoading,
14316
14313
  formatOptionLabel: formatOptionLabel2
14317
14314
  }) => {
14318
- const baseClassName = classNames28(
14315
+ const baseClassName = classNames29(
14319
14316
  "Layer__select",
14320
14317
  isInvalid ? "Layer__select--error" : "",
14321
14318
  className
@@ -14346,7 +14343,7 @@ var Select = ({
14346
14343
  };
14347
14344
 
14348
14345
  // src/components/Input/InputWithBadge.tsx
14349
- import classNames29 from "classnames";
14346
+ import classNames30 from "classnames";
14350
14347
  import { jsx as jsx84, jsxs as jsxs48 } from "react/jsx-runtime";
14351
14348
 
14352
14349
  // src/components/Input/MultiSelect.tsx
@@ -14354,7 +14351,7 @@ import { useCallback as useCallback12 } from "react";
14354
14351
  import ReactSelect2, {
14355
14352
  components as components2
14356
14353
  } from "react-select";
14357
- import classNames30 from "classnames";
14354
+ import classNames31 from "classnames";
14358
14355
  import { jsx as jsx85, jsxs as jsxs49 } from "react/jsx-runtime";
14359
14356
  var MultiSelect = ({
14360
14357
  name,
@@ -14372,7 +14369,7 @@ var MultiSelect = ({
14372
14369
  inputId,
14373
14370
  isLoading
14374
14371
  }) => {
14375
- const baseClassName = classNames30(
14372
+ const baseClassName = classNames31(
14376
14373
  "Layer__select",
14377
14374
  isInvalid ? "Layer__select--error" : "",
14378
14375
  className
@@ -14406,7 +14403,7 @@ var MultiSelect = ({
14406
14403
  };
14407
14404
 
14408
14405
  // src/components/Input/AmountInput.tsx
14409
- import classNames31 from "classnames";
14406
+ import classNames32 from "classnames";
14410
14407
  import CurrencyInput from "react-currency-input-field";
14411
14408
  import { jsx as jsx86, jsxs as jsxs50 } from "react/jsx-runtime";
14412
14409
  var transformCurrencyValue = (rawValue) => {
@@ -14437,7 +14434,7 @@ var AmountInput = (_a) => {
14437
14434
  "badge",
14438
14435
  "placeholder"
14439
14436
  ]);
14440
- const baseClassName = classNames31(
14437
+ const baseClassName = classNames32(
14441
14438
  "Layer__input Layer__amount-input",
14442
14439
  badge ? "Layer__amount-input--align-left" : "Layer__amount-input--align-right",
14443
14440
  isInvalid ? "Layer__input--error" : "",
@@ -14475,11 +14472,11 @@ var AmountInput = (_a) => {
14475
14472
  };
14476
14473
 
14477
14474
  // src/components/DatePicker/DatePicker.tsx
14478
- import { useMemo as useMemo15, useRef as useRef7, useState as useState17 } from "react";
14475
+ import { useMemo as useMemo16, useRef as useRef7, useState as useState17 } from "react";
14479
14476
  import * as RDP from "react-datepicker";
14480
14477
 
14481
14478
  // src/hooks/useWindowSize/useWindowSize.ts
14482
- import { useState as useState16, useLayoutEffect, useMemo as useMemo14 } from "react";
14479
+ import { useState as useState16, useLayoutEffect, useMemo as useMemo15 } from "react";
14483
14480
 
14484
14481
  // src/config/general.ts
14485
14482
  var DATE_FORMAT = "LLL d, yyyy";
@@ -14507,7 +14504,7 @@ var useWindowSize = () => {
14507
14504
  };
14508
14505
  function useSizeClass() {
14509
14506
  const [width] = useWindowSize();
14510
- const sizeClass = useMemo14(() => {
14507
+ const sizeClass = useMemo15(() => {
14511
14508
  switch (true) {
14512
14509
  case width <= BREAKPOINTS.MOBILE:
14513
14510
  return "mobile";
@@ -14621,7 +14618,7 @@ var DatePickerOptions = ({
14621
14618
  };
14622
14619
 
14623
14620
  // src/components/DatePicker/DatePicker.tsx
14624
- import classNames32 from "classnames";
14621
+ import classNames33 from "classnames";
14625
14622
  import { endOfDay as endOfDay2, endOfMonth as endOfMonth4, endOfYear as endOfYear3, getYear } from "date-fns";
14626
14623
  import { Fragment as Fragment12, jsx as jsx89, jsxs as jsxs51 } from "react/jsx-runtime";
14627
14624
  var ReactDatePicker = RDP.default.default || RDP.default || RDP;
@@ -14723,7 +14720,7 @@ var DatePicker = (_a) => {
14723
14720
  ]);
14724
14721
  const { ModeSelector } = slots != null ? slots : {};
14725
14722
  const pickerRef = useRef7(null);
14726
- const pickerMode = useMemo15(() => {
14723
+ const pickerMode = useMemo16(() => {
14727
14724
  var _a2;
14728
14725
  if (!allowedModes) {
14729
14726
  return displayMode;
@@ -14736,7 +14733,7 @@ var DatePicker = (_a) => {
14736
14733
  }
14737
14734
  return (_a2 = allowedModes[0]) != null ? _a2 : displayMode;
14738
14735
  }, [displayMode, allowedModes]);
14739
- const [firstDate, secondDate] = useMemo15(() => {
14736
+ const [firstDate, secondDate] = useMemo16(() => {
14740
14737
  if (selected instanceof Date) {
14741
14738
  return [selected, null];
14742
14739
  }
@@ -14746,21 +14743,21 @@ var DatePicker = (_a) => {
14746
14743
  return [selected[0], null];
14747
14744
  }, [selected, displayMode]);
14748
14745
  const { isDesktop } = useSizeClass();
14749
- const wrapperClassNames = classNames32(
14746
+ const wrapperClassNames = classNames33(
14750
14747
  "Layer__datepicker__wrapper",
14751
14748
  displayMode === "timePicker" && "Layer__datepicker__time__wrapper",
14752
14749
  showNavigationArrows(navigateArrows, isDesktop) && "Layer__datepicker__wrapper--arrows"
14753
14750
  );
14754
- const datePickerWrapperClassNames = classNames32(
14751
+ const datePickerWrapperClassNames = classNames33(
14755
14752
  "Layer__datepicker",
14756
14753
  displayMode === "timePicker" && "Layer__datepicker__time",
14757
14754
  wrapperClassName
14758
14755
  );
14759
- const calendarClassNames = classNames32(
14756
+ const calendarClassNames = classNames33(
14760
14757
  "Layer__datepicker__calendar",
14761
14758
  calendarClassName
14762
14759
  );
14763
- const popperClassNames = classNames32(
14760
+ const popperClassNames = classNames33(
14764
14761
  "Layer__datepicker__popper",
14765
14762
  displayMode === "timePicker" && "Layer__datepicker__time__popper",
14766
14763
  popperClassName
@@ -14821,7 +14818,7 @@ var DatePicker = (_a) => {
14821
14818
  break;
14822
14819
  }
14823
14820
  };
14824
- const isTodayOrAfter = useMemo15(() => {
14821
+ const isTodayOrAfter = useMemo16(() => {
14825
14822
  switch (displayMode) {
14826
14823
  case "dayPicker":
14827
14824
  return firstDate >= endOfDay2(/* @__PURE__ */ new Date()) || maxDate && firstDate >= maxDate;
@@ -14930,7 +14927,7 @@ var DatePicker = (_a) => {
14930
14927
  Button,
14931
14928
  {
14932
14929
  "aria-label": "Previous Date",
14933
- className: classNames32(
14930
+ className: classNames33(
14934
14931
  "Layer__datepicker__prev-button",
14935
14932
  isBeforeMinDate && "Layer__datepicker__button--disabled"
14936
14933
  ),
@@ -14952,7 +14949,7 @@ var DatePicker = (_a) => {
14952
14949
  {
14953
14950
  "aria-label": "Next Date",
14954
14951
  variant: "secondary" /* secondary */,
14955
- className: classNames32(
14952
+ className: classNames33(
14956
14953
  "Layer__datepicker__next-button",
14957
14954
  isTodayOrAfter ? "Layer__datepicker__button--disabled" : void 0
14958
14955
  ),
@@ -15001,7 +14998,7 @@ var AccountFormBox = ({
15001
14998
  errors = []
15002
14999
  }) => {
15003
15000
  var _a, _b, _c, _d, _e;
15004
- const dataProps = useMemo16(() => toDataProperties({
15001
+ const dataProps = useMemo17(() => toDataProperties({
15005
15002
  saved: isSaved,
15006
15003
  confirmed: value.isConfirmed
15007
15004
  }), [isSaved, value.isConfirmed]);
@@ -15302,7 +15299,7 @@ function LinkedAccountsOpeningBalanceModalContent({
15302
15299
  openingDate: (_a2 = getActivationDate(business)) != null ? _a2 : startOfYear3(/* @__PURE__ */ new Date())
15303
15300
  };
15304
15301
  }));
15305
- const formsDataToSave = useMemo17(
15302
+ const formsDataToSave = useMemo18(
15306
15303
  () => ignoreAlreadySaved(formsData, results),
15307
15304
  [formsData, results]
15308
15305
  );
@@ -15457,7 +15454,7 @@ var LinkedAccountsComponent = ({
15457
15454
 
15458
15455
  // src/components/BankTransactions/BankTransactions.tsx
15459
15456
  var import_lodash7 = __toESM(require_lodash2());
15460
- import { useEffect as useEffect23, useMemo as useMemo39, useRef as useRef23, useState as useState47 } from "react";
15457
+ import { useEffect as useEffect23, useMemo as useMemo40, useRef as useRef23, useState as useState47 } from "react";
15461
15458
 
15462
15459
  // src/contexts/BankTransactionsContext/BankTransactionsContext.tsx
15463
15460
  import { createContext as createContext9, useContext as useContext15 } from "react";
@@ -15614,7 +15611,7 @@ var File = (_a) => {
15614
15611
  var File_default = File;
15615
15612
 
15616
15613
  // src/components/BankTransactionRow/BankTransactionRow.tsx
15617
- import { useEffect as useEffect14, useMemo as useMemo30, useRef as useRef13, useState as useState29 } from "react";
15614
+ import { useEffect as useEffect14, useMemo as useMemo31, useRef as useRef13, useState as useState29 } from "react";
15618
15615
 
15619
15616
  // src/icons/Scissors.tsx
15620
15617
  import { jsx as jsx94, jsxs as jsxs56 } from "react/jsx-runtime";
@@ -15917,7 +15914,7 @@ var MinimizeTwo = (_a) => {
15917
15914
  var MinimizeTwo_default = MinimizeTwo;
15918
15915
 
15919
15916
  // src/components/CategorySelect/CategorySelect.tsx
15920
- import classNames34 from "classnames";
15917
+ import classNames35 from "classnames";
15921
15918
  import { parseISO as parseISO4, format as formatTime } from "date-fns";
15922
15919
 
15923
15920
  // src/hooks/categories/useCategories.ts
@@ -15961,10 +15958,10 @@ function useCategories({ mode } = {}) {
15961
15958
  }
15962
15959
 
15963
15960
  // src/components/BankTransactionMobileList/BusinessCategories.tsx
15964
- import { useCallback as useCallback13, useMemo as useMemo18, useState as useState20 } from "react";
15961
+ import { useCallback as useCallback13, useMemo as useMemo19, useState as useState20 } from "react";
15965
15962
 
15966
15963
  // src/components/ActionableList/ActionableList.tsx
15967
- import classNames33 from "classnames";
15964
+ import classNames34 from "classnames";
15968
15965
  import { jsx as jsx99, jsxs as jsxs59 } from "react/jsx-runtime";
15969
15966
  var ActionableList = ({
15970
15967
  options: options3,
@@ -15973,12 +15970,12 @@ var ActionableList = ({
15973
15970
  showDescriptions = false,
15974
15971
  className
15975
15972
  }) => {
15976
- return /* @__PURE__ */ jsx99("ul", { className: classNames33("Layer__actionable-list", className), children: options3.map((x, idx) => /* @__PURE__ */ jsxs59(
15973
+ return /* @__PURE__ */ jsx99("ul", { className: classNames34("Layer__actionable-list", className), children: options3.map((x, idx) => /* @__PURE__ */ jsxs59(
15977
15974
  "li",
15978
15975
  {
15979
15976
  role: "button",
15980
15977
  onClick: () => onClick(x),
15981
- className: classNames33(
15978
+ className: classNames34(
15982
15979
  x.secondary && "Layer__actionable-list-item--secondary",
15983
15980
  x.asLink && "Layer__actionable-list-item--as-link",
15984
15981
  selectedId === x.id && "Layer__actionable-list__item--selected"
@@ -16177,7 +16174,7 @@ var BusinessCategories = ({
16177
16174
  );
16178
16175
  const [optionsToShow, setOptionsToShow] = useState20(categoryOptions);
16179
16176
  const [selectedGroup, setSelectedGroup] = useState20();
16180
- const filteredOptions = useMemo18(() => {
16177
+ const filteredOptions = useMemo19(() => {
16181
16178
  let options3 = optionsToShow;
16182
16179
  if (query) {
16183
16180
  const lower = query.toLowerCase();
@@ -16517,7 +16514,7 @@ var GroupHeading = (props) => {
16517
16514
  return /* @__PURE__ */ jsx105(
16518
16515
  components3.GroupHeading,
16519
16516
  __spreadValues({
16520
- className: classNames34(
16517
+ className: classNames35(
16521
16518
  props.className,
16522
16519
  props.children === "Match" || props.children === "All categories" ? "Layer__select__group-heading--main" : ""
16523
16520
  )
@@ -16670,7 +16667,7 @@ var CategorySelect = ({
16670
16667
  "button",
16671
16668
  {
16672
16669
  "aria-label": "Select category",
16673
- className: classNames34(
16670
+ className: classNames35(
16674
16671
  "Layer__category-menu__drawer-btn",
16675
16672
  selected && "Layer__category-menu__drawer-btn--selected"
16676
16673
  ),
@@ -17071,7 +17068,7 @@ var Eye = (_a) => {
17071
17068
  var Eye_default = Eye;
17072
17069
 
17073
17070
  // src/components/FileThumb/FileThumb.tsx
17074
- import classNames35 from "classnames";
17071
+ import classNames36 from "classnames";
17075
17072
  import { jsx as jsx110, jsxs as jsxs68 } from "react/jsx-runtime";
17076
17073
  var FileThumb = ({
17077
17074
  url,
@@ -17090,7 +17087,7 @@ var FileThumb = ({
17090
17087
  return /* @__PURE__ */ jsxs68(
17091
17088
  "div",
17092
17089
  {
17093
- className: classNames35(
17090
+ className: classNames36(
17094
17091
  "Layer__file-thumb",
17095
17092
  floatingActions && "Layer__file-thumb--floating"
17096
17093
  ),
@@ -17123,7 +17120,7 @@ var FileThumb = ({
17123
17120
  enableOpen || enableDownload || onDelete ? /* @__PURE__ */ jsxs68(
17124
17121
  "div",
17125
17122
  {
17126
- className: classNames35(
17123
+ className: classNames36(
17127
17124
  "Layer__file-thumb__actions",
17128
17125
  floatingActions && "Layer__file-thumb__actions--floating"
17129
17126
  ),
@@ -17253,7 +17250,7 @@ BankTransactionReceipts.displayName = "BankTransactionReceipts";
17253
17250
  import useSWR9 from "swr";
17254
17251
 
17255
17252
  // src/providers/LegacyModeProvider/LegacyModeProvider.tsx
17256
- import { createContext as createContext11, useContext as useContext17, useMemo as useMemo19 } from "react";
17253
+ import { createContext as createContext11, useContext as useContext17, useMemo as useMemo20 } from "react";
17257
17254
  import { jsx as jsx112 } from "react/jsx-runtime";
17258
17255
  var LegacyModeContext = createContext11({
17259
17256
  overrideMode: void 0
@@ -17265,7 +17262,7 @@ function LegacyModeProvider({
17265
17262
  overrideMode,
17266
17263
  children
17267
17264
  }) {
17268
- const memoizedValue = useMemo19(() => ({ overrideMode }), [overrideMode]);
17265
+ const memoizedValue = useMemo20(() => ({ overrideMode }), [overrideMode]);
17269
17266
  return /* @__PURE__ */ jsx112(LegacyModeContext.Provider, { value: memoizedValue, children });
17270
17267
  }
17271
17268
 
@@ -17385,7 +17382,7 @@ var MatchBadge = ({
17385
17382
  };
17386
17383
 
17387
17384
  // src/components/MatchForm/MatchForm.tsx
17388
- import classNames36 from "classnames";
17385
+ import classNames37 from "classnames";
17389
17386
  import { parseISO as parseISO7, format as formatTime4 } from "date-fns";
17390
17387
  import { jsx as jsx114, jsxs as jsxs71 } from "react/jsx-runtime";
17391
17388
  var MatchForm = ({
@@ -17422,7 +17419,7 @@ var MatchForm = ({
17422
17419
  return /* @__PURE__ */ jsxs71(
17423
17420
  "div",
17424
17421
  {
17425
- className: classNames36(
17422
+ className: classNames37(
17426
17423
  `${classNamePrefix}__match-row`,
17427
17424
  suggestedMatch.id === selectedMatchId ? `${classNamePrefix}__match-row--selected` : ""
17428
17425
  ),
@@ -17477,7 +17474,7 @@ var MatchForm = ({
17477
17474
  };
17478
17475
 
17479
17476
  // src/components/MatchForm/MatchFormMobile.tsx
17480
- import classNames37 from "classnames";
17477
+ import classNames38 from "classnames";
17481
17478
  import { parseISO as parseISO8, format as formatTime5 } from "date-fns";
17482
17479
  import { jsx as jsx115, jsxs as jsxs72 } from "react/jsx-runtime";
17483
17480
  var MatchFormMobile = ({
@@ -17496,7 +17493,7 @@ var MatchFormMobile = ({
17496
17493
  return /* @__PURE__ */ jsxs72(
17497
17494
  "div",
17498
17495
  {
17499
- className: classNames37(
17496
+ className: classNames38(
17500
17497
  `${classNamePrefix}__match-item`,
17501
17498
  match.id === selectedMatchId ? `${classNamePrefix}__match-item--selected` : ""
17502
17499
  ),
@@ -17565,10 +17562,10 @@ var MatchFormMobile = ({
17565
17562
  // src/components/Toggle/Toggle.tsx
17566
17563
  import {
17567
17564
  useEffect as useEffect10,
17568
- useMemo as useMemo20,
17565
+ useMemo as useMemo21,
17569
17566
  useState as useState23
17570
17567
  } from "react";
17571
- import classNames38 from "classnames";
17568
+ import classNames39 from "classnames";
17572
17569
  import { jsx as jsx116, jsxs as jsxs73 } from "react/jsx-runtime";
17573
17570
  import { createElement } from "react";
17574
17571
  var Toggle = ({
@@ -17581,7 +17578,7 @@ var Toggle = ({
17581
17578
  const [currentWidth, setCurrentWidth] = useState23(0);
17582
17579
  const [thumbPos, setThumbPos] = useState23({ left: 0, width: 0 });
17583
17580
  const [initialized, setInitialized] = useState23(false);
17584
- const activeOption = useMemo20(() => {
17581
+ const activeOption = useMemo21(() => {
17585
17582
  return selected ? selected : options3.length > 0 ? options3[0].value : void 0;
17586
17583
  }, [selected, options3]);
17587
17584
  const toggleRef = useElementSize((_a, _b, c) => {
@@ -17589,7 +17586,7 @@ var Toggle = ({
17589
17586
  setCurrentWidth(c.width);
17590
17587
  }
17591
17588
  });
17592
- const baseClassName = classNames38(
17589
+ const baseClassName = classNames39(
17593
17590
  "Layer__toggle",
17594
17591
  `Layer__toggle--${size}`,
17595
17592
  initialized ? "Layer__toggle--initialized" : ""
@@ -17674,7 +17671,7 @@ var ToggleOption = ({
17674
17671
  style,
17675
17672
  index
17676
17673
  }) => {
17677
- const optionClassName = classNames38("Layer__toggle-option", {
17674
+ const optionClassName = classNames39("Layer__toggle-option", {
17678
17675
  "Layer__toggle-option--active": checked
17679
17676
  });
17680
17677
  if (disabled) {
@@ -17839,10 +17836,10 @@ var Notification = ({
17839
17836
  };
17840
17837
 
17841
17838
  // src/components/ExpandedBankTransactionRow/ExpandedBankTransactionRow.tsx
17842
- import classNames41 from "classnames";
17839
+ import classNames42 from "classnames";
17843
17840
 
17844
17841
  // src/components/Textarea/Textarea.tsx
17845
- import classNames39 from "classnames";
17842
+ import classNames40 from "classnames";
17846
17843
  import { jsx as jsx118, jsxs as jsxs75 } from "react/jsx-runtime";
17847
17844
  var Textarea = (_a) => {
17848
17845
  var _b = _a, {
@@ -17854,7 +17851,7 @@ var Textarea = (_a) => {
17854
17851
  "isInvalid",
17855
17852
  "errorMessage"
17856
17853
  ]);
17857
- const baseClassName = classNames39(
17854
+ const baseClassName = classNames40(
17858
17855
  "Layer__textarea",
17859
17856
  isInvalid ? "Layer__textarea--error" : "",
17860
17857
  className
@@ -18025,10 +18022,10 @@ var BankTransactionMemo = ({ bankTransactionId }) => {
18025
18022
  };
18026
18023
 
18027
18024
  // src/features/bankTransactions/[bankTransactionId]/customerVendor/components/BankTransactionCustomerVendorSelector.tsx
18028
- import { useCallback as useCallback20, useMemo as useMemo24 } from "react";
18025
+ import { useCallback as useCallback20, useMemo as useMemo25 } from "react";
18029
18026
 
18030
18027
  // src/features/customerVendor/components/CustomerVendorSelector.tsx
18031
- import { useCallback as useCallback17, useId as useId2, useMemo as useMemo23 } from "react";
18028
+ import { useCallback as useCallback17, useId as useId2, useMemo as useMemo24 } from "react";
18032
18029
 
18033
18030
  // src/features/customers/api/useListCustomers.ts
18034
18031
  import useSWRInfinite2 from "swr/infinite";
@@ -18259,7 +18256,7 @@ import { useState as useState25, useCallback as useCallback16 } from "react";
18259
18256
 
18260
18257
  // src/hooks/useDebounce/useDebounce.ts
18261
18258
  var import_lodash6 = __toESM(require_lodash2());
18262
- import { useEffect as useEffect12, useMemo as useMemo21, useRef as useRef9 } from "react";
18259
+ import { useEffect as useEffect12, useMemo as useMemo22, useRef as useRef9 } from "react";
18263
18260
  var DEFAULT_WAIT = 300;
18264
18261
  var DEFAULT_MAX_WAIT = 2 * DEFAULT_WAIT;
18265
18262
  function useDebounce(fn) {
@@ -18267,7 +18264,7 @@ function useDebounce(fn) {
18267
18264
  useEffect12(() => {
18268
18265
  internalFnRef.current = fn;
18269
18266
  }, [fn]);
18270
- const debouncedCallback = useMemo21(() => {
18267
+ const debouncedCallback = useMemo22(() => {
18271
18268
  const internalFn = (...args) => {
18272
18269
  internalFnRef.current(...args);
18273
18270
  };
@@ -18317,8 +18314,8 @@ function useDebouncedSearchInput({
18317
18314
  import Select3, {
18318
18315
  components as components4
18319
18316
  } from "react-select";
18320
- import { useId, useMemo as useMemo22, useRef as useRef10 } from "react";
18321
- import classNames40 from "classnames";
18317
+ import { useId, useMemo as useMemo23, useRef as useRef10 } from "react";
18318
+ import classNames41 from "classnames";
18322
18319
 
18323
18320
  // src/components/ui/Portal/Portal.tsx
18324
18321
  var PORTAL_CLASS_NAME = "Layer__Portal";
@@ -18332,7 +18329,7 @@ var COMBO_BOX_CLASS_NAMES = {
18332
18329
  VALUE_CONTAINER: "Layer__ComboBoxValueContainer",
18333
18330
  PLACEHOLDER: "Layer__ComboBoxPlaceholder",
18334
18331
  INDICATORS_CONTAINER: "Layer__ComboBoxIndicatorsContainer",
18335
- MENU: classNames40(
18332
+ MENU: classNames41(
18336
18333
  PORTAL_CLASS_NAME,
18337
18334
  "Layer__ComboBoxMenu"
18338
18335
  ),
@@ -18376,7 +18373,7 @@ function buildCustomComboBoxOption({
18376
18373
  return /* @__PURE__ */ jsx120(
18377
18374
  components4.Option,
18378
18375
  __spreadProps(__spreadValues({}, restProps), {
18379
- className: classNames40(
18376
+ className: classNames41(
18380
18377
  COMBO_BOX_CLASS_NAMES.OPTION,
18381
18378
  isFocused ? `${COMBO_BOX_CLASS_NAMES.OPTION}--focused` : void 0,
18382
18379
  effectiveIsSelected ? `${COMBO_BOX_CLASS_NAMES.OPTION}--selected` : void 0,
@@ -18517,20 +18514,20 @@ function ComboBox(_a) {
18517
18514
  const internalInputId = useId();
18518
18515
  const effectiveInputId = inputId != null ? inputId : internalInputId;
18519
18516
  const CustomGroupHeadingRef = useRef10(buildCustomGroupHeading());
18520
- const CustomComboBoxOption = useMemo22(
18517
+ const CustomComboBoxOption = useMemo23(
18521
18518
  () => buildCustomComboBoxOption({ displayDisabledAsSelected }),
18522
18519
  [displayDisabledAsSelected]
18523
18520
  );
18524
18521
  const { EmptyMessage, ErrorMessage, SelectedValue } = slots != null ? slots : {};
18525
- const CustomNoOptionsMessage = useMemo22(
18522
+ const CustomNoOptionsMessage = useMemo23(
18526
18523
  () => buildCustomNoOptionsMessage({ EmptyMessage }),
18527
18524
  [EmptyMessage]
18528
18525
  );
18529
- const CustomPlaceholder = useMemo22(
18526
+ const CustomPlaceholder = useMemo23(
18530
18527
  () => buildCustomPlaceholder({ placeholder }),
18531
18528
  [placeholder]
18532
18529
  );
18533
- const CustomSingleValue = useMemo22(
18530
+ const CustomSingleValue = useMemo23(
18534
18531
  () => buildCustomSingleValue({ SelectedValue }),
18535
18532
  [SelectedValue]
18536
18533
  );
@@ -18554,7 +18551,7 @@ function ComboBox(_a) {
18554
18551
  className,
18555
18552
  classNames: {
18556
18553
  container: () => COMBO_BOX_CLASS_NAMES.CONTAINER,
18557
- control: ({ isFocused, isDisabled: isDisabled2 }) => classNames40(
18554
+ control: ({ isFocused, isDisabled: isDisabled2 }) => classNames41(
18558
18555
  COMBO_BOX_CLASS_NAMES.CONTROL,
18559
18556
  isFocused && `${COMBO_BOX_CLASS_NAMES.CONTROL}--focused`,
18560
18557
  isDisabled2 && `${COMBO_BOX_CLASS_NAMES.CONTROL}--disabled`,
@@ -18562,7 +18559,7 @@ function ComboBox(_a) {
18562
18559
  ),
18563
18560
  valueContainer: () => COMBO_BOX_CLASS_NAMES.VALUE_CONTAINER,
18564
18561
  placeholder: () => COMBO_BOX_CLASS_NAMES.PLACEHOLDER,
18565
- indicatorsContainer: () => classNames40(
18562
+ indicatorsContainer: () => classNames41(
18566
18563
  COMBO_BOX_CLASS_NAMES.INDICATORS_CONTAINER,
18567
18564
  isReadOnly && `${COMBO_BOX_CLASS_NAMES.INDICATORS_CONTAINER}--readonly`
18568
18565
  ),
@@ -18650,7 +18647,7 @@ function CustomerVendorSelector({
18650
18647
  isLoading: isLoadingVendors,
18651
18648
  isError: isErrorLoadingVendors
18652
18649
  } = useListVendors({ query: effectiveSearchQuery });
18653
- const groups = useMemo23(
18650
+ const groups = useMemo24(
18654
18651
  () => {
18655
18652
  const customersSection = customerPages ? {
18656
18653
  label: "Customers",
@@ -18710,7 +18707,7 @@ function CustomerVendorSelector({
18710
18707
  onSelectedCustomerVendorChange
18711
18708
  ]
18712
18709
  );
18713
- const selectedCustomerVendorForComboBox = useMemo23(
18710
+ const selectedCustomerVendorForComboBox = useMemo24(
18714
18711
  () => {
18715
18712
  if (selectedCustomerVendor === null) {
18716
18713
  return null;
@@ -18722,11 +18719,11 @@ function CustomerVendorSelector({
18722
18719
  },
18723
18720
  [selectedCustomerVendor]
18724
18721
  );
18725
- const EmptyMessage = useMemo23(
18722
+ const EmptyMessage = useMemo24(
18726
18723
  () => /* @__PURE__ */ jsx121(P, { variant: "subtle", children: "No matching customer or vendor found" }),
18727
18724
  []
18728
18725
  );
18729
- const ErrorMessage = useMemo23(
18726
+ const ErrorMessage = useMemo24(
18730
18727
  () => /* @__PURE__ */ jsx121(
18731
18728
  P,
18732
18729
  {
@@ -18987,7 +18984,7 @@ function BankTransactionCustomerVendorSelector({
18987
18984
  } = bankTransaction;
18988
18985
  const status = useEffectiveBookkeepingStatus();
18989
18986
  const isReadOnly = status === "ACTIVE" /* ACTIVE */;
18990
- const selectedCustomerVendor = useMemo24(
18987
+ const selectedCustomerVendor = useMemo25(
18991
18988
  () => {
18992
18989
  if (customer) {
18993
18990
  return decodeCustomerVendor(__spreadProps(__spreadValues({}, customer), {
@@ -19054,7 +19051,7 @@ function BankTransactionCustomerVendorSelector({
19054
19051
  import {
19055
19052
  createContext as createContext12,
19056
19053
  useContext as useContext18,
19057
- useMemo as useMemo25
19054
+ useMemo as useMemo26
19058
19055
  } from "react";
19059
19056
  import { jsx as jsx123 } from "react/jsx-runtime";
19060
19057
  var BankTransactionCustomerVendorVisibilityContext = createContext12({
@@ -19067,18 +19064,18 @@ function BankTransactionCustomerVendorVisibilityProvider({
19067
19064
  children,
19068
19065
  showCustomerVendor
19069
19066
  }) {
19070
- const value = useMemo25(() => ({ showCustomerVendor }), [showCustomerVendor]);
19067
+ const value = useMemo26(() => ({ showCustomerVendor }), [showCustomerVendor]);
19071
19068
  return /* @__PURE__ */ jsx123(BankTransactionCustomerVendorVisibilityContext.Provider, { value, children });
19072
19069
  }
19073
19070
 
19074
19071
  // src/features/bankTransactions/[bankTransactionId]/tags/components/BankTransactionTagSelector.tsx
19075
- import { useCallback as useCallback24, useMemo as useMemo28 } from "react";
19072
+ import { useCallback as useCallback24, useMemo as useMemo29 } from "react";
19076
19073
 
19077
19074
  // src/features/tags/components/TagSelector.tsx
19078
19075
  import {
19079
19076
  useCallback as useCallback21,
19080
19077
  useId as useId3,
19081
- useMemo as useMemo27
19078
+ useMemo as useMemo28
19082
19079
  } from "react";
19083
19080
 
19084
19081
  // src/features/tags/api/useTagDimensions.ts
@@ -19240,7 +19237,7 @@ var Tag = forwardRef13(
19240
19237
  import { Schema as Schema16 } from "effect";
19241
19238
 
19242
19239
  // src/features/tags/useFlattenedTagValues.ts
19243
- import { useMemo as useMemo26 } from "react";
19240
+ import { useMemo as useMemo27 } from "react";
19244
19241
  function flattenDimensionsToValues(dimensions) {
19245
19242
  return dimensions.flatMap(
19246
19243
  ({ id: dimensionId, key: dimensionLabel, definedValues }) => definedValues.map(({ id: valueId, value: valueLabel }) => makeTagValue({
@@ -19252,7 +19249,7 @@ function flattenDimensionsToValues(dimensions) {
19252
19249
  );
19253
19250
  }
19254
19251
  function useFlattenedTagValues(dimensions) {
19255
- return useMemo26(() => {
19252
+ return useMemo27(() => {
19256
19253
  if (dimensions === void 0) {
19257
19254
  return [];
19258
19255
  }
@@ -19407,7 +19404,7 @@ function TagSelector({
19407
19404
  isReadOnly
19408
19405
  }) {
19409
19406
  const { data, isLoading, isError } = useTagDimensions();
19410
- const groups = useMemo27(
19407
+ const groups = useMemo28(
19411
19408
  () => {
19412
19409
  var _a;
19413
19410
  return (_a = data == null ? void 0 : data.map(({ key: dimensionLabel, definedValues }) => {
@@ -19447,7 +19444,7 @@ function TagSelector({
19447
19444
  ]
19448
19445
  );
19449
19446
  const inputId = useId3();
19450
- const EmptyMessage = useMemo27(
19447
+ const EmptyMessage = useMemo28(
19451
19448
  () => /* @__PURE__ */ jsx126(
19452
19449
  Span,
19453
19450
  {
@@ -19458,7 +19455,7 @@ function TagSelector({
19458
19455
  ),
19459
19456
  []
19460
19457
  );
19461
- const ErrorMessage = useMemo27(
19458
+ const ErrorMessage = useMemo28(
19462
19459
  () => /* @__PURE__ */ jsx126(
19463
19460
  Span,
19464
19461
  {
@@ -19706,7 +19703,7 @@ function BankTransactionTagSelector({ bankTransaction }) {
19706
19703
  id: bankTransactionId,
19707
19704
  transaction_tags: transactionTags
19708
19705
  } = bankTransaction;
19709
- const selectedTags = useMemo28(
19706
+ const selectedTags = useMemo29(
19710
19707
  () => transactionTags.map(({ id, key, value, _local }) => {
19711
19708
  var _a;
19712
19709
  return makeTag({
@@ -19748,7 +19745,7 @@ function BankTransactionTagSelector({ bankTransaction }) {
19748
19745
  import {
19749
19746
  createContext as createContext13,
19750
19747
  useContext as useContext19,
19751
- useMemo as useMemo29
19748
+ useMemo as useMemo30
19752
19749
  } from "react";
19753
19750
  import { jsx as jsx128 } from "react/jsx-runtime";
19754
19751
  var BankTransactionTagVisibilityContext = createContext13({
@@ -19761,7 +19758,7 @@ function BankTransactionTagVisibilityProvider({
19761
19758
  children,
19762
19759
  showTags
19763
19760
  }) {
19764
- const value = useMemo29(() => ({ showTags }), [showTags]);
19761
+ const value = useMemo30(() => ({ showTags }), [showTags]);
19765
19762
  return /* @__PURE__ */ jsx128(BankTransactionTagVisibilityContext.Provider, { value, children });
19766
19763
  }
19767
19764
 
@@ -20022,7 +20019,7 @@ var ExpandedBankTransactionRow = forwardRef15(
20022
20019
  /* @__PURE__ */ jsx130(
20023
20020
  "div",
20024
20021
  {
20025
- className: classNames41(
20022
+ className: classNames42(
20026
20023
  `${className}__match`,
20027
20024
  `${className}__content-panel`,
20028
20025
  purpose === "match" /* match */ ? `${className}__content-panel--active` : ""
@@ -20046,7 +20043,7 @@ var ExpandedBankTransactionRow = forwardRef15(
20046
20043
  /* @__PURE__ */ jsx130(
20047
20044
  "div",
20048
20045
  {
20049
- className: classNames41(
20046
+ className: classNames42(
20050
20047
  `${className}__splits`,
20051
20048
  `${className}__content-panel`,
20052
20049
  purpose === "categorize" /* categorize */ ? `${className}__content-panel--active` : ""
@@ -20229,7 +20226,7 @@ var SplitTooltipDetails = ({
20229
20226
  };
20230
20227
 
20231
20228
  // src/components/BankTransactionRow/BankTransactionRow.tsx
20232
- import classNames42 from "classnames";
20229
+ import classNames43 from "classnames";
20233
20230
  import { parseISO as parseISO9, format as formatTime6 } from "date-fns";
20234
20231
 
20235
20232
  // src/hooks/bookkeeping/periods/useBookkeepingPeriods.ts
@@ -20603,14 +20600,14 @@ var BankTransactionRow = ({
20603
20600
  const { isVisible } = useDelayedVisibility({ delay: index * 20, initialVisibility: Boolean(initialLoad) });
20604
20601
  const className = "Layer__bank-transaction-row";
20605
20602
  const openClassName = open ? `${className}--expanded` : "";
20606
- const rowClassName = classNames42(
20603
+ const rowClassName = classNames43(
20607
20604
  className,
20608
20605
  bankTransaction.recently_categorized && editable && shouldHideAfterCategorize() ? "Layer__bank-transaction-row--removing" : "",
20609
20606
  open ? openClassName : "",
20610
20607
  initialLoad ? "initial-load" : "",
20611
20608
  isVisible ? "show" : ""
20612
20609
  );
20613
- const showReceiptDataProperties = useMemo30(
20610
+ const showReceiptDataProperties = useMemo31(
20614
20611
  () => toDataProperties({ "show-receipt-upload-column": showReceiptUploadColumn }),
20615
20612
  [showReceiptUploadColumn]
20616
20613
  );
@@ -20681,7 +20678,7 @@ var BankTransactionRow = ({
20681
20678
  /* @__PURE__ */ jsx137(
20682
20679
  "td",
20683
20680
  {
20684
- className: classNames42(
20681
+ className: classNames43(
20685
20682
  "Layer__table-cell",
20686
20683
  "Layer__table-cell__category-col",
20687
20684
  `${className}__actions-cell`,
@@ -20864,7 +20861,7 @@ var Assignment = ({ bankTransaction }) => {
20864
20861
  };
20865
20862
 
20866
20863
  // src/components/BankTransactionList/BankTransactionListItem.tsx
20867
- import classNames43 from "classnames";
20864
+ import classNames44 from "classnames";
20868
20865
  import { parseISO as parseISO11, format as formatTime8 } from "date-fns";
20869
20866
  import { jsx as jsx139, jsxs as jsxs87 } from "react/jsx-runtime";
20870
20867
  var BankTransactionListItem = ({
@@ -20931,7 +20928,7 @@ var BankTransactionListItem = ({
20931
20928
  const categorized = isCategorized(bankTransaction);
20932
20929
  const className = "Layer__bank-transaction-list-item";
20933
20930
  const openClassName = open ? `${className}--expanded` : "";
20934
- const rowClassName = classNames43(
20931
+ const rowClassName = classNames44(
20935
20932
  className,
20936
20933
  bankTransaction.recently_categorized && editable && shouldHideAfterCategorize() ? "Layer__bank-transaction-row--removing" : "",
20937
20934
  open ? openClassName : "",
@@ -21074,7 +21071,7 @@ var BankTransactionList = ({
21074
21071
  import { useContext as useContext20, useEffect as useEffect19, useRef as useRef19, useState as useState37 } from "react";
21075
21072
 
21076
21073
  // src/components/BankTransactionMobileList/BusinessForm.tsx
21077
- import { useEffect as useEffect16, useMemo as useMemo31, useRef as useRef15, useState as useState31 } from "react";
21074
+ import { useEffect as useEffect16, useMemo as useMemo32, useRef as useRef15, useState as useState31 } from "react";
21078
21075
 
21079
21076
  // src/icons/Paperclip.tsx
21080
21077
  import { jsx as jsx141 } from "react/jsx-runtime";
@@ -21104,7 +21101,7 @@ var Paperclip = (_a) => {
21104
21101
  var Paperclip_default = Paperclip;
21105
21102
 
21106
21103
  // src/components/BankTransactionMobileList/BusinessForm.tsx
21107
- import classNames44 from "classnames";
21104
+ import classNames45 from "classnames";
21108
21105
  import { Fragment as Fragment17, jsx as jsx142, jsxs as jsxs88 } from "react/jsx-runtime";
21109
21106
  var BusinessForm = ({
21110
21107
  bankTransaction,
@@ -21125,7 +21122,7 @@ var BusinessForm = ({
21125
21122
  setShowRetry(true);
21126
21123
  }
21127
21124
  }, [bankTransaction.error]);
21128
- const options3 = useMemo31(() => {
21125
+ const options3 = useMemo32(() => {
21129
21126
  var _a;
21130
21127
  const options4 = ((_a = bankTransaction == null ? void 0 : bankTransaction.categorization_flow) == null ? void 0 : _a.type) === "ASK_FROM_SUGGESTIONS" /* ASK_FROM_SUGGESTIONS */ ? bankTransaction.categorization_flow.suggestions.map(
21131
21128
  (x) => mapCategoryToOption(x)
@@ -21200,7 +21197,7 @@ var BusinessForm = ({
21200
21197
  /* @__PURE__ */ jsx142(
21201
21198
  "div",
21202
21199
  {
21203
- className: classNames44(
21200
+ className: classNames45(
21204
21201
  "Layer__bank-transaction-mobile-list-item__receipts",
21205
21202
  hasReceipts(bankTransaction) ? "Layer__bank-transaction-mobile-list-item__actions--with-receipts" : void 0
21206
21203
  ),
@@ -21275,7 +21272,7 @@ var PersonalCategories = /* @__PURE__ */ ((PersonalCategories2) => {
21275
21272
  })(PersonalCategories || {});
21276
21273
 
21277
21274
  // src/components/BankTransactionMobileList/PersonalForm.tsx
21278
- import classNames45 from "classnames";
21275
+ import classNames46 from "classnames";
21279
21276
  import { jsx as jsx143, jsxs as jsxs89 } from "react/jsx-runtime";
21280
21277
  var isAlreadyAssigned = (bankTransaction) => {
21281
21278
  if (bankTransaction.categorization_status === "MATCHED" /* MATCHED */ || (bankTransaction == null ? void 0 : bankTransaction.categorization_status) === "SPLIT" /* SPLIT */) {
@@ -21329,7 +21326,7 @@ var PersonalForm = ({
21329
21326
  /* @__PURE__ */ jsx143(
21330
21327
  "div",
21331
21328
  {
21332
- className: classNames45(
21329
+ className: classNames46(
21333
21330
  "Layer__bank-transaction-mobile-list-item__receipts",
21334
21331
  hasReceipts(bankTransaction) ? "Layer__bank-transaction-mobile-list-item__actions--with-receipts" : void 0
21335
21332
  ),
@@ -21376,7 +21373,7 @@ import { useState as useState35 } from "react";
21376
21373
 
21377
21374
  // src/components/BankTransactionMobileList/MatchForm.tsx
21378
21375
  import { useRef as useRef17, useState as useState33 } from "react";
21379
- import classNames46 from "classnames";
21376
+ import classNames47 from "classnames";
21380
21377
  import { jsx as jsx144, jsxs as jsxs90 } from "react/jsx-runtime";
21381
21378
  var MatchForm2 = ({
21382
21379
  bankTransaction,
@@ -21438,7 +21435,7 @@ var MatchForm2 = ({
21438
21435
  /* @__PURE__ */ jsx144(
21439
21436
  "div",
21440
21437
  {
21441
- className: classNames46(
21438
+ className: classNames47(
21442
21439
  "Layer__bank-transaction-mobile-list-item__receipts",
21443
21440
  hasReceipts(bankTransaction) ? "Layer__bank-transaction-mobile-list-item__actions--with-receipts" : void 0
21444
21441
  ),
@@ -21483,7 +21480,7 @@ var MatchForm2 = ({
21483
21480
 
21484
21481
  // src/components/BankTransactionMobileList/SplitForm.tsx
21485
21482
  import { useEffect as useEffect18, useRef as useRef18, useState as useState34 } from "react";
21486
- import classNames47 from "classnames";
21483
+ import classNames48 from "classnames";
21487
21484
  import { Fragment as Fragment18, jsx as jsx145, jsxs as jsxs91 } from "react/jsx-runtime";
21488
21485
  var SplitForm = ({
21489
21486
  bankTransaction,
@@ -21656,7 +21653,7 @@ var SplitForm = ({
21656
21653
  {
21657
21654
  type: "text",
21658
21655
  name: `split-${index}`,
21659
- className: classNames47(
21656
+ className: classNames48(
21660
21657
  "Layer__split-amount-input",
21661
21658
  index === 0 && "Layer__split-amount-input--first"
21662
21659
  ),
@@ -21704,7 +21701,7 @@ var SplitForm = ({
21704
21701
  /* @__PURE__ */ jsx145(
21705
21702
  "div",
21706
21703
  {
21707
- className: classNames47(
21704
+ className: classNames48(
21708
21705
  "Layer__bank-transaction-mobile-list-item__receipts",
21709
21706
  hasReceipts(bankTransaction) ? "Layer__bank-transaction-mobile-list-item__actions--with-receipts" : void 0
21710
21707
  ),
@@ -21855,7 +21852,7 @@ var TransactionToOpenContext = createContext14({
21855
21852
  });
21856
21853
 
21857
21854
  // src/components/BankTransactionMobileList/BankTransactionMobileListItem.tsx
21858
- import classNames48 from "classnames";
21855
+ import classNames49 from "classnames";
21859
21856
  import { parseISO as parseISO12, format as formatTime9 } from "date-fns";
21860
21857
  import { jsx as jsx148, jsxs as jsxs93 } from "react/jsx-runtime";
21861
21858
  var DATE_FORMAT2 = "LLL d";
@@ -21960,7 +21957,7 @@ var BankTransactionMobileListItem = ({
21960
21957
  const { isVisible } = useDelayedVisibility({ delay: index * 20, initialVisibility: Boolean(initialLoad) });
21961
21958
  const className = "Layer__bank-transaction-mobile-list-item";
21962
21959
  const openClassName = open ? `${className}--expanded` : "";
21963
- const rowClassName = classNames48(
21960
+ const rowClassName = classNames49(
21964
21961
  className,
21965
21962
  removeAnim ? "Layer__bank-transaction-row--removing" : "",
21966
21963
  open ? openClassName : "",
@@ -22093,17 +22090,17 @@ var BankTransactionMobileList = ({
22093
22090
  };
22094
22091
 
22095
22092
  // src/components/BankTransactionsTable/BankTransactionsTable.tsx
22096
- import { useMemo as useMemo32 } from "react";
22093
+ import { useMemo as useMemo33 } from "react";
22097
22094
 
22098
22095
  // src/components/SkeletonLoader/SkeletonLoader.tsx
22099
- import classNames49 from "classnames";
22096
+ import classNames50 from "classnames";
22100
22097
  import { jsx as jsx150 } from "react/jsx-runtime";
22101
22098
  var SkeletonLoader = ({
22102
22099
  height,
22103
22100
  width,
22104
22101
  className
22105
22102
  }) => {
22106
- const baseClassName = classNames49(
22103
+ const baseClassName = classNames50(
22107
22104
  "Layer__skeleton-loader Layer__anim--skeleton-loading",
22108
22105
  className
22109
22106
  );
@@ -22116,7 +22113,7 @@ var FallbackWithSkeletonLoader = ({
22116
22113
  children,
22117
22114
  className
22118
22115
  }) => {
22119
- const baseClassName = classNames49(
22116
+ const baseClassName = classNames50(
22120
22117
  "Layer__skeleton-loader Layer__anim--skeleton-loading",
22121
22118
  className
22122
22119
  );
@@ -22219,7 +22216,7 @@ var BankTransactionsLoader = ({
22219
22216
  };
22220
22217
 
22221
22218
  // src/components/SyncingComponent/SyncingComponent.tsx
22222
- import classNames50 from "classnames";
22219
+ import classNames51 from "classnames";
22223
22220
  import { jsx as jsx153, jsxs as jsxs95 } from "react/jsx-runtime";
22224
22221
  var SyncingComponent = ({
22225
22222
  title = "Syncing account data",
@@ -22241,7 +22238,7 @@ var SyncingComponent = ({
22241
22238
  return /* @__PURE__ */ jsxs95(
22242
22239
  "div",
22243
22240
  {
22244
- className: classNames50(
22241
+ className: classNames51(
22245
22242
  "Layer__syncing-component",
22246
22243
  inProgress ? "Layer__syncing-component--with-border" : ""
22247
22244
  ),
@@ -22281,7 +22278,7 @@ var BankTransactionsTable = ({
22281
22278
  return ((_a2 = transaction.document_ids) == null ? void 0 : _a2.length) > 0;
22282
22279
  }
22283
22280
  ))) != null ? _a : false;
22284
- const showReceiptDataProperties = useMemo32(
22281
+ const showReceiptDataProperties = useMemo33(
22285
22282
  () => toDataProperties({ "show-receipt-upload-column": showReceiptColumn }),
22286
22283
  [showReceiptColumn]
22287
22284
  );
@@ -22389,10 +22386,10 @@ var ErrorBoundary = class extends Component {
22389
22386
  };
22390
22387
 
22391
22388
  // src/components/Pagination/Pagination.tsx
22392
- import classNames51 from "classnames";
22389
+ import classNames52 from "classnames";
22393
22390
 
22394
22391
  // src/hooks/usePaginationRange/usePaginationRange.ts
22395
- import { useMemo as useMemo33 } from "react";
22392
+ import { useMemo as useMemo34 } from "react";
22396
22393
  var Dots = /* @__PURE__ */ ((Dots2) => {
22397
22394
  Dots2["DotsLeft"] = "DotsLeft";
22398
22395
  Dots2["DotsRight"] = "DotsRight";
@@ -22405,7 +22402,7 @@ var usePaginationRange = ({
22405
22402
  currentPage
22406
22403
  }) => {
22407
22404
  if (pageSize < 1) throw new Error("pageSize must be a positive integer >= 1");
22408
- const paginationRange = useMemo33(() => {
22405
+ const paginationRange = useMemo34(() => {
22409
22406
  const totalPageCount = Math.ceil(totalCount / pageSize);
22410
22407
  if (totalPageCount === 0) return [];
22411
22408
  const staticRange = siblingCount * 2 + 3;
@@ -22457,7 +22454,7 @@ var Pagination = ({
22457
22454
  return null;
22458
22455
  }
22459
22456
  const lastPage = paginationRange[paginationRange.length - 1];
22460
- return /* @__PURE__ */ jsx157(VStack, { className: classNames51("Layer__pagination-container", className), fluid: true, children: /* @__PURE__ */ jsx157("nav", { "aria-label": "Pagination", className: "Layer__pagination-nav", children: /* @__PURE__ */ jsxs97("ul", { className: "Layer__pagination", role: "list", children: [
22457
+ return /* @__PURE__ */ jsx157(VStack, { className: classNames52("Layer__pagination-container", className), fluid: true, children: /* @__PURE__ */ jsx157("nav", { "aria-label": "Pagination", className: "Layer__pagination-nav", children: /* @__PURE__ */ jsxs97("ul", { className: "Layer__pagination", role: "list", children: [
22461
22458
  /* @__PURE__ */ jsx157("li", { children: /* @__PURE__ */ jsx157(
22462
22459
  PaginationButton,
22463
22460
  {
@@ -22510,7 +22507,7 @@ var Pagination = ({
22510
22507
 
22511
22508
  // src/components/BankTransactions/BankTransactionsHeader.tsx
22512
22509
  import { useCallback as useCallback39, useState as useState46 } from "react";
22513
- import classNames60 from "classnames";
22510
+ import classNames61 from "classnames";
22514
22511
  import { endOfMonth as endOfMonth5, startOfMonth as startOfMonth5 } from "date-fns";
22515
22512
 
22516
22513
  // src/components/domain/transactions/actions/TransactionsActions.tsx
@@ -22674,7 +22671,7 @@ import {
22674
22671
  createContext as createContext16,
22675
22672
  useCallback as useCallback26,
22676
22673
  useContext as useContext22,
22677
- useMemo as useMemo34,
22674
+ useMemo as useMemo35,
22678
22675
  useState as useState38
22679
22676
  } from "react";
22680
22677
  import { jsxs as jsxs99 } from "react/jsx-runtime";
@@ -22735,7 +22732,7 @@ function Wizard({
22735
22732
  onComplete,
22736
22733
  onStepChange
22737
22734
  });
22738
- const contextValue = useMemo34(() => ({ next, previous, goToStep }), [next, previous, goToStep]);
22735
+ const contextValue = useMemo35(() => ({ next, previous, goToStep }), [next, previous, goToStep]);
22739
22736
  return /* @__PURE__ */ jsxs99(WizardContext.Provider, { value: contextValue, children: [
22740
22737
  Header5,
22741
22738
  currentStep,
@@ -22744,7 +22741,7 @@ function Wizard({
22744
22741
  }
22745
22742
 
22746
22743
  // src/components/UploadTransactions/UploadTransactionsUploadCsvStep.tsx
22747
- import { useCallback as useCallback35, useMemo as useMemo36, useState as useState43 } from "react";
22744
+ import { useCallback as useCallback35, useMemo as useMemo37, useState as useState43 } from "react";
22748
22745
 
22749
22746
  // src/hooks/customAccounts/useCustomAccounts.ts
22750
22747
  import useSWR13 from "swr";
@@ -22814,7 +22811,7 @@ import {
22814
22811
  components as components5
22815
22812
  } from "react-select";
22816
22813
  import BaseCreatableSelect from "react-select/creatable";
22817
- import classNames52 from "classnames";
22814
+ import classNames53 from "classnames";
22818
22815
  import { jsx as jsx161, jsxs as jsxs100 } from "react/jsx-runtime";
22819
22816
  var CreatableSelect = ({
22820
22817
  name,
@@ -22836,7 +22833,7 @@ var CreatableSelect = ({
22836
22833
  isClearable,
22837
22834
  createOptionPosition = "first"
22838
22835
  }) => {
22839
- const baseClassName = classNames52(
22836
+ const baseClassName = classNames53(
22840
22837
  "Layer__select",
22841
22838
  isInvalid ? "Layer__select--error" : "",
22842
22839
  className
@@ -22916,13 +22913,13 @@ import {
22916
22913
  TextField as ReactAriaTextField,
22917
22914
  FieldError as ReactAriaFieldError
22918
22915
  } from "react-aria-components";
22919
- import classNames53 from "classnames";
22916
+ import classNames54 from "classnames";
22920
22917
  import { jsx as jsx162 } from "react/jsx-runtime";
22921
22918
  var FORM_CLASS_NAME = "Layer__UI__Form";
22922
22919
  var Form = forwardRef17(
22923
22920
  function Form2(_a, ref) {
22924
22921
  var _b = _a, { children, className } = _b, restProps = __objRest(_b, ["children", "className"]);
22925
- return /* @__PURE__ */ jsx162(ReactAriaForm, __spreadProps(__spreadValues({}, restProps), { className: classNames53(FORM_CLASS_NAME, className), ref, children }));
22922
+ return /* @__PURE__ */ jsx162(ReactAriaForm, __spreadProps(__spreadValues({}, restProps), { className: classNames54(FORM_CLASS_NAME, className), ref, children }));
22926
22923
  }
22927
22924
  );
22928
22925
  var TEXT_FIELD_CLASS_NAME = "Layer__UI__TextField";
@@ -22930,7 +22927,7 @@ var TextField = forwardRef17(
22930
22927
  function TextField2(_a, ref) {
22931
22928
  var _b = _a, { children, inline, textarea, className } = _b, restProps = __objRest(_b, ["children", "inline", "textarea", "className"]);
22932
22929
  const dataProperties = toDataProperties({ inline, textarea });
22933
- return /* @__PURE__ */ jsx162(ReactAriaTextField, __spreadProps(__spreadValues(__spreadValues({}, restProps), dataProperties), { className: classNames53(TEXT_FIELD_CLASS_NAME, className), ref, children: withRenderProp(children, (node) => node) }));
22930
+ return /* @__PURE__ */ jsx162(ReactAriaTextField, __spreadProps(__spreadValues(__spreadValues({}, restProps), dataProperties), { className: classNames54(TEXT_FIELD_CLASS_NAME, className), ref, children: withRenderProp(children, (node) => node) }));
22934
22931
  }
22935
22932
  );
22936
22933
  var FIELD_ERROR_CLASS_NAME = "Layer__UI__FieldError";
@@ -22988,7 +22985,7 @@ function BaseFormTextField({
22988
22985
  }
22989
22986
 
22990
22987
  // src/features/forms/components/FormBigDecimalField.tsx
22991
- import { useCallback as useCallback28, useEffect as useEffect20, useMemo as useMemo35, useState as useState39 } from "react";
22988
+ import { useCallback as useCallback28, useEffect as useEffect20, useMemo as useMemo36, useState as useState39 } from "react";
22992
22989
 
22993
22990
  // src/components/ui/Input/InputGroup.tsx
22994
22991
  import { forwardRef as forwardRef18 } from "react";
@@ -23137,7 +23134,7 @@ function FormBigDecimalField(_a) {
23137
23134
  const field = useFieldContext();
23138
23135
  const { name, state, handleChange, handleBlur } = field;
23139
23136
  const { value } = state;
23140
- const formattingProps = useMemo35(() => ({
23137
+ const formattingProps = useMemo36(() => ({
23141
23138
  minDecimalPlaces,
23142
23139
  maxDecimalPlaces,
23143
23140
  mode
@@ -23163,7 +23160,7 @@ function FormBigDecimalField(_a) {
23163
23160
  handleBlur();
23164
23161
  setInputValue(formatBigDecimalToString(clamped, formattingProps));
23165
23162
  }, [inputValue, mode, maxValue, maxDecimalPlaces, value, handleBlur, formattingProps, handleChange]);
23166
- const allowedChars = useMemo35(
23163
+ const allowedChars = useMemo36(
23167
23164
  () => buildDecimalCharRegex({ allowNegative, allowPercent: mode === "percent", allowDollar: mode === "currency" }),
23168
23165
  [allowNegative, mode]
23169
23166
  );
@@ -23197,7 +23194,7 @@ function FormBigDecimalField(_a) {
23197
23194
  }
23198
23195
 
23199
23196
  // src/features/forms/components/FormCheckboxField.tsx
23200
- import classNames54 from "classnames";
23197
+ import classNames55 from "classnames";
23201
23198
  import { jsx as jsx167 } from "react/jsx-runtime";
23202
23199
  var FORM_CHECKBOX_FIELD_CLASSNAME = "Layer__FormCheckboxField";
23203
23200
  function FormCheckboxField({
@@ -23215,7 +23212,7 @@ function FormCheckboxField({
23215
23212
  const errorMessage = errors.length !== 0 ? errors[0] : void 0;
23216
23213
  const tooltipProps = showFieldError ? { tooltip: errorMessage } : {};
23217
23214
  const additionalAriaProps = !showLabel && { "aria-label": label };
23218
- const checkboxClassNames = classNames54(
23215
+ const checkboxClassNames = classNames55(
23219
23216
  FORM_CHECKBOX_FIELD_CLASSNAME,
23220
23217
  inline && `${FORM_CHECKBOX_FIELD_CLASSNAME}--inline`,
23221
23218
  className
@@ -23243,7 +23240,7 @@ import { useState as useState40, useEffect as useEffect21, useCallback as useCal
23243
23240
 
23244
23241
  // src/components/ui/Date/Date.tsx
23245
23242
  import { forwardRef as forwardRef20 } from "react";
23246
- import classNames55 from "classnames";
23243
+ import classNames56 from "classnames";
23247
23244
  import {
23248
23245
  DateField as ReactAriaDateField,
23249
23246
  DateSegment as ReactAriaDateSegment,
@@ -23259,7 +23256,7 @@ var DateField = forwardRef20(
23259
23256
  ReactAriaDateField,
23260
23257
  __spreadProps(__spreadValues(__spreadValues({}, dataProperties), restProps), {
23261
23258
  isReadOnly,
23262
- className: classNames55(DATE_FIELD_CLASS_NAME, className),
23259
+ className: classNames56(DATE_FIELD_CLASS_NAME, className),
23263
23260
  ref
23264
23261
  })
23265
23262
  );
@@ -23273,7 +23270,7 @@ var DateInput = forwardRef20(
23273
23270
  return /* @__PURE__ */ jsx168(
23274
23271
  ReactAriaDateInput,
23275
23272
  __spreadProps(__spreadValues(__spreadValues({}, dataProperties), restProps), {
23276
- className: classNames55(DATE_INPUT_CLASS_NAME),
23273
+ className: classNames56(DATE_INPUT_CLASS_NAME),
23277
23274
  ref
23278
23275
  })
23279
23276
  );
@@ -23666,7 +23663,7 @@ var CustomAccountForm = ({ initialAccountName, onCancel, onSuccess }) => {
23666
23663
  // src/components/CsvUpload/CsvUpload.tsx
23667
23664
  import { useCallback as useCallback34, useRef as useRef21, useState as useState42 } from "react";
23668
23665
  import { useDropzone } from "react-dropzone";
23669
- import classNames56 from "classnames";
23666
+ import classNames57 from "classnames";
23670
23667
  import { FileSpreadsheet } from "lucide-react";
23671
23668
  import { jsx as jsx174, jsxs as jsxs104 } from "react/jsx-runtime";
23672
23669
  var VALID_EXTENSIONS = [".csv"];
@@ -23758,7 +23755,7 @@ var CsvUpload = ({ file, onFileSelected, replaceDropTarget = false }) => {
23758
23755
  /* @__PURE__ */ jsxs104(
23759
23756
  VStack,
23760
23757
  __spreadProps(__spreadValues({
23761
- className: classNames56(
23758
+ className: classNames57(
23762
23759
  "Layer__csv-upload",
23763
23760
  { "Layer__csv-upload--drag-active": isDragActive }
23764
23761
  ),
@@ -23795,7 +23792,7 @@ var CsvUpload = ({ file, onFileSelected, replaceDropTarget = false }) => {
23795
23792
  };
23796
23793
 
23797
23794
  // src/components/UploadTransactions/UploadTransactionsUploadCsvStep.tsx
23798
- import classNames58 from "classnames";
23795
+ import classNames59 from "classnames";
23799
23796
 
23800
23797
  // src/components/Separator/Separator.tsx
23801
23798
  import { jsx as jsx175 } from "react/jsx-runtime";
@@ -23842,14 +23839,14 @@ var DownloadCsvTemplateButton = ({ children, className, csvProps, fileName = "te
23842
23839
 
23843
23840
  // src/components/CsvUpload/CopyTemplateHeadersButtonGroup.tsx
23844
23841
  import { CopyIcon } from "lucide-react";
23845
- import classNames57 from "classnames";
23842
+ import classNames58 from "classnames";
23846
23843
  import { jsx as jsx177 } from "react/jsx-runtime";
23847
23844
  var copyTextToClipboard = (text) => {
23848
23845
  navigator.clipboard.writeText(text).catch(() => {
23849
23846
  });
23850
23847
  };
23851
23848
  var CopyTemplateHeadersButtonGroup = ({ headers, className }) => {
23852
- return /* @__PURE__ */ jsx177(HStack, { gap: "3xs", className: classNames57("Layer__csv-upload__copy-template-headers-button-group", className), children: Object.keys(headers).map((key) => /* @__PURE__ */ jsx177(
23849
+ return /* @__PURE__ */ jsx177(HStack, { gap: "3xs", className: classNames58("Layer__csv-upload__copy-template-headers-button-group", className), children: Object.keys(headers).map((key) => /* @__PURE__ */ jsx177(
23853
23850
  Button,
23854
23851
  {
23855
23852
  onClick: () => copyTextToClipboard(headers[key]),
@@ -23968,7 +23965,7 @@ function UploadTransactionsUploadCsvStep({ selectedAccount, onSelectAccount, sel
23968
23965
  } = useCustomAccounts({ userCreated: true });
23969
23966
  const { trigger: parseCsv2, isMutating: isParsingCsv, error: parseCsvError } = useCustomAccountParseCsv();
23970
23967
  const [hasParseCsvError, setHasParseCsvError] = useState43(false);
23971
- const accountOptions = useMemo36(() => {
23968
+ const accountOptions = useMemo37(() => {
23972
23969
  if (!customAccounts) return [];
23973
23970
  return customAccounts.map((account) => ({
23974
23971
  value: account.id,
@@ -24010,7 +24007,7 @@ function UploadTransactionsUploadCsvStep({ selectedAccount, onSelectAccount, sel
24010
24007
  setHasParseCsvError(true);
24011
24008
  });
24012
24009
  }, [selectedAccount, isCreatingNewAccount, selectedFile, parseCsv2, onParseCsv, next]);
24013
- const inputClassName = classNames58(
24010
+ const inputClassName = classNames59(
24014
24011
  "Layer__upload-transactions__select-account-name-input",
24015
24012
  !!customAccountsError && "Layer__upload-transactions__select-account-name-input--error"
24016
24013
  );
@@ -24138,8 +24135,8 @@ function useCreateCustomAccountTransactions() {
24138
24135
  }
24139
24136
 
24140
24137
  // src/components/CsvUpload/ValidateCsvTable.tsx
24141
- import { useMemo as useMemo37, useRef as useRef22 } from "react";
24142
- import classNames59 from "classnames";
24138
+ import { useMemo as useMemo38, useRef as useRef22 } from "react";
24139
+ import classNames60 from "classnames";
24143
24140
  import {
24144
24141
  useReactTable,
24145
24142
  getCoreRowModel,
@@ -24159,7 +24156,7 @@ function ValidateCsvTable({
24159
24156
  formatters: formatters2,
24160
24157
  className
24161
24158
  }) {
24162
- const columns = useMemo37(
24159
+ const columns = useMemo38(
24163
24160
  () => {
24164
24161
  const columnDefs = [{
24165
24162
  id: "row",
@@ -24182,7 +24179,7 @@ function ValidateCsvTable({
24182
24179
  return /* @__PURE__ */ jsx179(
24183
24180
  "span",
24184
24181
  {
24185
- className: classNames59(
24182
+ className: classNames60(
24186
24183
  "Layer__table-cell-content",
24187
24184
  `${CSS_PREFIX}__cell-content`,
24188
24185
  !isValid2 && `${CSS_PREFIX}__cell-content--error`
@@ -24206,7 +24203,7 @@ function ValidateCsvTable({
24206
24203
  },
24207
24204
  [headers, formatters2]
24208
24205
  );
24209
- const state = useMemo37(() => ({
24206
+ const state = useMemo38(() => ({
24210
24207
  sorting: [{ id: "is_valid", desc: false }],
24211
24208
  columnVisibility: {
24212
24209
  ["is_valid"]: false
@@ -24233,7 +24230,7 @@ function ValidateCsvTable({
24233
24230
  (header) => /* @__PURE__ */ jsx179(
24234
24231
  "th",
24235
24232
  {
24236
- className: classNames59(
24233
+ className: classNames60(
24237
24234
  "Layer__table-header",
24238
24235
  `${CSS_PREFIX}__header-cell`,
24239
24236
  `${CSS_PREFIX}__header-cell--${header.id}`
@@ -24247,7 +24244,7 @@ function ValidateCsvTable({
24247
24244
  /* @__PURE__ */ jsx179(
24248
24245
  "tr",
24249
24246
  {
24250
- className: classNames59(
24247
+ className: classNames60(
24251
24248
  "Layer__table-row",
24252
24249
  `${CSS_PREFIX}__row`,
24253
24250
  rows.length < MAX_NUM_ROWS && `${CSS_PREFIX}__row--bottom-border`
@@ -24269,7 +24266,7 @@ var ValidateCsvTableRow = ({
24269
24266
  }) => /* @__PURE__ */ jsx179(
24270
24267
  "tr",
24271
24268
  {
24272
- className: classNames59(
24269
+ className: classNames60(
24273
24270
  "Layer__table-row",
24274
24271
  `${CSS_PREFIX}__row`,
24275
24272
  !row.getValue("is_valid") && `${CSS_PREFIX}__row--error`
@@ -24281,7 +24278,7 @@ var ValidateCsvTableRow = ({
24281
24278
  return /* @__PURE__ */ jsx179(
24282
24279
  "td",
24283
24280
  {
24284
- className: classNames59(
24281
+ className: classNames60(
24285
24282
  "Layer__table-cell",
24286
24283
  `${CSS_PREFIX}__cell`,
24287
24284
  `${CSS_PREFIX}__cell--${cell.column.columnDef.id}`
@@ -24641,7 +24638,7 @@ var BankTransactionsHeader = ({
24641
24638
  return /* @__PURE__ */ jsxs112(
24642
24639
  Header,
24643
24640
  {
24644
- className: classNames60(
24641
+ className: classNames61(
24645
24642
  "Layer__bank-transactions__header",
24646
24643
  withDatePicker && "Layer__bank-transactions__header--with-date-picker",
24647
24644
  mobileComponent && listView ? "Layer__bank-transactions__header--mobile" : void 0
@@ -24716,7 +24713,7 @@ var BankTransactionsHeader = ({
24716
24713
  };
24717
24714
 
24718
24715
  // src/components/BankTransactions/BankTransactionsTableEmptyState.tsx
24719
- import { useMemo as useMemo38 } from "react";
24716
+ import { useMemo as useMemo39 } from "react";
24720
24717
 
24721
24718
  // src/icons/Inbox.tsx
24722
24719
  import { jsx as jsx186, jsxs as jsxs113 } from "react/jsx-runtime";
@@ -24766,7 +24763,7 @@ function BankTransactionsTableEmptyStates({
24766
24763
  isFiltered,
24767
24764
  isLoadingWithoutData
24768
24765
  }) {
24769
- const StateComponent = useMemo38(() => {
24766
+ const StateComponent = useMemo39(() => {
24770
24767
  if (isError) {
24771
24768
  return /* @__PURE__ */ jsx187(
24772
24769
  DataState,
@@ -24811,7 +24808,7 @@ function BankTransactionsTableEmptyStates({
24811
24808
  }
24812
24809
 
24813
24810
  // src/components/BankTransactions/BankTransactions.tsx
24814
- import classNames61 from "classnames";
24811
+ import classNames62 from "classnames";
24815
24812
  import { jsx as jsx188, jsxs as jsxs114 } from "react/jsx-runtime";
24816
24813
  var COMPONENT_NAME2 = "bank-transactions";
24817
24814
  var BankTransactions = (_a) => {
@@ -24872,7 +24869,7 @@ var BankTransactionsContent = ({
24872
24869
  dateFilterMode
24873
24870
  } = useBankTransactionsContext();
24874
24871
  const { data: linkedAccounts } = useLinkedAccounts();
24875
- const isSyncing = useMemo39(
24872
+ const isSyncing = useMemo40(
24876
24873
  () => Boolean(linkedAccounts == null ? void 0 : linkedAccounts.some((item) => item.is_syncing)),
24877
24874
  [linkedAccounts]
24878
24875
  );
@@ -24917,7 +24914,7 @@ var BankTransactionsContent = ({
24917
24914
  useEffect23(() => {
24918
24915
  setCurrentPage(1);
24919
24916
  }, [filters]);
24920
- const bankTransactions = useMemo39(() => {
24917
+ const bankTransactions = useMemo40(() => {
24921
24918
  if (isMonthlyViewMode) return data;
24922
24919
  const firstPageIndex = (currentPage - 1) * pageSize;
24923
24920
  const lastPageIndex = firstPageIndex + pageSize;
@@ -24957,7 +24954,7 @@ var BankTransactionsContent = ({
24957
24954
  return /* @__PURE__ */ jsxs114(
24958
24955
  Container,
24959
24956
  {
24960
- className: classNames61(
24957
+ className: classNames62(
24961
24958
  "Layer__Public",
24962
24959
  display === "review" /* review */ ? "Layer__bank-transactions--to-review" : "Layer__bank-transactions--categorized"
24963
24960
  ),
@@ -25060,7 +25057,7 @@ import { useContext as useContext28 } from "react";
25060
25057
  import { useContext as useContext26 } from "react";
25061
25058
 
25062
25059
  // src/components/Integrations/IntegrationsQuickbooksItemThumb/IntegrationsQuickbooksItemThumb.tsx
25063
- import { useCallback as useCallback40, useContext as useContext25, useMemo as useMemo40, useState as useState48 } from "react";
25060
+ import { useCallback as useCallback40, useContext as useContext25, useMemo as useMemo41, useState as useState48 } from "react";
25064
25061
 
25065
25062
  // src/icons/QuickbooksIcon.tsx
25066
25063
  import { jsx as jsx189, jsxs as jsxs115 } from "react/jsx-runtime";
@@ -25102,10 +25099,10 @@ var BadgeLoader = ({ children, showLoading, variant = "default" }) => {
25102
25099
  };
25103
25100
 
25104
25101
  // src/components/Card/Card.tsx
25105
- import classNames62 from "classnames";
25102
+ import classNames63 from "classnames";
25106
25103
  import { jsx as jsx191 } from "react/jsx-runtime";
25107
25104
  var Card = ({ children, className }) => {
25108
- return /* @__PURE__ */ jsx191("div", { className: classNames62("Layer__card", className), children });
25105
+ return /* @__PURE__ */ jsx191("div", { className: classNames63("Layer__card", className), children });
25109
25106
  };
25110
25107
 
25111
25108
  // src/contexts/QuickbooksContext/QuickbooksContext.tsx
@@ -25257,7 +25254,7 @@ var IntegrationsQuickbooksItemThumb = () => {
25257
25254
  setHasSynced(true);
25258
25255
  syncFromQuickbooks2();
25259
25256
  }, [syncFromQuickbooks2]);
25260
- const menuConfig = useMemo40(() => {
25257
+ const menuConfig = useMemo41(() => {
25261
25258
  return [
25262
25259
  {
25263
25260
  name: "Unlink account",
@@ -25509,7 +25506,7 @@ var PNLComparisonContext = createContext18({
25509
25506
  });
25510
25507
 
25511
25508
  // src/hooks/useProfitAndLoss/useProfitAndLoss.tsx
25512
- import { useCallback as useCallback43, useMemo as useMemo41, useState as useState52 } from "react";
25509
+ import { useCallback as useCallback43, useMemo as useMemo42, useState as useState52 } from "react";
25513
25510
 
25514
25511
  // src/utils/profitAndLossUtils.ts
25515
25512
  var collectSubItems = (item) => {
@@ -25626,7 +25623,7 @@ var useProfitAndLoss = ({
25626
25623
  var _a;
25627
25624
  const rangeDisplayMode = useReportModeWithFallback("ProfitAndLoss" /* ProfitAndLoss */, "monthPicker");
25628
25625
  const { start, end } = useGlobalDateRange({ displayMode: rangeDisplayMode });
25629
- const dateRange = useMemo41(() => ({ startDate: start, endDate: end }), [start, end]);
25626
+ const dateRange = useMemo42(() => ({ startDate: start, endDate: end }), [start, end]);
25630
25627
  const [filters, setFilters] = useState52({
25631
25628
  expenses: void 0,
25632
25629
  revenue: void 0
@@ -25656,7 +25653,7 @@ var useProfitAndLoss = ({
25656
25653
  })
25657
25654
  }));
25658
25655
  };
25659
- const { filteredDataRevenue, filteredTotalRevenue } = useMemo41(() => {
25656
+ const { filteredDataRevenue, filteredTotalRevenue } = useMemo42(() => {
25660
25657
  var _a2;
25661
25658
  if (!data) {
25662
25659
  return { filteredDataRevenue: [], filteredTotalRevenue: void 0 };
@@ -25665,9 +25662,7 @@ var useProfitAndLoss = ({
25665
25662
  const revenueTypeFilters = (_a2 = filters["revenue"]) == null ? void 0 : _a2.types;
25666
25663
  const filtered = items.map((x) => {
25667
25664
  if (revenueTypeFilters && revenueTypeFilters.length > 0 && !revenueTypeFilters.includes(x.type)) {
25668
- return __spreadProps(__spreadValues({}, x), {
25669
- hidden: true
25670
- });
25665
+ return __spreadProps(__spreadValues({}, x), { isHidden: true });
25671
25666
  }
25672
25667
  return x;
25673
25668
  });
@@ -25695,7 +25690,7 @@ var useProfitAndLoss = ({
25695
25690
  const withShare = applyShare(sorted, total);
25696
25691
  return { filteredDataRevenue: withShare, filteredTotalRevenue: total };
25697
25692
  }, [data, filters]);
25698
- const { filteredDataExpenses, filteredTotalExpenses } = useMemo41(() => {
25693
+ const { filteredDataExpenses, filteredTotalExpenses } = useMemo42(() => {
25699
25694
  var _a2;
25700
25695
  if (!data) {
25701
25696
  return { filteredDataExpenses: [], filteredTotalExpenses: void 0 };
@@ -25704,9 +25699,7 @@ var useProfitAndLoss = ({
25704
25699
  const expenseTypeFilters = (_a2 = filters["expenses"]) == null ? void 0 : _a2.types;
25705
25700
  const filtered = items.map((x) => {
25706
25701
  if (expenseTypeFilters && expenseTypeFilters.length > 0 && !expenseTypeFilters.includes(x.type)) {
25707
- return __spreadProps(__spreadValues({}, x), {
25708
- hidden: true
25709
- });
25702
+ return __spreadProps(__spreadValues({}, x), { isHidden: true });
25710
25703
  }
25711
25704
  return x;
25712
25705
  });
@@ -25758,7 +25751,7 @@ var useProfitAndLoss = ({
25758
25751
  };
25759
25752
 
25760
25753
  // src/hooks/useProfitAndLossComparison/useProfitAndLossComparison.tsx
25761
- import { useMemo as useMemo42, useState as useState53 } from "react";
25754
+ import { useMemo as useMemo43, useState as useState53 } from "react";
25762
25755
 
25763
25756
  // src/hooks/useProfitAndLossComparison/utils.ts
25764
25757
  import { getMonth, getYear as getYear2, startOfMonth as startOfMonth6, startOfYear as startOfYear4, subMonths as subMonths2, subYears as subYears2 } from "date-fns";
@@ -25918,10 +25911,10 @@ function useProfitAndLossComparison({
25918
25911
  );
25919
25912
  const rangeDisplayMode = useReportModeWithFallback("ProfitAndLoss" /* ProfitAndLoss */, "monthPicker");
25920
25913
  const { start, end } = useGlobalDateRange({ displayMode: rangeDisplayMode });
25921
- const dateRange = useMemo42(() => ({ startDate: start, endDate: end }), [start, end]);
25914
+ const dateRange = useMemo43(() => ({ startDate: start, endDate: end }), [start, end]);
25922
25915
  const isPeriodsSelectEnabled = COMPARE_MODES_SUPPORTING_MULTI_PERIOD.includes(rangeDisplayMode);
25923
25916
  const effectiveComparePeriods = isPeriodsSelectEnabled ? comparePeriods : 1;
25924
- const compareModeActive = useMemo42(() => effectiveComparePeriods > 1 || selectedCompareOptions.length > 1 || selectedCompareOptions.length === 1 && isNotOnlyNoneTag(selectedCompareOptions), [effectiveComparePeriods, selectedCompareOptions]);
25917
+ const compareModeActive = useMemo43(() => effectiveComparePeriods > 1 || selectedCompareOptions.length > 1 || selectedCompareOptions.length === 1 && isNotOnlyNoneTag(selectedCompareOptions), [effectiveComparePeriods, selectedCompareOptions]);
25925
25918
  const setSelectedCompareOptions = (values) => {
25926
25919
  const options3 = values.map(
25927
25920
  (option) => comparisonConfig == null ? void 0 : comparisonConfig.tagComparisonOptions.find(
@@ -25994,10 +25987,10 @@ function useProfitAndLossComparison({
25994
25987
  }
25995
25988
 
25996
25989
  // src/components/ProfitAndLossChart/ProfitAndLossChart.tsx
25997
- import { useCallback as useCallback45, useEffect as useEffect25, useMemo as useMemo44, useState as useState55 } from "react";
25990
+ import { useCallback as useCallback45, useEffect as useEffect25, useMemo as useMemo45, useState as useState55 } from "react";
25998
25991
 
25999
25992
  // src/hooks/useProfitAndLoss/useProfitAndLossLTM.tsx
26000
- import { useCallback as useCallback44, useMemo as useMemo43, useState as useState54 } from "react";
25993
+ import { useCallback as useCallback44, useMemo as useMemo44, useState as useState54 } from "react";
26001
25994
  import { startOfMonth as startOfMonth7, sub } from "date-fns";
26002
25995
  var getYearMonthKey = (y, m) => {
26003
25996
  return `${y}-${m.toString().padStart(2, "0")}`;
@@ -26040,7 +26033,7 @@ var useProfitAndLossLTM = ({ currentDate, tagFilter, reportingBasis } = {
26040
26033
  }) => {
26041
26034
  var _a;
26042
26035
  const [date, setDate] = useState54(currentDate);
26043
- const { startYear, startMonth, endYear, endMonth } = useMemo43(() => {
26036
+ const { startYear, startMonth, endYear, endMonth } = useMemo44(() => {
26044
26037
  return buildDates({ currentDate: date });
26045
26038
  }, [date]);
26046
26039
  const { data, isLoading, isError, mutate } = useProfitAndLossSummaries({
@@ -26052,7 +26045,7 @@ var useProfitAndLossLTM = ({ currentDate, tagFilter, reportingBasis } = {
26052
26045
  tagValues: (_a = tagFilter == null ? void 0 : tagFilter.values) == null ? void 0 : _a.join(","),
26053
26046
  reportingBasis
26054
26047
  });
26055
- const augmentedData = useMemo43(() => {
26048
+ const augmentedData = useMemo44(() => {
26056
26049
  var _a2;
26057
26050
  const period = buildMonthsArray(sub(date, { years: 1 }), date);
26058
26051
  const map = /* @__PURE__ */ new Map();
@@ -26195,7 +26188,7 @@ var Indicator = ({
26195
26188
  };
26196
26189
 
26197
26190
  // src/components/ProfitAndLossChart/ProfitAndLossChart.tsx
26198
- import classNames63 from "classnames";
26191
+ import classNames64 from "classnames";
26199
26192
  import {
26200
26193
  add,
26201
26194
  differenceInMonths,
@@ -26297,7 +26290,7 @@ var ProfitAndLossChart = ({
26297
26290
  const { start, end } = useGlobalDateRange({ displayMode: rangeDisplayMode });
26298
26291
  const { setMonth } = useGlobalDateRangeActions();
26299
26292
  const showIndicator = rangeDisplayMode === "monthPicker";
26300
- const dateRange = useMemo44(() => ({ startDate: start, endDate: end }), [start, end]);
26293
+ const dateRange = useMemo45(() => ({ startDate: start, endDate: end }), [start, end]);
26301
26294
  const [customCursorSize, setCustomCursorSize] = useState55({
26302
26295
  width: 0,
26303
26296
  height: 0,
@@ -26308,7 +26301,7 @@ var ProfitAndLossChart = ({
26308
26301
  start: startOfMonth8(sub2(Date.now(), { months: 11 })),
26309
26302
  end: endOfMonth6(Date.now())
26310
26303
  });
26311
- const selectionMonth = useMemo44(
26304
+ const selectionMonth = useMemo45(
26312
26305
  () => ({
26313
26306
  year: dateRange.startDate.getFullYear(),
26314
26307
  month: dateRange.startDate.getMonth()
@@ -26320,7 +26313,7 @@ var ProfitAndLossChart = ({
26320
26313
  tagFilter
26321
26314
  });
26322
26315
  const hasLoadedData = !isLoading && data;
26323
- const hasNonZeroData = useMemo44(() => {
26316
+ const hasNonZeroData = useMemo45(() => {
26324
26317
  return Boolean(
26325
26318
  data == null ? void 0 : data.find(
26326
26319
  (x) => x.income !== 0 || x.costOfGoodsSold !== 0 || x.grossProfit !== 0 || x.operatingExpenses !== 0 || x.profitBeforeTaxes !== 0 || x.taxes !== 0 || x.totalExpenses !== 0 || x.uncategorizedInflows !== 0 || x.uncategorizedOutflows !== 0
@@ -26328,11 +26321,11 @@ var ProfitAndLossChart = ({
26328
26321
  );
26329
26322
  }, [data]);
26330
26323
  const { data: linkedAccounts } = useLinkedAccounts();
26331
- const isSyncing = useMemo44(
26324
+ const isSyncing = useMemo45(
26332
26325
  () => Boolean(linkedAccounts == null ? void 0 : linkedAccounts.some((item) => item.is_syncing)),
26333
26326
  [linkedAccounts]
26334
26327
  );
26335
- const loadingValue = useMemo44(() => getLoadingValue(data), [data]);
26328
+ const loadingValue = useMemo45(() => getLoadingValue(data), [data]);
26336
26329
  useEffect25(() => {
26337
26330
  if (hasLoadedData) {
26338
26331
  const foundCurrent = data.find(
@@ -26389,7 +26382,7 @@ var ProfitAndLossChart = ({
26389
26382
  loading: (pnl == null ? void 0 : pnl.isLoading) ? loadingValue : 0,
26390
26383
  loadingExpenses: (pnl == null ? void 0 : pnl.isLoading) ? -loadingValue : 0
26391
26384
  }), [getMonthName, loadingValue, selectionMonth.month, selectionMonth.year]);
26392
- const dataOrPlaceholderData = useMemo44(() => {
26385
+ const dataOrPlaceholderData = useMemo45(() => {
26393
26386
  var _a;
26394
26387
  if (isLoading || !hasNonZeroData) {
26395
26388
  const loadingData = [];
@@ -26616,7 +26609,7 @@ var ProfitAndLossChart = ({
26616
26609
  /* @__PURE__ */ jsx204(
26617
26610
  ResponsiveContainer,
26618
26611
  {
26619
- className: classNames63(
26612
+ className: classNames64(
26620
26613
  "Layer__chart-container",
26621
26614
  !hasLoadedData && "Layer__chart-container--loading"
26622
26615
  ),
@@ -26736,7 +26729,7 @@ var ProfitAndLossChart = ({
26736
26729
  isAnimationActive: barAnimActive,
26737
26730
  animationDuration: 100,
26738
26731
  radius: [2, 2, 0, 0],
26739
- className: classNames63(
26732
+ className: classNames64(
26740
26733
  "Layer__profit-and-loss-chart__bar--loading",
26741
26734
  !hasLoadedData && "Layer__profit-and-loss-chart__bar--loading-anim"
26742
26735
  ),
@@ -26752,7 +26745,7 @@ var ProfitAndLossChart = ({
26752
26745
  isAnimationActive: barAnimActive,
26753
26746
  animationDuration: 100,
26754
26747
  radius: [2, 2, 0, 0],
26755
- className: classNames63(
26748
+ className: classNames64(
26756
26749
  "Layer__profit-and-loss-chart__bar--loading",
26757
26750
  !hasLoadedData && "Layer__profit-and-loss-chart__bar--loading-anim"
26758
26751
  ),
@@ -26920,7 +26913,7 @@ var ProfitAndLossChart = ({
26920
26913
  };
26921
26914
 
26922
26915
  // src/components/ProfitAndLossCompareOptions/ProfitAndLossCompareOptions.tsx
26923
- import { useContext as useContext30, useMemo as useMemo45 } from "react";
26916
+ import { useContext as useContext30, useMemo as useMemo46 } from "react";
26924
26917
  import { jsx as jsx205, jsxs as jsxs125 } from "react/jsx-runtime";
26925
26918
  var selectStyles = {
26926
26919
  valueContainer: (styles) => {
@@ -26962,7 +26955,7 @@ var ProfitAndLossCompareOptions = () => {
26962
26955
  comparisonConfig
26963
26956
  } = useContext30(ProfitAndLoss2.ComparisonContext);
26964
26957
  const rangeDisplayMode = useReportModeWithFallback("ProfitAndLoss" /* ProfitAndLoss */, "monthPicker");
26965
- const periods = useMemo45(
26958
+ const periods = useMemo46(
26966
26959
  () => comparePeriods !== 0 ? comparePeriods : 1,
26967
26960
  [comparePeriods]
26968
26961
  );
@@ -27058,7 +27051,7 @@ function DatePickerModeSelector({
27058
27051
  }
27059
27052
 
27060
27053
  // src/providers/GlobalDateStore/useGlobalDateRangePicker.ts
27061
- import { useCallback as useCallback46, useMemo as useMemo46 } from "react";
27054
+ import { useCallback as useCallback46, useMemo as useMemo47 } from "react";
27062
27055
  var getAllowedDateRangePickerModes = ({
27063
27056
  allowedDatePickerModes,
27064
27057
  defaultDatePickerMode
@@ -27082,7 +27075,7 @@ function useGlobalDateRangePicker({ displayMode, setDisplayMode }) {
27082
27075
  setDisplayMode(newMode);
27083
27076
  }
27084
27077
  }, [setDisplayMode]);
27085
- const dateOrDateRange = useMemo46(() => {
27078
+ const dateOrDateRange = useMemo47(() => {
27086
27079
  if (displayMode === "monthPicker") {
27087
27080
  return start;
27088
27081
  }
@@ -27156,7 +27149,7 @@ var ProfitAndLossDatePicker = ({
27156
27149
  import { useCallback as useCallback49, useContext as useContext33, useState as useState57 } from "react";
27157
27150
 
27158
27151
  // src/components/ProfitAndLossDetailedCharts/DetailedChart.tsx
27159
- import { useMemo as useMemo47 } from "react";
27152
+ import { useMemo as useMemo48 } from "react";
27160
27153
 
27161
27154
  // src/config/charts.ts
27162
27155
  var DEFAULT_CHART_COLOR_TYPE = [
@@ -27250,7 +27243,7 @@ var SortArrows = (_a) => {
27250
27243
  var SortArrows_default = SortArrows;
27251
27244
 
27252
27245
  // src/components/ProfitAndLossDetailedCharts/DetailedTable.tsx
27253
- import classNames64 from "classnames";
27246
+ import classNames65 from "classnames";
27254
27247
 
27255
27248
  // src/components/ui/Typography/MoneyText.tsx
27256
27249
  import { forwardRef as forwardRef22 } from "react";
@@ -27366,7 +27359,7 @@ var DetailedTable = ({
27366
27359
  }) => {
27367
27360
  const buildColClass = (column) => {
27368
27361
  var _a, _b, _c;
27369
- return classNames64(
27362
+ return classNames65(
27370
27363
  "Layer__sortable-col",
27371
27364
  sidebarScope && ((_a = filters[sidebarScope]) == null ? void 0 : _a.sortBy) === column ? `sort--${(_c = sidebarScope && ((_b = filters[sidebarScope]) == null ? void 0 : _b.sortDirection)) != null ? _c : "desc"}` : ""
27372
27365
  );
@@ -27418,7 +27411,7 @@ var DetailedTable = ({
27418
27411
  return /* @__PURE__ */ jsxs127(
27419
27412
  "tr",
27420
27413
  {
27421
- className: classNames64(
27414
+ className: classNames65(
27422
27415
  "Layer__profit-and-loss-detailed-table__row",
27423
27416
  hoveredItem && hoveredItem === item.displayName ? "active" : ""
27424
27417
  ),
@@ -27456,7 +27449,7 @@ var DetailedTable = ({
27456
27449
  };
27457
27450
 
27458
27451
  // src/components/ProfitAndLossDetailedCharts/DetailedChart.tsx
27459
- import classNames65 from "classnames";
27452
+ import classNames66 from "classnames";
27460
27453
  import {
27461
27454
  PieChart,
27462
27455
  Pie,
@@ -27475,7 +27468,7 @@ var DetailedChart = ({
27475
27468
  isLoading,
27476
27469
  showDatePicker = true
27477
27470
  }) => {
27478
- const chartData = useMemo47(
27471
+ const chartData = useMemo48(
27479
27472
  () => filteredData.map((x) => {
27480
27473
  if (x.isHidden) {
27481
27474
  return __spreadProps(__spreadValues({}, x), {
@@ -27553,7 +27546,7 @@ var DetailedChart = ({
27553
27546
  return /* @__PURE__ */ jsx211(
27554
27547
  Cell2,
27555
27548
  {
27556
- className: classNames65(
27549
+ className: classNames66(
27557
27550
  "Layer__profit-and-loss-detailed-charts__pie",
27558
27551
  hoveredItem && active ? "active" : "inactive",
27559
27552
  entry.type === "Uncategorized" && "Layer__profit-and-loss-detailed-charts__pie--border"
@@ -27822,10 +27815,10 @@ var Filters = ({
27822
27815
  };
27823
27816
 
27824
27817
  // src/components/ProfitAndLossDetailReport/ProfitAndLossDetailReport.tsx
27825
- import { useContext as useContext32, useState as useState56, useMemo as useMemo50, useCallback as useCallback48 } from "react";
27818
+ import { useContext as useContext32, useState as useState56, useMemo as useMemo51, useCallback as useCallback48 } from "react";
27826
27819
 
27827
27820
  // src/components/LedgerAccountEntryDetails/LedgerAccountEntryDetails.tsx
27828
- import { useContext as useContext31, useMemo as useMemo48 } from "react";
27821
+ import { useContext as useContext31, useMemo as useMemo49 } from "react";
27829
27822
 
27830
27823
  // src/contexts/LedgerAccountsContext/LedgerAccountsContext.tsx
27831
27824
  import { createContext as createContext20 } from "react";
@@ -27905,7 +27898,7 @@ var DateTime = ({
27905
27898
  };
27906
27899
 
27907
27900
  // src/components/DetailsList/DetailsList.tsx
27908
- import classNames66 from "classnames";
27901
+ import classNames67 from "classnames";
27909
27902
  import { jsx as jsx214, jsxs as jsxs131 } from "react/jsx-runtime";
27910
27903
  var DetailsList = ({
27911
27904
  title,
@@ -27914,7 +27907,7 @@ var DetailsList = ({
27914
27907
  titleClassName,
27915
27908
  actions
27916
27909
  }) => {
27917
- return /* @__PURE__ */ jsxs131("div", { className: classNames66("Layer__details-list", className), children: [
27910
+ return /* @__PURE__ */ jsxs131("div", { className: classNames67("Layer__details-list", className), children: [
27918
27911
  title && /* @__PURE__ */ jsxs131(Header, { className: titleClassName, children: [
27919
27912
  /* @__PURE__ */ jsx214(Heading, { size: "secondary" /* secondary */, children: title }),
27920
27913
  actions && /* @__PURE__ */ jsx214("div", { className: "Layer__details-list__actions", children: actions })
@@ -27946,11 +27939,11 @@ var DetailsListItem = ({
27946
27939
  import {
27947
27940
  forwardRef as forwardRef23
27948
27941
  } from "react";
27949
- import classNames67 from "classnames";
27942
+ import classNames68 from "classnames";
27950
27943
  import { jsx as jsx216 } from "react/jsx-runtime";
27951
27944
  var Header4 = forwardRef23(
27952
27945
  ({ className, children, style, sticky, asHeader, rounded }, ref) => {
27953
- const baseClassName = classNames67(
27946
+ const baseClassName = classNames68(
27954
27947
  "Layer__header",
27955
27948
  sticky && "Layer__header--sticky",
27956
27949
  rounded && "Layer__header--top-rounded",
@@ -27973,19 +27966,19 @@ var Header4 = forwardRef23(
27973
27966
  Header4.displayName = "Header";
27974
27967
 
27975
27968
  // src/components/Header/HeaderRow.tsx
27976
- import classNames68 from "classnames";
27969
+ import classNames69 from "classnames";
27977
27970
  import { jsx as jsx217 } from "react/jsx-runtime";
27978
27971
  var HeaderRow = ({ className, children, direction, style }) => {
27979
27972
  const dataProps = toDataProperties({ direction });
27980
- return /* @__PURE__ */ jsx217("div", __spreadProps(__spreadValues({}, dataProps), { className: classNames68("Layer__header__row", className), style, children }));
27973
+ return /* @__PURE__ */ jsx217("div", __spreadProps(__spreadValues({}, dataProps), { className: classNames69("Layer__header__row", className), style, children }));
27981
27974
  };
27982
27975
 
27983
27976
  // src/components/Header/HeaderCol.tsx
27984
- import classNames69 from "classnames";
27977
+ import classNames70 from "classnames";
27985
27978
  import { jsx as jsx218 } from "react/jsx-runtime";
27986
27979
  var HeaderCol = ({ className, children, style, noPadding = false }) => {
27987
27980
  const dataProperties = toDataProperties({ "no-padding": noPadding });
27988
- return /* @__PURE__ */ jsx218("div", __spreadProps(__spreadValues({}, dataProperties), { className: classNames69("Layer__header__col", className), style, children }));
27981
+ return /* @__PURE__ */ jsx218("div", __spreadProps(__spreadValues({}, dataProperties), { className: classNames70("Layer__header__col", className), style, children }));
27989
27982
  };
27990
27983
 
27991
27984
  // src/components/TableBody/TableBody.tsx
@@ -27995,7 +27988,7 @@ var TableBody = ({ children }) => {
27995
27988
  };
27996
27989
 
27997
27990
  // src/components/TableCell/TableCell.tsx
27998
- import classNames70 from "classnames";
27991
+ import classNames71 from "classnames";
27999
27992
  import { jsx as jsx220, jsxs as jsxs133 } from "react/jsx-runtime";
28000
27993
  var TableCell = ({
28001
27994
  children,
@@ -28015,7 +28008,7 @@ var TableCell = ({
28015
28008
  const amount = typeof children === "number" ? children : 0;
28016
28009
  const isPositive = amount >= 0;
28017
28010
  const amountString = centsToDollars(Math.abs(amount));
28018
- const cellClassNames = classNames70(
28011
+ const cellClassNames = classNames71(
28019
28012
  "Layer__table-cell",
28020
28013
  (primary || isHeaderCell) && "Layer__table-cell--primary",
28021
28014
  isHeaderCell && "Layer__table-header",
@@ -28058,7 +28051,7 @@ var TableHead = ({ children }) => {
28058
28051
  };
28059
28052
 
28060
28053
  // src/components/TableRow/TableRow.tsx
28061
- import classNames71 from "classnames";
28054
+ import classNames72 from "classnames";
28062
28055
  import { Fragment as Fragment24, jsx as jsx222, jsxs as jsxs134 } from "react/jsx-runtime";
28063
28056
  var TableRow = ({
28064
28057
  rowKey,
@@ -28082,7 +28075,7 @@ var TableRow = ({
28082
28075
  handleExpand && handleExpand();
28083
28076
  }
28084
28077
  };
28085
- const rowClassNames = classNames71([
28078
+ const rowClassNames = classNames72([
28086
28079
  "Layer__table-row",
28087
28080
  !isHeadRow && `Layer__table-row--depth-${depth}`,
28088
28081
  !isHeadRow && `Layer__table-row--variant-${variant}`,
@@ -28105,7 +28098,7 @@ var TableRow = ({
28105
28098
  };
28106
28099
 
28107
28100
  // src/components/Table/Table.tsx
28108
- import classNames72 from "classnames";
28101
+ import classNames73 from "classnames";
28109
28102
  import { jsx as jsx223 } from "react/jsx-runtime";
28110
28103
  var Table = ({
28111
28104
  componentName,
@@ -28113,11 +28106,11 @@ var Table = ({
28113
28106
  borderCollapse = "separate",
28114
28107
  bottomSpacing = true
28115
28108
  }) => {
28116
- const tableWrapperClassNames = classNames72(
28109
+ const tableWrapperClassNames = classNames73(
28117
28110
  "Layer__table-wrapper",
28118
28111
  bottomSpacing && "Layer__table-wrapper--bottom-spacing"
28119
28112
  );
28120
- const tableClassNames = classNames72(
28113
+ const tableClassNames = classNames73(
28121
28114
  "Layer__table",
28122
28115
  componentName && `Layer__${componentName}__table`,
28123
28116
  borderCollapse && `Layer__table__${borderCollapse}-rows`
@@ -28350,7 +28343,7 @@ var LedgerAccountEntryDetails = ({
28350
28343
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t;
28351
28344
  const { entryData, isLoadingEntry, closeSelectedEntry, errorEntry } = useContext31(LedgerAccountsContext);
28352
28345
  const { renderInAppLink } = useInAppLinkContext();
28353
- const { totalDebit, totalCredit } = useMemo48(() => {
28346
+ const { totalDebit, totalCredit } = useMemo49(() => {
28354
28347
  var _a2;
28355
28348
  let totalDebit2 = 0;
28356
28349
  let totalCredit2 = 0;
@@ -28363,10 +28356,10 @@ var LedgerAccountEntryDetails = ({
28363
28356
  });
28364
28357
  return { totalDebit: totalDebit2, totalCredit: totalCredit2 };
28365
28358
  }, [entryData]);
28366
- const ledgerEntrySource = useMemo48(() => {
28359
+ const ledgerEntrySource = useMemo49(() => {
28367
28360
  return (entryData == null ? void 0 : entryData.source) ? decodeLedgerEntrySource(entryData.source) : void 0;
28368
28361
  }, [entryData == null ? void 0 : entryData.source]);
28369
- const badgeOrInAppLink = useMemo48(() => {
28362
+ const badgeOrInAppLink = useMemo49(() => {
28370
28363
  var _a2, _b2;
28371
28364
  const badgeContent = (_a2 = ledgerEntrySource == null ? void 0 : ledgerEntrySource.entityName) != null ? _a2 : entryData == null ? void 0 : entryData.entry_type;
28372
28365
  const defaultBadge = /* @__PURE__ */ jsx224(Badge, { children: badgeContent });
@@ -28506,8 +28499,8 @@ var LedgerAccountEntryDetails = ({
28506
28499
  };
28507
28500
 
28508
28501
  // src/components/VirtualizedDataTable/VirtualizedDataTable.tsx
28509
- import { useRef as useRef26, useMemo as useMemo49 } from "react";
28510
- import classNames74 from "classnames";
28502
+ import { useRef as useRef26, useMemo as useMemo50 } from "react";
28503
+ import classNames75 from "classnames";
28511
28504
  import { useVirtualizer as useVirtualizer2 } from "@tanstack/react-virtual";
28512
28505
  import {
28513
28506
  useReactTable as useReactTable2,
@@ -28527,10 +28520,10 @@ import {
28527
28520
  TableBody as ReactAriaTableBody,
28528
28521
  TableHeader as ReactAriaTableHeader
28529
28522
  } from "react-aria-components";
28530
- import classNames73 from "classnames";
28523
+ import classNames74 from "classnames";
28531
28524
  import { jsx as jsx225 } from "react/jsx-runtime";
28532
28525
  var CSS_PREFIX2 = "Layer__UI__Table";
28533
- var getClassName = (component, additionalClassNames) => classNames73(`${CSS_PREFIX2}-${component}`, additionalClassNames);
28526
+ var getClassName = (component, additionalClassNames) => classNames74(`${CSS_PREFIX2}-${component}`, additionalClassNames);
28534
28527
  var Table2 = forwardRef24(
28535
28528
  (_a, ref) => {
28536
28529
  var _b = _a, { children, className } = _b, restProps = __objRest(_b, ["children", "className"]);
@@ -28644,7 +28637,7 @@ var VirtualizedDataTable = ({
28644
28637
  }) => {
28645
28638
  const { EmptyState: EmptyState2, ErrorState: ErrorState2 } = slots;
28646
28639
  const containerRef = useRef26(null);
28647
- const renderedTableHeight = useMemo49(() => {
28640
+ const renderedTableHeight = useMemo50(() => {
28648
28641
  if (!data) return height;
28649
28642
  if (!shrinkHeightToFitRows) return height;
28650
28643
  const actualRowCount = data.length;
@@ -28671,7 +28664,7 @@ var VirtualizedDataTable = ({
28671
28664
  getSortedRowModel: getSortedRowModel2()
28672
28665
  });
28673
28666
  const { rows } = table2.getRowModel();
28674
- const processedData = useMemo49(() => rows.map((r) => r.original), [rows]);
28667
+ const processedData = useMemo50(() => rows.map((r) => r.original), [rows]);
28675
28668
  const isEmptyTable = processedData.length === 0;
28676
28669
  const hasData = processedData.length > 0;
28677
28670
  const rowVirtualizer = useVirtualizer2({
@@ -28692,7 +28685,7 @@ var VirtualizedDataTable = ({
28692
28685
  }
28693
28686
  const virtualItems = rowVirtualizer.getVirtualItems();
28694
28687
  const totalSize = rowVirtualizer.getTotalSize();
28695
- return /* @__PURE__ */ jsx226("div", { className: `${CSS_PREFIX3}__container`, ref: containerRef, style: { height: renderedTableHeight }, "aria-label": ariaLabel, children: /* @__PURE__ */ jsxs136(Table2, { className: classNames74(CSS_PREFIX3, `Layer__UI__Table__${componentName}`), "aria-label": ariaLabel, children: [
28688
+ return /* @__PURE__ */ jsx226("div", { className: `${CSS_PREFIX3}__container`, ref: containerRef, style: { height: renderedTableHeight }, "aria-label": ariaLabel, children: /* @__PURE__ */ jsxs136(Table2, { className: classNames75(CSS_PREFIX3, `Layer__UI__Table__${componentName}`), "aria-label": ariaLabel, children: [
28696
28689
  /* @__PURE__ */ jsx226(TableHeader, { className: `${CSS_PREFIX3}__header`, style: { height: HEADER_HEIGHT2 }, children: table2.getFlatHeaders().map(
28697
28690
  (header) => {
28698
28691
  var _a;
@@ -28700,7 +28693,7 @@ var VirtualizedDataTable = ({
28700
28693
  Column,
28701
28694
  {
28702
28695
  isRowHeader: (_a = header.column.columnDef.meta) == null ? void 0 : _a.isRowHeader,
28703
- className: classNames74(
28696
+ className: classNames75(
28704
28697
  `${CSS_PREFIX3}__header-cell`,
28705
28698
  `Layer__UI__Table-Column__${componentName}--${header.id}`
28706
28699
  ),
@@ -28722,7 +28715,7 @@ var VirtualizedDataTable = ({
28722
28715
  children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx226(
28723
28716
  Cell3,
28724
28717
  {
28725
- className: classNames74(
28718
+ className: classNames75(
28726
28719
  `${CSS_PREFIX3}__cell`,
28727
28720
  `Layer__UI__Table-Cell__${componentName}--${cell.column.id}`
28728
28721
  ),
@@ -28809,7 +28802,7 @@ var ProfitAndLossDetailReport = ({
28809
28802
  const { tagFilter, dateRange } = useContext32(ProfitAndLoss2.Context);
28810
28803
  const [selectedSource, setSelectedSource] = useState56(null);
28811
28804
  const { renderInAppLink } = useInAppLinkContext();
28812
- const badgeOrInAppLink = useMemo50(() => {
28805
+ const badgeOrInAppLink = useMemo51(() => {
28813
28806
  var _a;
28814
28807
  if (!selectedSource) return void 0;
28815
28808
  const defaultBadge = /* @__PURE__ */ jsx229(Badge, { children: selectedSource.entityName });
@@ -28819,7 +28812,7 @@ var ProfitAndLossDetailReport = ({
28819
28812
  const linkingMetadata = convertLedgerEntrySourceToLinkingMetadata(selectedSource);
28820
28813
  return (_a = renderInAppLink(linkingMetadata)) != null ? _a : defaultBadge;
28821
28814
  }, [renderInAppLink, selectedSource]);
28822
- const dynamicBreadcrumbs = useMemo50(() => {
28815
+ const dynamicBreadcrumbs = useMemo51(() => {
28823
28816
  return breadcrumbPath || [{ name: lineItemName, display_name: lineItemName }];
28824
28817
  }, [breadcrumbPath, lineItemName]);
28825
28818
  const formatDateRange = (startDate, endDate) => {
@@ -28840,7 +28833,7 @@ var ProfitAndLossDetailReport = ({
28840
28833
  const handleBackToList = useCallback48(() => {
28841
28834
  setSelectedSource(null);
28842
28835
  }, []);
28843
- const rowsWithRunningBalance = useMemo50(() => {
28836
+ const rowsWithRunningBalance = useMemo51(() => {
28844
28837
  if (!(data == null ? void 0 : data.lines)) return { lines: [], total: 0 };
28845
28838
  let runningBalance = 0;
28846
28839
  const linesWithBalance = data.lines.map((line) => {
@@ -28856,7 +28849,7 @@ var ProfitAndLossDetailReport = ({
28856
28849
  total: runningBalance
28857
28850
  };
28858
28851
  }, [data == null ? void 0 : data.lines]);
28859
- const columnConfig = useMemo50(() => ({
28852
+ const columnConfig = useMemo51(() => ({
28860
28853
  ["Date" /* Date */]: {
28861
28854
  id: "Date" /* Date */,
28862
28855
  header: (stringOverrides == null ? void 0 : stringOverrides.dateColumnHeader) || "Date",
@@ -28887,7 +28880,15 @@ var ProfitAndLossDetailReport = ({
28887
28880
  ["Account" /* Account */]: {
28888
28881
  id: "Account" /* Account */,
28889
28882
  header: (stringOverrides == null ? void 0 : stringOverrides.accountColumnHeader) || "Account",
28890
- cell: (row) => row.account.name || "-"
28883
+ cell: (row) => /* @__PURE__ */ jsx229(
28884
+ Text,
28885
+ {
28886
+ as: "span",
28887
+ withTooltip: "whenTruncated" /* whenTruncated */,
28888
+ ellipsis: true,
28889
+ children: row.account.name || "-"
28890
+ }
28891
+ )
28891
28892
  },
28892
28893
  ["Description" /* Description */]: {
28893
28894
  id: "Description" /* Description */,
@@ -29177,7 +29178,7 @@ var ProfitAndLossDownloadButton = ({
29177
29178
  };
29178
29179
 
29179
29180
  // src/components/ProfitAndLossHeader/ProfitAndLossHeader.tsx
29180
- import { useMemo as useMemo52 } from "react";
29181
+ import { useMemo as useMemo53 } from "react";
29181
29182
 
29182
29183
  // src/components/SyncingBadge/SyncingBadge.tsx
29183
29184
  import { jsx as jsx233 } from "react/jsx-runtime";
@@ -29194,13 +29195,13 @@ var SyncingBadge = () => {
29194
29195
  };
29195
29196
 
29196
29197
  // src/hooks/bookkeeping/periods/useActiveBookkeepingPeriod.ts
29197
- import { useMemo as useMemo51 } from "react";
29198
+ import { useMemo as useMemo52 } from "react";
29198
29199
  function useActiveBookkeepingPeriod() {
29199
29200
  const { date } = useGlobalDate();
29200
29201
  const { data, isLoading } = useBookkeepingPeriods();
29201
29202
  const currentMonth = date.getMonth() + 1;
29202
29203
  const currentYear = date.getFullYear();
29203
- const activePeriod = useMemo51(
29204
+ const activePeriod = useMemo52(
29204
29205
  () => data == null ? void 0 : data.find((period) => currentYear === period.year && currentMonth === period.month),
29205
29206
  [data, currentMonth, currentYear]
29206
29207
  );
@@ -29219,7 +29220,7 @@ var ProfitAndLossHeader = ({
29219
29220
  const { data: linkedAccounts } = useLinkedAccounts();
29220
29221
  const { activePeriod } = useActiveBookkeepingPeriod();
29221
29222
  const activePeriodStatus = activePeriod == null ? void 0 : activePeriod.status;
29222
- const isSyncing = useMemo52(
29223
+ const isSyncing = useMemo53(
29223
29224
  () => Boolean(linkedAccounts == null ? void 0 : linkedAccounts.some((item) => item.is_syncing)),
29224
29225
  [linkedAccounts]
29225
29226
  );
@@ -29234,7 +29235,7 @@ var ProfitAndLossHeader = ({
29234
29235
  };
29235
29236
 
29236
29237
  // src/components/ProfitAndLossReport/ProfitAndLossReport.tsx
29237
- import { useCallback as useCallback50, useContext as useContext36, useMemo as useMemo53, useState as useState60 } from "react";
29238
+ import { useCallback as useCallback50, useContext as useContext36, useMemo as useMemo54, useState as useState60 } from "react";
29238
29239
 
29239
29240
  // src/components/ProfitAndLossDetailLinesDownloadButton/ProfitAndLossDetailLinesDownloadButton.tsx
29240
29241
  import { useContext as useContext35 } from "react";
@@ -29376,10 +29377,10 @@ function ProfitAndLossDetailLinesDownloadButton({
29376
29377
  import { forwardRef as forwardRef25 } from "react";
29377
29378
 
29378
29379
  // src/components/ViewHeader/ViewHeader.tsx
29379
- import classNames75 from "classnames";
29380
+ import classNames76 from "classnames";
29380
29381
  import { jsx as jsx236, jsxs as jsxs143 } from "react/jsx-runtime";
29381
29382
  var ViewHeader = ({ title, className, children }) => {
29382
- return /* @__PURE__ */ jsx236("div", { className: classNames75("Layer__view-header", className), children: /* @__PURE__ */ jsxs143("div", { className: "Layer__view-header__content", children: [
29383
+ return /* @__PURE__ */ jsx236("div", { className: classNames76("Layer__view-header", className), children: /* @__PURE__ */ jsxs143("div", { className: "Layer__view-header__content", children: [
29383
29384
  title && /* @__PURE__ */ jsx236(Heading, { className: "Layer__view-header__title", children: title }),
29384
29385
  children && /* @__PURE__ */ jsx236("div", { className: "Layer__view-header__children", children })
29385
29386
  ] }) });
@@ -29387,7 +29388,7 @@ var ViewHeader = ({ title, className, children }) => {
29387
29388
 
29388
29389
  // src/components/Panel/Panel.tsx
29389
29390
  import { useEffect as useEffect27, useState as useState59 } from "react";
29390
- import classNames76 from "classnames";
29391
+ import classNames77 from "classnames";
29391
29392
  import { jsx as jsx237, jsxs as jsxs144 } from "react/jsx-runtime";
29392
29393
  var Panel = ({
29393
29394
  children,
@@ -29407,7 +29408,7 @@ var Panel = ({
29407
29408
  setSidebarHeight((_b = parentRef == null ? void 0 : parentRef.current) == null ? void 0 : _b.offsetHeight);
29408
29409
  }
29409
29410
  }, [parentRef, (_a = parentRef == null ? void 0 : parentRef.current) == null ? void 0 : _a.offsetHeight, sidebarIsOpen]);
29410
- const sidebarClass = classNames76(
29411
+ const sidebarClass = classNames77(
29411
29412
  "Layer__panel__sidebar",
29412
29413
  defaultSidebarHeight && "Layer__panel__sidebar--default",
29413
29414
  floating && "Layer__panel__sidebar--floating"
@@ -29415,7 +29416,7 @@ var Panel = ({
29415
29416
  return /* @__PURE__ */ jsxs144(
29416
29417
  "div",
29417
29418
  {
29418
- className: classNames76(
29419
+ className: classNames77(
29419
29420
  "Layer__panel",
29420
29421
  className,
29421
29422
  sidebarIsOpen && "Layer__panel--open"
@@ -29441,7 +29442,7 @@ var Panel = ({
29441
29442
  };
29442
29443
 
29443
29444
  // src/components/View/View.tsx
29444
- import classNames77 from "classnames";
29445
+ import classNames78 from "classnames";
29445
29446
  import { jsx as jsx238, jsxs as jsxs145 } from "react/jsx-runtime";
29446
29447
  var View = forwardRef25(
29447
29448
  ({
@@ -29458,7 +29459,7 @@ var View = forwardRef25(
29458
29459
  }, ref) => {
29459
29460
  const { theme } = useLayerContext();
29460
29461
  const styles = parseStylesFromThemeConfig(theme);
29461
- const viewClassNames = classNames77(
29462
+ const viewClassNames = classNames78(
29462
29463
  "Layer__view",
29463
29464
  type === "panel" && "Layer__view--panel",
29464
29465
  viewClassName
@@ -29469,7 +29470,7 @@ var View = forwardRef25(
29469
29470
  ViewHeader,
29470
29471
  {
29471
29472
  title,
29472
- className: classNames77(
29473
+ className: classNames78(
29473
29474
  headerControls ? "Layer__view-header--paddings" : void 0
29474
29475
  ),
29475
29476
  children: header != null ? header : headerControls
@@ -29496,7 +29497,7 @@ var ProfitAndLossReport = ({
29496
29497
  var _a;
29497
29498
  const { comparisonConfig } = useContext36(ProfitAndLoss2.ComparisonContext);
29498
29499
  const [selectedLineItem, setSelectedLineItem] = useState60(null);
29499
- const breadcrumbIndexMap = useMemo53(() => {
29500
+ const breadcrumbIndexMap = useMemo54(() => {
29500
29501
  if (!selectedLineItem) return {};
29501
29502
  return selectedLineItem.breadcrumbPath.reduce((acc, item, index) => {
29502
29503
  acc[item.name] = index;
@@ -29519,6 +29520,7 @@ var ProfitAndLossReport = ({
29519
29520
  const handleCloseDetailReport = useCallback50(() => {
29520
29521
  setSelectedLineItem(null);
29521
29522
  }, []);
29523
+ const useComparisonPnl = !!comparisonConfig;
29522
29524
  return /* @__PURE__ */ jsx239(InAppLinkProvider, { renderInAppLink, children: /* @__PURE__ */ jsx239(
29523
29525
  View,
29524
29526
  {
@@ -29535,7 +29537,7 @@ var ProfitAndLossReport = ({
29535
29537
  customDateRanges
29536
29538
  }
29537
29539
  ),
29538
- view === "desktop" ? /* @__PURE__ */ jsx239(ProfitAndLoss2.CompareOptions, {}) : null
29540
+ view === "desktop" && useComparisonPnl && /* @__PURE__ */ jsx239(ProfitAndLoss2.CompareOptions, {})
29539
29541
  ] }) }),
29540
29542
  /* @__PURE__ */ jsx239(HeaderCol, { children: selectedLineItem ? /* @__PURE__ */ jsx239(
29541
29543
  ProfitAndLossDetailLinesDownloadButton,
@@ -29547,13 +29549,13 @@ var ProfitAndLossReport = ({
29547
29549
  ProfitAndLoss2.DownloadButton,
29548
29550
  {
29549
29551
  stringOverrides: stringOverrides == null ? void 0 : stringOverrides.downloadButton,
29550
- useComparisonPnl: !!comparisonConfig,
29552
+ useComparisonPnl,
29551
29553
  moneyFormat: csvMoneyFormat,
29552
29554
  view
29553
29555
  }
29554
29556
  ) })
29555
29557
  ] }),
29556
- view !== "desktop" ? /* @__PURE__ */ jsx239(HeaderRow, { children: /* @__PURE__ */ jsx239(HeaderCol, { children: /* @__PURE__ */ jsx239(ProfitAndLoss2.CompareOptions, {}) }) }) : null
29558
+ view !== "desktop" && useComparisonPnl && /* @__PURE__ */ jsx239(HeaderRow, { children: /* @__PURE__ */ jsx239(HeaderCol, { children: /* @__PURE__ */ jsx239(ProfitAndLoss2.CompareOptions, {}) }) })
29557
29559
  ] }),
29558
29560
  children: selectedLineItem ? /* @__PURE__ */ jsx239(
29559
29561
  ProfitAndLossDetailReport,
@@ -29576,10 +29578,10 @@ var ProfitAndLossReport = ({
29576
29578
  };
29577
29579
 
29578
29580
  // src/components/ProfitAndLossSummaries/ProfitAndLossSummaries.tsx
29579
- import { useContext as useContext38, useMemo as useMemo56 } from "react";
29581
+ import { useContext as useContext38, useMemo as useMemo57 } from "react";
29580
29582
 
29581
29583
  // src/components/ProfitAndLossSummaries/internal/ProfitAndLossSummariesList.tsx
29582
- import { useMemo as useMemo54 } from "react";
29584
+ import { useMemo as useMemo55 } from "react";
29583
29585
  import { jsx as jsx240 } from "react/jsx-runtime";
29584
29586
  var LIST_ITEM_CLASS_NAME = "Layer__ProfitAndLossSummariesListItem";
29585
29587
  function ProfitAndLossSummariesListItem({
@@ -29587,7 +29589,7 @@ function ProfitAndLossSummariesListItem({
29587
29589
  isActive,
29588
29590
  onClick
29589
29591
  }) {
29590
- const dataProperties = useMemo54(
29592
+ const dataProperties = useMemo55(
29591
29593
  () => toDataProperties({ active: isActive, clickable: !!onClick }),
29592
29594
  [isActive]
29593
29595
  );
@@ -29598,7 +29600,7 @@ function ProfitAndLossSummariesList({
29598
29600
  children,
29599
29601
  itemCount
29600
29602
  }) {
29601
- const dataProperties = useMemo54(
29603
+ const dataProperties = useMemo55(
29602
29604
  () => toDataProperties({ ["column-count"]: itemCount }),
29603
29605
  [itemCount]
29604
29606
  );
@@ -29723,7 +29725,7 @@ function ProfitAndLossSummariesSummary({
29723
29725
  }
29724
29726
 
29725
29727
  // src/views/AccountingOverview/internal/TransactionsToReview.tsx
29726
- import { useContext as useContext37, useMemo as useMemo55 } from "react";
29728
+ import { useContext as useContext37, useEffect as useEffect28, useMemo as useMemo56 } from "react";
29727
29729
  import { getMonth as getMonth2, getYear as getYear3, startOfMonth as startOfMonth9 } from "date-fns";
29728
29730
  import { jsx as jsx244, jsxs as jsxs148 } from "react/jsx-runtime";
29729
29731
  var CLASS_NAME13 = "Layer__TransactionsToReview";
@@ -29733,24 +29735,30 @@ function TransactionsToReview({
29733
29735
  tagFilter = void 0,
29734
29736
  variants
29735
29737
  }) {
29738
+ var _a;
29736
29739
  const { size = "sm" } = variants != null ? variants : {};
29737
29740
  const { dateRange: contextDateRange } = useContext37(ProfitAndLoss2.Context);
29738
29741
  const dateRange = usePnlDateRange ? contextDateRange : void 0;
29739
- const { data, isLoading, isError, refetch } = useProfitAndLossLTM({
29740
- currentDate: dateRange ? dateRange.startDate : startOfMonth9(/* @__PURE__ */ new Date()),
29742
+ const currentDate = useMemo56(() => dateRange ? dateRange.startDate : startOfMonth9(/* @__PURE__ */ new Date()), [dateRange]);
29743
+ const { data, isLoading, isError, refetch, setDate } = useProfitAndLossLTM({
29744
+ currentDate,
29741
29745
  tagFilter
29742
29746
  });
29743
- const numTransactionsToReview = useMemo55(() => {
29744
- if (!data || !dateRange) return 0;
29747
+ const activeMonth = useMemo56(() => {
29748
+ if (!data || !dateRange) return void 0;
29745
29749
  const { startDate } = dateRange;
29746
- const activeMonth = data.find(
29750
+ return data.find(
29747
29751
  (summary) => summary.month - 1 === getMonth2(startDate) && summary.year === getYear3(startDate)
29748
29752
  );
29749
- if (!activeMonth) return 0;
29750
- return activeMonth.uncategorizedTransactions;
29751
29753
  }, [data, dateRange]);
29752
- const hasLoadedData = !isLoading && data;
29753
- const transactionsToReviewBadge = useMemo55(() => {
29754
+ useEffect28(() => {
29755
+ if (!activeMonth) {
29756
+ setDate(currentDate);
29757
+ }
29758
+ }, [activeMonth, currentDate, setDate]);
29759
+ const hasLoadedData = !isLoading && activeMonth;
29760
+ const numTransactionsToReview = (_a = activeMonth == null ? void 0 : activeMonth.uncategorizedTransactions) != null ? _a : 0;
29761
+ const transactionsToReviewBadge = useMemo56(() => {
29754
29762
  if (!hasLoadedData) {
29755
29763
  return /* @__PURE__ */ jsx244(BadgeLoader, {});
29756
29764
  }
@@ -29828,7 +29836,7 @@ function Internal_ProfitAndLossSummaries({
29828
29836
  setSidebarScope,
29829
29837
  sidebarScope
29830
29838
  } = useContext38(ProfitAndLoss2.Context);
29831
- const { revenueChartData, expensesChartData } = useMemo56(
29839
+ const { revenueChartData, expensesChartData } = useMemo57(
29832
29840
  () => ({
29833
29841
  revenueChartData: toMiniChartData({ scope: "revenue", data }),
29834
29842
  expensesChartData: toMiniChartData({ scope: "expenses", data })
@@ -29974,7 +29982,7 @@ var TableProvider = ({ children }) => {
29974
29982
  };
29975
29983
 
29976
29984
  // src/components/ProfitAndLossTable/ProfitAndLossCompareTable.tsx
29977
- import { Fragment as Fragment28, useContext as useContext40, useEffect as useEffect28, useMemo as useMemo57 } from "react";
29985
+ import { Fragment as Fragment28, useContext as useContext40, useEffect as useEffect29, useMemo as useMemo58 } from "react";
29978
29986
 
29979
29987
  // src/hooks/useTableExpandRow/useTableExpandRow.tsx
29980
29988
  import { useContext as useContext39 } from "react";
@@ -30090,7 +30098,7 @@ var mergeComparisonLineItemsAtDepth = (lineItems) => {
30090
30098
  };
30091
30099
 
30092
30100
  // src/components/ProfitAndLossTable/ProfitAndLossCompareTable.tsx
30093
- import classNames78 from "classnames";
30101
+ import classNames79 from "classnames";
30094
30102
  import { Fragment as Fragment29, jsx as jsx247, jsxs as jsxs150 } from "react/jsx-runtime";
30095
30103
  var ProfitAndLossCompareTable = ({
30096
30104
  stringOverrides
@@ -30105,15 +30113,15 @@ var ProfitAndLossCompareTable = ({
30105
30113
  const { data: bookkeepingPeriods } = useBookkeepingPeriods();
30106
30114
  const rangeDisplayMode = useReportModeWithFallback("ProfitAndLoss" /* ProfitAndLoss */, "monthPicker");
30107
30115
  const { start, end } = useGlobalDateRange({ displayMode: rangeDisplayMode });
30108
- const dateRange = useMemo57(() => ({ startDate: start, endDate: end }), [start, end]);
30109
- useEffect28(() => {
30116
+ const dateRange = useMemo58(() => ({ startDate: start, endDate: end }), [start, end]);
30117
+ useEffect29(() => {
30110
30118
  setIsOpen(["income", "cost_of_goods_sold", "expenses"]);
30111
30119
  }, []);
30112
30120
  if (isLoading || comparisonData === void 0) {
30113
30121
  return /* @__PURE__ */ jsx247(
30114
30122
  "div",
30115
30123
  {
30116
- className: classNames78("Layer__profit-and-loss-table__loader-container"),
30124
+ className: classNames79("Layer__profit-and-loss-table__loader-container"),
30117
30125
  children: /* @__PURE__ */ jsx247(Loader2, {})
30118
30126
  }
30119
30127
  );
@@ -30232,8 +30240,8 @@ var ProfitAndLossCompareTable = ({
30232
30240
  };
30233
30241
 
30234
30242
  // src/components/ProfitAndLossTable/ProfitAndLossTableComponent.tsx
30235
- import { Fragment as Fragment30, useContext as useContext41, useEffect as useEffect29 } from "react";
30236
- import classNames79 from "classnames";
30243
+ import { Fragment as Fragment30, useContext as useContext41, useEffect as useEffect30 } from "react";
30244
+ import classNames80 from "classnames";
30237
30245
  import { jsx as jsx248, jsxs as jsxs151 } from "react/jsx-runtime";
30238
30246
  var ProfitAndLossTableComponent = ({
30239
30247
  asContainer,
@@ -30242,14 +30250,14 @@ var ProfitAndLossTableComponent = ({
30242
30250
  }) => {
30243
30251
  const { data, isLoading } = useContext41(ProfitAndLoss2.Context);
30244
30252
  const { isOpen, setIsOpen } = useTableExpandRow();
30245
- useEffect29(() => {
30253
+ useEffect30(() => {
30246
30254
  setIsOpen(["income", "cost_of_goods_sold", "expenses", "other_activity"]);
30247
30255
  }, []);
30248
30256
  if (isLoading || !data) {
30249
30257
  return /* @__PURE__ */ jsx248(
30250
30258
  "div",
30251
30259
  {
30252
- className: classNames79(
30260
+ className: classNames80(
30253
30261
  "Layer__profit-and-loss-table__loader-container",
30254
30262
  asContainer && "Layer__component-container"
30255
30263
  ),
@@ -30595,7 +30603,7 @@ var BalanceSheetExpandAllButton = ({
30595
30603
  };
30596
30604
 
30597
30605
  // src/components/BalanceSheetTable/BalanceSheetTable.tsx
30598
- import { Fragment as Fragment31, useEffect as useEffect30 } from "react";
30606
+ import { Fragment as Fragment31, useEffect as useEffect31 } from "react";
30599
30607
  import { jsx as jsx253, jsxs as jsxs152 } from "react/jsx-runtime";
30600
30608
  var BalanceSheetTable = ({
30601
30609
  data,
@@ -30604,12 +30612,12 @@ var BalanceSheetTable = ({
30604
30612
  }) => {
30605
30613
  const { isOpen, setIsOpen, expandedAllRows } = useTableExpandRow();
30606
30614
  const allRowKeys = [];
30607
- useEffect30(() => {
30615
+ useEffect31(() => {
30608
30616
  if (expandedAllRows) {
30609
30617
  setIsOpen(allRowKeys, true);
30610
30618
  }
30611
30619
  }, [expandedAllRows]);
30612
- useEffect30(() => {
30620
+ useEffect31(() => {
30613
30621
  setIsOpen(["assets"]);
30614
30622
  }, []);
30615
30623
  const renderLineItem = (lineItem, depth = 0, rowKey, rowIndex) => {
@@ -31247,7 +31255,7 @@ var ChartOfAccountsContext = createContext23(
31247
31255
  );
31248
31256
 
31249
31257
  // src/hooks/useChartOfAccounts/useChartOfAccounts.tsx
31250
- import { useEffect as useEffect31, useState as useState63 } from "react";
31258
+ import { useEffect as useEffect32, useState as useState63 } from "react";
31251
31259
 
31252
31260
  // src/components/ChartOfAccountsForm/constants.ts
31253
31261
  var LEDGER_ACCOUNT_TYPES = [
@@ -31910,12 +31918,12 @@ var useChartOfAccounts = ({ withDates, startDate: initialStartDate, endDate: ini
31910
31918
  }
31911
31919
  };
31912
31920
  const refetch = () => mutate();
31913
- useEffect31(() => {
31921
+ useEffect32(() => {
31914
31922
  if (queryKey && (isLoading || isValidating)) {
31915
31923
  read("CHART_OF_ACCOUNTS" /* CHART_OF_ACCOUNTS */, queryKey);
31916
31924
  }
31917
31925
  }, [isLoading, isValidating]);
31918
- useEffect31(() => {
31926
+ useEffect32(() => {
31919
31927
  if (queryKey && hasBeenTouched(queryKey)) {
31920
31928
  void refetch();
31921
31929
  }
@@ -31947,13 +31955,13 @@ import { useSWRConfig as useSWRConfig6 } from "swr";
31947
31955
  import { useCallback as useCallback52 } from "react";
31948
31956
 
31949
31957
  // src/hooks/useLedgerAccounts/useLedgerAccounts.tsx
31950
- import { useEffect as useEffect32, useState as useState64, useMemo as useMemo59, useCallback as useCallback54 } from "react";
31958
+ import { useEffect as useEffect33, useState as useState64, useMemo as useMemo60, useCallback as useCallback54 } from "react";
31951
31959
  import useSWR18 from "swr";
31952
31960
 
31953
31961
  // src/features/ledger/accounts/[ledgerAccountId]/api/useListLedgerAccountLines.ts
31954
31962
  import useSWRInfinite4 from "swr/infinite";
31955
31963
  var import_lodash8 = __toESM(require_lodash2());
31956
- import { useCallback as useCallback53, useMemo as useMemo58 } from "react";
31964
+ import { useCallback as useCallback53, useMemo as useMemo59 } from "react";
31957
31965
  var LIST_LEDGER_ACCOUNT_LINES_TAG_KEY = "#list-ledger-account-lines";
31958
31966
  var listLedgerAccountLines = get(({
31959
31967
  businessId,
@@ -32111,11 +32119,11 @@ var useLedgerAccounts = (showReversalEntries = false) => {
32111
32119
  limit: 150
32112
32120
  });
32113
32121
  const shouldFetch = Boolean(selectedAccountId);
32114
- const data = useMemo59(() => {
32122
+ const data = useMemo60(() => {
32115
32123
  if (!paginatedData || !shouldFetch) return void 0;
32116
32124
  return paginatedData.flatMap((page) => page.data);
32117
32125
  }, [paginatedData, shouldFetch, showReversalEntries]);
32118
- const hasMore = useMemo59(() => {
32126
+ const hasMore = useMemo60(() => {
32119
32127
  var _a, _b;
32120
32128
  if (!shouldFetch || !paginatedData || paginatedData.length === 0) return false;
32121
32129
  const lastPage = paginatedData[paginatedData.length - 1];
@@ -32145,15 +32153,15 @@ var useLedgerAccounts = (showReversalEntries = false) => {
32145
32153
  setSelectedEntryId(void 0);
32146
32154
  void mutateEntryData();
32147
32155
  };
32148
- const queryKey = useMemo59(() => {
32156
+ const queryKey = useMemo60(() => {
32149
32157
  return businessId && selectedAccountId && (auth == null ? void 0 : auth.access_token) && `ledger-accounts-lines-${businessId}-${selectedAccountId}`;
32150
32158
  }, [businessId, selectedAccountId, auth == null ? void 0 : auth.access_token]);
32151
- useEffect32(() => {
32159
+ useEffect33(() => {
32152
32160
  if (queryKey && shouldFetch && (paginationIsLoading || paginationIsValidating)) {
32153
32161
  read("LEDGER_ACCOUNTS" /* LEDGER_ACCOUNTS */, queryKey);
32154
32162
  }
32155
32163
  }, [paginationIsLoading, paginationIsValidating, shouldFetch]);
32156
- useEffect32(() => {
32164
+ useEffect33(() => {
32157
32165
  if (queryKey && shouldFetch && hasBeenTouched(queryKey)) {
32158
32166
  void refetch();
32159
32167
  }
@@ -32243,13 +32251,13 @@ var ChartOfAccountsDatePicker = () => {
32243
32251
  };
32244
32252
 
32245
32253
  // src/components/ChartOfAccountsForm/ChartOfAccountsForm.tsx
32246
- import { useContext as useContext44, useMemo as useMemo61 } from "react";
32254
+ import { useContext as useContext44, useMemo as useMemo62 } from "react";
32247
32255
 
32248
32256
  // src/components/ChartOfAccountsForm/useParentOptions.ts
32249
- import { useMemo as useMemo60 } from "react";
32257
+ import { useMemo as useMemo61 } from "react";
32250
32258
  var useParentOptions = (data) => {
32251
32259
  var _a;
32252
- return useMemo60(
32260
+ return useMemo61(
32253
32261
  () => flattenAccounts((data == null ? void 0 : data.accounts) || []).sort((a, b) => (a == null ? void 0 : a.name) && (b == null ? void 0 : b.name) ? a.name.localeCompare(b.name) : 0).map((x) => {
32254
32262
  return {
32255
32263
  label: x.name,
@@ -32276,7 +32284,7 @@ var ChartOfAccountsForm = ({
32276
32284
  apiError
32277
32285
  } = useContext44(ChartOfAccountsContext);
32278
32286
  const parentOptions = useParentOptions(data);
32279
- const entry = useMemo61(() => {
32287
+ const entry = useMemo62(() => {
32280
32288
  if ((form == null ? void 0 : form.action) === "edit" && form.accountId) {
32281
32289
  return flattenAccounts((data == null ? void 0 : data.accounts) || []).find(
32282
32290
  (x) => x.id === form.accountId
@@ -32489,7 +32497,7 @@ var ChartOfAccountsSidebar = ({
32489
32497
  };
32490
32498
 
32491
32499
  // src/components/ChartOfAccountsTable/ChartOfAccountsTable.tsx
32492
- import { Fragment as Fragment35, useContext as useContext45, useEffect as useEffect33, useMemo as useMemo62, useState as useState65 } from "react";
32500
+ import { Fragment as Fragment35, useContext as useContext45, useEffect as useEffect34, useMemo as useMemo63, useState as useState65 } from "react";
32493
32501
 
32494
32502
  // src/icons/Edit2.tsx
32495
32503
  import { jsx as jsx264 } from "react/jsx-runtime";
@@ -32713,8 +32721,8 @@ var ChartOfAccountsTableContent = ({
32713
32721
  const { editAccount, deleteAccount } = useContext45(ChartOfAccountsContext);
32714
32722
  const [toggledKeys, setToggledKeys] = useState65({});
32715
32723
  const [accountToDelete, setAccountToDelete] = useState65(null);
32716
- const sortedAccounts = useMemo62(() => sortAccountsRecursive(data.accounts), [data.accounts]);
32717
- const allRowKeys = useMemo62(() => {
32724
+ const sortedAccounts = useMemo63(() => sortAccountsRecursive(data.accounts), [data.accounts]);
32725
+ const allRowKeys = useMemo63(() => {
32718
32726
  const keys = [];
32719
32727
  const collect = (accounts) => {
32720
32728
  for (const account of accounts) {
@@ -32728,7 +32736,7 @@ var ChartOfAccountsTableContent = ({
32728
32736
  collect(data.accounts);
32729
32737
  return keys;
32730
32738
  }, [data.accounts]);
32731
- useEffect33(() => {
32739
+ useEffect34(() => {
32732
32740
  if (expandAll === void 0) return;
32733
32741
  setToggledKeys(
32734
32742
  Object.fromEntries(
@@ -32752,10 +32760,10 @@ var ChartOfAccountsTableContent = ({
32752
32760
  }
32753
32761
  return "This account cannot be deleted because it is a required account";
32754
32762
  };
32755
- useEffect33(() => {
32763
+ useEffect34(() => {
32756
32764
  setToggledKeys({});
32757
32765
  }, [searchQuery]);
32758
- const filteredAccounts = useMemo62(() => {
32766
+ const filteredAccounts = useMemo63(() => {
32759
32767
  if (!searchQuery) return sortedAccounts;
32760
32768
  return filterAccounts(sortedAccounts, searchQuery.toLowerCase());
32761
32769
  }, [searchQuery, sortedAccounts]);
@@ -33129,13 +33137,13 @@ var ChartOfAccountsTableWithPanel = ({
33129
33137
  // src/components/LedgerAccount/LedgerAccountIndex.tsx
33130
33138
  import {
33131
33139
  useContext as useContext48,
33132
- useMemo as useMemo64,
33140
+ useMemo as useMemo65,
33133
33141
  useState as useState67
33134
33142
  } from "react";
33135
33143
 
33136
33144
  // src/components/LedgerAccount/LedgerAccountRow.tsx
33137
- import { useContext as useContext47, useMemo as useMemo63 } from "react";
33138
- import classNames80 from "classnames";
33145
+ import { useContext as useContext47, useMemo as useMemo64 } from "react";
33146
+ import classNames81 from "classnames";
33139
33147
  import { parseISO as parseISO14, format as formatTime11 } from "date-fns";
33140
33148
  import { jsx as jsx268, jsxs as jsxs163 } from "react/jsx-runtime";
33141
33149
  var LedgerAccountRow = ({
@@ -33146,14 +33154,14 @@ var LedgerAccountRow = ({
33146
33154
  }) => {
33147
33155
  var _a, _b, _c, _d, _e, _f, _g, _h, _i;
33148
33156
  const { selectedEntryId, setSelectedEntryId, closeSelectedEntry } = useContext47(LedgerAccountsContext);
33149
- const ledgerEntrySource = useMemo63(() => {
33157
+ const ledgerEntrySource = useMemo64(() => {
33150
33158
  return row.source ? decodeLedgerEntrySource(row.source) : void 0;
33151
33159
  }, [row.source]);
33152
33160
  if (view === "tablet") {
33153
33161
  return /* @__PURE__ */ jsxs163(
33154
33162
  "tr",
33155
33163
  {
33156
- className: classNames80(
33164
+ className: classNames81(
33157
33165
  "Layer__table-row",
33158
33166
  row.entry_id === selectedEntryId && "Layer__table-row--active"
33159
33167
  ),
@@ -33192,7 +33200,7 @@ var LedgerAccountRow = ({
33192
33200
  return /* @__PURE__ */ jsx268(
33193
33201
  "tr",
33194
33202
  {
33195
- className: classNames80(
33203
+ className: classNames81(
33196
33204
  "Layer__table-row",
33197
33205
  row.entry_id === selectedEntryId && "Layer__table-row--active"
33198
33206
  ),
@@ -33242,7 +33250,7 @@ var LedgerAccountRow = ({
33242
33250
  return /* @__PURE__ */ jsxs163(
33243
33251
  "tr",
33244
33252
  {
33245
- className: classNames80(
33253
+ className: classNames81(
33246
33254
  "Layer__table-row",
33247
33255
  row.entry_id === selectedEntryId && "Layer__table-row--active"
33248
33256
  ),
@@ -33268,7 +33276,7 @@ var LedgerAccountRow = ({
33268
33276
  };
33269
33277
 
33270
33278
  // src/components/LedgerAccount/LedgerAccountIndex.tsx
33271
- import classNames81 from "classnames";
33279
+ import classNames82 from "classnames";
33272
33280
  import { Fragment as Fragment38, jsx as jsx269, jsxs as jsxs164 } from "react/jsx-runtime";
33273
33281
  var LedgerAccount = ({
33274
33282
  containerRef,
@@ -33291,12 +33299,12 @@ var LedgerAccount = ({
33291
33299
  hasMore,
33292
33300
  fetchMore
33293
33301
  } = useContext48(LedgerAccountsContext);
33294
- const baseClassName = classNames81(
33302
+ const baseClassName = classNames82(
33295
33303
  "Layer__ledger-account__index",
33296
33304
  selectedAccount && "open"
33297
33305
  );
33298
33306
  const nodeType = selectedAccount == null ? void 0 : selectedAccount.nodeType;
33299
- const data = useMemo64(() => {
33307
+ const data = useMemo65(() => {
33300
33308
  var _a2;
33301
33309
  if (!rawData) return void 0;
33302
33310
  const firstPageIndex = (currentPage - 1) * pageSize;
@@ -33502,12 +33510,12 @@ var JournalContext = createContext24({
33502
33510
  });
33503
33511
 
33504
33512
  // src/hooks/useJournal/useJournal.tsx
33505
- import { useState as useState68, useMemo as useMemo66, useCallback as useCallback56 } from "react";
33513
+ import { useState as useState68, useMemo as useMemo67, useCallback as useCallback56 } from "react";
33506
33514
 
33507
33515
  // src/features/ledger/entries/api/useListLedgerEntries.ts
33508
33516
  import useSWRInfinite5 from "swr/infinite";
33509
33517
  var import_lodash9 = __toESM(require_lodash2());
33510
- import { useCallback as useCallback55, useMemo as useMemo65 } from "react";
33518
+ import { useCallback as useCallback55, useMemo as useMemo66 } from "react";
33511
33519
  var LIST_LEDGER_ENTRIES_TAG_KEY = "#list-ledger-entries";
33512
33520
  var listLedgerEntries = get(({ businessId, sort_by, sort_order, cursor, limit, show_total_count }) => {
33513
33521
  const parameters = toDefinedSearchParameters({
@@ -33621,11 +33629,11 @@ var useJournal = () => {
33621
33629
  sort_order: "DESC",
33622
33630
  limit: 150
33623
33631
  });
33624
- const data = useMemo66(() => {
33632
+ const data = useMemo67(() => {
33625
33633
  if (!paginatedData) return void 0;
33626
33634
  return paginatedData.flatMap((page) => page.data);
33627
33635
  }, [paginatedData]);
33628
- const hasMore = useMemo66(() => {
33636
+ const hasMore = useMemo67(() => {
33629
33637
  var _a, _b;
33630
33638
  if (paginatedData && paginatedData.length > 0) {
33631
33639
  const lastPage = paginatedData[paginatedData.length - 1];
@@ -33882,13 +33890,13 @@ var useJournal = () => {
33882
33890
  };
33883
33891
 
33884
33892
  // src/components/JournalTable/JournalTableWithPanel.tsx
33885
- import { useContext as useContext55, useMemo as useMemo69, useState as useState70 } from "react";
33893
+ import { useContext as useContext55, useMemo as useMemo70, useState as useState70 } from "react";
33886
33894
 
33887
33895
  // src/components/JournalSidebar/JournalSidebar.tsx
33888
33896
  import { useContext as useContext53 } from "react";
33889
33897
 
33890
33898
  // src/components/JournalEntryDetails/JournalEntryDetails.tsx
33891
- import { useContext as useContext50, useMemo as useMemo67, useState as useState69 } from "react";
33899
+ import { useContext as useContext50, useMemo as useMemo68, useState as useState69 } from "react";
33892
33900
  import { jsx as jsx271, jsxs as jsxs165 } from "react/jsx-runtime";
33893
33901
  var JournalEntryDetails = () => {
33894
33902
  var _a, _b;
@@ -33904,16 +33912,16 @@ var JournalEntryDetails = () => {
33904
33912
  const { renderInAppLink } = useInAppLinkContext();
33905
33913
  const [reverseEntryProcessing, setReverseEntryProcessing] = useState69(false);
33906
33914
  const [reverseEntryError, setReverseEntryError] = useState69();
33907
- const entry = useMemo67(() => {
33915
+ const entry = useMemo68(() => {
33908
33916
  if (selectedEntryId && data) {
33909
33917
  return data.find((x) => x.id === selectedEntryId);
33910
33918
  }
33911
33919
  return;
33912
33920
  }, [data, selectedEntryId]);
33913
- const ledgerEntrySource = useMemo67(() => {
33921
+ const ledgerEntrySource = useMemo68(() => {
33914
33922
  return (entry == null ? void 0 : entry.source) ? decodeLedgerEntrySource(entry.source) : void 0;
33915
33923
  }, [entry == null ? void 0 : entry.source]);
33916
- const badgeOrInAppLink = useMemo67(() => {
33924
+ const badgeOrInAppLink = useMemo68(() => {
33917
33925
  var _a2, _b2;
33918
33926
  const badgeContent = (_a2 = ledgerEntrySource == null ? void 0 : ledgerEntrySource.entityName) != null ? _a2 : entry == null ? void 0 : entry.entry_type;
33919
33927
  const defaultBadge = /* @__PURE__ */ jsx271(Badge, { children: badgeContent });
@@ -33923,7 +33931,7 @@ var JournalEntryDetails = () => {
33923
33931
  const linkingMetadata = convertLedgerEntrySourceToLinkingMetadata(ledgerEntrySource);
33924
33932
  return (_b2 = renderInAppLink(linkingMetadata)) != null ? _b2 : defaultBadge;
33925
33933
  }, [renderInAppLink, entry == null ? void 0 : entry.entry_type, ledgerEntrySource]);
33926
- const sortedLineItems = useMemo67(
33934
+ const sortedLineItems = useMemo68(
33927
33935
  () => {
33928
33936
  var _a2;
33929
33937
  return (_a2 = entry == null ? void 0 : entry.line_items) == null ? void 0 : _a2.sort(
@@ -34107,7 +34115,7 @@ var JournalEntryDetails = () => {
34107
34115
  import { useContext as useContext52 } from "react";
34108
34116
 
34109
34117
  // src/components/JournalForm/JournalFormEntryLines.tsx
34110
- import { useContext as useContext51, useMemo as useMemo68 } from "react";
34118
+ import { useContext as useContext51, useMemo as useMemo69 } from "react";
34111
34119
  import { Fragment as Fragment39, jsx as jsx272, jsxs as jsxs166 } from "react/jsx-runtime";
34112
34120
  function recursiveFlattenCategories(accounts) {
34113
34121
  const flattenedResult = accounts.flatMap((a) => {
@@ -34129,7 +34137,7 @@ var JournalFormEntryLines = ({
34129
34137
  }) => {
34130
34138
  const { data: categories } = useCategories({ mode: "ALL" });
34131
34139
  const { form } = useContext51(JournalContext);
34132
- const { flattenedCategories, parentOptions } = useMemo68(() => {
34140
+ const { flattenedCategories, parentOptions } = useMemo69(() => {
34133
34141
  const flattenedCategories2 = recursiveFlattenCategories(categories != null ? categories : []);
34134
34142
  const parentOptions2 = [...flattenedCategories2].sort((a, b) => a.display_name.localeCompare(b.display_name)).map((account) => {
34135
34143
  switch (account.type) {
@@ -34723,7 +34731,7 @@ var JournalTableWithPanel = ({
34723
34731
  hasMore,
34724
34732
  fetchMore
34725
34733
  } = useContext55(JournalContext);
34726
- const data = useMemo69(
34734
+ const data = useMemo70(
34727
34735
  () => {
34728
34736
  if (!rawData) return void 0;
34729
34737
  const firstPageIndex = (currentPage - 1) * pageSize;
@@ -34869,7 +34877,7 @@ var TasksHeader = ({
34869
34877
  };
34870
34878
 
34871
34879
  // src/components/Tasks/TasksList.tsx
34872
- import { useCallback as useCallback63, useEffect as useEffect35, useMemo as useMemo72, useRef as useRef28 } from "react";
34880
+ import { useCallback as useCallback63, useEffect as useEffect36, useMemo as useMemo73, useRef as useRef28 } from "react";
34873
34881
 
34874
34882
  // src/icons/SmileIcon.tsx
34875
34883
  import { jsx as jsx280, jsxs as jsxs171 } from "react/jsx-runtime";
@@ -34928,8 +34936,8 @@ var SmileIcon = (_a) => {
34928
34936
  var SmileIcon_default = SmileIcon;
34929
34937
 
34930
34938
  // src/components/Tasks/TasksListItem.tsx
34931
- import { forwardRef as forwardRef26, useCallback as useCallback61, useEffect as useEffect34, useMemo as useMemo70, useState as useState71 } from "react";
34932
- import classNames82 from "classnames";
34939
+ import { forwardRef as forwardRef26, useCallback as useCallback61, useEffect as useEffect35, useMemo as useMemo71, useState as useState71 } from "react";
34940
+ import classNames83 from "classnames";
34933
34941
 
34934
34942
  // src/utils/bookkeeping/tasks/getBookkeepingTaskStatusIcon.tsx
34935
34943
  import { jsx as jsx281 } from "react/jsx-runtime";
@@ -35260,20 +35268,20 @@ var TasksListItem = forwardRef26(({ task, defaultOpen, onExpandTask }, ref) => {
35260
35268
  const { trigger: handleUploadDocumentsForTask } = useUploadDocumentsForTask();
35261
35269
  const { trigger: handleDeleteUploadsOnTask } = useDeleteUploadsOnTask();
35262
35270
  const { trigger: handleUpdateTaskUploadDescription } = useUpdateTaskUploadDescription();
35263
- const taskBodyClassName = classNames82(
35271
+ const taskBodyClassName = classNames83(
35264
35272
  "Layer__tasks-list-item__body",
35265
35273
  isOpen && "Layer__tasks-list-item__body--expanded",
35266
35274
  isCompletedTask(task) && "Layer__tasks-list-item--completed"
35267
35275
  );
35268
- const taskHeadClassName = classNames82(
35276
+ const taskHeadClassName = classNames83(
35269
35277
  "Layer__tasks-list-item__head-info",
35270
35278
  isCompletedTask(task) ? "Layer__tasks-list-item--completed" : "Layer__tasks-list-item--pending"
35271
35279
  );
35272
- const taskItemClassName = classNames82(
35280
+ const taskItemClassName = classNames83(
35273
35281
  "Layer__tasks-list-item",
35274
35282
  isOpen && "Layer__tasks-list-item__expanded"
35275
35283
  );
35276
- useEffect34(() => {
35284
+ useEffect35(() => {
35277
35285
  setIsOpen(defaultOpen);
35278
35286
  }, [defaultOpen]);
35279
35287
  const submit = () => __async(null, null, function* () {
@@ -35292,7 +35300,7 @@ var TasksListItem = forwardRef26(({ task, defaultOpen, onExpandTask }, ref) => {
35292
35300
  setIsOpen(!isOpen);
35293
35301
  onExpandTask == null ? void 0 : onExpandTask(!isOpen);
35294
35302
  }, [isOpen, onExpandTask]);
35295
- const uploadDocumentAction = useMemo70(() => {
35303
+ const uploadDocumentAction = useMemo71(() => {
35296
35304
  if (task.user_response_type === "UPLOAD_DOCUMENT") {
35297
35305
  if (task.status === "TODO") {
35298
35306
  if (!selectedFiles) {
@@ -35420,13 +35428,13 @@ var TasksListItem = forwardRef26(({ task, defaultOpen, onExpandTask }, ref) => {
35420
35428
  TasksListItem.displayName = "TasksListItem";
35421
35429
 
35422
35430
  // src/components/MobilePanel/MobilePanel.tsx
35423
- import classNames83 from "classnames";
35431
+ import classNames84 from "classnames";
35424
35432
  import { createPortal } from "react-dom";
35425
35433
  import { jsx as jsx283, jsxs as jsxs173 } from "react/jsx-runtime";
35426
35434
  var MobilePanel = ({ header, children, open, onClose, className }) => {
35427
35435
  const dataProperties = toDataProperties({ open });
35428
35436
  return createPortal(
35429
- /* @__PURE__ */ jsxs173("div", __spreadProps(__spreadValues({ className: classNames83("Layer__Portal Layer__mobile-panel", className) }, dataProperties), { children: [
35437
+ /* @__PURE__ */ jsxs173("div", __spreadProps(__spreadValues({ className: classNames84("Layer__Portal Layer__mobile-panel", className) }, dataProperties), { children: [
35430
35438
  /* @__PURE__ */ jsxs173("div", { className: "Layer__mobile-panel__header", children: [
35431
35439
  /* @__PURE__ */ jsx283(BackButton, { onClick: onClose }),
35432
35440
  header && /* @__PURE__ */ jsx283("div", { className: "Layer__mobile-panel__header__content", children: header })
@@ -35497,12 +35505,12 @@ var TasksListMobile = ({
35497
35505
  };
35498
35506
 
35499
35507
  // src/hooks/array/usePaginatedList.ts
35500
- import { useCallback as useCallback62, useMemo as useMemo71, useState as useState73 } from "react";
35508
+ import { useCallback as useCallback62, useMemo as useMemo72, useState as useState73 } from "react";
35501
35509
  function usePaginatedList(list, pageSize) {
35502
35510
  const [internalPageIndex, setInternalPageIndex] = useState73(0);
35503
35511
  const pageCount = Math.max(0, Math.ceil(list.length / pageSize));
35504
35512
  const effectivePageIndex = Math.max(0, Math.min(internalPageIndex, pageCount - 1));
35505
- const pageItems = useMemo71(() => {
35513
+ const pageItems = useMemo72(() => {
35506
35514
  return list.slice(
35507
35515
  effectivePageIndex * pageSize,
35508
35516
  (effectivePageIndex + 1) * pageSize
@@ -35565,12 +35573,12 @@ var TasksList = ({ pageSize = 8, mobile }) => {
35565
35573
  };
35566
35574
  requestAnimationFrameRef.current = requestAnimationFrame(scrollNow);
35567
35575
  }, []);
35568
- useEffect35(() => {
35576
+ useEffect36(() => {
35569
35577
  return () => {
35570
35578
  if (requestAnimationFrameRef.current !== null) cancelAnimationFrame(requestAnimationFrameRef.current);
35571
35579
  };
35572
35580
  }, []);
35573
- const sortedTasks = useMemo72(() => {
35581
+ const sortedTasks = useMemo73(() => {
35574
35582
  var _a;
35575
35583
  const tasksInPeriod = (_a = activePeriod == null ? void 0 : activePeriod.tasks) != null ? _a : [];
35576
35584
  return tasksInPeriod.sort((taskA, taskB) => {
@@ -35627,7 +35635,7 @@ var TasksList = ({ pageSize = 8, mobile }) => {
35627
35635
  // src/components/Tasks/TasksPending.tsx
35628
35636
  import { Cell as Cell5, Pie as Pie3, PieChart as PieChart3 } from "recharts";
35629
35637
  import { format as format7 } from "date-fns";
35630
- import classNames84 from "classnames";
35638
+ import classNames85 from "classnames";
35631
35639
 
35632
35640
  // src/components/BookkeepingStatus/BookkeepingStatusDescription.tsx
35633
35641
  import { jsx as jsx286 } from "react/jsx-runtime";
@@ -35658,7 +35666,7 @@ var TasksPending = () => {
35658
35666
  value: incompleteTaskCount
35659
35667
  }
35660
35668
  ];
35661
- const taskStatusClassName = classNames84(
35669
+ const taskStatusClassName = classNames85(
35662
35670
  completedTaskCount > 0 ? "Layer__tasks-pending-bar__status--done" : "Layer__tasks-pending-bar__status--pending"
35663
35671
  );
35664
35672
  return /* @__PURE__ */ jsxs176("div", { className: "Layer__tasks-pending", children: [
@@ -35717,7 +35725,7 @@ var TasksPending = () => {
35717
35725
  };
35718
35726
 
35719
35727
  // src/components/Tasks/TasksMonthSelector.tsx
35720
- import { useMemo as useMemo73 } from "react";
35728
+ import { useMemo as useMemo74 } from "react";
35721
35729
  import { format as format8, getMonth as getMonth3, getYear as getYear4, set } from "date-fns";
35722
35730
 
35723
35731
  // src/components/Tasks/TaskStatusBadge.tsx
@@ -35819,7 +35827,7 @@ function useActiveYearBookkeepingPeriods() {
35819
35827
  const { date } = useGlobalDate();
35820
35828
  const { data } = useBookkeepingPeriods();
35821
35829
  const activeYear = getYear4(date);
35822
- const periodsInActiveYear = useMemo73(() => {
35830
+ const periodsInActiveYear = useMemo74(() => {
35823
35831
  return data == null ? void 0 : data.filter((period) => period.year === activeYear);
35824
35832
  }, [data, activeYear]);
35825
35833
  return { periodsInActiveYear };
@@ -35830,7 +35838,7 @@ function TasksMonthSelector() {
35830
35838
  const { periodsInActiveYear } = useActiveYearBookkeepingPeriods();
35831
35839
  const activeMonthNumber = getMonth3(date) + 1;
35832
35840
  const activeYear = getYear4(date);
35833
- const monthsData = useMemo73(() => {
35841
+ const monthsData = useMemo74(() => {
35834
35842
  return Array.from({ length: 12 }, (_, index) => {
35835
35843
  var _a, _b;
35836
35844
  const date2 = set(
@@ -35877,13 +35885,13 @@ function TasksMonthSelector() {
35877
35885
  import pluralize4 from "pluralize";
35878
35886
 
35879
35887
  // src/hooks/bookkeeping/periods/useBookkeepingYearsStatus.ts
35880
- import { useMemo as useMemo74 } from "react";
35888
+ import { useMemo as useMemo75 } from "react";
35881
35889
  import { getYear as getYear5 } from "date-fns";
35882
35890
  var useBookkeepingYearsStatus = () => {
35883
35891
  const { business } = useLayerContext();
35884
35892
  const activationDate = getActivationDate(business);
35885
35893
  const { data, isLoading } = useBookkeepingPeriods();
35886
- const yearStatuses = useMemo74(() => {
35894
+ const yearStatuses = useMemo75(() => {
35887
35895
  const startYear = getYear5(activationDate != null ? activationDate : /* @__PURE__ */ new Date());
35888
35896
  const currentYear = (/* @__PURE__ */ new Date()).getFullYear();
35889
35897
  const count = currentYear - startYear + 1;
@@ -35898,7 +35906,7 @@ var useBookkeepingYearsStatus = () => {
35898
35906
  };
35899
35907
  }).filter(({ year }) => data == null ? void 0 : data.some((period) => period.year === year)).sort((a, b) => b.year - a.year);
35900
35908
  }, [activationDate, data]);
35901
- const earliestIncompletePeriod = useMemo74(
35909
+ const earliestIncompletePeriod = useMemo75(
35902
35910
  () => [...data != null ? data : []].sort((a, b) => {
35903
35911
  if (a.year === b.year) {
35904
35912
  return b.month - a.month;
@@ -36041,10 +36049,10 @@ var TasksPanelNotification = ({
36041
36049
  };
36042
36050
 
36043
36051
  // src/components/Tasks/TasksYearsTabs.tsx
36044
- import { useMemo as useMemo75 } from "react";
36052
+ import { useMemo as useMemo76 } from "react";
36045
36053
 
36046
36054
  // src/components/Tabs/Tabs.tsx
36047
- import { useEffect as useEffect36, useState as useState74 } from "react";
36055
+ import { useEffect as useEffect37, useState as useState74 } from "react";
36048
36056
 
36049
36057
  // src/components/Tabs/Tab.tsx
36050
36058
  import { jsx as jsx293, jsxs as jsxs181 } from "react/jsx-runtime";
@@ -36106,7 +36114,7 @@ var Tab = ({
36106
36114
  };
36107
36115
 
36108
36116
  // src/components/Tabs/Tabs.tsx
36109
- import classNames85 from "classnames";
36117
+ import classNames86 from "classnames";
36110
36118
  import { jsx as jsx294, jsxs as jsxs182 } from "react/jsx-runtime";
36111
36119
  import { createElement as createElement2 } from "react";
36112
36120
  var STARTING_PADDING = 12;
@@ -36115,7 +36123,7 @@ var Tabs = ({ name, options: options3, selected, onChange }) => {
36115
36123
  const [thumbPos, setThumbPos] = useState74({ left: 0, width: 0 });
36116
36124
  const [currentWidth, setCurrentWidth] = useState74(0);
36117
36125
  const selectedValue = selected || options3[0].value;
36118
- const baseClassName = classNames85(
36126
+ const baseClassName = classNames86(
36119
36127
  "Layer__tabs",
36120
36128
  initialized && "Layer__tabs--initialized"
36121
36129
  );
@@ -36148,14 +36156,14 @@ var Tabs = ({ name, options: options3, selected, onChange }) => {
36148
36156
  shift2 = shift2 + STARTING_PADDING;
36149
36157
  setThumbPos({ left: shift2, width });
36150
36158
  };
36151
- useEffect36(() => {
36159
+ useEffect37(() => {
36152
36160
  const selectedIndex = getSelectedIndex();
36153
36161
  updateSelectPosition(selectedIndex);
36154
36162
  setTimeout(() => {
36155
36163
  setInitialized(true);
36156
36164
  }, 400);
36157
36165
  }, []);
36158
- useEffect36(() => {
36166
+ useEffect37(() => {
36159
36167
  const selectedIndex = getSelectedIndex();
36160
36168
  updateSelectPosition(selectedIndex);
36161
36169
  }, [selectedValue, currentWidth]);
@@ -36203,7 +36211,7 @@ var TasksYearsTabs = () => {
36203
36211
  yearNumber: Number(year)
36204
36212
  });
36205
36213
  };
36206
- const yearsList = useMemo75(() => {
36214
+ const yearsList = useMemo76(() => {
36207
36215
  return yearStatuses == null ? void 0 : yearStatuses.sort((a, b) => a.year - b.year).map((y) => {
36208
36216
  return {
36209
36217
  value: `${y.year}`,
@@ -37706,10 +37714,10 @@ function BookkeepingProfitAndLossSummariesContainer({
37706
37714
  }
37707
37715
 
37708
37716
  // src/views/BookkeepingOverview/BookkeepingOverview.tsx
37709
- import classNames86 from "classnames";
37717
+ import classNames87 from "classnames";
37710
37718
 
37711
37719
  // src/views/BookkeepingOverview/useKeepInMobileViewport.tsx
37712
- import { useEffect as useEffect37, useRef as useRef29 } from "react";
37720
+ import { useEffect as useEffect38, useRef as useRef29 } from "react";
37713
37721
  var TASKS_MOBILE_VIEWPORT_WIDTH = 1100;
37714
37722
  var useKeepInMobileViewport = () => {
37715
37723
  const upperContentRef = useRef29(null);
@@ -37717,7 +37725,7 @@ var useKeepInMobileViewport = () => {
37717
37725
  const lastKnownSizeRef = useRef29(null);
37718
37726
  const lastKnownTargetPositionRef = useRef29(null);
37719
37727
  const upperElementInFocus = useRef29(false);
37720
- useEffect37(() => {
37728
+ useEffect38(() => {
37721
37729
  if (!upperContentRef.current || !targetElementRef.current) return;
37722
37730
  lastKnownSizeRef.current = upperContentRef.current.getBoundingClientRect().height;
37723
37731
  lastKnownTargetPositionRef.current = targetElementRef.current.getBoundingClientRect().top;
@@ -37866,7 +37874,7 @@ var BookkeepingOverview = ({
37866
37874
  /* @__PURE__ */ jsx317(
37867
37875
  Container,
37868
37876
  {
37869
- name: classNames86(
37877
+ name: classNames87(
37870
37878
  "bookkeeping-overview-profit-and-loss-chart",
37871
37879
  pnlToggle !== "revenue" && "bookkeeping-overview-profit-and-loss-chart--hidden"
37872
37880
  ),
@@ -37883,7 +37891,7 @@ var BookkeepingOverview = ({
37883
37891
  /* @__PURE__ */ jsx317(
37884
37892
  Container,
37885
37893
  {
37886
- name: classNames86(
37894
+ name: classNames87(
37887
37895
  "bookkeeping-overview-profit-and-loss-chart",
37888
37896
  pnlToggle !== "expenses" && "bookkeeping-overview-profit-and-loss-chart--hidden"
37889
37897
  ),
@@ -37905,7 +37913,7 @@ var BookkeepingOverview = ({
37905
37913
 
37906
37914
  // src/views/AccountingOverview/AccountingOverview.tsx
37907
37915
  import { useState as useState78 } from "react";
37908
- import classNames87 from "classnames";
37916
+ import classNames88 from "classnames";
37909
37917
  import { jsx as jsx318, jsxs as jsxs199 } from "react/jsx-runtime";
37910
37918
  var AccountingOverview = ({
37911
37919
  title = "Accounting overview",
@@ -37994,7 +38002,7 @@ var AccountingOverview = ({
37994
38002
  /* @__PURE__ */ jsx318(
37995
38003
  Container,
37996
38004
  {
37997
- name: classNames87(
38005
+ name: classNames88(
37998
38006
  "accounting-overview-profit-and-loss-chart",
37999
38007
  pnlToggle !== "revenue" && "accounting-overview-profit-and-loss-chart--hidden"
38000
38008
  ),
@@ -38012,7 +38020,7 @@ var AccountingOverview = ({
38012
38020
  /* @__PURE__ */ jsx318(
38013
38021
  Container,
38014
38022
  {
38015
- name: classNames87(
38023
+ name: classNames88(
38016
38024
  "accounting-overview-profit-and-loss-chart",
38017
38025
  pnlToggle !== "expenses" && "accounting-overview-profit-and-loss-chart--hidden"
38018
38026
  ),
@@ -38267,7 +38275,7 @@ var ProjectProfitabilityView = ({
38267
38275
  import { createContext as createContext25, useContext as useContext59 } from "react";
38268
38276
 
38269
38277
  // src/hooks/useBills.tsx
38270
- import { useMemo as useMemo76, useState as useState81 } from "react";
38278
+ import { useMemo as useMemo77, useState as useState81 } from "react";
38271
38279
  import { endOfMonth as endOfMonth12, startOfMonth as startOfMonth15, sub as sub3 } from "date-fns";
38272
38280
  import useSWRInfinite6 from "swr/infinite";
38273
38281
  var PAGE_SIZE = 20;
@@ -38338,24 +38346,24 @@ var useBills = () => {
38338
38346
  revalidateFirstPage: false
38339
38347
  }
38340
38348
  );
38341
- const data = useMemo76(() => {
38349
+ const data = useMemo77(() => {
38342
38350
  if (rawResponseData && rawResponseData.length > 0) {
38343
38351
  return rawResponseData == null ? void 0 : rawResponseData.map((x) => x == null ? void 0 : x.data).flat().filter((x) => !!x);
38344
38352
  }
38345
38353
  return void 0;
38346
38354
  }, [rawResponseData]);
38347
- const paginatedData = useMemo76(() => {
38355
+ const paginatedData = useMemo77(() => {
38348
38356
  const firstPageIndex = (currentPage - 1) * PAGE_SIZE;
38349
38357
  const lastPageIndex = firstPageIndex + PAGE_SIZE;
38350
38358
  return data == null ? void 0 : data.slice(firstPageIndex, lastPageIndex);
38351
38359
  }, [currentPage, data]);
38352
- const lastMetadata = useMemo76(() => {
38360
+ const lastMetadata = useMemo77(() => {
38353
38361
  if (rawResponseData && rawResponseData.length > 0) {
38354
38362
  return rawResponseData[rawResponseData.length - 1].meta;
38355
38363
  }
38356
38364
  return void 0;
38357
38365
  }, [rawResponseData]);
38358
- const hasMore = useMemo76(() => {
38366
+ const hasMore = useMemo77(() => {
38359
38367
  var _a, _b, _c, _d;
38360
38368
  if (rawResponseData && rawResponseData.length > 0) {
38361
38369
  const lastElement = rawResponseData[rawResponseData.length - 1];
@@ -38400,7 +38408,7 @@ var useBills = () => {
38400
38408
  };
38401
38409
 
38402
38410
  // src/components/Bills/useBillsRecordPayment.ts
38403
- import { useEffect as useEffect38, useMemo as useMemo77, useState as useState82 } from "react";
38411
+ import { useEffect as useEffect39, useMemo as useMemo78, useState as useState82 } from "react";
38404
38412
  import useSWRMutation27 from "swr/mutation";
38405
38413
  function buildKey41({
38406
38414
  access_token: accessToken,
@@ -38443,7 +38451,7 @@ var useBillsRecordPayment = ({ refetchAllBills }) => {
38443
38451
  setVendor(void 0);
38444
38452
  setBulkSelectionActive(false);
38445
38453
  };
38446
- useEffect38(() => {
38454
+ useEffect39(() => {
38447
38455
  if (vendor && billsToPay.length === 0) {
38448
38456
  setVendor(void 0);
38449
38457
  }
@@ -38512,7 +38520,7 @@ var useBillsRecordPayment = ({ refetchAllBills }) => {
38512
38520
  setBillsToPay([{ bill, amount: (_b = convertFromCents((_a = bill.outstanding_balance) != null ? _a : 0)) == null ? void 0 : _b.toString() }]);
38513
38521
  setShowRecordPaymentForm(true);
38514
38522
  };
38515
- const payload = useMemo77(() => {
38523
+ const payload = useMemo78(() => {
38516
38524
  const filteredBillsToPay = billsToPay.filter((item) => {
38517
38525
  var _a;
38518
38526
  return item.amount && ((_a = item.bill) == null ? void 0 : _a.id);
@@ -38844,17 +38852,17 @@ var useBillForm = (bill) => {
38844
38852
  import { formatISO as formatISO4, parseISO as parseISO18 } from "date-fns";
38845
38853
 
38846
38854
  // src/components/Bills/BillsPaymentRecorded.tsx
38847
- import { useMemo as useMemo78 } from "react";
38855
+ import { useMemo as useMemo79 } from "react";
38848
38856
 
38849
38857
  // src/components/Input/StaticValue.tsx
38850
- import classNames88 from "classnames";
38858
+ import classNames89 from "classnames";
38851
38859
  import { jsx as jsx323 } from "react/jsx-runtime";
38852
38860
  var StaticValue = (props) => {
38853
38861
  var _a;
38854
38862
  return /* @__PURE__ */ jsx323(
38855
38863
  Text,
38856
38864
  __spreadValues({
38857
- className: classNames88(
38865
+ className: classNames89(
38858
38866
  "Layer__input--static-value",
38859
38867
  (_a = props.className) != null ? _a : ""
38860
38868
  )
@@ -38890,11 +38898,11 @@ var BillsPaymentRecorded = ({
38890
38898
  vendor,
38891
38899
  payRemainingBalance
38892
38900
  } = useBillsRecordPaymentContext();
38893
- const totalPaid = useMemo78(
38901
+ const totalPaid = useMemo79(
38894
38902
  () => billsToPay.reduce((acc, record) => acc + (record.amount !== void 0 ? Number(record.amount) : 0), 0),
38895
38903
  [billsToPay]
38896
38904
  );
38897
- const anyUnpaid = useMemo78(
38905
+ const anyUnpaid = useMemo79(
38898
38906
  () => billsToPay.some((record) => {
38899
38907
  var _a2;
38900
38908
  return ((_a2 = record.bill) == null ? void 0 : _a2.status) !== "PAID";
@@ -38951,7 +38959,7 @@ var BillsPaymentRecorded = ({
38951
38959
  };
38952
38960
 
38953
38961
  // src/components/Bills/BillsRecordPayment.tsx
38954
- import { useMemo as useMemo79 } from "react";
38962
+ import { useMemo as useMemo80 } from "react";
38955
38963
  import { parseISO as parseISO16, format as formatTime13 } from "date-fns";
38956
38964
 
38957
38965
  // src/components/Bills/useUnpaidBillsByVendor.ts
@@ -39034,7 +39042,7 @@ var BillsRecordPayment = ({
39034
39042
  apiError
39035
39043
  } = useBillsRecordPaymentContext();
39036
39044
  const { data: rawAvailableBills } = useUnpaidBillsByVendor({ vendorId: vendor == null ? void 0 : vendor.id });
39037
- const availableBills = useMemo79(
39045
+ const availableBills = useMemo80(
39038
39046
  () => rawAvailableBills == null ? void 0 : rawAvailableBills.filter((b) => !billsToPay.find((x) => {
39039
39047
  var _a2;
39040
39048
  return ((_a2 = x.bill) == null ? void 0 : _a2.id) === b.id;
@@ -39360,7 +39368,7 @@ var BillSummaryPaid = ({ bill }) => {
39360
39368
  };
39361
39369
 
39362
39370
  // src/components/Bills/BillSummaryUnpaid.tsx
39363
- import { useMemo as useMemo80 } from "react";
39371
+ import { useMemo as useMemo81 } from "react";
39364
39372
  import { differenceInDays as differenceInDays2, parseISO as parseISO17 } from "date-fns";
39365
39373
  import { jsx as jsx330, jsxs as jsxs206 } from "react/jsx-runtime";
39366
39374
  function buildDifference(due_at) {
@@ -39388,7 +39396,7 @@ function buildDifference(due_at) {
39388
39396
  };
39389
39397
  }
39390
39398
  var BillSummaryUnpaid = ({ bill }) => {
39391
- const difference = useMemo80(() => buildDifference(bill.due_at), [bill.due_at]);
39399
+ const difference = useMemo81(() => buildDifference(bill.due_at), [bill.due_at]);
39392
39400
  return /* @__PURE__ */ jsxs206("div", { className: "Layer__bill-details__summary", children: [
39393
39401
  /* @__PURE__ */ jsxs206("div", { children: [
39394
39402
  /* @__PURE__ */ jsx330(
@@ -39780,13 +39788,13 @@ var BillsDetails = ({
39780
39788
  };
39781
39789
 
39782
39790
  // src/components/Bills/BillsTableWithPanel.tsx
39783
- import { useMemo as useMemo82 } from "react";
39791
+ import { useMemo as useMemo83 } from "react";
39784
39792
 
39785
39793
  // src/components/Bills/BillsTable.tsx
39786
39794
  import { Fragment as Fragment54 } from "react";
39787
39795
 
39788
39796
  // src/components/DueStatus/DueStatus.tsx
39789
- import { useMemo as useMemo81 } from "react";
39797
+ import { useMemo as useMemo82 } from "react";
39790
39798
  import { parseISO as parseISO19, differenceInDays as differenceInDays3 } from "date-fns";
39791
39799
  import { jsx as jsx333, jsxs as jsxs208 } from "react/jsx-runtime";
39792
39800
  var dueStatusTitle = (daysDiff, paid) => {
@@ -39851,7 +39859,7 @@ var getDiff = (refDate) => {
39851
39859
  return differenceInDays3(today3, d);
39852
39860
  };
39853
39861
  var DueStatus = ({ dueDate, paidAt, size = "md" }) => {
39854
- const date = useMemo81(() => {
39862
+ const date = useMemo82(() => {
39855
39863
  try {
39856
39864
  const diff = getDiff(paidAt ? paidAt : dueDate);
39857
39865
  if (diff === null) {
@@ -39881,7 +39889,7 @@ var DueStatus = ({ dueDate, paidAt, size = "md" }) => {
39881
39889
  };
39882
39890
 
39883
39891
  // src/components/Bills/BillsTable.tsx
39884
- import classNames89 from "classnames";
39892
+ import classNames90 from "classnames";
39885
39893
 
39886
39894
  // src/components/Bills/BillsTableLoader.tsx
39887
39895
  import { jsx as jsx334 } from "react/jsx-runtime";
@@ -39943,7 +39951,7 @@ var BillsTableContent = ({
39943
39951
  addBill(entry);
39944
39952
  setShowRecordPaymentForm(true);
39945
39953
  };
39946
- const actionsColClassName = classNames89(
39954
+ const actionsColClassName = classNames90(
39947
39955
  "Layer__bills-table__actions-col",
39948
39956
  status === "PAID" ? "Layer__bills-table__actions-col--narrow" : ""
39949
39957
  );
@@ -40013,7 +40021,7 @@ var BillsTableContent = ({
40013
40021
  };
40014
40022
 
40015
40023
  // src/components/Bills/BillsList.tsx
40016
- import classNames90 from "classnames";
40024
+ import classNames91 from "classnames";
40017
40025
  import { Fragment as Fragment55, jsx as jsx336, jsxs as jsxs210 } from "react/jsx-runtime";
40018
40026
  var BillsList = ({
40019
40027
  stringOverrides
@@ -40067,7 +40075,7 @@ var BillsListItem = ({
40067
40075
  }
40068
40076
  removeBill(bill);
40069
40077
  };
40070
- const liClassName = classNames90(
40078
+ const liClassName = classNames91(
40071
40079
  "Layer__bills-list-item",
40072
40080
  showComponent ? "Layer__bills-list-item--show" : ""
40073
40081
  );
@@ -40179,11 +40187,11 @@ var BillsTableWithPanel = ({
40179
40187
  setVendor: setRecordPaymentVendor
40180
40188
  } = useBillsRecordPaymentContext();
40181
40189
  const { isDesktop, isMobile } = useSizeClass();
40182
- const totalCount = useMemo82(() => {
40190
+ const totalCount = useMemo83(() => {
40183
40191
  var _a;
40184
40192
  return (_a = rawData == null ? void 0 : rawData.length) != null ? _a : 0;
40185
40193
  }, [rawData]);
40186
- const anyBillToPaySelected = useMemo82(() => {
40194
+ const anyBillToPaySelected = useMemo83(() => {
40187
40195
  return billsToPay.length > 0;
40188
40196
  }, [billsToPay]);
40189
40197
  return /* @__PURE__ */ jsxs211(
@@ -40572,11 +40580,11 @@ var Components = ({
40572
40580
  };
40573
40581
 
40574
40582
  // src/providers/InvoiceStore/InvoiceStoreProvider.tsx
40575
- import { useState as useState86, createContext as createContext27, useContext as useContext62, useMemo as useMemo86 } from "react";
40583
+ import { useState as useState86, createContext as createContext27, useContext as useContext62, useMemo as useMemo87 } from "react";
40576
40584
  import { createStore as createStore4, useStore as useStore7 } from "zustand";
40577
40585
 
40578
40586
  // src/components/Invoices/InvoiceTable/InvoiceTable.tsx
40579
- import { useCallback as useCallback70, useEffect as useEffect39, useMemo as useMemo85 } from "react";
40587
+ import { useCallback as useCallback70, useEffect as useEffect40, useMemo as useMemo86 } from "react";
40580
40588
 
40581
40589
  // src/features/invoices/api/useListInvoices.tsx
40582
40590
  import useSWRInfinite7 from "swr/infinite";
@@ -41149,7 +41157,7 @@ import {
41149
41157
  } from "@tanstack/react-table";
41150
41158
 
41151
41159
  // src/components/DataTable/DataTable.tsx
41152
- import { useMemo as useMemo83 } from "react";
41160
+ import { useMemo as useMemo84 } from "react";
41153
41161
  import { jsx as jsx344, jsxs as jsxs215 } from "react/jsx-runtime";
41154
41162
  var DataTable = ({
41155
41163
  columnConfig,
@@ -41163,15 +41171,15 @@ var DataTable = ({
41163
41171
  const columns = Object.values(columnConfig);
41164
41172
  const { EmptyState: EmptyState2, ErrorState: ErrorState2 } = slots;
41165
41173
  const isEmptyTable = (data == null ? void 0 : data.length) === 0;
41166
- const renderTableBody = useMemo83(() => {
41174
+ const renderTableBody = useMemo84(() => {
41167
41175
  if (isError) {
41168
- return /* @__PURE__ */ jsx344(Row2, { children: /* @__PURE__ */ jsx344(Cell3, { colSpan: columns.length, children: /* @__PURE__ */ jsx344(ErrorState2, {}) }) });
41176
+ return /* @__PURE__ */ jsx344(Row2, { className: "Layer__DataTable__EmptyState__Row", children: /* @__PURE__ */ jsx344(Cell3, { className: "Layer__DataTable__EmptyState__Cell", colSpan: columns.length, children: /* @__PURE__ */ jsx344(ErrorState2, {}) }) });
41169
41177
  }
41170
41178
  if (isLoading) {
41171
- return /* @__PURE__ */ jsx344(Row2, { children: /* @__PURE__ */ jsx344(Cell3, { colSpan: columns.length, children: /* @__PURE__ */ jsx344(Loader2, {}) }) });
41179
+ return /* @__PURE__ */ jsx344(Row2, { className: "Layer__DataTable__EmptyState__Row", children: /* @__PURE__ */ jsx344(Cell3, { className: "Layer__DataTable__EmptyState__Cell", colSpan: columns.length, children: /* @__PURE__ */ jsx344(Loader2, {}) }) });
41172
41180
  }
41173
41181
  if (isEmptyTable) {
41174
- return /* @__PURE__ */ jsx344(Row2, { children: /* @__PURE__ */ jsx344(Cell3, { colSpan: columns.length, children: /* @__PURE__ */ jsx344(EmptyState2, {}) }) });
41182
+ return /* @__PURE__ */ jsx344(Row2, { className: "Layer__DataTable__EmptyState__Row", children: /* @__PURE__ */ jsx344(Cell3, { className: "Layer__DataTable__EmptyState__Cell", colSpan: columns.length, children: /* @__PURE__ */ jsx344(EmptyState2, {}) }) });
41175
41183
  }
41176
41184
  const RowRenderer = (row) => /* @__PURE__ */ jsx344(Row2, { children: columns.map((col) => /* @__PURE__ */ jsx344(
41177
41185
  Cell3,
@@ -41191,7 +41199,7 @@ var DataTable = ({
41191
41199
  };
41192
41200
 
41193
41201
  // src/components/DataTable/PaginatedTable.tsx
41194
- import { useCallback as useCallback69, useMemo as useMemo84, useState as useState85 } from "react";
41202
+ import { useCallback as useCallback69, useMemo as useMemo85, useState as useState85 } from "react";
41195
41203
  import { jsx as jsx345, jsxs as jsxs216 } from "react/jsx-runtime";
41196
41204
  var EMPTY_ARRAY2 = [];
41197
41205
  function PaginatedTable({
@@ -41225,7 +41233,7 @@ function PaginatedTable({
41225
41233
  autoResetPageIndex: false
41226
41234
  });
41227
41235
  const { rows } = table2.getRowModel();
41228
- const rowData = useMemo84(() => rows.map((r) => r.original), [rows]);
41236
+ const rowData = useMemo85(() => rows.map((r) => r.original), [rows]);
41229
41237
  const onPageChange = useCallback69((page) => {
41230
41238
  table2.setPageIndex(page - 1);
41231
41239
  }, [table2]);
@@ -41390,6 +41398,12 @@ var InvoiceStatusCell = ({ invoice, inline = false }) => {
41390
41398
  ] });
41391
41399
  };
41392
41400
 
41401
+ // src/features/customers/util.ts
41402
+ function getCustomerName(customer) {
41403
+ var _a, _b;
41404
+ return (_b = (_a = customer == null ? void 0 : customer.individualName) != null ? _a : customer == null ? void 0 : customer.companyName) != null ? _b : "Unknown Customer";
41405
+ }
41406
+
41393
41407
  // src/components/Invoices/InvoiceTable/InvoiceTable.tsx
41394
41408
  import { jsx as jsx349, jsxs as jsxs220 } from "react/jsx-runtime";
41395
41409
  var COMPONENT_NAME11 = "InvoiceTable";
@@ -41414,7 +41428,7 @@ var AmountCell = ({ invoice }) => {
41414
41428
  case "VOIDED" /* Voided */:
41415
41429
  case "REFUNDED" /* Refunded */:
41416
41430
  case "SENT" /* Sent */: {
41417
- return /* @__PURE__ */ jsx349(VStack, { children: /* @__PURE__ */ jsx349(Span, { align: "right", children: totalAmount }) });
41431
+ return /* @__PURE__ */ jsx349(Span, { align: "right", children: totalAmount });
41418
41432
  }
41419
41433
  case "PARTIALLY_PAID" /* PartiallyPaid */: {
41420
41434
  return /* @__PURE__ */ jsxs220(VStack, { children: [
@@ -41434,10 +41448,6 @@ var AmountCell = ({ invoice }) => {
41434
41448
  }
41435
41449
  }
41436
41450
  };
41437
- var getCustomerName = (invoice) => {
41438
- const { recipientName, customer } = invoice;
41439
- return (customer == null ? void 0 : customer.individualName) || (customer == null ? void 0 : customer.companyName) || recipientName;
41440
- };
41441
41451
  var getColumnConfig = (onSelectInvoice) => ({
41442
41452
  ["SentAt" /* SentAt */]: {
41443
41453
  id: "SentAt" /* SentAt */,
@@ -41447,13 +41457,13 @@ var getColumnConfig = (onSelectInvoice) => ({
41447
41457
  ["InvoiceNo" /* InvoiceNo */]: {
41448
41458
  id: "InvoiceNo" /* InvoiceNo */,
41449
41459
  header: "No.",
41450
- cell: (row) => row.invoiceNumber,
41460
+ cell: (row) => /* @__PURE__ */ jsx349(Span, { ellipsis: true, children: row.invoiceNumber }),
41451
41461
  isRowHeader: true
41452
41462
  },
41453
41463
  ["Customer" /* Customer */]: {
41454
41464
  id: "Customer" /* Customer */,
41455
41465
  header: "Customer",
41456
- cell: (row) => getCustomerName(row)
41466
+ cell: (row) => /* @__PURE__ */ jsx349(Span, { ellipsis: true, children: getCustomerName(row.customer) })
41457
41467
  },
41458
41468
  ["Total" /* Total */]: {
41459
41469
  id: "Total" /* Total */,
@@ -41505,10 +41515,10 @@ var InvoiceTable = () => {
41505
41515
  const { tableFilters, setTableFilters } = useInvoiceTableFilters();
41506
41516
  const { status: selectedInvoiceStatusOption, query } = tableFilters;
41507
41517
  const { inputValue, searchQuery, handleInputChange } = useDebouncedSearchInput({ initialInputState: query });
41508
- useEffect39(() => {
41518
+ useEffect40(() => {
41509
41519
  setTableFilters({ query: searchQuery });
41510
41520
  }, [searchQuery, setTableFilters]);
41511
- const listInvoiceParams = useMemo85(
41521
+ const listInvoiceParams = useMemo86(
41512
41522
  () => getListInvoiceParams(tableFilters),
41513
41523
  [tableFilters]
41514
41524
  );
@@ -41521,15 +41531,15 @@ var InvoiceTable = () => {
41521
41531
  void setSize(size + 1);
41522
41532
  }
41523
41533
  }, [hasMore, setSize, size]);
41524
- const paginationProps = useMemo85(() => {
41534
+ const paginationProps = useMemo86(() => {
41525
41535
  return {
41526
41536
  pageSize: 10,
41527
41537
  hasMore,
41528
41538
  fetchMore
41529
41539
  };
41530
41540
  }, [fetchMore, hasMore]);
41531
- const options3 = useMemo85(() => Object.values(InvoiceStatusOptionConfig), []);
41532
- const SelectedValue = useMemo85(() => {
41541
+ const options3 = useMemo86(() => Object.values(InvoiceStatusOptionConfig), []);
41542
+ const SelectedValue = useMemo86(() => {
41533
41543
  const label = selectedInvoiceStatusOption.label;
41534
41544
  return label ? `Status: ${label}` : "Status";
41535
41545
  }, [selectedInvoiceStatusOption.label]);
@@ -41582,7 +41592,7 @@ var InvoiceTable = () => {
41582
41592
  spacing: true
41583
41593
  }
41584
41594
  ), [refetch]);
41585
- const columnConfig = useMemo85(() => getColumnConfig(toViewInvoice), [toViewInvoice]);
41595
+ const columnConfig = useMemo86(() => getColumnConfig(toViewInvoice), [toViewInvoice]);
41586
41596
  return /* @__PURE__ */ jsxs220(Container, { name: "InvoiceTable", children: [
41587
41597
  /* @__PURE__ */ jsx349(
41588
41598
  DataTableHeader,
@@ -41846,7 +41856,7 @@ function useInvoiceTableFilters() {
41846
41856
  const store = useContext62(InvoiceStoreContext);
41847
41857
  const tableFilters = useStore7(store, (state) => state.tableFilters);
41848
41858
  const setTableFilters = useStore7(store, (state) => state.setTableFilters);
41849
- return useMemo86(() => ({ tableFilters, setTableFilters }), [tableFilters, setTableFilters]);
41859
+ return useMemo87(() => ({ tableFilters, setTableFilters }), [tableFilters, setTableFilters]);
41850
41860
  }
41851
41861
  function useInvoiceNavigation() {
41852
41862
  const store = useContext62(InvoiceStoreContext);
@@ -41894,14 +41904,14 @@ function InvoiceStoreProvider(props) {
41894
41904
  }
41895
41905
 
41896
41906
  // src/components/Invoices/InvoiceDetail/InvoiceDetail.tsx
41897
- import { useCallback as useCallback91, useMemo as useMemo92, useRef as useRef36, useState as useState91 } from "react";
41907
+ import { useCallback as useCallback91, useMemo as useMemo93, useRef as useRef36, useState as useState91 } from "react";
41898
41908
 
41899
41909
  // src/components/Invoices/InvoiceForm/InvoiceForm.tsx
41900
- import { forwardRef as forwardRef27, useCallback as useCallback75, useEffect as useEffect40, useImperativeHandle as useImperativeHandle4, useRef as useRef32 } from "react";
41901
- import classNames92 from "classnames";
41910
+ import { forwardRef as forwardRef27, useCallback as useCallback75, useEffect as useEffect41, useImperativeHandle as useImperativeHandle4, useRef as useRef32 } from "react";
41911
+ import classNames93 from "classnames";
41902
41912
 
41903
41913
  // src/components/Invoices/InvoiceForm/useInvoiceForm.ts
41904
- import { useCallback as useCallback73, useMemo as useMemo87, useState as useState87, useRef as useRef31 } from "react";
41914
+ import { useCallback as useCallback73, useMemo as useMemo88, useState as useState87, useRef as useRef31 } from "react";
41905
41915
  import { useStore as useStore8, revalidateLogic } from "@tanstack/react-form";
41906
41916
  import { Schema as Schema23 } from "effect";
41907
41917
 
@@ -42077,19 +42087,14 @@ var convertInvoiceFormToParams = (form) => {
42077
42087
  unitPrice: convertBigDecimalToCents(item.unitPrice),
42078
42088
  quantity: item.quantity
42079
42089
  };
42080
- return !BD5.equals(form.taxRate, BIG_DECIMAL_ZERO) && item.isTaxable ? __spreadProps(__spreadValues({}, baseLineItem), {
42081
- salesTaxes: [
42082
- {
42083
- amount: convertBigDecimalToCents(
42084
- BD5.multiply(item.amount, form.taxRate)
42085
- )
42086
- }
42087
- ]
42088
- }) : baseLineItem;
42090
+ if (!item.isTaxable || BD5.equals(form.taxRate, BIG_DECIMAL_ZERO)) return baseLineItem;
42091
+ const itemTaxableSubtotal = computeTaxableSubtotal({ rawTaxableSubtotal: item.amount, discountRate: form.discountRate });
42092
+ const itemTaxes = computeTaxes({ taxableSubtotal: itemTaxableSubtotal, taxRate: form.taxRate });
42093
+ return __spreadProps(__spreadValues({}, baseLineItem), { salesTaxes: [{ amount: convertBigDecimalToCents(itemTaxes) }] });
42089
42094
  })
42090
42095
  }, !BD5.equals(form.discountRate, BIG_DECIMAL_ZERO) && {
42091
42096
  additionalDiscount: convertBigDecimalToCents(
42092
- BD5.multiply(computeSubtotal(form.lineItems), form.discountRate)
42097
+ computeAdditionalDiscount({ subtotal: computeSubtotal(form.lineItems), discountRate: form.discountRate })
42093
42098
  )
42094
42099
  });
42095
42100
  };
@@ -42119,7 +42124,7 @@ var useInvoiceForm = (props) => {
42119
42124
  setSubmitError("Something went wrong. Please try again.");
42120
42125
  }
42121
42126
  }), [onSuccess, upsertInvoice]);
42122
- const validators = useMemo87(() => ({
42127
+ const validators = useMemo88(() => ({
42123
42128
  onDynamic: validateInvoiceForm
42124
42129
  }), []);
42125
42130
  const form = useAppForm({
@@ -42134,7 +42139,7 @@ var useInvoiceForm = (props) => {
42134
42139
  });
42135
42140
  const isDirty = useStore8(form.store, (state) => state.isDirty);
42136
42141
  const isSubmitting = useStore8(form.store, (state) => state.isSubmitting);
42137
- const formState = useMemo87(() => ({
42142
+ const formState = useMemo88(() => ({
42138
42143
  isDirty,
42139
42144
  isSubmitting
42140
42145
  }), [isDirty, isSubmitting]);
@@ -42147,30 +42152,30 @@ var useInvoiceForm = (props) => {
42147
42152
  rawTaxableSubtotal: computeRawTaxableSubtotal(lineItems)
42148
42153
  };
42149
42154
  });
42150
- const additionalDiscount = useMemo87(
42155
+ const additionalDiscount = useMemo88(
42151
42156
  () => computeAdditionalDiscount({ subtotal, discountRate }),
42152
42157
  [subtotal, discountRate]
42153
42158
  );
42154
- const taxableSubtotal = useMemo87(
42159
+ const taxableSubtotal = useMemo88(
42155
42160
  () => computeTaxableSubtotal({ rawTaxableSubtotal, discountRate }),
42156
42161
  [rawTaxableSubtotal, discountRate]
42157
42162
  );
42158
- const taxes = useMemo87(
42163
+ const taxes = useMemo88(
42159
42164
  () => computeTaxes({ taxableSubtotal, taxRate }),
42160
42165
  [taxableSubtotal, taxRate]
42161
42166
  );
42162
- const grandTotal = useMemo87(
42167
+ const grandTotal = useMemo88(
42163
42168
  () => computeGrandTotal({ subtotal, additionalDiscount, taxes }),
42164
42169
  [subtotal, additionalDiscount, taxes]
42165
42170
  );
42166
- const totals = useMemo87(() => ({
42171
+ const totals = useMemo88(() => ({
42167
42172
  subtotal,
42168
42173
  additionalDiscount,
42169
42174
  taxableSubtotal,
42170
42175
  taxes,
42171
42176
  grandTotal
42172
42177
  }), [additionalDiscount, grandTotal, subtotal, taxableSubtotal, taxes]);
42173
- return useMemo87(
42178
+ return useMemo88(
42174
42179
  () => ({ form, formState, totals, submitError }),
42175
42180
  [form, formState, totals, submitError]
42176
42181
  );
@@ -42181,13 +42186,9 @@ import { Plus as Plus3, Trash as Trash3 } from "lucide-react";
42181
42186
  import { BigDecimal as BD6 } from "effect";
42182
42187
 
42183
42188
  // src/features/customers/components/CustomerSelector.tsx
42184
- import { useCallback as useCallback74, useId as useId6, useMemo as useMemo88 } from "react";
42185
- import classNames91 from "classnames";
42189
+ import { useCallback as useCallback74, useId as useId6, useMemo as useMemo89 } from "react";
42190
+ import classNames92 from "classnames";
42186
42191
  import { jsx as jsx351, jsxs as jsxs221 } from "react/jsx-runtime";
42187
- function getCustomerName2(customer) {
42188
- var _a, _b, _c;
42189
- return (_c = (_b = (_a = customer.individualName) != null ? _a : customer.companyName) != null ? _b : customer.externalId) != null ? _c : "Unknown Customer";
42190
- }
42191
42192
  var CustomerAsOption = class {
42192
42193
  constructor(customer) {
42193
42194
  __publicField(this, "internalCustomer");
@@ -42197,7 +42198,7 @@ var CustomerAsOption = class {
42197
42198
  return this.internalCustomer;
42198
42199
  }
42199
42200
  get label() {
42200
- return getCustomerName2(this.internalCustomer);
42201
+ return getCustomerName(this.internalCustomer);
42201
42202
  }
42202
42203
  get id() {
42203
42204
  return this.internalCustomer.id;
@@ -42214,7 +42215,7 @@ function CustomerSelector({
42214
42215
  inline,
42215
42216
  className
42216
42217
  }) {
42217
- const combinedClassName = classNames91(
42218
+ const combinedClassName = classNames92(
42218
42219
  "Layer__CustomerSelector",
42219
42220
  inline && "Layer__CustomerSelector--inline",
42220
42221
  className
@@ -42224,7 +42225,7 @@ function CustomerSelector({
42224
42225
  });
42225
42226
  const effectiveSearchQuery = searchQuery === "" ? void 0 : searchQuery;
42226
42227
  const { data, isLoading, isError } = useListCustomers({ query: effectiveSearchQuery });
42227
- const options3 = useMemo88(
42228
+ const options3 = useMemo89(
42228
42229
  () => (data == null ? void 0 : data.flatMap(({ data: data2 }) => data2).map((customer) => new CustomerAsOption(customer))) || [],
42229
42230
  [data]
42230
42231
  );
@@ -42250,23 +42251,23 @@ function CustomerSelector({
42250
42251
  },
42251
42252
  [options3, handleInputChange, selectedCustomerId, onSelectedCustomerChange]
42252
42253
  );
42253
- const selectedCustomerForComboBox = useMemo88(
42254
+ const selectedCustomerForComboBox = useMemo89(
42254
42255
  () => {
42255
42256
  if (selectedCustomer === null) {
42256
42257
  return null;
42257
42258
  }
42258
42259
  return {
42259
- label: getCustomerName2(selectedCustomer),
42260
+ label: getCustomerName(selectedCustomer),
42260
42261
  value: selectedCustomer.id
42261
42262
  };
42262
42263
  },
42263
42264
  [selectedCustomer]
42264
42265
  );
42265
- const EmptyMessage = useMemo88(
42266
+ const EmptyMessage = useMemo89(
42266
42267
  () => /* @__PURE__ */ jsx351(P, { variant: "subtle", children: "No matching customer" }),
42267
42268
  []
42268
42269
  );
42269
- const ErrorMessage = useMemo88(
42270
+ const ErrorMessage = useMemo89(
42270
42271
  () => /* @__PURE__ */ jsx351(
42271
42272
  P,
42272
42273
  {
@@ -42309,7 +42310,7 @@ var INVOICE_FORM_CSS_PREFIX = "Layer__InvoiceForm";
42309
42310
  var INVOICE_FORM_FIELD_CSS_PREFIX = `${INVOICE_FORM_CSS_PREFIX}__Field`;
42310
42311
  var getDueAtChanged = (dueAt, previousDueAt) => dueAt === null && previousDueAt !== null || dueAt !== null && previousDueAt === null || dueAt !== null && previousDueAt !== null && toCalendarDate2(dueAt).compare(toCalendarDate2(previousDueAt)) !== 0;
42311
42312
  var InvoiceFormTotalRow = ({ label, value, children }) => {
42312
- const className = classNames92(
42313
+ const className = classNames93(
42313
42314
  `${INVOICE_FORM_CSS_PREFIX}__TotalRow`,
42314
42315
  children && `${INVOICE_FORM_CSS_PREFIX}__TotalRow--withField`
42315
42316
  );
@@ -42347,7 +42348,7 @@ var InvoiceForm = forwardRef27((props, ref) => {
42347
42348
  useImperativeHandle4(ref, () => ({
42348
42349
  submit: () => form.handleSubmit()
42349
42350
  }));
42350
- useEffect40(() => {
42351
+ useEffect41(() => {
42351
42352
  onChangeFormState == null ? void 0 : onChangeFormState(formState);
42352
42353
  }, [formState, onChangeFormState]);
42353
42354
  return /* @__PURE__ */ jsxs222(Form, { className: INVOICE_FORM_CSS_PREFIX, onSubmit: blockNativeOnSubmit, children: [
@@ -42467,7 +42468,7 @@ var InvoiceForm = forwardRef27((props, ref) => {
42467
42468
  {
42468
42469
  gap: "xs",
42469
42470
  align: "end",
42470
- className: classNames92(`${INVOICE_FORM_CSS_PREFIX}__LineItem`, isReadOnly && `${INVOICE_FORM_CSS_PREFIX}__LineItem--readonly`),
42471
+ className: classNames93(`${INVOICE_FORM_CSS_PREFIX}__LineItem`, isReadOnly && `${INVOICE_FORM_CSS_PREFIX}__LineItem--readonly`),
42471
42472
  children: [
42472
42473
  /* @__PURE__ */ jsx352(form.AppField, { name: `lineItems[${index}].product`, children: (innerField) => /* @__PURE__ */ jsx352(innerField.FormTextField, { label: "Product/Service", showLabel: index === 0, isReadOnly }) }),
42473
42474
  /* @__PURE__ */ jsx352(form.AppField, { name: `lineItems[${index}].description`, children: (innerField) => /* @__PURE__ */ jsx352(innerField.FormTextField, { label: "Description", showLabel: index === 0, isReadOnly }) }),
@@ -42566,7 +42567,7 @@ import { useCallback as useCallback79 } from "react";
42566
42567
  import { AlertTriangle as AlertTriangle2 } from "lucide-react";
42567
42568
 
42568
42569
  // src/components/Invoices/InvoicePaymentForm/useInvoicePaymentForm.ts
42569
- import { useCallback as useCallback77, useMemo as useMemo89, useState as useState88, useRef as useRef33 } from "react";
42570
+ import { useCallback as useCallback77, useMemo as useMemo90, useState as useState88, useRef as useRef33 } from "react";
42570
42571
  import { revalidateLogic as revalidateLogic2 } from "@tanstack/react-form";
42571
42572
 
42572
42573
  // src/features/invoices/api/useUpsertDedicatedInvoicePayment.tsx
@@ -42776,7 +42777,7 @@ var useInvoicePaymentForm = (props) => {
42776
42777
  const onDynamic = useCallback77(({ value }) => {
42777
42778
  return validateInvoicePaymentForm({ invoicePayment: value, invoice });
42778
42779
  }, [invoice]);
42779
- const validators = useMemo89(() => ({ onDynamic }), [onDynamic]);
42780
+ const validators = useMemo90(() => ({ onDynamic }), [onDynamic]);
42780
42781
  const form = useAppForm({
42781
42782
  defaultValues,
42782
42783
  onSubmit,
@@ -42787,7 +42788,7 @@ var useInvoicePaymentForm = (props) => {
42787
42788
  }),
42788
42789
  canSubmitWhenInvalid: true
42789
42790
  });
42790
- return useMemo89(
42791
+ return useMemo90(
42791
42792
  () => ({ form, submitError }),
42792
42793
  [form, submitError]
42793
42794
  );
@@ -42795,7 +42796,7 @@ var useInvoicePaymentForm = (props) => {
42795
42796
 
42796
42797
  // src/components/PaymentMethod/PaymentMethodComboBox.tsx
42797
42798
  import { useCallback as useCallback78, useId as useId7 } from "react";
42798
- import classNames93 from "classnames";
42799
+ import classNames94 from "classnames";
42799
42800
  import { jsx as jsx354, jsxs as jsxs224 } from "react/jsx-runtime";
42800
42801
  var PaymentMethodOptionConfig = {
42801
42802
  ["CASH" /* Cash */]: { label: "Cash", value: "CASH" /* Cash */ },
@@ -42806,7 +42807,7 @@ var PaymentMethodOptionConfig = {
42806
42807
  };
42807
42808
  var options2 = Object.values(PaymentMethodOptionConfig);
42808
42809
  var PaymentMethodComboBox = ({ value, onValueChange, isReadOnly, className, inline }) => {
42809
- const combinedClassName = classNames93(
42810
+ const combinedClassName = classNames94(
42810
42811
  "Layer__PaymentMethodComboBox",
42811
42812
  inline && "Layer__PaymentMethodComboBox--inline",
42812
42813
  className
@@ -42865,7 +42866,7 @@ var InvoicePaymentForm = (props) => {
42865
42866
  /* @__PURE__ */ jsxs225(VStack, { className: `${INVOICE_PAYMENT_FORM_CSS_PREFIX}__Section`, gap: "sm", children: [
42866
42867
  /* @__PURE__ */ jsxs225(HStack, { className: `${INVOICE_PAYMENT_FORM_FIELD_CSS_PREFIX}__InvoiceNo`, gap: "xs", align: "center", children: [
42867
42868
  /* @__PURE__ */ jsx355(Span, { size: "sm", children: "Invoice" }),
42868
- /* @__PURE__ */ jsxs225(Span, { size: "md", weight: "bold", children: [
42869
+ /* @__PURE__ */ jsxs225(Span, { size: "md", weight: "bold", ellipsis: true, children: [
42869
42870
  "#",
42870
42871
  invoice.invoiceNumber
42871
42872
  ] })
@@ -43312,14 +43313,14 @@ function InvoiceResetModal({ isOpen, onOpenChange, invoice, onSuccess }) {
43312
43313
  }
43313
43314
 
43314
43315
  // src/components/Invoices/Modal/InvoiceRefundModal.tsx
43315
- import { useCallback as useCallback89, useMemo as useMemo91, useRef as useRef35 } from "react";
43316
+ import { useCallback as useCallback89, useMemo as useMemo92, useRef as useRef35 } from "react";
43316
43317
 
43317
43318
  // src/components/Invoices/InvoiceRefundForm/InvoiceRefundForm.tsx
43318
43319
  import { forwardRef as forwardRef28, useCallback as useCallback88, useImperativeHandle as useImperativeHandle5 } from "react";
43319
43320
  import { AlertTriangle as AlertTriangle3 } from "lucide-react";
43320
43321
 
43321
43322
  // src/components/Invoices/InvoiceRefundForm/useInvoiceRefundForm.ts
43322
- import { useCallback as useCallback87, useMemo as useMemo90, useState as useState89, useRef as useRef34 } from "react";
43323
+ import { useCallback as useCallback87, useMemo as useMemo91, useState as useState89, useRef as useRef34 } from "react";
43323
43324
  import { revalidateLogic as revalidateLogic3 } from "@tanstack/react-form";
43324
43325
  import { Schema as Schema32 } from "effect";
43325
43326
 
@@ -43538,7 +43539,7 @@ var useInvoiceRefundForm = ({ onSuccess, invoice }) => {
43538
43539
  const onDynamic = useCallback87(({ value }) => {
43539
43540
  return validateInvoiceRefundForm({ invoiceRefund: value, invoice });
43540
43541
  }, [invoice]);
43541
- const validators = useMemo90(() => ({ onDynamic }), [onDynamic]);
43542
+ const validators = useMemo91(() => ({ onDynamic }), [onDynamic]);
43542
43543
  const form = useAppForm({
43543
43544
  defaultValues,
43544
43545
  onSubmit,
@@ -43549,7 +43550,7 @@ var useInvoiceRefundForm = ({ onSuccess, invoice }) => {
43549
43550
  }),
43550
43551
  canSubmitWhenInvalid: true
43551
43552
  });
43552
- return useMemo90(
43553
+ return useMemo91(
43553
43554
  () => ({ form, submitError }),
43554
43555
  [form, submitError]
43555
43556
  );
@@ -43587,7 +43588,7 @@ var InvoiceRefundForm = forwardRef28(({ onSuccess, invoice }, ref) => {
43587
43588
  /* @__PURE__ */ jsxs226(VStack, { className: `${INVOICE_REFUND_FORM_CSS_PREFIX}__Section`, gap: "sm", children: [
43588
43589
  /* @__PURE__ */ jsxs226(HStack, { className: `${INVOICE_REFUND_FORM_FIELD_CSS_PREFIX}__InvoiceNo`, gap: "xs", align: "center", children: [
43589
43590
  /* @__PURE__ */ jsx359(Span, { size: "sm", children: "Invoice" }),
43590
- /* @__PURE__ */ jsxs226(Span, { size: "md", weight: "bold", children: [
43591
+ /* @__PURE__ */ jsxs226(Span, { size: "md", weight: "bold", ellipsis: true, children: [
43591
43592
  "#",
43592
43593
  invoice.invoiceNumber
43593
43594
  ] })
@@ -43620,7 +43621,7 @@ function InvoiceRefundModal({ isOpen, onOpenChange, invoice, onSuccess }) {
43620
43621
  onSuccess(updateInvoiceWithRefund(invoice));
43621
43622
  onOpenChange == null ? void 0 : onOpenChange(false);
43622
43623
  }, [invoice, onOpenChange, onSuccess]);
43623
- const content = useMemo91(() => /* @__PURE__ */ jsx360(InvoiceRefundForm, { invoice, onSuccess: onSuccessForm, ref: formRef }), [invoice, onSuccessForm]);
43624
+ const content = useMemo92(() => /* @__PURE__ */ jsx360(InvoiceRefundForm, { invoice, onSuccess: onSuccessForm, ref: formRef }), [invoice, onSuccessForm]);
43624
43625
  return /* @__PURE__ */ jsx360(
43625
43626
  BaseConfirmationModal,
43626
43627
  {
@@ -43793,7 +43794,7 @@ var InvoiceDetail = () => {
43793
43794
  }
43794
43795
  }, [hasChanges, toInvoiceTable]);
43795
43796
  return /* @__PURE__ */ jsxs228(Fragment60, { children: [
43796
- /* @__PURE__ */ jsxs228(BaseDetailView, { slots: { Header: Header5, BackIcon: hasChanges ? X_default : BackArrow_default }, name: "Invoice Detail View", onGoBack, children: [
43797
+ /* @__PURE__ */ jsxs228(BaseDetailView, { slots: { Header: Header5, BackIcon: hasChanges ? X_default : BackArrow_default }, name: "InvoiceDetail", onGoBack, children: [
43797
43798
  viewState.mode === "Update" /* Update */ && /* @__PURE__ */ jsx362(InvoiceDetailSubHeader, { invoice: viewState.invoice }),
43798
43799
  /* @__PURE__ */ jsx362(
43799
43800
  InvoiceForm,
@@ -43845,7 +43846,7 @@ var InvoiceDetailHeader = ({ onSubmit, formState, isReadOnly, setIsReadOnly, ope
43845
43846
  const onEditInvoice = useCallback91(() => {
43846
43847
  setIsReadOnly(false);
43847
43848
  }, [setIsReadOnly]);
43848
- const saveButton = useMemo92(() => /* @__PURE__ */ jsxs228(Button2, { isPending: isSubmitting, onPress: onSubmit, children: [
43849
+ const saveButton = useMemo93(() => /* @__PURE__ */ jsxs228(Button2, { isPending: isSubmitting, onPress: onSubmit, children: [
43849
43850
  "Save",
43850
43851
  /* @__PURE__ */ jsx362(Save2, { size: 14 })
43851
43852
  ] }), [isSubmitting, onSubmit]);
@@ -43859,7 +43860,7 @@ var InvoiceDetailHeader = ({ onSubmit, formState, isReadOnly, setIsReadOnly, ope
43859
43860
  const headingContent = isReadOnly ? invoiceNumber ? `Invoice #${invoiceNumber}` : "View Invoice" : invoiceNumber ? `Editing Invoice #${invoiceNumber}` : "Editing Invoice";
43860
43861
  const canMarkAsPaid = viewState.mode === "Update" /* Update */ && (viewState.invoice.status === "SENT" /* Sent */ || viewState.invoice.status === "PARTIALLY_PAID" /* PartiallyPaid */);
43861
43862
  return /* @__PURE__ */ jsxs228(HStack, { justify: "space-between", align: "center", fluid: true, pie: "md", children: [
43862
- /* @__PURE__ */ jsx362(Heading2, { children: headingContent }),
43863
+ /* @__PURE__ */ jsx362(Heading2, { className: "Layer__InvoiceDetail__Heading", ellipsis: true, children: headingContent }),
43863
43864
  isReadOnly ? /* @__PURE__ */ jsxs228(HStack, { gap: "xs", children: [
43864
43865
  canMarkAsPaid && /* @__PURE__ */ jsxs228(Button2, { onPress: openInvoicePaymentDrawer, children: [
43865
43866
  "Mark as paid",
@@ -43881,16 +43882,16 @@ var InvoiceDetailSubHeader = ({ invoice }) => {
43881
43882
  // src/components/ui/Meter/Meter.tsx
43882
43883
  import { forwardRef as forwardRef29 } from "react";
43883
43884
  import { Meter as ReactAriaMeter } from "react-aria-components";
43884
- import classNames94 from "classnames";
43885
+ import classNames95 from "classnames";
43885
43886
  import { jsx as jsx363, jsxs as jsxs229 } from "react/jsx-runtime";
43886
43887
  var getClassnameForSubComponent = (className, suffix) => {
43887
- return classNames94(`${METER_CLASS_NAME}__${suffix}`, className && `${className}__${suffix}`);
43888
+ return classNames95(`${METER_CLASS_NAME}__${suffix}`, className && `${className}__${suffix}`);
43888
43889
  };
43889
43890
  var METER_CLASS_NAME = "Layer__Meter";
43890
43891
  var Meter = forwardRef29(
43891
43892
  function Meter2(_a, ref) {
43892
43893
  var _b = _a, { className, label, meterOnly } = _b, restProps = __objRest(_b, ["className", "label", "meterOnly"]);
43893
- return /* @__PURE__ */ jsx363(ReactAriaMeter, __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, restProps), { className: classNames94(METER_CLASS_NAME, className), ref }), meterOnly && { "aria-label": label }), { children: ({ percentage, valueText }) => /* @__PURE__ */ jsxs229(VStack, { gap: "3xs", fluid: true, children: [
43894
+ return /* @__PURE__ */ jsx363(ReactAriaMeter, __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, restProps), { className: classNames95(METER_CLASS_NAME, className), ref }), meterOnly && { "aria-label": label }), { children: ({ percentage, valueText }) => /* @__PURE__ */ jsxs229(VStack, { gap: "3xs", fluid: true, children: [
43894
43895
  !meterOnly && /* @__PURE__ */ jsxs229(HStack, { justify: "space-between", children: [
43895
43896
  /* @__PURE__ */ jsx363(Label, { slot: "label", children: label }),
43896
43897
  /* @__PURE__ */ jsx363(Span, { slot: "value", children: valueText })