@zeniai/web-components 4.1.53 → 4.1.55

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/{SessionTimeoutPopup-C3zi1za_.cjs → SessionTimeoutPopup-B87qeaPV.cjs} +15351 -14953
  2. package/dist/{SessionTimeoutPopup-BK9wix5_.js → SessionTimeoutPopup-BnwXqvlZ.js} +67966 -66346
  3. package/dist/appLocale.d.ts +25 -0
  4. package/dist/cockpit.cjs.js +1 -1
  5. package/dist/cockpit.esm.js +4 -4
  6. package/dist/components/formElements/common/common.d.ts +1 -0
  7. package/dist/components/formElements/labeledFormattedText/LabeledFormattedTextField.d.ts +7 -2
  8. package/dist/components/formElements/labeledText/LabeledTextField.d.ts +7 -1
  9. package/dist/components/transactionDetail/items/journalEntryTable/FlexibleWidthContext.d.ts +2 -0
  10. package/dist/components/transactionDetail/items/journalEntryTable/TransactionLinesJournalEntryEmptyTable.d.ts +17 -0
  11. package/dist/components/transactionDetail/items/journalEntryTable/TransactionLinesJournalEntryTable.d.ts +2 -0
  12. package/dist/components/transactionDetail/items/journalEntryTable/common.d.ts +23 -0
  13. package/dist/components/transactionDetail/items/journalEntryTable/header/JournalEntryTableHeader.d.ts +11 -0
  14. package/dist/components/transactionDetail/items/journalEntryTable/header/journalEntryHeaderConfig.d.ts +28 -0
  15. package/dist/components/transactionDetail/items/journalEntryTable/header/journalEntryHeaderItemsData.d.ts +16 -0
  16. package/dist/components/transactionDetail/items/journalEntryTable/journalEntryTableStyles.d.ts +119 -0
  17. package/dist/components/transactionDetail/items/journalEntryTable/journalEntryTableTypes.d.ts +79 -0
  18. package/dist/components/transactionDetail/items/journalEntryTable/listRow/JournalEntryTableListRow.d.ts +40 -0
  19. package/dist/components/transactionDetail/items/journalEntryTable/totals/JournalEntryTotalsRow.d.ts +21 -0
  20. package/dist/components/transactionDetail/items/transactionLineTable/FlexibleWidthContext.d.ts +6 -0
  21. package/dist/components/transactionDetail/items/transactionLineTable/TransactionLinesEmptyTable.d.ts +11 -0
  22. package/dist/components/transactionDetail/items/transactionLineTable/TransactionLinesTable.d.ts +17 -0
  23. package/dist/components/transactionDetail/items/transactionLineTable/common.d.ts +32 -0
  24. package/dist/components/transactionDetail/items/transactionLineTable/header/TransactionLineTableHeader.d.ts +12 -0
  25. package/dist/components/transactionDetail/items/transactionLineTable/header/transactionLineHeaderConfig.d.ts +40 -0
  26. package/dist/components/transactionDetail/items/transactionLineTable/header/transactionLineHeaderItemsData.d.ts +19 -0
  27. package/dist/components/transactionDetail/items/transactionLineTable/listRow/TransactionLineTableListRow.d.ts +40 -0
  28. package/dist/components/transactionDetail/items/transactionLineTable/sortTransactionLines.d.ts +19 -0
  29. package/dist/components/transactionDetail/items/transactionLineTable/transactionLineTableStyles.d.ts +103 -0
  30. package/dist/components/transactionDetail/items/transactionLineTable/transactionLineTableTypes.d.ts +80 -0
  31. package/dist/index.cjs.js +1 -1
  32. package/dist/index.esm.js +20 -20
  33. package/dist/strings/strings.d.ts +25 -0
  34. package/dist/testSetup.d.ts +0 -0
  35. package/dist/{vendor-.pnpm-C7TxM7W7.cjs → vendor-.pnpm-DuJMYp1y.cjs} +88 -88
  36. package/dist/{vendor-.pnpm-CSfLHWdE.js → vendor-.pnpm-XFVTbpbG.js} +5506 -5457
  37. package/package.json +3 -3
@@ -2617,6 +2617,31 @@ declare class AppLocale {
2617
2617
  allTypes: string;
2618
2618
  allCustom: string;
2619
2619
  recommendedCustom: string;
2620
+ journalEntryTable: {
2621
+ descriptionHeader: string;
2622
+ nameHeader: string;
2623
+ categoryHeader: string;
2624
+ classHeader: string;
2625
+ projectHeader: string;
2626
+ debitHeader: string;
2627
+ creditHeader: string;
2628
+ amountHeader: string;
2629
+ descriptionPlaceholder: string;
2630
+ debitPrefix: string;
2631
+ creditPrefix: string;
2632
+ emptyDash: string;
2633
+ emptyMessage: string;
2634
+ totalLabel: string;
2635
+ };
2636
+ transactionLineTable: {
2637
+ descriptionHeader: string;
2638
+ categoryHeader: string;
2639
+ classHeader: string;
2640
+ projectHeader: string;
2641
+ amountHeader: string;
2642
+ descriptionPlaceholder: string;
2643
+ emptyMessage: string;
2644
+ };
2620
2645
  };
2621
2646
  payeeDetails: {
2622
2647
  allPayees: string;
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./SessionTimeoutPopup-C3zi1za_.cjs"),o=require("./vendor-.pnpm-C7TxM7W7.cjs"),u=require("react"),s=require("@emotion/styled"),Xe=require("@liveblocks/react"),J=require("@zeniai/client-epic-state"),Es=require("@liveblocks/react-ui"),we=require("@emotion/react"),Lo=require("react-dom"),St=require("@liveblocks/react-ui/primitives"),xi=require("@liveblocks/react/suspense");function Ea(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:()=>e[r]})}}return n.default=e,Object.freeze(n)}const le=Ea(u),wa=({inboxNotification:e,onNotificationClick:n})=>{const r=Xe.useInboxNotificationThread(e.id),i=r.metadata.entityType.split("."),a=r.metadata.isGlobalComment&&i.length===2;return o.jsxRuntimeExports.jsx(va,{isClickable:a,isUnRead:e.readAt==null,onClick:()=>{n(r.metadata,r.id)},children:o.jsxRuntimeExports.jsx(Es.InboxNotification,{inboxNotification:e,kinds:{thread:d=>o.jsxRuntimeExports.jsx(Es.InboxNotification.Thread,{...d,showRoomName:!0})}})})},va=s.div`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./SessionTimeoutPopup-B87qeaPV.cjs"),o=require("./vendor-.pnpm-DuJMYp1y.cjs"),u=require("react"),s=require("@emotion/styled"),Xe=require("@liveblocks/react"),J=require("@zeniai/client-epic-state"),Es=require("@liveblocks/react-ui"),we=require("@emotion/react"),Lo=require("react-dom"),St=require("@liveblocks/react-ui/primitives"),xi=require("@liveblocks/react/suspense");function Ea(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:()=>e[r]})}}return n.default=e,Object.freeze(n)}const le=Ea(u),wa=({inboxNotification:e,onNotificationClick:n})=>{const r=Xe.useInboxNotificationThread(e.id),i=r.metadata.entityType.split("."),a=r.metadata.isGlobalComment&&i.length===2;return o.jsxRuntimeExports.jsx(va,{isClickable:a,isUnRead:e.readAt==null,onClick:()=>{n(r.metadata,r.id)},children:o.jsxRuntimeExports.jsx(Es.InboxNotification,{inboxNotification:e,kinds:{thread:d=>o.jsxRuntimeExports.jsx(Es.InboxNotification.Thread,{...d,showRoomName:!0})}})})},va=s.div`
2
2
  display: flex;
3
3
  width: 100%;
4
4
  cursor: ${e=>e.isClickable?"pointer":"initial"};
@@ -1,7 +1,7 @@
1
- import { dE as o, gB as Ne, i as $t, fD as O, eb as It, bv as Qr, X as We, eg as Qd, fO as Jd, fY as Xd, al as I, fQ as U, dn as qd, h2 as ge, gP as lo, eL as lt, an as Ft, cd as Bs, v as wo, eD as ps, c8 as So, ed as us, es as ep, dQ as Jt, dN as De, fX as Fl, ez as Co, dp as Fs, c3 as Be, gJ as tp, aT as op, bd as Wt, aQ as np, e9 as Wl, g4 as rp, b1 as hs, J as ms, gf as ip, gg as sp, gh as ap, am as lp, co as cp, c1 as xt, ef as _l, cy as dp, d$ as Jr, ex as gs, gz as M, di as pp, bo as up, dv as be, e5 as hp, d8 as z, cz as Fe, gC as pt, dX as xs, br as Nr, dw as mp, e6 as ys, be as Xr, gn as Pe, bw as qr, e7 as Vl, ep as Ul, ek as Xn, fL as zt, eN as dt, dJ as gn, c5 as gp, c7 as Hl, ea as Kl, fZ as Pt, fB as qe, f6 as Mr, fx as xp, eJ as xn, eK as yn, l as fn, dU as Fo, c2 as ei, ee as fs, c6 as yp, eh as Gl, e8 as co, ec as Wo, a$ as Qt, fw as Ws, gc as fp, g2 as bp, g7 as $p, ej as Cp, eC as wp, eB as qn, dK as Sp, dL as bs, f_ as vp, ei as Yl, eo as Zl, en as Ql, ba as Jl, gv as jp, bX as _s, bY as $s, bS as kp, bW as Tp, bs as er, bb as bn, em as Cs, ap as Lp, ds as ti, fT as bt, dB as Xl, bV as zr, b$ as Pp, b9 as ws, bP as Ip, d9 as pn, e4 as Ap, e3 as Op, e0 as Dp, bQ as oi, dq as Vs, bT as ql, gV as Br, cA as ec, dZ as tc, fP as Ss, bR as Ep, aw as un, au as Zn, av as Qn, h3 as oc, aV as Rp, gR as Np, bf as Yt, ax as Lt, ew as vs, er as nc, dR as Mp, cb as rc, et as zp, dP as Bp, ay as Ut, gm as sr, bj as Fp, b_ as Ht, aI as ic, K as cn, cK as sc, cL as Fr, cJ as ac, by as Wp, ce as _p, dW as Vp, bz as Wr, bB as Xi, cO as Us, cM as Up, cN as Hp, bA as li, bx as ci, bC as Kp, dr as Hs, bU as Gp, bZ as Yp, cZ as Ks, aH as Zp, d as Qp, cC as Jp, e1 as Xp, dA as tr, gN as lc, gQ as cc, bi as Zt, Z as ni, _ as hn, gS as dc, g8 as pc, aW as qp, cf as eu, ct as uc, cs as tu, gd as ou, cj as _r, ah as hc, ci as nu, ch as ru, a_ as iu, cg as js, f$ as mc, bm as gc, fE as xc, k as yc, eH as fc, bn as su, w as bc, bq as $c, f7 as au, dI as lu, gM as cu, cq as du, g3 as pu, g0 as uu, W as hu, d5 as Gs, g6 as mu, eA as Cc, ge as Ys, cu as gu, c4 as xu, dO as yu, el as fu, eq as bu, e2 as $u, fG as Zs, ev as Cu, dC as wc, dx as wu, fK as Sc, b0 as Su, dS as vu, bc as ju, bg as ku, dy as vc, eu as Tu, c0 as Lu, ey as Pu, du as Iu, dz as jc, dM as Au, bh as Ou, dt as Du } from "./SessionTimeoutPopup-BK9wix5_.js";
2
- import { A as ck, a as dk, b as pk, c as uk, e as hk, f as mk, g as gk, h as xk, j as yk, m as fk, n as bk, o as $k, p as Ck, q as wk, r as Sk, s as vk, t as jk, u as kk, x as Tk, y as Lk, z as Pk, B as Ik, C as Ak, D as Ok, E as Dk, F as Ek, G as Rk, H as Nk, I as Mk, L as zk, M as Bk, N as Fk, O as Wk, P as _k, Q as Vk, R as Uk, dH as Hk, S as Kk, T as Gk, U as Yk, V as Zk, Y as Qk, $ as Jk, a0 as Xk, a1 as qk, a2 as eT, a3 as tT, a4 as oT, a5 as nT, a6 as rT, a7 as iT, a8 as sT, a9 as aT, aa as lT, ab as cT, dH as dT, ac as pT, ad as uT, ae as hT, af as mT, ag as gT, ai as xT, aj as yT, ak as fT, ao as bT, aq as $T, ar as CT, as as wT, at as ST, az as vT, aA as jT, aB as kT, aC as TT, aD as LT, aE as PT, aF as IT, aG as AT, aJ as OT, aK as DT, aL as ET, aM as RT, aN as NT, aO as MT, aP as zT, aR as BT, aU as FT, aX as WT, aY as _T, aZ as VT, b2 as UT, b3 as HT, b4 as KT, b5 as GT, b6 as YT, b7 as ZT, b8 as QT, bk as JT, bl as XT, bp as qT, bt as eL, bu as tL, bD as oL, bE as nL, bF as rL, bG as iL, bH as sL, bI as aL, bJ as lL, bK as cL, bL as dL, bM as pL, bN as uL, bO as hL, c9 as mL, ca as gL, cc as xL, ck as yL, cl as fL, cm as bL, cn as $L, cp as CL, cr as wL, cv as SL, cw as vL, cx as jL, cB as kL, cD as TL, cE as LL, cF as PL, cG as IL, cH as AL, cI as OL, cP as DL, cQ as EL, cR as RL, cS as NL, cT as ML, cU as zL, cV as BL, cW as FL, cX as WL, cY as _L, c_ as VL, aS as UL, c$ as HL, d0 as KL, d1 as GL, d2 as YL, d3 as ZL, dH as QL, d6 as JL, d4 as XL, d7 as qL, da as eP, db as tP, dc as oP, dd as nP, de as rP, df as iP, dg as sP, dh as aP, dj as lP, dk as cP, dl as dP, dm as pP, dD as uP, dF as hP, dG as mP, dT as gP, dV as xP, dY as yP, d_ as fP, eE as bP, eF as $P, eG as CP, eI as wP, eM as SP, eO as vP, eP as jP, eQ as kP, eR as TP, eS as LP, eT as PP, eU as IP, eV as AP, eW as OP, eX as DP, eY as EP, eZ as RP, e_ as NP, e$ as MP, f0 as zP, f1 as BP, f2 as FP, f3 as WP, f4 as _P, f5 as VP, f8 as UP, f9 as HP, fa as KP, fb as GP, fc as YP, fd as ZP, fe as QP, ff as JP, fg as XP, fh as qP, fi as eI, fj as tI, fk as oI, fl as nI, fm as rI, fn as iI, fo as sI, fp as aI, fq as lI, fr as cI, fs as dI, ft as pI, fu as uI, fv as hI, fy as mI, fz as gI, fA as xI, fC as yI, fF as fI, fH as bI, fI as $I, fJ as CI, fM as wI, fN as SI, fR as vI, fS as jI, fU as kI, fV as TI, fW as LI, g1 as PI, g5 as II, g9 as AI, ga as OI, gb as DI, gi as EI, gj as RI, gk as NI, gl as MI, go as zI, gp as BI, gq as FI, gr as WI, gs as _I, gt as VI, gu as UI, gw as HI, gx as KI, gy as GI, gA as YI, gD as ZI, gE as QI, gF as JI, gG as XI, gH as qI, gI as eA, gK as tA, gL as oA, gO as nA, gT as rA, gU as iA, gW as sA, gX as aA, gY as lA, gZ as cA, g_ as dA, g$ as pA, h0 as uA, h1 as hA, h4 as mA, h5 as gA } from "./SessionTimeoutPopup-BK9wix5_.js";
3
- import { ai as t, D as Eu, a1 as Ru, aH as Ve, q as $n, O as rt, L as Nu, s as Mu, T as zu, o as ri, f as Xt, h as ye, aD as po, i as Cn, aC as uo, Y as _o, m as ho, J as Vo, b as qt, V as Uo, ae as nt, I as kc, X as Bu, al as Mt, aa as Bo, aB as Fu, k as ks, C as Tc, n as Wu, d as _u, e as Ts, B as Ls, aq as Qs } from "./vendor-.pnpm-CSfLHWdE.js";
4
- import { aw as yA } from "./vendor-.pnpm-CSfLHWdE.js";
1
+ import { dE as o, gB as Ne, i as $t, fD as O, eb as It, bv as Qr, X as We, eg as Qd, fO as Jd, fY as Xd, al as I, fQ as U, dn as qd, h2 as ge, gP as lo, eL as lt, an as Ft, cd as Bs, v as wo, eD as ps, c8 as So, ed as us, es as ep, dQ as Jt, dN as De, fX as Fl, ez as Co, dp as Fs, c3 as Be, gJ as tp, aT as op, bd as Wt, aQ as np, e9 as Wl, g4 as rp, b1 as hs, J as ms, gf as ip, gg as sp, gh as ap, am as lp, co as cp, c1 as xt, ef as _l, cy as dp, d$ as Jr, ex as gs, gz as M, di as pp, bo as up, dv as be, e5 as hp, d8 as z, cz as Fe, gC as pt, dX as xs, br as Nr, dw as mp, e6 as ys, be as Xr, gn as Pe, bw as qr, e7 as Vl, ep as Ul, ek as Xn, fL as zt, eN as dt, dJ as gn, c5 as gp, c7 as Hl, ea as Kl, fZ as Pt, fB as qe, f6 as Mr, fx as xp, eJ as xn, eK as yn, l as fn, dU as Fo, c2 as ei, ee as fs, c6 as yp, eh as Gl, e8 as co, ec as Wo, a$ as Qt, fw as Ws, gc as fp, g2 as bp, g7 as $p, ej as Cp, eC as wp, eB as qn, dK as Sp, dL as bs, f_ as vp, ei as Yl, eo as Zl, en as Ql, ba as Jl, gv as jp, bX as _s, bY as $s, bS as kp, bW as Tp, bs as er, bb as bn, em as Cs, ap as Lp, ds as ti, fT as bt, dB as Xl, bV as zr, b$ as Pp, b9 as ws, bP as Ip, d9 as pn, e4 as Ap, e3 as Op, e0 as Dp, bQ as oi, dq as Vs, bT as ql, gV as Br, cA as ec, dZ as tc, fP as Ss, bR as Ep, aw as un, au as Zn, av as Qn, h3 as oc, aV as Rp, gR as Np, bf as Yt, ax as Lt, ew as vs, er as nc, dR as Mp, cb as rc, et as zp, dP as Bp, ay as Ut, gm as sr, bj as Fp, b_ as Ht, aI as ic, K as cn, cK as sc, cL as Fr, cJ as ac, by as Wp, ce as _p, dW as Vp, bz as Wr, bB as Xi, cO as Us, cM as Up, cN as Hp, bA as li, bx as ci, bC as Kp, dr as Hs, bU as Gp, bZ as Yp, cZ as Ks, aH as Zp, d as Qp, cC as Jp, e1 as Xp, dA as tr, gN as lc, gQ as cc, bi as Zt, Z as ni, _ as hn, gS as dc, g8 as pc, aW as qp, cf as eu, ct as uc, cs as tu, gd as ou, cj as _r, ah as hc, ci as nu, ch as ru, a_ as iu, cg as js, f$ as mc, bm as gc, fE as xc, k as yc, eH as fc, bn as su, w as bc, bq as $c, f7 as au, dI as lu, gM as cu, cq as du, g3 as pu, g0 as uu, W as hu, d5 as Gs, g6 as mu, eA as Cc, ge as Ys, cu as gu, c4 as xu, dO as yu, el as fu, eq as bu, e2 as $u, fG as Zs, ev as Cu, dC as wc, dx as wu, fK as Sc, b0 as Su, dS as vu, bc as ju, bg as ku, dy as vc, eu as Tu, c0 as Lu, ey as Pu, du as Iu, dz as jc, dM as Au, bh as Ou, dt as Du } from "./SessionTimeoutPopup-BnwXqvlZ.js";
2
+ import { A as ck, a as dk, b as pk, c as uk, e as hk, f as mk, g as gk, h as xk, j as yk, m as fk, n as bk, o as $k, p as Ck, q as wk, r as Sk, s as vk, t as jk, u as kk, x as Tk, y as Lk, z as Pk, B as Ik, C as Ak, D as Ok, E as Dk, F as Ek, G as Rk, H as Nk, I as Mk, L as zk, M as Bk, N as Fk, O as Wk, P as _k, Q as Vk, R as Uk, dH as Hk, S as Kk, T as Gk, U as Yk, V as Zk, Y as Qk, $ as Jk, a0 as Xk, a1 as qk, a2 as eT, a3 as tT, a4 as oT, a5 as nT, a6 as rT, a7 as iT, a8 as sT, a9 as aT, aa as lT, ab as cT, dH as dT, ac as pT, ad as uT, ae as hT, af as mT, ag as gT, ai as xT, aj as yT, ak as fT, ao as bT, aq as $T, ar as CT, as as wT, at as ST, az as vT, aA as jT, aB as kT, aC as TT, aD as LT, aE as PT, aF as IT, aG as AT, aJ as OT, aK as DT, aL as ET, aM as RT, aN as NT, aO as MT, aP as zT, aR as BT, aU as FT, aX as WT, aY as _T, aZ as VT, b2 as UT, b3 as HT, b4 as KT, b5 as GT, b6 as YT, b7 as ZT, b8 as QT, bk as JT, bl as XT, bp as qT, bt as eL, bu as tL, bD as oL, bE as nL, bF as rL, bG as iL, bH as sL, bI as aL, bJ as lL, bK as cL, bL as dL, bM as pL, bN as uL, bO as hL, c9 as mL, ca as gL, cc as xL, ck as yL, cl as fL, cm as bL, cn as $L, cp as CL, cr as wL, cv as SL, cw as vL, cx as jL, cB as kL, cD as TL, cE as LL, cF as PL, cG as IL, cH as AL, cI as OL, cP as DL, cQ as EL, cR as RL, cS as NL, cT as ML, cU as zL, cV as BL, cW as FL, cX as WL, cY as _L, c_ as VL, aS as UL, c$ as HL, d0 as KL, d1 as GL, d2 as YL, d3 as ZL, dH as QL, d6 as JL, d4 as XL, d7 as qL, da as eP, db as tP, dc as oP, dd as nP, de as rP, df as iP, dg as sP, dh as aP, dj as lP, dk as cP, dl as dP, dm as pP, dD as uP, dF as hP, dG as mP, dT as gP, dV as xP, dY as yP, d_ as fP, eE as bP, eF as $P, eG as CP, eI as wP, eM as SP, eO as vP, eP as jP, eQ as kP, eR as TP, eS as LP, eT as PP, eU as IP, eV as AP, eW as OP, eX as DP, eY as EP, eZ as RP, e_ as NP, e$ as MP, f0 as zP, f1 as BP, f2 as FP, f3 as WP, f4 as _P, f5 as VP, f8 as UP, f9 as HP, fa as KP, fb as GP, fc as YP, fd as ZP, fe as QP, ff as JP, fg as XP, fh as qP, fi as eI, fj as tI, fk as oI, fl as nI, fm as rI, fn as iI, fo as sI, fp as aI, fq as lI, fr as cI, fs as dI, ft as pI, fu as uI, fv as hI, fy as mI, fz as gI, fA as xI, fC as yI, fF as fI, fH as bI, fI as $I, fJ as CI, fM as wI, fN as SI, fR as vI, fS as jI, fU as kI, fV as TI, fW as LI, g1 as PI, g5 as II, g9 as AI, ga as OI, gb as DI, gi as EI, gj as RI, gk as NI, gl as MI, go as zI, gp as BI, gq as FI, gr as WI, gs as _I, gt as VI, gu as UI, gw as HI, gx as KI, gy as GI, gA as YI, gD as ZI, gE as QI, gF as JI, gG as XI, gH as qI, gI as eA, gK as tA, gL as oA, gO as nA, gT as rA, gU as iA, gW as sA, gX as aA, gY as lA, gZ as cA, g_ as dA, g$ as pA, h0 as uA, h1 as hA, h4 as mA, h5 as gA } from "./SessionTimeoutPopup-BnwXqvlZ.js";
3
+ import { ak as t, D as Eu, a1 as Ru, aK as Ve, q as $n, O as rt, L as Nu, s as Mu, T as zu, o as ri, f as Xt, h as ye, aG as po, i as Cn, aF as uo, Y as _o, m as ho, J as Vo, b as qt, V as Uo, ae as nt, I as kc, X as Bu, an as Mt, aa as Bo, aE as Fu, k as ks, C as Tc, n as Wu, d as _u, e as Ts, B as Ls, as as Qs } from "./vendor-.pnpm-XFVTbpbG.js";
4
+ import { az as yA } from "./vendor-.pnpm-XFVTbpbG.js";
5
5
  import * as me from "react";
6
6
  import or, { useEffect as te, useState as Y, useMemo as Ze, useCallback as oe, useContext as Qe, useRef as $e, forwardRef as kt, Fragment as Lc, memo as nr, createContext as Ho, Suspense as Vu, createElement as Pc } from "react";
7
7
  import r from "@emotion/styled";
@@ -5,3 +5,4 @@ export type LabelProps = {
5
5
  style?: React.CSSProperties;
6
6
  width?: number;
7
7
  };
8
+ export declare function validateControlWidth(value: number | string | undefined, componentName: string): void;
@@ -13,8 +13,13 @@ export interface Props {
13
13
  };
14
14
  additionalInfoLabel?: string;
15
15
  additionalLabelTooltip?: string;
16
- /** When set, overrides the default responsive width of the row. */
17
- controlWidth?: number;
16
+ /**
17
+ * When set, overrides the default responsive width of the row.
18
+ * Accepts a pixel number (e.g. `120`) or any valid CSS width string
19
+ * (e.g. `"100%"`, `"12rem"`) so the field can be embedded inside a
20
+ * fluid layout like a data-grid cell.
21
+ */
22
+ controlWidth?: number | string;
18
23
  disableCopyPaste?: boolean;
19
24
  isAdditionalInfoLabelLoading?: boolean;
20
25
  isDisabled?: DisableMode;
@@ -24,7 +24,13 @@ export interface Props {
24
24
  style?: React.CSSProperties;
25
25
  };
26
26
  additionalInfoLabel?: string;
27
- controlWidth?: number;
27
+ /**
28
+ * Overrides the default responsive width of the row. Accepts a pixel
29
+ * number (e.g. `120`) or any valid CSS width string (e.g. `"100%"`)
30
+ * so the field can be embedded inside a fluid layout like a data-grid
31
+ * cell.
32
+ */
33
+ controlWidth?: number | string;
28
34
  disableCopyPaste?: boolean;
29
35
  errorInfoLabel?: string;
30
36
  fullWidthSelect?: boolean;
@@ -0,0 +1,2 @@
1
+ export declare const FlexibleWidthProvider: import('react').Provider<boolean>;
2
+ export declare const useFlexibleWidth: () => boolean;
@@ -0,0 +1,17 @@
1
+ import { TransactionLinesJournalEntryEmptyTableProps } from './journalEntryTableTypes';
2
+ /**
3
+ * Skeleton/loading table mirroring
4
+ * `TransactionCategorizationListEmptyTable`. Mounts the real sticky
5
+ * header, N skeleton rows (via `JournalEntryTableListEmptyRow`), and a
6
+ * skeleton totals row inside a `FlexibleWidthProvider` so column
7
+ * widths match the live table.
8
+ *
9
+ * Consumed by:
10
+ * - `TransactionLinesJournalEntryTable` when `lines.length === 0`
11
+ * - Storybook stories for visual coverage of the loading state
12
+ */
13
+ export declare const TransactionLinesJournalEntryEmptyTable: ({ isAccountingClassesEnabled, showProjectField, isCompressed, isQuickViewMode, sectionId, skeletonRowCount, }: TransactionLinesJournalEntryEmptyTableProps) => import("react/jsx-runtime").JSX.Element;
14
+ /** Re-export the header height as a convenience for callers that want to size the
15
+ * skeleton table viewport (legacy parity with the categorization sibling).
16
+ */
17
+ export declare const JOURNAL_ENTRY_EMPTY_TABLE_HEADER_HEIGHT_PX = 32;
@@ -0,0 +1,2 @@
1
+ import { TransactionLinesJournalEntryTableProps } from './journalEntryTableTypes';
2
+ export default function TransactionLinesJournalEntryTable({ accountList, accountsHierarchyList, classHierarchyList, classList, isAccountingClassesEnabled, isCOTEnabled, lines, projects, searchAutoComplete, sectionId, transaction, cotTracking, isDisabled, isQuickViewMode, isUncategorizedExpenseCategoryEnabled, openTooltipId, setOpenTooltipId, uncategorizedAccounts, }: Readonly<TransactionLinesJournalEntryTableProps>): JSX.Element;
@@ -0,0 +1,23 @@
1
+ import { LineInfo } from '../../common';
2
+ /** Section id used by the new JE table form fields (matches legacy sectionId pattern). */
3
+ export declare const journalEntryTableSectionId = "journalEntryTableSection";
4
+ /** Header row height from Figma frame (px). */
5
+ export declare const JOURNAL_ENTRY_TABLE_HEADER_HEIGHT = 32;
6
+ /** Standard data-row height from Figma frame (px). */
7
+ export declare const JOURNAL_ENTRY_TABLE_ROW_HEIGHT = 48;
8
+ /** Sticky totals-row height from Figma frame (px). */
9
+ export declare const JOURNAL_ENTRY_TABLE_TOTALS_HEIGHT = 32;
10
+ /** Compressed (quick-view / small window) row height. */
11
+ export declare const JOURNAL_ENTRY_TABLE_ROW_HEIGHT_COMPACT = 48;
12
+ /**
13
+ * Row height resolver. Today every row is the same height; isolating
14
+ * this here so a future Update-all expansion can return a larger height
15
+ * for the affected row without touching `react-window` wiring.
16
+ */
17
+ export declare const getJournalEntryTableRowHeight: (_line: LineInfo) => number;
18
+ /** Column keys used to address cells, sort, and width lookups. */
19
+ export declare const JOURNAL_ENTRY_COLUMN_KEYS: readonly ["description", "name", "category", "class", "project", "debit", "credit"];
20
+ export type JournalEntryColumnKey = (typeof JOURNAL_ENTRY_COLUMN_KEYS)[number];
21
+ /** Compressed (quick-view / mobile) columns. */
22
+ export declare const JOURNAL_ENTRY_COMPRESSED_COLUMN_KEYS: readonly ["description", "amount"];
23
+ export type JournalEntryCompressedColumnKey = (typeof JOURNAL_ENTRY_COMPRESSED_COLUMN_KEYS)[number];
@@ -0,0 +1,11 @@
1
+ import { JournalEntryRowSortConfig, JournalEntrySortKey, SortOrder } from '@zeniai/client-epic-state';
2
+ import { DisableMode } from '../../../../formElements/common/common';
3
+ export interface JournalEntryTableHeaderProps {
4
+ isAccountingClassesEnabled: boolean;
5
+ showProjectField: boolean;
6
+ sortConfig: JournalEntryRowSortConfig;
7
+ isCompressed?: boolean;
8
+ isDisabled?: DisableMode;
9
+ onColumnSortConfigChanged?: (sortKey: JournalEntrySortKey, sortOrder: SortOrder) => void;
10
+ }
11
+ export declare const JournalEntryTableHeader: ({ sortConfig, isAccountingClassesEnabled, showProjectField, isCompressed, isDisabled, onColumnSortConfigChanged, }: JournalEntryTableHeaderProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,28 @@
1
+ import { JournalEntryRowSortConfig, JournalEntrySortKey, SortOrder } from '@zeniai/client-epic-state';
2
+ import { ResponsiveSized } from '../../../../../context/windowSizeProvider';
3
+ import { JournalEntryColumnKey, JournalEntryCompressedColumnKey } from '../common';
4
+ /** Header row height (Figma frame). */
5
+ export declare const DEFAULT_LIST_HEADER_HEIGHT_REGULAR = 32;
6
+ /** Default sort the table opens with. Re-exposed here for header convenience. */
7
+ export declare const journalEntryDefaultSortConfig: JournalEntryRowSortConfig;
8
+ /**
9
+ * Header item shape (mirrors `transactionCategorizationHeaderItemsData.ts`
10
+ * but typed for the JE column key union).
11
+ */
12
+ export interface JournalEntryRowHeaderItemData {
13
+ customStyle: {
14
+ cellStyle?: React.CSSProperties;
15
+ common?: React.CSSProperties;
16
+ quickView?: React.CSSProperties;
17
+ };
18
+ key: JournalEntryColumnKey | JournalEntryCompressedColumnKey;
19
+ /** Default direction applied when the column is freshly clicked. */
20
+ sortOrder: SortOrder;
21
+ value: string;
22
+ /** Fixed-pixel widths per breakpoint. */
23
+ width: ResponsiveSized;
24
+ /** Percentage of the content area (0–100) used when the table fits the viewport. */
25
+ widthPercentage: number;
26
+ }
27
+ export type JournalEntryRowSortConfigType = JournalEntryRowSortConfig;
28
+ export type JournalEntryRowSortKey = JournalEntrySortKey;
@@ -0,0 +1,16 @@
1
+ import { ResponsiveSized } from '../../../../../context/windowSizeProvider';
2
+ import { JournalEntryRowHeaderItemData } from './journalEntryHeaderConfig';
3
+ /**
4
+ * Column order matches the Figma frame "JE hover" (5177:12455):
5
+ * Name | Category | Class | Description | Debit | Credit.
6
+ *
7
+ * Project is appended after Class only when `showProjectField` is true;
8
+ * the base Figma frame does not include it.
9
+ */
10
+ export declare const getJournalEntryTableHeaderItemsData: (isAccountingClassesEnabled?: boolean, showProjectField?: boolean) => JournalEntryRowHeaderItemData[];
11
+ /**
12
+ * Compressed (quick-view / small window) header list — single Description
13
+ * column with a merged Amount column whose value prefixes Dr / Cr.
14
+ */
15
+ export declare const compressedJournalEntryHeaderItemsData: JournalEntryRowHeaderItemData[];
16
+ export declare const getJournalEntryTableMaxWidth: (isAccountingClassesEnabled?: boolean, showProjectField?: boolean) => ResponsiveSized;
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Outer wrapper that sits between the surrounding page and the table card,
3
+ * providing the breathing room called out in the Figma frame (node
4
+ * 5177:12455). Padding (`sp3 sp5` = 16px / 32px) and the `grey4`
5
+ * page-tinted background are applied in both full view AND quick view so
6
+ * the table card has the same surrounding chrome in the side panel as
7
+ * on the full detail page. Quick view additionally fills the panel's
8
+ * vertical space (`height: 100%`) so the inner scroll container can
9
+ * scroll.
10
+ */
11
+ export declare const TableWrapperContainer: import('@emotion/styled').StyledComponent<{
12
+ theme?: import('@emotion/react').Theme;
13
+ as?: React.ElementType;
14
+ } & {
15
+ $isQuickViewMode?: boolean;
16
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
17
+ /**
18
+ * Bordered, rounded "card" that frames the JE table. In quick view (side
19
+ * panel) it stretches to the parent drawer's height so the inner scroll
20
+ * container can scroll. In full view (transaction detail page) it sizes to
21
+ * content so the page itself owns the vertical scroll. The card chrome
22
+ * (border + radius + grey5 background) is always-on to match the Missing
23
+ * Receipts / Transaction Categorization pattern.
24
+ *
25
+ * Note: we intentionally do NOT apply `overflow: hidden` here because that
26
+ * would establish a scroll container and break the page-relative
27
+ * `position: sticky` behavior of the header and totals row. The inner
28
+ * `StickyHeaderContainer` and `StickyTotalsRow` each carry matching
29
+ * `border-*-radius` so they sit flush against the card's rounded corners.
30
+ */
31
+ export declare const ListViewContainer: import('@emotion/styled').StyledComponent<{
32
+ theme?: import('@emotion/react').Theme;
33
+ as?: React.ElementType;
34
+ } & {
35
+ $isQuickViewMode?: boolean;
36
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
37
+ /**
38
+ * Horizontal scroll container shared by the populated and empty tables.
39
+ * Vertical overflow is left to the page (or the side-panel drawer in quick
40
+ * view) so the table doesn't introduce a scroll-within-scroll experience.
41
+ */
42
+ export declare const TableScrollContainer: import('@emotion/styled').StyledComponent<{
43
+ theme?: import('@emotion/react').Theme;
44
+ as?: React.ElementType;
45
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
46
+ /**
47
+ * Inner flex column that holds the sticky header, the rows, and the sticky
48
+ * totals row. Keeping `display: flex; flex-direction: column;` allows the
49
+ * `position: sticky` header / footer to pin against this scrolling parent.
50
+ */
51
+ export declare const TableScrollContent: import('@emotion/styled').StyledComponent<{
52
+ theme?: import('@emotion/react').Theme;
53
+ as?: React.ElementType;
54
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
55
+ /**
56
+ * Per-row wrapper used by both the populated table and the skeleton/empty
57
+ * table. Carries the standard JE row height and the bottom separator.
58
+ */
59
+ export declare const RowWrapper: import('@emotion/styled').StyledComponent<{
60
+ theme?: import('@emotion/react').Theme;
61
+ as?: React.ElementType;
62
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
63
+ /**
64
+ * Sticky wrapper that pins the JE header to the top of the scroll container.
65
+ * Visual chrome (background fill, border-bottom, top-corner radius) lives on
66
+ * the inner `HeaderContainer` inside `JournalEntryTableHeader` so the header
67
+ * matches the Figma "Table Row" component (frame 5177:12461) on its own and
68
+ * renders correctly in isolation (e.g. in stories) — this wrapper now owns
69
+ * only the positioning concern.
70
+ */
71
+ export declare const StickyHeaderContainer: import('@emotion/styled').StyledComponent<{
72
+ theme?: import('@emotion/react').Theme;
73
+ as?: React.ElementType;
74
+ } & {
75
+ isQuickViewMode?: boolean;
76
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
77
+ /**
78
+ * Sticky totals row pinned to the bottom of the scroll container. Implements
79
+ * the 32px Figma footer (frame 5177:12750) which fills with the
80
+ * `Light Theme Colors/Background` token (#F3F7F7) -- mapped to
81
+ * `theme.colors.background` in our palette. (Earlier `grey3` / #E9F0F0
82
+ * was a slightly greener, darker tint that didn't match the design.)
83
+ *
84
+ * No `border-top` here: the last `RowWrapper` above already paints a
85
+ * `border-bottom` (because the totals row is the actual `:last-child` of
86
+ * the scroll content, so the data row above it is not). Adding a
87
+ * `border-top` here would stack on top of that and render a 2px double
88
+ * border between the last data row and the totals row.
89
+ */
90
+ export declare const StickyTotalsRow: import('@emotion/styled').StyledComponent<{
91
+ theme?: import('@emotion/react').Theme;
92
+ as?: React.ElementType;
93
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
94
+ export declare const RowFlex: import('@emotion/styled').StyledComponent<{
95
+ theme?: import('@emotion/react').Theme;
96
+ as?: React.ElementType;
97
+ } & {
98
+ isHovered?: boolean;
99
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
100
+ export declare const HeaderRowFlex: import('@emotion/styled').StyledComponent<{
101
+ theme?: import('@emotion/react').Theme;
102
+ as?: React.ElementType;
103
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
104
+ /**
105
+ * Inline "Dr"/"Cr" prefix shown to the left of the amount field in
106
+ * debit/credit cells. Color and weight follow the Figma greyMid label.
107
+ */
108
+ export declare const AmountPrefix: import('@emotion/styled').StyledComponent<{
109
+ theme?: import('@emotion/react').Theme;
110
+ as?: React.ElementType;
111
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
112
+ /**
113
+ * Static "—" placeholder shown when a line is not posted on this
114
+ * side (e.g. a "credit" row's "debit" cell).
115
+ */
116
+ export declare const EmptyAmountCellPlaceholder: import('@emotion/styled').StyledComponent<{
117
+ theme?: import('@emotion/react').Theme;
118
+ as?: React.ElementType;
119
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
@@ -0,0 +1,79 @@
1
+ import { AccountBase, ClassBase, ID, NestedAccountHierarchyForReport, NestedClassHierarchyForReport, Project, TransactionLineRecommendationFieldTypes, TransactionWithCOT, UncategorizedAccounts } from '@zeniai/client-epic-state';
2
+ import { COTTrackingProps } from '../../../../types/cotTracking';
3
+ import { DisableMode } from '../../../formElements/common/common';
4
+ import { LineInfo, SearchAutoComplete } from '../../common';
5
+ import { JournalEntryRowHeaderItemData } from './header/journalEntryHeaderConfig';
6
+ /**
7
+ * Public props for the new JE table entry component.
8
+ *
9
+ * This is a deliberate subset of the legacy `TransactionLinesJournalEntry`
10
+ * prop shape. The call site in `TransactionDetailContent` spreads a single
11
+ * `sharedProps` object into either component, and TypeScript allows the
12
+ * spread to carry extra fields that this component does not consume. As
13
+ * new features (inline edit, book-close enforcement, project column, etc.)
14
+ * land on the table view, add the corresponding props back here.
15
+ */
16
+ export interface TransactionLinesJournalEntryTableProps {
17
+ accountList: AccountBase[];
18
+ accountsHierarchyList: NestedAccountHierarchyForReport[];
19
+ classHierarchyList: NestedClassHierarchyForReport[];
20
+ classList: ClassBase[];
21
+ isAccountingClassesEnabled: boolean;
22
+ isCOTEnabled: boolean;
23
+ lines: LineInfo[];
24
+ projects: Project[];
25
+ searchAutoComplete: SearchAutoComplete;
26
+ sectionId: string;
27
+ transaction: TransactionWithCOT;
28
+ cotTracking?: COTTrackingProps;
29
+ isDisabled?: DisableMode;
30
+ isQuickViewMode?: boolean;
31
+ isUncategorizedExpenseCategoryEnabled?: boolean;
32
+ openTooltipId?: ID;
33
+ uncategorizedAccounts?: UncategorizedAccounts;
34
+ setOpenTooltipId?: (tooltipId: ID | undefined) => void;
35
+ }
36
+ /**
37
+ * Props for the skeleton/loading empty table that mirrors the
38
+ * `TransactionCategorizationListEmptyTable` shape.
39
+ */
40
+ export interface TransactionLinesJournalEntryEmptyTableProps {
41
+ isAccountingClassesEnabled: boolean;
42
+ showProjectField: boolean;
43
+ isCompressed?: boolean;
44
+ isQuickViewMode?: boolean;
45
+ sectionId?: string;
46
+ skeletonRowCount?: number;
47
+ }
48
+ /** Props for the inline list-row component. */
49
+ export interface JournalEntryTableListRowProps {
50
+ accountList: AccountBase[];
51
+ accountsHierarchyList: NestedAccountHierarchyForReport[];
52
+ classHierarchyList: NestedClassHierarchyForReport[];
53
+ classList: ClassBase[];
54
+ columns: JournalEntryRowHeaderItemData[];
55
+ isCompressed: boolean;
56
+ isCOTEnabled: boolean;
57
+ line: LineInfo;
58
+ lineIndex: number;
59
+ projects: Project[];
60
+ sectionId: string;
61
+ isDisabled?: DisableMode;
62
+ isUncategorizedExpenseCategoryEnabled?: boolean;
63
+ openTooltipId?: ID;
64
+ searchAutoComplete?: SearchAutoComplete;
65
+ /**
66
+ * Transaction id used by the inline `RecommendationIcon` to build a
67
+ * unique tooltip identifier. Optional so existing callers don't break;
68
+ * when missing the row falls back to `line.id`.
69
+ */
70
+ transactionId?: ID;
71
+ uncategorizedAccounts?: UncategorizedAccounts;
72
+ onCOTView?: (fieldType: TransactionLineRecommendationFieldTypes, recommendationSource?: string) => void;
73
+ setOpenTooltipId?: (tooltipId: ID | undefined) => void;
74
+ }
75
+ /** Props for the skeleton row mounted by the empty table. */
76
+ export interface JournalEntryTableListEmptyRowProps {
77
+ columns: JournalEntryRowHeaderItemData[];
78
+ isCompressed: boolean;
79
+ }
@@ -0,0 +1,40 @@
1
+ import { CSSProperties } from 'react';
2
+ import { WindowSize } from '../../../../../context/windowSizeProvider/WindowSizeProvider';
3
+ import { ResponsiveSized } from '../../../../../context/windowSizeProvider/responsiveSize';
4
+ import { JournalEntryTableListEmptyRowProps, JournalEntryTableListRowProps } from '../journalEntryTableTypes';
5
+ /**
6
+ * Single populated row of the JE table. Iterates the `columns` array
7
+ * from the header and renders the matching inline cell JSX (no per-cell
8
+ * function abstraction -- mirrors categorization's "one big switch"
9
+ * pattern at TransactionCategorizationListRow.tsx ~L1096-L1710 so a
10
+ * reviewer can diff the two row files column-by-column).
11
+ */
12
+ export declare const JournalEntryTableListRow: ({ accountList: _accountList, accountsHierarchyList, classHierarchyList, classList: _classList, columns, isCOTEnabled, isCompressed, isDisabled, isUncategorizedExpenseCategoryEnabled, line, lineIndex, onCOTView, openTooltipId, projects, searchAutoComplete, sectionId, setOpenTooltipId, transactionId, uncategorizedAccounts, }: JournalEntryTableListRowProps) => import("react/jsx-runtime").JSX.Element;
13
+ /**
14
+ * Skeleton row consumed by `TransactionLinesJournalEntryEmptyTable`. Uses
15
+ * the same `RowItemContainer` as the live row so column widths line up
16
+ * 1:1, mirroring categorization's `TransactionCategorizationListEmptyRow`
17
+ * (TransactionCategorizationListRow.tsx ~L2521-L2606).
18
+ */
19
+ export declare const JournalEntryTableListEmptyRow: ({ columns, isCompressed, }: JournalEntryTableListEmptyRowProps) => import("react/jsx-runtime").JSX.Element;
20
+ declare const RowItemContainerStyled: import('@emotion/styled').StyledComponent<{
21
+ theme?: import('@emotion/react').Theme;
22
+ as?: React.ElementType;
23
+ } & {
24
+ $widthPercentage: number;
25
+ windowSize: WindowSize;
26
+ wrapperWidth: ResponsiveSized;
27
+ $flexibleWidth?: boolean;
28
+ isCompressed?: boolean;
29
+ isDividerColumn?: boolean;
30
+ isLastItem?: boolean;
31
+ isSticky?: boolean;
32
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
33
+ /**
34
+ * Exported so the sticky totals row can render column-aligned cells using
35
+ * the same width contract as the live row.
36
+ */
37
+ export declare const RowItemContainer: (props: Omit<React.ComponentProps<typeof RowItemContainerStyled>, "$flexibleWidth" | "$widthPercentage"> & {
38
+ widthPercentage: number;
39
+ }) => import("react/jsx-runtime").JSX.Element;
40
+ export type { CSSProperties as _CellStyle };
@@ -0,0 +1,21 @@
1
+ import { WindowSize } from '../../../../../context/windowSizeProvider/WindowSizeProvider';
2
+ import { LineInfo } from '../../../common';
3
+ import { JournalEntryRowHeaderItemData } from '../header/journalEntryHeaderConfig';
4
+ export interface JournalEntryTotalsRowProps {
5
+ columns: JournalEntryRowHeaderItemData[];
6
+ isCompressed: boolean;
7
+ lines: LineInfo[];
8
+ sectionId: string;
9
+ windowSize: WindowSize;
10
+ }
11
+ /**
12
+ * Sticky totals row pinned to the bottom of the table.
13
+ *
14
+ * Layout (Figma frame 5177:12455 totals row 5177:12750):
15
+ * [Total label flex-grow] [Debit total 140px right] [Credit total 116px right]
16
+ *
17
+ * In compressed (quick view / small) mode we collapse to a single line
18
+ * showing Total Debits / Total Credits with a divider, matching the
19
+ * quick-view spec.
20
+ */
21
+ export declare const JournalEntryTotalsRow: ({ columns, isCompressed, lines, sectionId, windowSize, }: JournalEntryTotalsRowProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Re-export the JE table's `FlexibleWidthContext` so the non-JE table
3
+ * shares a single source of truth for the flexible-vs-fixed-width column
4
+ * convention. Keeps the contract one place to evolve.
5
+ */
6
+ export { FlexibleWidthProvider, useFlexibleWidth, } from '../journalEntryTable/FlexibleWidthContext';
@@ -0,0 +1,11 @@
1
+ import { TransactionLinesEmptyTableProps } from './transactionLineTableTypes';
2
+ /**
3
+ * Skeleton/loading table that mirrors `TransactionLinesJournalEntryEmptyTable`
4
+ * but without the totals row (per Figma 5240:7220 + the explicit "no totals
5
+ * row" requirement for non-JE transactions). Mounts the real sticky
6
+ * header and N skeleton rows inside a `FlexibleWidthProvider` so column
7
+ * widths match the live table.
8
+ */
9
+ export declare const TransactionLinesEmptyTable: ({ isAccountingClassesEnabled, showProjectField, isCompressed, isQuickViewMode, sectionId, skeletonRowCount, }: TransactionLinesEmptyTableProps) => import("react/jsx-runtime").JSX.Element;
10
+ /** Re-export the header height for callers sizing the empty viewport. */
11
+ export declare const TRANSACTION_LINE_EMPTY_TABLE_HEADER_HEIGHT_PX = 32;
@@ -0,0 +1,17 @@
1
+ import { TransactionLinesTableProps } from './transactionLineTableTypes';
2
+ /**
3
+ * Tabular view of non-journal-entry transaction lines (vendor / deposit
4
+ * today; customer/product-service kept on the legacy card view).
5
+ *
6
+ * Mirrors `TransactionLinesJournalEntryTable` minus:
7
+ * - the per-row vendor / payee dropdown (the parent transaction
8
+ * header owns vendor selection)
9
+ * - the debit/credit posting split (a single right-aligned amount
10
+ * column replaces them)
11
+ * - the sticky totals row at the bottom (per Figma 5240:7220 and the
12
+ * explicit "no totals row" requirement)
13
+ *
14
+ * The bottom-rounded corners are owned by the last `RowWrapper` since
15
+ * there is nothing else following it inside the card.
16
+ */
17
+ export default function TransactionLinesTable({ accountList, accountsHierarchyList, classHierarchyList, classList, containerRef: _containerRef, isAccountingClassesEnabled, isAccountingProjectsEnabled: _isAccountingProjectsEnabled, isCOTEnabled, isProjectsTransactionsEnabled: _isProjectsTransactionsEnabled, lines, projects, searchAutoComplete, sectionId, transaction, bookCloseDate: _bookCloseDate, cotTracking, entityId: _entityId, isDisabled, isQuickViewMode, isUncategorizedExpenseCategoryEnabled, openTooltipId, setOpenTooltipId, uncategorizedAccounts, lineItemsLocalData: _lineItemsLocalData, }: Readonly<TransactionLinesTableProps>): JSX.Element;
@@ -0,0 +1,32 @@
1
+ import { LineInfo } from '../../common';
2
+ /**
3
+ * Section id used by the new non-journal-entry transaction line table
4
+ * form fields. Mirrors `journalEntryTableSectionId` so caller wiring is
5
+ * symmetric across the two tables.
6
+ */
7
+ export declare const transactionLineTableSectionId = "transactionLineTableSection";
8
+ /** Header row height from Figma frame 5240:7220 (px). */
9
+ export declare const TRANSACTION_LINE_TABLE_HEADER_HEIGHT = 32;
10
+ /** Standard data-row height from Figma frame 5240:7220 (px). */
11
+ export declare const TRANSACTION_LINE_TABLE_ROW_HEIGHT = 48;
12
+ /** Compressed (quick-view / small window) row height. */
13
+ export declare const TRANSACTION_LINE_TABLE_ROW_HEIGHT_COMPACT = 48;
14
+ /**
15
+ * Row height resolver. Today every row is the same height; isolating
16
+ * this here so a future Update-all expansion can return a larger height
17
+ * for the affected row without touching `react-window` wiring.
18
+ */
19
+ export declare const getTransactionLineTableRowHeight: (_line: LineInfo) => number;
20
+ /**
21
+ * Column keys used to address cells, sort, and width lookups.
22
+ *
23
+ * Differences vs. the journal-entry table:
24
+ * - no `name` column (the vendor / payee is rendered once at the
25
+ * transaction header, not per line)
26
+ * - no `debit` / `credit` split — a single `amount` column replaces them
27
+ */
28
+ export declare const TRANSACTION_LINE_COLUMN_KEYS: readonly ["description", "category", "class", "project", "amount"];
29
+ export type TransactionLineColumnKey = (typeof TRANSACTION_LINE_COLUMN_KEYS)[number];
30
+ /** Compressed (quick-view / mobile) columns. */
31
+ export declare const TRANSACTION_LINE_COMPRESSED_COLUMN_KEYS: readonly ["description", "amount"];
32
+ export type TransactionLineCompressedColumnKey = (typeof TRANSACTION_LINE_COMPRESSED_COLUMN_KEYS)[number];
@@ -0,0 +1,12 @@
1
+ import { SortOrder } from '@zeniai/client-epic-state';
2
+ import { DisableMode } from '../../../../formElements/common/common';
3
+ import { TransactionLineRowSortConfig, TransactionLineSortKey } from './transactionLineHeaderConfig';
4
+ export interface TransactionLineTableHeaderProps {
5
+ isAccountingClassesEnabled: boolean;
6
+ showProjectField: boolean;
7
+ sortConfig: TransactionLineRowSortConfig;
8
+ isCompressed?: boolean;
9
+ isDisabled?: DisableMode;
10
+ onColumnSortConfigChanged?: (sortKey: TransactionLineSortKey, sortOrder: SortOrder) => void;
11
+ }
12
+ export declare const TransactionLineTableHeader: ({ sortConfig, isAccountingClassesEnabled, showProjectField, isCompressed, isDisabled, onColumnSortConfigChanged, }: TransactionLineTableHeaderProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,40 @@
1
+ import { SortOrder } from '@zeniai/client-epic-state';
2
+ import { ResponsiveSized } from '../../../../../context/windowSizeProvider';
3
+ import { TransactionLineColumnKey, TransactionLineCompressedColumnKey } from '../common';
4
+ /** Header row height (Figma frame 5240:7220). */
5
+ export declare const DEFAULT_LIST_HEADER_HEIGHT_REGULAR = 32;
6
+ /** Sort key union for the non-JE transaction line table. */
7
+ export type TransactionLineSortKey = "description" | "category" | "class" | "amount";
8
+ export interface TransactionLineRowSortConfig {
9
+ sortKey: TransactionLineSortKey;
10
+ sortOrder: SortOrder;
11
+ }
12
+ /** Default sort the table opens with (mirrors the JE default). */
13
+ export declare const transactionLineDefaultSortConfig: TransactionLineRowSortConfig;
14
+ /**
15
+ * Header item shape (mirrors `journalEntryHeaderConfig.ts` but typed
16
+ * for the non-JE column key union).
17
+ */
18
+ export interface TransactionLineRowHeaderItemData {
19
+ customStyle: {
20
+ cellStyle?: React.CSSProperties;
21
+ common?: React.CSSProperties;
22
+ quickView?: React.CSSProperties;
23
+ };
24
+ key: TransactionLineColumnKey | TransactionLineCompressedColumnKey;
25
+ /** Default direction applied when the column is freshly clicked. */
26
+ sortOrder: SortOrder;
27
+ value: string;
28
+ /** Fixed-pixel widths per breakpoint. */
29
+ width: ResponsiveSized;
30
+ /** Percentage of the content area (0–100) used when the table fits the viewport. */
31
+ widthPercentage: number;
32
+ }
33
+ /**
34
+ * Convenience narrowing helper used by the header click handler. The
35
+ * compressed `amount` key is also sortable but the compressed view does
36
+ * not show sort affordances, so this helper covers full-view sortable
37
+ * keys only.
38
+ */
39
+ export declare const isSortableKey: (key: string) => key is TransactionLineSortKey;
40
+ export declare const toTransactionLineSortKey: (key: string) => TransactionLineSortKey;