@factorialco/f0-react 8.37.0 → 9.1.0

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 (32) hide show
  1. package/dist/{ChatPdfThumbnail-D17gaAZw.js → ChatPdfThumbnail-Ch2Pi_N2.js} +1 -1
  2. package/dist/{ChatPostComposerDialog-Dzcwl3UT.js → ChatPostComposerDialog-CW24c9tS.js} +3 -3
  3. package/dist/{MapProvider-DrUuwDLP.js → CoachmarkProvider-BXGXfIw-.js} +1912 -1913
  4. package/dist/{DocumentToolbar-BF90Kcrb.js → DocumentToolbar-Bp9iCtUO.js} +2 -2
  5. package/dist/{DocxViewer-DXUC2CUW.js → DocxViewer-CKrXuvnB.js} +2 -2
  6. package/dist/{F0AiProcessingOverlay-DTsO9rEl.js → F0AiProcessingOverlay-SFLE4xoa.js} +1 -1
  7. package/dist/{F0CanvasPanel-kbwLvapQ.js → F0CanvasPanel-D25Wuumh.js} +19534 -19534
  8. package/dist/{F0DocumentViewer-Bk7ciWZW.js → F0DocumentViewer-BXlup6dL.js} +4 -4
  9. package/dist/{F0Map-B_XG6Txo.js → F0Map-B9_jeX3R.js} +13 -13
  10. package/dist/{F0VideoPlayer-Cdq6rTqq.js → F0VideoPlayer-VJSe0ziC.js} +2 -2
  11. package/dist/{SheetViewer-DgLdv4qf.js → SheetViewer-BO9MbbYR.js} +3 -3
  12. package/dist/{TextViewer-7qYfyanJ.js → TextViewer-B7B947JZ.js} +2 -2
  13. package/dist/ai.d.ts +45 -44
  14. package/dist/ai.js +2 -2
  15. package/dist/component-status.d.ts +17 -17
  16. package/dist/component-status.js +43 -43
  17. package/dist/{experimental-B_Hvv6tU.js → experimental-Do9KcVJp.js} +610 -610
  18. package/dist/experimental.d.ts +72 -68
  19. package/dist/experimental.js +28 -28
  20. package/dist/f0.d.ts +117 -102
  21. package/dist/f0.js +7863 -7778
  22. package/dist/i18n-provider-defaults.d.ts +17 -17
  23. package/dist/index-Bt9_3eC1.js +4 -0
  24. package/dist/{index-QJVt3QQ2.js → index-C66JSsii.js} +1 -1
  25. package/dist/{index-HEb5Ocnl.js → index-C95Ox1WO.js} +15 -15
  26. package/dist/{index-BQthngzU.js → index-W5BBvrFa.js} +2 -2
  27. package/dist/index-a7A0EHsJ.js +8 -0
  28. package/dist/{pdfWorker-CX_u28dQ.js → pdfWorker-Bi4FxYtY.js} +2 -2
  29. package/package.json +4 -4
  30. package/dist/index-BGG-4WaL.js +0 -4
  31. package/dist/index-CzPx-LpF.js +0 -8
  32. /package/dist/{MapProvider.css → CoachmarkProvider.css} +0 -0
@@ -1,11 +1,11 @@
1
1
  import { jsx as m, jsxs as R, Fragment as We } from "react/jsx-runtime";
2
2
  import * as qe from "react";
3
3
  import oe, { useRef as L, useState as J, useCallback as K, useEffect as ie, useContext as ht, useMemo as X, createContext as Ft, forwardRef as Qe, useLayoutEffect as Lt, memo as Mt, useReducer as kz, cloneElement as iO, PureComponent as cd, useId as mi, useImperativeHandle as ia, Fragment as Hf, createElement as Im, isValidElement as _z, Suspense as Sz, lazy as Cz, useDebugValue as rO, version as N4, createRef as oO, useSyncExternalStore as A4 } from "react";
4
- import { fb as T4, fc as Ju, fd as Ez, cU as sO, fe as Nz, ff as Az, fg as Tz, fh as Dv, fi as Oz, fj as Iz, fk as Dz, fl as Mz, fm as Pz, fn as Rz, fo as Lz, a8 as it, fp as aO, fq as Fz, co as Vt, aL as Zu, aM as dd, aw as $z, ax as Bz, cW as go, E as $t, G as ii, H as fd, dn as Pk, eC as Rk, eD as Dm, S as Be, fr as lO, eE as Lk, u as Re, v as st, bm as Qu, cr as xc, bu as Fy, r as Fk, c_ as zz, cD as cO, cX as jz, dk as Hz, ea as dO, z as De, a_ as eh, fs as Vz, b6 as Wz, b7 as Uz, ft as qz, cy as fO, dO as uO, fu as hO, df as pO, fv as Kz, fw as Gz, fx as _a, fy as zt, fz as Ni, fA as mO, fB as Yz, fC as gO, fD as Xz, fE as Xn, fF as $y, fG as pn, fH as yO, fI as By, fJ as $k, fK as Bk, fL as zk, fM as Wn, fN as Ci, fO as Vb, fP as zy, fQ as Jz, fR as ai, fS as $o, fT as ki, fU as gl, fV as jk, fW as jy, fX as Yp, fY as Hy, eH as Hk, fZ as Zz, f_ as Xh, f$ as Mm, g0 as Qz, g1 as ej, g2 as tj, g3 as nj, g4 as ij, g5 as rj, g6 as vO, g7 as bO, g8 as wO, g9 as xO, ga as kO, gb as oj, gc as Pm, gd as sj, ge as aj, gf as th, gg as ra, d2 as Jo, gh as Vk, gi as Wo, gj as _O, d3 as SO, gk as lj, gl as cj, d0 as dj, gm as fj, d1 as uj, dq as li, gn as ci, go as hj, gp as pj, gq as mj, gr as gj, gs as yj, gt as Wb, gu as vj, a9 as CO, gv as EO, eB as _r, a7 as Jt, eU as bj, dw as mr, cn as ud, da as Xa, ao as nh, ap as wj, dN as xj, gw as NO, gx as AO, o as TO, af as is, i as hd, eF as OO, cK as IO, cL as Wk, a6 as ih, N as Vy, eZ as $n, gy as Mv, gz as kj, dC as _j, gA as DO, gB as MO, gC as Ub, gD as Sj, gE as O4, gF as PO, ey as oa, f4 as RO, dB as LO, e$ as Wy, K as Uy, L as Uk, M as qy, f2 as Cj, l as Qn, aG as I4, aO as Ej, b0 as Nj, bz as qk, gG as FO, gH as Aj, e_ as Kk, gI as Gk, gJ as $O, gK as yl, bY as BO, cx as vl, ak as br, gL as zO, dr as Gs, ev as Tj, gM as D4, er as Yk, gN as Oj, dZ as Ij, ee as Dj, ec as Mj, gO as jO, gP as Pj, cV as Rj, gQ as Lj, gR as HO, ah as VO, gS as Fj, gT as $j, gU as Bj, gV as M4, gW as P4, gX as R4, gY as L4, gZ as zj, aE as jj, g_ as WO, dy as Hj, g$ as Vj, h0 as UO, h1 as Wj, h2 as Rm, h3 as Uj, h4 as qj, h5 as Ba, h6 as Kj, h7 as F4, h8 as Gj, h9 as Yj, ha as Lm, hb as Xj, hc as Jj, hd as Zj, he as qO, hf as Qj, hg as KO, hh as eH, hi as ti, hj as ln, hk as Ky, hl as pd, hm as GO, aI as YO, bx as tH, hn as XO, ho as nH, hp as Xk, hq as iH, O as JO, Q as ZO, U as QO, hr as rH, hs as oH, ht as $4, dX as Fm, eS as Vf, W as eI, X as tI, Z as nI, _ as iI, w as sa, cs as Hr, s as sH, x as aH, ex as lH, hu as cH, A as Gy, hv as rI, cT as Wf, hw as dH, d4 as rh, hx as fH, cQ as oh, ad as Ja, av as qb, dt as uH, du as hH, cz as oI, cA as sI, cB as aI, hy as Jk, hz as pH, d9 as lI, bS as sh, aU as rs, hA as mH, hB as gH, hC as yH, hD as Zk, ep as cI, eq as dI, aX as vH, ch as fI, dM as bH, hE as $m, hF as Do, n as wH, c5 as xH, hG as kH, e4 as _H, aT as Bm, c8 as uI, c3 as SH, J as B4, eo as CH, a$ as EH, hH as NH, hI as Yy, hJ as Xy, hK as Jy, cC as Zy, hL as AH, hM as zm, hN as TH, hO as OH, dv as IH, hP as hI, bB as Pv, hQ as DH, hR as MH, bE as PH, bK as RH, hS as z4, hT as LH, hU as j4, hV as Rv, hW as pI, a3 as mI, c4 as FH, ab as $H, j as Qk, hX as BH, hY as zH, dU as jH, k as e2, eL as HH, bX as VH, bO as WH, bw as H4, bA as t2, cd as UH, em as qH, hZ as gI, h_ as KH, m as GH, az as YH, aV as XH, c6 as JH, h$ as ZH, i0 as QH, B as eV, i1 as tV, i2 as nV, i3 as iV, cg as rV, i4 as n2, i5 as oV, i6 as sV, i7 as aV, i8 as Lv, i9 as lV, ia as Ie, ib as ah, ic as cV, id as dV, ie as fV, ig as uV, ih as V4, ii as hV, ij as jm, V as pV, ik as mV, il as Fv, im as Jh, io as gV, ip as yV, iq as vV, ir as bV, is as wV, ay as xV, c as kV, c7 as _V, Y as $v, it as lh, iu as i2, iv as r2, iw as ch, ix as SV, c1 as CV, eM as o2, eh as W4, an as EV, aj as NV, ek as AV, aB as TV, bv as OV, cf as IV, cb as DV, bo as yI, bp as vI, bq as bI, bN as wI, aK as xI, as as kI, aq as _I, at as SI, ar as CI, aQ as EI, c0 as NI, cE as AI, iy as TI, iz as MV, cP as PV, bc as RV, ba as LV, b9 as FV, b8 as $V, bb as BV, br as zV, ci as jV, cq as HV, cp as VV, ce as WV, bI as UV, bR as qV, a4 as KV, cv as GV, iA as YV, iB as Bv, iC as XV, iD as s2, iE as Fs, iF as ac, iG as OI, iH as II, cO as JV, iI as ZV, iJ as QV, iK as eW, iL as tW, cJ as nW, dW as iW, cu as rW, iM as oW } from "./F0CanvasPanel-kbwLvapQ.js";
4
+ import { fb as T4, fc as Ju, fd as Ez, cU as sO, fe as Nz, ff as Az, fg as Tz, fh as Dv, fi as Oz, fj as Iz, fk as Dz, fl as Mz, fm as Pz, fn as Rz, fo as Lz, a8 as it, fp as aO, fq as Fz, co as Vt, aL as Zu, aM as dd, aw as $z, ax as Bz, cW as go, E as $t, G as ii, H as fd, dn as Pk, eC as Rk, eD as Dm, S as Be, fr as lO, eE as Lk, u as Re, v as st, bm as Qu, cr as xc, bu as Fy, r as Fk, c_ as zz, cD as cO, cX as jz, dk as Hz, ea as dO, z as De, a_ as eh, fs as Vz, b6 as Wz, b7 as Uz, ft as qz, cy as fO, dO as uO, fu as hO, df as pO, fv as Kz, fw as Gz, fx as _a, fy as zt, fz as Ni, fA as mO, fB as Yz, fC as gO, fD as Xz, fE as Xn, fF as $y, fG as pn, fH as yO, fI as By, fJ as $k, fK as Bk, fL as zk, fM as Wn, fN as Ci, fO as Vb, fP as zy, fQ as Jz, fR as ai, fS as $o, fT as ki, fU as gl, fV as jk, fW as jy, fX as Yp, fY as Hy, eH as Hk, fZ as Zz, f_ as Xh, f$ as Mm, g0 as Qz, g1 as ej, g2 as tj, g3 as nj, g4 as ij, g5 as rj, g6 as vO, g7 as bO, g8 as wO, g9 as xO, ga as kO, gb as oj, gc as Pm, gd as sj, ge as aj, gf as th, gg as ra, d2 as Jo, gh as Vk, gi as Wo, gj as _O, d3 as SO, gk as lj, gl as cj, d0 as dj, gm as fj, d1 as uj, dq as li, gn as ci, go as hj, gp as pj, gq as mj, gr as gj, gs as yj, gt as Wb, gu as vj, a9 as CO, gv as EO, eB as _r, a7 as Jt, eU as bj, dw as mr, cn as ud, da as Xa, ao as nh, ap as wj, dN as xj, gw as NO, gx as AO, o as TO, af as is, i as hd, eF as OO, cK as IO, cL as Wk, a6 as ih, N as Vy, eZ as $n, gy as Mv, gz as kj, dC as _j, gA as DO, gB as MO, gC as Ub, gD as Sj, gE as O4, gF as PO, ey as oa, f4 as RO, dB as LO, e$ as Wy, K as Uy, L as Uk, M as qy, f2 as Cj, l as Qn, aG as I4, aO as Ej, b0 as Nj, bz as qk, gG as FO, gH as Aj, e_ as Kk, gI as Gk, gJ as $O, gK as yl, bY as BO, cx as vl, ak as br, gL as zO, dr as Gs, ev as Tj, gM as D4, er as Yk, gN as Oj, d$ as Ij, ee as Dj, ec as Mj, gO as jO, gP as Pj, cV as Rj, gQ as Lj, gR as HO, ah as VO, gS as Fj, gT as $j, gU as Bj, gV as M4, gW as P4, gX as R4, gY as L4, gZ as zj, aE as jj, g_ as WO, dy as Hj, g$ as Vj, h0 as UO, h1 as Wj, h2 as Rm, h3 as Uj, h4 as qj, h5 as Ba, h6 as Kj, h7 as F4, h8 as Gj, h9 as Yj, ha as Lm, hb as Xj, hc as Jj, hd as Zj, he as qO, hf as Qj, hg as KO, hh as eH, hi as ti, hj as ln, hk as Ky, hl as pd, hm as GO, aI as YO, bx as tH, hn as XO, ho as nH, hp as Xk, hq as iH, O as JO, Q as ZO, U as QO, hr as rH, hs as oH, ht as $4, d_ as Fm, eS as Vf, W as eI, X as tI, Z as nI, _ as iI, w as sa, cs as Hr, s as sH, x as aH, ex as lH, hu as cH, A as Gy, hv as rI, cT as Wf, hw as dH, d4 as rh, hx as fH, cQ as oh, hy as Jk, hz as uH, d9 as oI, ad as Ja, av as qb, dt as hH, du as pH, cz as sI, cA as aI, cB as lI, bS as sh, aU as rs, hA as mH, hB as gH, hC as yH, hD as Zk, ep as cI, eq as dI, aX as vH, ch as fI, dM as bH, hE as $m, hF as Do, n as wH, c5 as xH, hG as kH, e4 as _H, aT as Bm, c8 as uI, c3 as SH, J as B4, eo as CH, a$ as EH, hH as NH, hI as Yy, hJ as Xy, hK as Jy, cC as Zy, hL as AH, hM as zm, hN as TH, hO as OH, dv as IH, hP as hI, bB as Pv, hQ as DH, hR as MH, bE as PH, bK as RH, hS as z4, hT as LH, hU as j4, hV as Rv, hW as pI, a3 as mI, c4 as FH, ab as $H, j as Qk, hX as BH, hY as zH, dU as jH, k as e2, eL as HH, bX as VH, bO as WH, bw as H4, bA as t2, cd as UH, em as qH, hZ as gI, h_ as KH, m as GH, az as YH, aV as XH, c6 as JH, h$ as ZH, i0 as QH, B as eV, i1 as tV, i2 as nV, i3 as iV, cg as rV, i4 as n2, i5 as oV, i6 as sV, i7 as aV, i8 as Lv, i9 as lV, ia as Ie, ib as ah, ic as cV, id as dV, ie as fV, ig as uV, ih as V4, ii as hV, ij as jm, V as pV, ik as mV, il as Fv, im as Jh, io as gV, ip as yV, iq as vV, ir as bV, is as wV, ay as xV, c as kV, c7 as _V, Y as $v, it as lh, iu as i2, iv as r2, iw as ch, ix as SV, c1 as CV, eM as o2, eh as W4, an as EV, aj as NV, ek as AV, aB as TV, bv as OV, cf as IV, cb as DV, bo as yI, bp as vI, bq as bI, bN as wI, aK as xI, as as kI, aq as _I, at as SI, ar as CI, aQ as EI, c0 as NI, cE as AI, iy as TI, iz as MV, cP as PV, bc as RV, ba as LV, b9 as FV, b8 as $V, bb as BV, br as zV, ci as jV, cq as HV, cp as VV, ce as WV, bI as UV, bR as qV, a4 as KV, cv as GV, iA as YV, iB as Bv, iC as XV, iD as s2, iE as Fs, iF as ac, iG as OI, iH as II, cO as JV, iI as ZV, iJ as QV, iK as eW, iL as tW, cJ as nW, dZ as iW, cu as rW, iM as oW } from "./F0CanvasPanel-D25Wuumh.js";
5
5
  import { d as U, g as sW, e as di, T as dh, a as fh, b as uh, f as tn, u as a2, S as aW, c as Qy } from "./tooltip-CrXp1Uaz.js";
6
6
  import { g as hh } from "./_commonjsHelpers-ByX85dGu.js";
7
7
  import DI, { unstable_batchedUpdates as Zh, createPortal as e1, flushSync as lW } from "react-dom";
8
- import './MapProvider.css';const cW = {
8
+ import './CoachmarkProvider.css';const cW = {
9
9
  active: !0,
10
10
  breakpoints: {},
11
11
  delay: 4e3,
@@ -2516,32 +2516,7 @@ const MU = ({
2516
2516
  ) : /* @__PURE__ */ m(IU, { children: e });
2517
2517
  }, KTe = $t(
2518
2518
  ii("Carousel", MU)
2519
- ), PU = (e, t) => /* @__PURE__ */ R(
2520
- "svg",
2521
- {
2522
- xmlns: "http://www.w3.org/2000/svg",
2523
- fill: "none",
2524
- viewBox: "0 0 24 24",
2525
- ref: t,
2526
- ...e,
2527
- children: [
2528
- /* @__PURE__ */ m(
2529
- "path",
2530
- {
2531
- fill: "currentColor",
2532
- d: "M11.0004 15.35C11.3592 15.3502 11.6508 15.6415 11.6508 16.0004C11.6506 16.3591 11.3591 16.6506 11.0004 16.6508H5.00039C4.64153 16.6508 4.35021 16.3592 4.35 16.0004C4.35 15.6414 4.6414 15.35 5.00039 15.35H11.0004ZM19.0004 11.35C19.3592 11.3502 19.6508 11.6415 19.6508 12.0004C19.6506 12.3591 19.3591 12.6506 19.0004 12.6508H5.00039C4.64153 12.6508 4.35021 12.3592 4.35 12.0004C4.35 11.6414 4.6414 11.35 5.00039 11.35H19.0004ZM19.0004 7.35C19.3592 7.35021 19.6508 7.64153 19.6508 8.00039C19.6506 8.35906 19.3591 8.65057 19.0004 8.65078H5.00039C4.64153 8.65078 4.35021 8.35919 4.35 8.00039C4.35 7.6414 4.6414 7.35 5.00039 7.35H19.0004Z"
2533
- }
2534
- ),
2535
- /* @__PURE__ */ m(
2536
- "path",
2537
- {
2538
- fill: "currentColor",
2539
- d: "M16.7248 19.4251L16.7187 19.3021C16.6573 18.6987 16.1473 18.2281 15.5277 18.2281C15.2093 18.2281 14.9508 17.9696 14.9508 17.6512C14.9509 17.3726 15.1489 17.1401 15.4116 17.0864L15.5277 17.0751L15.6498 17.0691C16.2534 17.0079 16.7248 16.4978 16.7248 15.8781C16.7248 15.5597 16.9825 15.3013 17.3008 15.3012C17.6192 15.3012 17.8777 15.5596 17.8777 15.8781C17.8777 16.539 18.4138 17.0751 19.0748 17.0751C19.3929 17.0754 19.6507 17.333 19.6508 17.6512C19.6508 17.9694 19.393 18.2278 19.0748 18.2281C18.4138 18.2281 17.8777 18.7642 17.8777 19.4251L17.8656 19.5412C17.8117 19.8038 17.5793 20.0012 17.3008 20.0012C17.0224 20.0011 16.7899 19.8037 16.736 19.5412L16.7248 19.4251Z"
2540
- }
2541
- )
2542
- ]
2543
- }
2544
- ), RU = Qe(PU), UI = Ft({
2519
+ ), UI = Ft({
2545
2520
  enabled: !1,
2546
2521
  enable: () => null,
2547
2522
  disable: () => null,
@@ -2556,7 +2531,7 @@ const MU = ({
2556
2531
  if (!e)
2557
2532
  throw "usePrivacyMode requires wrapping the component in a PrivacyModeProvider";
2558
2533
  return e;
2559
- }, LU = ({ children: e }) => {
2534
+ }, PU = ({ children: e }) => {
2560
2535
  const { enabled: t } = g2();
2561
2536
  return /* @__PURE__ */ m(
2562
2537
  "div",
@@ -2580,7 +2555,32 @@ const MU = ({
2580
2555
  )
2581
2556
  }
2582
2557
  );
2583
- }, qI = Qe(
2558
+ }, RU = (e, t) => /* @__PURE__ */ R(
2559
+ "svg",
2560
+ {
2561
+ xmlns: "http://www.w3.org/2000/svg",
2562
+ fill: "none",
2563
+ viewBox: "0 0 24 24",
2564
+ ref: t,
2565
+ ...e,
2566
+ children: [
2567
+ /* @__PURE__ */ m(
2568
+ "path",
2569
+ {
2570
+ fill: "currentColor",
2571
+ d: "M11.0004 15.35C11.3592 15.3502 11.6508 15.6415 11.6508 16.0004C11.6506 16.3591 11.3591 16.6506 11.0004 16.6508H5.00039C4.64153 16.6508 4.35021 16.3592 4.35 16.0004C4.35 15.6414 4.6414 15.35 5.00039 15.35H11.0004ZM19.0004 11.35C19.3592 11.3502 19.6508 11.6415 19.6508 12.0004C19.6506 12.3591 19.3591 12.6506 19.0004 12.6508H5.00039C4.64153 12.6508 4.35021 12.3592 4.35 12.0004C4.35 11.6414 4.6414 11.35 5.00039 11.35H19.0004ZM19.0004 7.35C19.3592 7.35021 19.6508 7.64153 19.6508 8.00039C19.6506 8.35906 19.3591 8.65057 19.0004 8.65078H5.00039C4.64153 8.65078 4.35021 8.35919 4.35 8.00039C4.35 7.6414 4.6414 7.35 5.00039 7.35H19.0004Z"
2572
+ }
2573
+ ),
2574
+ /* @__PURE__ */ m(
2575
+ "path",
2576
+ {
2577
+ fill: "currentColor",
2578
+ d: "M16.7248 19.4251L16.7187 19.3021C16.6573 18.6987 16.1473 18.2281 15.5277 18.2281C15.2093 18.2281 14.9508 17.9696 14.9508 17.6512C14.9509 17.3726 15.1489 17.1401 15.4116 17.0864L15.5277 17.0751L15.6498 17.0691C16.2534 17.0079 16.7248 16.4978 16.7248 15.8781C16.7248 15.5597 16.9825 15.3013 17.3008 15.3012C17.6192 15.3012 17.8777 15.5596 17.8777 15.8781C17.8777 16.539 18.4138 17.0751 19.0748 17.0751C19.3929 17.0754 19.6507 17.333 19.6508 17.6512C19.6508 17.9694 19.393 18.2278 19.0748 18.2281C18.4138 18.2281 17.8777 18.7642 17.8777 19.4251L17.8656 19.5412C17.8117 19.8038 17.5793 20.0012 17.3008 20.0012C17.0224 20.0011 16.7899 19.8037 16.736 19.5412L16.7248 19.4251Z"
2579
+ }
2580
+ )
2581
+ ]
2582
+ }
2583
+ ), LU = Qe(RU), qI = Qe(
2584
2584
  function({ bare: t = !1, ...n }, i) {
2585
2585
  return /* @__PURE__ */ m(
2586
2586
  "div",
@@ -2753,7 +2753,7 @@ const MU = ({
2753
2753
  ] })
2754
2754
  ] }),
2755
2755
  t.comment ? /* @__PURE__ */ R("div", { className: "flex flex-row items-center gap-3 overflow-visible", children: [
2756
- /* @__PURE__ */ m(LU, { children: /* @__PURE__ */ m(Vz, { children: t.comment }) }),
2756
+ /* @__PURE__ */ m(PU, { children: /* @__PURE__ */ m(Vz, { children: t.comment }) }),
2757
2757
  t.canBeBlurred ? /* @__PURE__ */ m("span", { children: /* @__PURE__ */ m(
2758
2758
  De,
2759
2759
  {
@@ -21020,1668 +21020,1668 @@ function ene({
21020
21020
  }
21021
21021
  );
21022
21022
  }
21023
- const Y2 = qe.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ m("div", { className: "relative w-full", children: /* @__PURE__ */ m(
21024
- "table",
21025
- {
21026
- ref: n,
21027
- className: U(
21028
- "w-full caption-bottom border-spacing-0 border-0 border-none text-base",
21029
- e
21030
- ),
21031
- ...t
21032
- }
21033
- ) }));
21034
- Y2.displayName = "Table";
21035
- const _M = qe.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ m(
21036
- "thead",
21037
- {
21038
- ref: n,
21039
- className: U(
21040
- "relative min-h-10 [&_tr]:hover:bg-transparent",
21041
- "before:absolute before:inset-x-0 before:top-0 before:h-px before:w-full before:bg-f1-border-secondary before:content-['']",
21042
- e
21043
- ),
21044
- ...t
21045
- }
21046
- ));
21047
- _M.displayName = "TableHeader";
21048
- const SM = qe.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ m("tbody", { ref: n, className: U("border-0", e), ...t }));
21049
- SM.displayName = "TableBody";
21050
- const CM = qe.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ m(
21051
- "tfoot",
21052
- {
21053
- ref: n,
21054
- className: U(
21055
- "bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",
21056
- e
21057
- ),
21058
- ...t
21059
- }
21060
- ));
21061
- CM.displayName = "TableFooter";
21062
- const EM = qe.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ m(
21063
- "tr",
21064
- {
21065
- ref: n,
21066
- className: U(
21067
- "group relative transition-colors after:absolute after:inset-x-0 after:bottom-0 after:h-px after:w-full after:bg-f1-border-secondary after:content-[''] hover:bg-f1-background-hover",
21068
- e
21069
- ),
21070
- ...t
21071
- }
21072
- ));
21073
- EM.displayName = "TableRow";
21074
- const NM = qe.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ m(
21075
- "th",
21076
- {
21077
- ref: n,
21078
- className: U(
21079
- "relative px-3 py-2.5 text-left align-middle font-medium text-f1-foreground-secondary first:pl-6 last:pr-6",
21080
- "after:pointer-events-none after:absolute after:inset-x-0 after:inset-y-1 after:rounded after:bg-transparent after:transition-colors after:content-[''] first:after:left-3 last:after:right-3 hover:after:bg-f1-background-hover",
21081
- "[&:has([role=checkbox])]:px-2 [&:has([role=checkbox])]:py-2 [&:has([role=checkbox])]:hover:after:bg-transparent",
21082
- e
21083
- ),
21084
- ...t
21085
- }
21086
- ));
21087
- NM.displayName = "TableHead";
21088
- const AM = qe.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ m(
21089
- "td",
21090
- {
21091
- ref: n,
21092
- className: U(
21093
- // `pb` is 1px larger than `pt` on purpose: the row paints its separator on
21094
- // its own last pixel (`after:bottom-0` on TableRow), so a symmetric `py`
21095
- // leaves content looking 1px high — the gap below it is a pixel shorter
21096
- // than the gap above once the rule is drawn over it.
21097
- "relative min-h-[48px] whitespace-nowrap px-3 pb-[9px] pt-2 align-top first:pl-6 last:pr-6",
21098
- "[&:has([role=checkbox])]:px-2",
21099
- e
21100
- ),
21101
- ...t
21102
- }
21103
- ));
21104
- AM.displayName = "TableCell";
21105
- const tne = qe.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ m(
21106
- "caption",
21107
- {
21108
- ref: n,
21109
- className: U("text-muted-foreground mt-4 text-sm", e),
21110
- ...t
21111
- }
21112
- ));
21113
- tne.displayName = "TableCaption";
21114
- function X2({ children: e }) {
21115
- return /* @__PURE__ */ m(SM, { children: e });
21023
+ function tne({ message: e, children: t }) {
21024
+ const [n, i] = J(!1), r = K(() => {
21025
+ e && i(!0);
21026
+ }, [e]), o = K(() => i(!1), []);
21027
+ return ie(() => {
21028
+ e || i(!1);
21029
+ }, [e]), /* @__PURE__ */ m("div", { className: "relative h-full w-full", children: /* @__PURE__ */ m(dh, { delayDuration: 100, disableHoverableContent: !0, children: /* @__PURE__ */ R(fh, { open: n && !!e, onOpenChange: i, children: [
21030
+ /* @__PURE__ */ m(uh, { asChild: !0, className: "pointer-events-auto h-full w-full", children: /* @__PURE__ */ m(
21031
+ "div",
21032
+ {
21033
+ className: "flex h-full w-full items-center",
21034
+ onFocusCapture: r,
21035
+ onBlurCapture: o,
21036
+ children: t
21037
+ }
21038
+ ) }),
21039
+ e ? /* @__PURE__ */ R(
21040
+ Qy,
21041
+ {
21042
+ side: "top",
21043
+ className: "border-black/10 flex items-center gap-1 bg-[#fff] shadow-md",
21044
+ children: [
21045
+ /* @__PURE__ */ m(st, { icon: nh, color: "critical", size: "sm" }),
21046
+ /* @__PURE__ */ m("span", { className: "text-sm font-medium text-f1-foreground-critical", children: e })
21047
+ ]
21048
+ }
21049
+ ) : null
21050
+ ] }) }) });
21116
21051
  }
21117
21052
  const nne = {
21118
- auto: void 0,
21119
- fit: 1
21120
- }, ine = (e) => typeof e == "number", dg = (e) => ine(e) ? e : nne[e], _d = Ft(
21121
- void 0
21122
- );
21123
- function TM() {
21124
- const e = ht(_d);
21125
- if (!e)
21126
- throw new Error("useTable must be used within a TableProvider");
21127
- return e;
21128
- }
21129
- const S1 = 32, fg = 24, im = 18, rne = "1px", Ds = 8, one = 32, Sw = 4, Cw = 40, sne = Cw - fg, ane = 24, lne = 16, J2 = ({
21130
- depth: e,
21131
- padding: t = 0
21132
- }) => `${e * S1 + t}px`, cne = ({
21133
- depth: e
21134
- }) => J2({
21135
- depth: e,
21136
- padding: -Sw
21137
- }), OM = (e, t) => e && t > 0, IM = (e, t) => e && t, dne = (e, t) => e && t, DM = (e, t) => e && t, fne = (e, t, n) => !t && DM(e, n), une = (e, t) => e && t?.nestedVariant === "detailed", hne = ({
21138
- width: e,
21139
- linkRef: t,
21140
- firstCell: n,
21141
- nestedRowProps: i,
21142
- children: r,
21143
- onClick: o
21144
- }) => {
21145
- const { collections: s } = Re(), a = IM(
21146
- n,
21147
- !!i?.rowWithChildren
21148
- ), l = OM(
21149
- n,
21150
- i?.depth ?? 0
21151
- ), c = fne(
21152
- n,
21153
- !!i?.rowWithChildren,
21154
- !!i?.tableWithChildren
21155
- ), d = une(n, i), f = i?.onLoadMoreChildren, u = i?.onAddRow, h = i?.depth ?? 0, p = l ? J2({
21156
- depth: a ? h : h + 1
21157
- }) : void 0, y = f || u;
21053
+ text: "cursor-text",
21054
+ pointer: "cursor-pointer",
21055
+ default: "cursor-default",
21056
+ "not-allowed": "cursor-not-allowed"
21057
+ };
21058
+ function Qo({
21059
+ disabled: e = !1,
21060
+ readonly: t = !1,
21061
+ showRightBorder: n = !0,
21062
+ cursor: i = "text",
21063
+ isActive: r = !1,
21064
+ borderOnHover: o = !0,
21065
+ error: s,
21066
+ hint: a,
21067
+ hintPosition: l = "left",
21068
+ children: c
21069
+ }) {
21070
+ const d = a && !s && /* @__PURE__ */ m(dh, { delayDuration: 100, children: /* @__PURE__ */ R(fh, { children: [
21071
+ /* @__PURE__ */ m(uh, { asChild: !0, children: /* @__PURE__ */ m(
21072
+ "button",
21073
+ {
21074
+ type: "button",
21075
+ "aria-label": a.message,
21076
+ className: U(
21077
+ "pointer-events-auto flex shrink-0 cursor-pointer items-center rounded px-1",
21078
+ tn()
21079
+ ),
21080
+ children: /* @__PURE__ */ m(st, { icon: a.icon, size: "md", color: a.iconColor })
21081
+ }
21082
+ ) }),
21083
+ /* @__PURE__ */ m(
21084
+ Qy,
21085
+ {
21086
+ side: "top",
21087
+ className: "border-black/10 max-w-64 cursor-default text-f1-foreground shadow-md",
21088
+ children: /* @__PURE__ */ m("span", { className: "text-sm font-medium text-f1-foreground", children: a.message })
21089
+ }
21090
+ )
21091
+ ] }) });
21158
21092
  return /* @__PURE__ */ m(
21159
21093
  "div",
21160
21094
  {
21161
21095
  className: U(
21162
- e !== "auto" && "overflow-hidden",
21163
- "relative z-[1] h-full",
21164
- a && "flex items-center gap-2"
21096
+ "flex w-full h-full min-w-0 min-h-12 border-solid",
21097
+ "border-0 border-r-[1px] border-f1-border-secondary",
21098
+ !n && "border-r-0",
21099
+ nne[i],
21100
+ s ? "relative z-[1] border-r-0 bg-f1-background-critical/10 shadow-[inset_0_0_0_1px_hsl(var(--critical-50))]" : r ? "relative z-[1] border-r-0 bg-f1-background shadow-[inset_0_0_0_1px_hsl(var(--selected-50))]" : o ? "shadow-none [&:not(:focus-within)]:hover:shadow-[inset_0_0_0_1px_hsl(var(--neutral-30))] focus-within:relative focus-within:z-[1] focus-within:border-r-0 focus-within:bg-f1-background focus-within:shadow-[inset_0_0_0_1px_hsl(var(--selected-50))]" : "shadow-none",
21101
+ t && "bg-f1-background-secondary",
21102
+ e && "bg-f1-background-disabled"
21165
21103
  ),
21166
- style: {
21167
- marginLeft: y ? cne({
21168
- depth: h + (d ? 0 : 1)
21169
- }) : p
21170
- },
21171
- onClick: () => {
21172
- y || (t.current?.click(), o?.());
21173
- },
21174
- children: u ? /* @__PURE__ */ m(
21104
+ children: /* @__PURE__ */ R(tne, { message: s, children: [
21105
+ l === "left" ? d : null,
21106
+ /* @__PURE__ */ m("div", { className: "min-w-0 flex-1", children: c }),
21107
+ l === "right" ? d : null
21108
+ ] })
21109
+ }
21110
+ );
21111
+ }
21112
+ const ine = "yyyy-MM-dd";
21113
+ function rne({
21114
+ editableColumn: e,
21115
+ value: t,
21116
+ inputPlaceholder: n,
21117
+ error: i,
21118
+ loading: r,
21119
+ isLastColumn: o,
21120
+ onChange: s,
21121
+ hint: a,
21122
+ item: l
21123
+ }) {
21124
+ const c = typeof e.dateConfig == "function" ? e.dateConfig(l) : e.dateConfig, d = X(() => {
21125
+ if (!t)
21126
+ return;
21127
+ const u = Ym(t);
21128
+ if (Jk(u))
21129
+ return { granularity: "day", value: { from: u, to: u } };
21130
+ }, [t]), f = (u) => {
21131
+ const h = u?.value?.from, p = h ? rh(h, ine) : "";
21132
+ p !== t && s(p);
21133
+ };
21134
+ return /* @__PURE__ */ m(
21135
+ Qo,
21136
+ {
21137
+ showRightBorder: !o,
21138
+ error: i,
21139
+ hint: a,
21140
+ cursor: "pointer",
21141
+ children: /* @__PURE__ */ m(
21175
21142
  "div",
21176
21143
  {
21177
21144
  className: U(
21178
- "pointer-events-auto flex items-center w-full h-full",
21179
- d && "pl-3"
21145
+ "flex w-full min-w-0 items-center",
21146
+ e.align === "right" && "justify-end"
21180
21147
  ),
21181
- children: u.actions.length === 1 ? /* @__PURE__ */ m(
21182
- De,
21183
- {
21184
- variant: "outline",
21185
- size: "sm",
21186
- icon: u.actions[0].icon ?? Ja,
21187
- label: u.actions[0].label,
21188
- onClick: (g) => {
21189
- g.stopPropagation(), u.actions[0].onClick?.();
21190
- },
21191
- loading: u.actions[0].loading,
21192
- disabled: u.actions[0].disabled
21193
- }
21194
- ) : u.actions.some((g) => g.description !== void 0) ? /* @__PURE__ */ m(
21195
- mr,
21196
- {
21197
- mode: "dropdown",
21198
- variant: "outline",
21199
- size: "sm",
21200
- trigger: u.label,
21201
- disabled: u.actions.every((g) => g.disabled),
21202
- loading: u.actions.some((g) => g.loading),
21203
- items: u.actions.map((g, v) => ({
21204
- value: v.toString(),
21205
- label: g.label,
21206
- icon: g.icon,
21207
- description: g.description
21208
- })),
21209
- onClick: (g) => {
21210
- u.actions[Number(g)]?.onClick?.();
21211
- }
21212
- }
21213
- ) : /* @__PURE__ */ m(
21214
- mr,
21148
+ children: /* @__PURE__ */ m(
21149
+ h1,
21215
21150
  {
21216
- variant: "outline",
21217
- size: "sm",
21218
- disabled: u.actions.every((g) => g.disabled),
21219
- loading: u.actions.some((g) => g.loading),
21220
- items: u.actions.map((g, v) => ({
21221
- value: v.toString(),
21222
- label: g.label,
21223
- icon: g.icon
21224
- })),
21225
- onClick: (g) => {
21226
- u.actions[Number(g)]?.onClick?.();
21227
- }
21151
+ className: U(
21152
+ "[&_input]:!py-0",
21153
+ // The cell is taller (48px) than a standalone input, so the icon's
21154
+ // fixed top offset no longer centers it — pin it to the full height
21155
+ // and let its auto margins center it vertically.
21156
+ "[&_[data-slot='icon']]:!inset-y-0",
21157
+ "[&_[data-slot='placeholder']]:!flex",
21158
+ "[&_[data-slot='placeholder']]:!items-center",
21159
+ "[&_[data-slot='placeholder']]:!py-0",
21160
+ // The placeholder is absolutely positioned with no right edge, so
21161
+ // bound it to the cell width; only then does truncate clip the
21162
+ // text instead of letting it spill past the column.
21163
+ "[&_[data-slot='placeholder']]:!right-0",
21164
+ "[&_[data-slot='placeholder']]:!truncate"
21165
+ ),
21166
+ placeholder: n ?? e.inputPlaceholder,
21167
+ label: e.label,
21168
+ hideLabel: !0,
21169
+ transparent: !0,
21170
+ showIcon: c?.showIcon ?? !0,
21171
+ clearable: c?.clearable,
21172
+ displayFormat: "default",
21173
+ value: d,
21174
+ onChange: f,
21175
+ loading: r,
21176
+ minDate: c?.minDate,
21177
+ maxDate: c?.maxDate
21228
21178
  }
21229
21179
  )
21230
21180
  }
21231
- ) : f ? /* @__PURE__ */ m(
21181
+ )
21182
+ }
21183
+ );
21184
+ }
21185
+ let f0 = null;
21186
+ function one(e, t) {
21187
+ f0 || (f0 = document.createElement("canvas"));
21188
+ const n = f0.getContext("2d");
21189
+ return n ? (n.font = t, Math.ceil(n.measureText(e).width)) : 0;
21190
+ }
21191
+ function sne(e, t = 26, n = 48) {
21192
+ const [i, r] = J(null), o = K((a) => {
21193
+ if (a) {
21194
+ const l = a.querySelector("input");
21195
+ l && r(getComputedStyle(l).font);
21196
+ }
21197
+ }, []), s = i ? Math.max(one(e || " ", i) + t, n) : void 0;
21198
+ return { ref: o, width: s };
21199
+ }
21200
+ function Y2(e, t) {
21201
+ if (e?.units)
21202
+ return typeof e.units == "function" ? e.units(t) : e.units;
21203
+ }
21204
+ function ane(e, t, n) {
21205
+ const { locale: i } = oa(), r = e?.locale ?? i, o = Y2(e, n), s = o ? e?.unitsPosition === "before" : !1, a = e?.grouping ?? !0, l = X(
21206
+ () => new Intl.NumberFormat(r, {
21207
+ maximumFractionDigits: e?.maxDecimals,
21208
+ useGrouping: a
21209
+ }),
21210
+ [r, e?.maxDecimals, a]
21211
+ ), c = t != null ? l.format(t) : "", d = o ? s ? `${o} ${c}` : `${c} ${o}` : c, { ref: f, width: u } = sne(d);
21212
+ return { ref: f, width: u, locale: r, units: o, unitsBefore: s, grouping: a };
21213
+ }
21214
+ function _M({
21215
+ editableColumn: e,
21216
+ value: t,
21217
+ inputPlaceholder: n,
21218
+ error: i,
21219
+ loading: r,
21220
+ onChange: o,
21221
+ onBlur: s,
21222
+ item: a,
21223
+ hint: l
21224
+ }) {
21225
+ const c = e.numberConfig, d = typeof t == "string" ? t.trim() : t, f = d !== "" && d != null ? Number(d) : NaN, u = isFinite(f) ? f : null, { ref: h, width: p, locale: y, units: g, unitsBefore: v, grouping: b } = ane(c, u, a), w = (_) => {
21226
+ if (_ == null) {
21227
+ t !== "" && o(null);
21228
+ return;
21229
+ }
21230
+ let S = _;
21231
+ c?.min != null && S < c.min && (S = c.min), c?.max != null && S > c.max && (S = c.max);
21232
+ const E = String(S);
21233
+ E !== t && o(E);
21234
+ }, x = g && /* @__PURE__ */ m("span", { className: "flex shrink-0 select-none items-center self-center pt-[1px] text-sm text-f1-foreground", children: g }), k = K((_) => {
21235
+ const S = _.currentTarget.querySelector("input");
21236
+ S && _.target !== S && S.focus();
21237
+ }, []);
21238
+ return /* @__PURE__ */ m(Qo, { error: i, hint: l, children: /* @__PURE__ */ m(
21239
+ "div",
21240
+ {
21241
+ ref: h,
21242
+ onClick: k,
21243
+ className: U(
21244
+ "flex h-full w-full cursor-text items-center",
21245
+ e.align === "right" && "justify-end"
21246
+ ),
21247
+ children: /* @__PURE__ */ R(
21232
21248
  "div",
21233
21249
  {
21234
21250
  className: U(
21235
- "pointer-events-auto cursor-pointer flex items-center w-full h-full border-0 border-r-[1px] border-solid border-f1-border-secondary"
21251
+ "flex h-full max-w-full items-center gap-1",
21252
+ v && "pl-3 [&_input]:pl-1",
21253
+ !v && g && "pr-3 [&_input]:pr-1"
21236
21254
  ),
21237
- children: /* @__PURE__ */ m(
21238
- De,
21239
- {
21240
- variant: "ghost",
21241
- size: "md",
21242
- icon: qb,
21243
- label: s.table.seeMoreChildren,
21244
- onClick: (g) => {
21245
- g.stopPropagation(), f?.();
21246
- }
21247
- }
21248
- )
21249
- }
21250
- ) : /* @__PURE__ */ R(We, { children: [
21251
- /* @__PURE__ */ m(
21252
- "div",
21253
- {
21254
- className: U(
21255
- "flex h-[var(--chevron-parent-size)] w-[var(--chevron-parent-size)] min-w-[var(--chevron-parent-size)] items-center justify-center",
21256
- a && "pointer-events-auto cursor-pointer rounded-sm hover:bg-f1-foreground-disabled"
21257
- ),
21258
- style: {
21259
- "--chevron-parent-size": `${fg}px`,
21260
- "--chevron-size": `${im}px`,
21261
- "--spacing-factor": `${S1}px`
21262
- },
21263
- onClick: (g) => {
21264
- a && (g.stopPropagation(), i?.onExpand?.());
21265
- },
21266
- children: a ? i?.expanded ? /* @__PURE__ */ m(
21267
- uH,
21268
- {
21269
- className: "pointer-events-none shrink-0",
21270
- size: im
21271
- }
21272
- ) : /* @__PURE__ */ m(
21273
- hH,
21255
+ style: { width: p },
21256
+ children: [
21257
+ v ? x : null,
21258
+ /* @__PURE__ */ m(
21259
+ m1,
21274
21260
  {
21275
- className: "pointer-events-none shrink-0",
21276
- size: im
21261
+ label: e.label,
21262
+ hideLabel: !0,
21263
+ value: u,
21264
+ placeholder: n ?? e.inputPlaceholder,
21265
+ onChange: w,
21266
+ onBlur: s,
21267
+ loading: r,
21268
+ transparent: !0,
21269
+ hint: "",
21270
+ locale: y,
21271
+ grouping: b,
21272
+ min: c?.min,
21273
+ max: c?.max,
21274
+ step: c?.step,
21275
+ maxDecimals: c?.maxDecimals
21277
21276
  }
21278
- ) : null
21279
- }
21280
- ),
21281
- /* @__PURE__ */ m(
21282
- "div",
21283
- {
21284
- className: U(
21285
- a && "min-w-0 w-full h-full",
21286
- c && "pl-[var(--spacing-factor)]",
21287
- "relative"
21288
21277
  ),
21289
- children: r
21290
- }
21291
- )
21292
- ] })
21278
+ v ? null : x
21279
+ ]
21280
+ }
21281
+ )
21293
21282
  }
21294
- );
21295
- }, pne = ({
21296
- horizontalOffset: e,
21297
- isDetailedVariant: t,
21298
- lineHeight: n
21299
- }) => {
21300
- const i = t ? 12 : 0;
21301
- return {
21302
- "--horizontal-offset": `${e + (t ? 12 : 8)}px`,
21303
- "--starting-y": "52px",
21304
- ...n ? { "--line-height": `calc(${n} - ${i}px)` } : {}
21305
- };
21306
- }, mne = (e, t, n) => {
21307
- const { rowWithChildren: i, nestedVariant: r, onLoadMoreChildren: o, onAddRow: s } = t ?? {}, a = r === "detailed", l = o || s, c = l ? one / 2 - Ds : fg / 2 - Ds, d = i && !l ? sne : a ? Cw - 6 : Cw, f = e !== 0 && `calc(${e}px - ${fg + Ds}px )`, u = n === "editableTable" ? pne({
21308
- horizontalOffset: c,
21309
- isDetailedVariant: a,
21310
- lineHeight: f
21311
- }) : {}, h = n === "editableTable" ? ane : lne, p = t?.selectableRow ? h : 0;
21312
- return {
21313
- "--line-left": `-${2 * im - p}px`,
21314
- "--line-width": rne,
21315
- "--horizontal-offset": `${c}px`,
21316
- "--horizontal-left": `calc(4px - ${p}px)`,
21317
- "--horizontal-height": `${S1 / 2}px`,
21318
- "--connector-width": `${d}px`,
21319
- ...f ? { "--line-height": f } : {},
21320
- "--starting-y": "40px",
21321
- ...u
21322
- };
21323
- }, gne = "h-full overflow-visible before:absolute before:-left-[var(--line-left)] before:top-[var(--starting-y)] before:h-[var(--line-height)] before:w-[var(--line-width)] before:bg-f1-foreground-disabled before:content-['']", yne = "after:absolute after:left-[var(--horizontal-left)] after:top-[var(--horizontal-offset)] after:h-[var(--horizontal-height)] after:w-[var(--connector-width)] after:rounded-bl-[var(--horizontal-height)] after:content-[''] after:shadow-[inset_1px_-1px_0_0_hsl(var(--neutral-30))]", vne = ({
21324
- firstCell: e,
21325
- nestedRowProps: t,
21326
- fromVisualization: n
21283
+ ) });
21284
+ }
21285
+ const lne = (e, t = "USD") => {
21286
+ try {
21287
+ const n = new Intl.NumberFormat(e, {
21288
+ style: "currency",
21289
+ currency: t
21290
+ }).formatToParts(1), i = n.find((s) => s.type === "currency"), r = n.findIndex((s) => s.type === "currency"), o = n.findIndex((s) => s.type === "integer");
21291
+ return {
21292
+ symbol: i?.value ?? t,
21293
+ before: r < o
21294
+ };
21295
+ } catch {
21296
+ return;
21297
+ }
21298
+ };
21299
+ function cne(e) {
21300
+ const { locale: t } = oa(), n = e.editableColumn.numberConfig, i = n?.locale ?? t, r = Y2(n, e.item), o = X(
21301
+ () => r ? lne(i, r) : void 0,
21302
+ [i, r]
21303
+ ), s = X(() => r ? n?.unitsPosition ? n.unitsPosition === "before" : o?.before ?? !1 : !1, [r, n?.unitsPosition, o]);
21304
+ return /* @__PURE__ */ m(
21305
+ _M,
21306
+ {
21307
+ ...e,
21308
+ editableColumn: {
21309
+ ...e.editableColumn,
21310
+ numberConfig: {
21311
+ ...n,
21312
+ units: o?.symbol ?? r ?? "$",
21313
+ unitsPosition: s ? "before" : "after"
21314
+ }
21315
+ }
21316
+ }
21317
+ );
21318
+ }
21319
+ const u0 = {
21320
+ default: "-",
21321
+ list: void 0
21322
+ }, Th = ({
21323
+ item: e,
21324
+ property: t,
21325
+ visualization: n,
21326
+ i18n: i,
21327
+ tableAlign: r
21327
21328
  }) => {
21328
- const i = OM(
21329
- e,
21330
- t?.depth ?? 0
21331
- ), r = dne(
21332
- t?.expanded ?? !1,
21333
- e
21334
- ), o = t === void 0 || t?.nestedVariant === "basic", s = t?.nestedVariant === "detailed", a = o || t?.rowWithChildren, l = s && (t?.onLoadMoreChildren || t?.onAddRow), c = i ? J2({
21335
- depth: t?.depth ?? 0,
21336
- padding: 0
21337
- }) : void 0, d = t?.connectorHeight ?? 0;
21338
- return !r && !i && !t?.rowWithChildren ? null : /* @__PURE__ */ m(
21329
+ const o = t.render(e), s = n in u0 ? u0[n] : u0.default;
21330
+ return uH(
21331
+ o,
21332
+ {
21333
+ visualization: n,
21334
+ i18n: i,
21335
+ tableAlign: r
21336
+ },
21337
+ s
21338
+ );
21339
+ }, ZC = /* @__PURE__ */ new Set();
21340
+ function dne(e, t) {
21341
+ if (t === void 0)
21342
+ return [];
21343
+ const n = e[t];
21344
+ return Array.isArray(n) ? n.filter((i) => typeof i == "string") : [];
21345
+ }
21346
+ function fne({
21347
+ editableColumn: e,
21348
+ error: t,
21349
+ loading: n,
21350
+ onChange: i,
21351
+ item: r,
21352
+ hint: o
21353
+ }) {
21354
+ const s = Re(), [a, l] = J(!1), c = e.selectConfig;
21355
+ if (!c)
21356
+ return ZC.has(e.label) || (ZC.add(e.label), console.warn(
21357
+ `MultiSelectCell: column "${e.label}" has editType "multiselect" but no selectConfig`
21358
+ )), /* @__PURE__ */ m(Qo, { children: Th({
21359
+ item: r,
21360
+ property: e,
21361
+ visualization: "editableTable",
21362
+ i18n: s
21363
+ }) });
21364
+ const d = dne(r, e.id), f = {
21365
+ label: e.label,
21366
+ hideLabel: !0,
21367
+ value: d,
21368
+ onChange: (h) => i(h),
21369
+ loading: n,
21370
+ size: "sm",
21371
+ placeholder: c.placeholder ?? s.t("common.selectPlaceholder"),
21372
+ showSearchBox: c.showSearchBox,
21373
+ multiple: !0,
21374
+ onOpenChange: l
21375
+ }, u = c.clearable ? { clearable: !0 } : {};
21376
+ return /* @__PURE__ */ m(Qo, { error: t, isActive: a, hint: o, cursor: "pointer", children: /* @__PURE__ */ m(
21339
21377
  "div",
21340
21378
  {
21341
21379
  className: U(
21342
- "absolute inset-0 h-full",
21343
- t?.parentHasChildren && r && gne,
21344
- t?.parentHasChildren && i && a && !l && yne
21380
+ "flex w-full min-w-0 h-full",
21381
+ "items-center",
21382
+ "[&_[data-testid=input-field-wrapper]]:border-0",
21383
+ "[&_[data-testid=input-field-wrapper]]:bg-transparent",
21384
+ "[&_[data-testid=input-field-wrapper]]:shadow-none",
21385
+ "[&_[data-testid=input-field-wrapper]]:ring-0",
21386
+ "[&_[data-testid=input-field-wrapper]]:focus-within:ring-0",
21387
+ "[&_[data-testid=input-field-wrapper]]:focus-within:ring-offset-0",
21388
+ "[&_[data-testid=input-field-wrapper]]:h-full",
21389
+ "[&_[data-testid=input-field-wrapper]_.absolute]:top-1/2",
21390
+ "[&_[data-testid=input-field-wrapper]_.absolute]:-translate-y-1/2",
21391
+ "[&_[data-testid=input-field-wrapper]_.absolute]:bottom-auto",
21392
+ "[&>div]:h-full",
21393
+ "[&>div]:w-full",
21394
+ "[&>div>button]:h-full",
21395
+ e.align === "right" && "justify-end"
21345
21396
  ),
21346
- style: {
21347
- marginLeft: c,
21348
- ...mne(
21349
- d,
21350
- t,
21351
- n
21352
- )
21353
- }
21397
+ children: "source" in c && c.source ? /* @__PURE__ */ m(
21398
+ Qn,
21399
+ {
21400
+ ...f,
21401
+ ...u,
21402
+ source: c.source,
21403
+ mapOptions: c.mapOptions
21404
+ }
21405
+ ) : /* @__PURE__ */ m(
21406
+ Qn,
21407
+ {
21408
+ ...f,
21409
+ ...u,
21410
+ options: typeof c.options == "function" ? c.options(r) : c.options
21411
+ }
21412
+ )
21354
21413
  }
21414
+ ) });
21415
+ }
21416
+ const QC = /* @__PURE__ */ new Set();
21417
+ function une({
21418
+ editableColumn: e,
21419
+ value: t,
21420
+ error: n,
21421
+ loading: i,
21422
+ onChange: r,
21423
+ item: o,
21424
+ hint: s
21425
+ }) {
21426
+ const a = Re(), [l, c] = J(!1), d = e.selectConfig;
21427
+ if (!d)
21428
+ return QC.has(e.label) || (QC.add(e.label), console.warn(
21429
+ `SelectCell: column "${e.label}" has editType "select" but no selectConfig`
21430
+ )), /* @__PURE__ */ m(Qo, { children: Th({
21431
+ item: o,
21432
+ property: e,
21433
+ visualization: "editableTable",
21434
+ i18n: a
21435
+ }) });
21436
+ const f = {
21437
+ label: e.label,
21438
+ hideLabel: !0,
21439
+ value: t || void 0,
21440
+ onChange: (h, p) => {
21441
+ const y = h ?? "";
21442
+ y !== t && r(y, { selectedItem: p });
21443
+ },
21444
+ loading: i,
21445
+ size: "sm",
21446
+ placeholder: d.placeholder ?? a.t("common.selectPlaceholder"),
21447
+ showSearchBox: d.showSearchBox,
21448
+ defaultItem: d.defaultItem?.(o),
21449
+ multiple: !1,
21450
+ onOpenChange: c,
21451
+ actions: typeof d.actions == "function" ? d.actions(o) : d.actions
21452
+ }, u = d.clearable ? { clearable: !0 } : {};
21453
+ return /* @__PURE__ */ m(Qo, { error: n, isActive: l, hint: s, cursor: "pointer", children: /* @__PURE__ */ m(
21454
+ "div",
21455
+ {
21456
+ className: U(
21457
+ "flex w-full min-w-0 h-full",
21458
+ "items-center",
21459
+ "[&_[data-testid=input-field-wrapper]]:border-0",
21460
+ "[&_[data-testid=input-field-wrapper]]:bg-transparent",
21461
+ "[&_[data-testid=input-field-wrapper]]:shadow-none",
21462
+ "[&_[data-testid=input-field-wrapper]]:ring-0",
21463
+ "[&_[data-testid=input-field-wrapper]]:focus-within:ring-0",
21464
+ "[&_[data-testid=input-field-wrapper]]:focus-within:ring-offset-0",
21465
+ "[&_[data-testid=input-field-wrapper]]:h-full",
21466
+ "[&_[data-testid=input-field-wrapper]_.absolute]:top-1/2",
21467
+ "[&_[data-testid=input-field-wrapper]_.absolute]:-translate-y-1/2",
21468
+ "[&_[data-testid=input-field-wrapper]_.absolute]:bottom-auto",
21469
+ "[&>div]:h-full",
21470
+ "[&>div]:w-full",
21471
+ "[&>div>button]:h-full",
21472
+ e.align === "right" && "justify-end"
21473
+ ),
21474
+ children: "source" in d && d.source ? /* @__PURE__ */ m(
21475
+ Qn,
21476
+ {
21477
+ ...f,
21478
+ ...u,
21479
+ source: d.source,
21480
+ mapOptions: d.mapOptions
21481
+ }
21482
+ ) : /* @__PURE__ */ m(
21483
+ Qn,
21484
+ {
21485
+ ...f,
21486
+ ...u,
21487
+ options: typeof d.options == "function" ? d.options(o) : d.options
21488
+ }
21489
+ )
21490
+ }
21491
+ ) });
21492
+ }
21493
+ function hne(e, t, n) {
21494
+ if (!e.dateConfig || e.id === void 0)
21495
+ return;
21496
+ const i = t[e.id];
21497
+ if (!(typeof i != "string" || !i || !Jk(Ym(i))))
21498
+ return rh(Ym(i), "dd MMM yyyy", { locale: n });
21499
+ }
21500
+ function pne(e, t, n) {
21501
+ const i = e.selectConfig, r = i && typeof i.options == "function" ? i.options(t) : i?.options, o = new Map(
21502
+ (Array.isArray(r) ? r : []).filter((s) => "value" in s).map((s) => [s.value, s.label])
21355
21503
  );
21356
- }, f0 = "repeating-linear-gradient(45deg,transparent_0px,transparent_8px,hsl(var(--neutral-20))_8px,hsl(var(--neutral-20))_9px)", u0 = "before:absolute before:inset-0 before:z-[-1] before:h-[calc(100%-1px)] before:w-full before:transition-all before:content-[''] after:absolute after:inset-x-0 after:bottom-0 after:h-px after:w-full after:bg-f1-border-secondary after:content-['']", ZC = {
21357
- none: `bg-f1-background ${u0} before:bg-f1-background group-hover:before:bg-f1-background-hover`,
21358
- striped: `bg-f1-background bg-[${f0}] [background-size:100%_100px] ${u0} before:bg-[${f0},_var(--f1-background)] before:[background-size:100%_100px,_100%_100%] group-hover:before:bg-[${f0},_var(--f1-background-hover)] group-hover:before:[background-size:100%_100px,_100%_100%]`,
21359
- striked: `bg-f1-background ${u0} before:bg-f1-background group-hover:before:bg-f1-background-hover`
21360
- };
21361
- function jn({
21362
- children: e,
21363
- href: t,
21364
- onClick: n,
21365
- width: i = "auto",
21366
- minWidth: r,
21367
- firstCell: o = !1,
21368
- sticky: s,
21369
- colSpan: a,
21370
- className: l,
21371
- loading: c = !1,
21372
- nestedRowProps: d,
21373
- fromVisualization: f,
21374
- referenceRowType: u = "none",
21375
- highlighted: h = !1
21504
+ return n.map((s) => o.get(s) ?? String(s)).join(", ");
21505
+ }
21506
+ function SM({
21507
+ editableColumn: e,
21508
+ item: t,
21509
+ className: n,
21510
+ showFieldAffordances: i = !0
21376
21511
  }) {
21377
- const { isScrolled: p, isScrolledRight: y } = TM(), { actions: g } = Re(), v = s?.left !== void 0, b = s?.right !== void 0, w = v || b, x = s?.left, k = s?.right, _ = dg(i), S = r !== void 0 ? dg(r) : _, E = L(null), C = d?.depth ?? 0, A = d?.nestedVariant === "detailed", T = DM(
21378
- o,
21379
- !!d?.tableWithChildren
21380
- ) && {
21381
- marginLeft: `${(C + (A ? 0 : 1)) * S1}px`
21382
- };
21383
- return /* @__PURE__ */ R(
21384
- AM,
21512
+ const r = Re(), o = oI(), s = e.align === "right", a = hne(e, t, o), l = e.id !== void 0 ? t[e.id] : void 0, c = Array.isArray(l) ? pne(e, t, l) : void 0, d = i ? Y2(e.numberConfig, t) : void 0, f = e.numberConfig?.unitsPosition === "before", u = d ? /* @__PURE__ */ m("span", { className: "shrink-0 select-none pt-px text-sm", children: d }) : null;
21513
+ return /* @__PURE__ */ m(
21514
+ "div",
21385
21515
  {
21386
- colSpan: a,
21387
21516
  className: U(
21388
- "h-full",
21389
- o && "peer font-medium",
21390
- w && p && ZC[u],
21391
- w && "sticky z-10",
21392
- b && ZC[u],
21393
- // The row hover keeps reading through the highlighted cell, so a hovered
21394
- // row stays one uniform surface.
21395
- h && "bg-[hsl(var(--neutral-2))] group-hover:bg-f1-background-hover",
21396
- // Sticky cells paint their opaque background on the `before` layer;
21397
- // the highlighted tint has to land there too or it stays hidden under it.
21398
- h && w && "before:bg-[hsl(var(--neutral-2))] group-hover:before:bg-f1-background-hover",
21399
- t && "cursor-pointer",
21400
- l
21517
+ "flex h-full w-full min-w-0 items-center gap-1.5",
21518
+ "px-3",
21519
+ s && "justify-end",
21520
+ n
21401
21521
  ),
21402
- style: {
21403
- width: _,
21404
- maxWidth: _,
21405
- minWidth: S,
21406
- left: x,
21407
- right: k
21408
- },
21409
- children: [
21410
- /* @__PURE__ */ m(Jt, { children: v && p || b && y ? /* @__PURE__ */ m(
21411
- it.div,
21412
- {
21413
- className: U(
21414
- "absolute inset-y-0 h-full w-4 from-f1-foreground-secondary to-transparent",
21415
- v && "-right-4 bg-gradient-to-r",
21416
- b && "-left-4 bg-gradient-to-l"
21417
- ),
21418
- initial: { opacity: 0 },
21419
- animate: { opacity: 0.1 },
21420
- exit: { opacity: 0 }
21421
- },
21422
- "cell-shadow-gradient"
21423
- ) : null }),
21424
- o && d?.tableWithChildren ? /* @__PURE__ */ m(
21425
- vne,
21426
- {
21427
- firstCell: o,
21428
- nestedRowProps: d,
21429
- fromVisualization: f
21430
- }
21431
- ) : null,
21432
- c ? /* @__PURE__ */ m(
21433
- "div",
21434
- {
21435
- style: { ...T },
21436
- className: U(
21437
- "flex h-full items-center",
21438
- f === "editableTable" ? "min-h-[32px]" : "min-h-[24px]"
21439
- ),
21440
- children: /* @__PURE__ */ m(Be, { className: "h-4 w-full" })
21441
- }
21442
- ) : null,
21443
- c ? null : /* @__PURE__ */ R(We, { children: [
21444
- /* @__PURE__ */ m(
21445
- "div",
21446
- {
21447
- className: U(
21448
- "[&:has([role=checkbox])]:relative [&:has([role=checkbox])]:z-[1]",
21449
- "[&:has([type=button])]:relative [&:has([type=button])]:z-[1]",
21450
- "[&:has(a)]:relative [&:has(a)]:z-[1]",
21451
- "pointer-events-none h-full items-start"
21452
- ),
21453
- children: IM(
21454
- o,
21455
- !!d?.rowWithChildren
21456
- ) ? /* @__PURE__ */ m(
21457
- hne,
21458
- {
21459
- linkRef: E,
21460
- firstCell: o,
21461
- nestedRowProps: d,
21462
- children: e
21463
- }
21464
- ) : /* @__PURE__ */ m(
21465
- "div",
21466
- {
21467
- className: U(
21468
- i !== "auto" && "overflow-hidden",
21469
- "relative z-[1] h-full"
21470
- ),
21471
- style: {
21472
- ...T
21473
- },
21474
- onClick: () => {
21475
- E.current?.click(), n?.();
21476
- },
21477
- children: e
21478
- }
21479
- )
21480
- }
21481
- ),
21482
- t ? /* @__PURE__ */ m(
21483
- fO,
21484
- {
21485
- ref: E,
21486
- href: t,
21487
- className: "pointer-events-auto absolute inset-0 !z-0 block",
21488
- tabIndex: o ? void 0 : -1,
21489
- children: /* @__PURE__ */ m("span", { className: "sr-only", children: g.view })
21490
- }
21491
- ) : null,
21492
- n ? /* @__PURE__ */ m(
21493
- "button",
21494
- {
21495
- type: "button",
21496
- onClick: (I) => {
21497
- I.stopPropagation(), n();
21498
- },
21499
- "data-testid": "table-cell-action-button",
21500
- className: "table-cell-action-button absolute inset-0 !z-0 block",
21501
- tabIndex: o ? void 0 : -1,
21502
- onKeyDown: (I) => {
21503
- (I.key === "Enter" || I.key === " ") && (I.preventDefault(), n());
21504
- },
21505
- children: /* @__PURE__ */ m("span", { className: "sr-only", children: g.view })
21506
- }
21507
- ) : null
21508
- ] })
21509
- ]
21522
+ children: /* @__PURE__ */ R("span", { className: "flex min-w-0 items-center gap-1.5", children: [
21523
+ f ? u : null,
21524
+ /* @__PURE__ */ m("span", { className: "min-w-0 truncate", children: a ?? c ?? Th({
21525
+ item: t,
21526
+ property: e,
21527
+ visualization: "editableTable",
21528
+ i18n: r
21529
+ }) }),
21530
+ f ? null : u
21531
+ ] })
21510
21532
  }
21511
21533
  );
21512
21534
  }
21513
- function bne({
21514
- info: e,
21515
- icon: t,
21516
- label: n
21535
+ function mne({
21536
+ editableColumn: e,
21537
+ item: t,
21538
+ hint: n
21517
21539
  }) {
21518
- const [i, r] = J(!1), { forms: o } = Re();
21519
- return /* @__PURE__ */ R(
21520
- oI,
21540
+ return /* @__PURE__ */ m(
21541
+ Qo,
21521
21542
  {
21522
- open: i,
21523
- onOpenChange: r,
21524
- openDelay: 300,
21525
- closeDelay: 100,
21526
- children: [
21527
- /* @__PURE__ */ m(sI, { asChild: !0, children: /* @__PURE__ */ m(
21528
- "button",
21529
- {
21530
- type: "button",
21531
- className: U(
21532
- "flex h-5 w-5 items-center justify-center rounded-xs text-f1-foreground-secondary",
21533
- tn()
21534
- ),
21535
- "aria-label": e.label ?? n ?? o.moreInformation,
21536
- children: /* @__PURE__ */ m(st, { icon: t, size: "sm" })
21537
- }
21538
- ) }),
21539
- /* @__PURE__ */ m(aI, { className: "w-auto max-w-xs px-3 py-2 shadow-md", children: /* @__PURE__ */ R("div", { className: "flex flex-col gap-1 whitespace-normal text-left", children: [
21540
- /* @__PURE__ */ m("p", { children: e.title }),
21541
- /* @__PURE__ */ m("p", { className: "text-f1-foreground-inverse-secondary", children: e.description }),
21542
- e.link ? /* @__PURE__ */ m(
21543
- "button",
21544
- {
21545
- type: "button",
21546
- onClick: () => {
21547
- r(!1), e.link?.onClick();
21548
- },
21549
- className: U(
21550
- "mt-1 w-fit rounded-xs font-medium text-f1-foreground-inverse underline underline-offset-2 transition-colors hover:text-f1-foreground-inverse-secondary",
21551
- tn()
21552
- ),
21553
- children: e.link.label
21554
- }
21555
- ) : null
21556
- ] }) })
21557
- ]
21543
+ disabled: !0,
21544
+ borderOnHover: !1,
21545
+ hint: n,
21546
+ hintPosition: n?.hintPosition ?? "right",
21547
+ cursor: "not-allowed",
21548
+ children: /* @__PURE__ */ m(
21549
+ SM,
21550
+ {
21551
+ editableColumn: e,
21552
+ item: t,
21553
+ className: "min-h-12 [&_*]:text-f1-foreground-secondary"
21554
+ }
21555
+ )
21558
21556
  }
21559
21557
  );
21560
21558
  }
21561
- function MM({
21562
- info: e,
21563
- icon: t = Fy,
21564
- label: n
21559
+ function CM({
21560
+ editableColumn: e,
21561
+ item: t,
21562
+ isLastColumn: n,
21563
+ hint: i
21565
21564
  }) {
21566
- return typeof e != "string" ? /* @__PURE__ */ m(bne, { info: e, icon: t, label: n }) : /* @__PURE__ */ m(xc, { label: e, children: /* @__PURE__ */ m(
21567
- "div",
21565
+ return /* @__PURE__ */ m(
21566
+ Qo,
21568
21567
  {
21569
- className: U(
21570
- "flex h-5 w-5 items-center justify-center rounded-xs",
21571
- tn()
21572
- ),
21573
- tabIndex: 0,
21574
- children: /* @__PURE__ */ m(st, { icon: t, size: "sm" })
21568
+ showRightBorder: !n,
21569
+ borderOnHover: !1,
21570
+ hint: i,
21571
+ hintPosition: i?.hintPosition ?? "right",
21572
+ cursor: "default",
21573
+ children: /* @__PURE__ */ m(
21574
+ SM,
21575
+ {
21576
+ editableColumn: e,
21577
+ item: t,
21578
+ showFieldAffordances: !1
21579
+ }
21580
+ )
21575
21581
  }
21576
- ) });
21582
+ );
21577
21583
  }
21578
- function zi({
21579
- children: e,
21580
- width: t = "auto",
21581
- minWidth: n,
21582
- sortState: i = "none",
21583
- onSortClick: r,
21584
- onClick: o,
21585
- info: s,
21586
- infoIcon: a = Fy,
21587
- sticky: l,
21588
- hidden: c = !1,
21589
- highlighted: d = !1,
21590
- align: f = "left",
21591
- className: u,
21592
- colSpan: h
21584
+ function gne(e) {
21585
+ if (e)
21586
+ return e.icon ? e.icon : Ch(e.inputType);
21587
+ }
21588
+ function yne({
21589
+ editableColumn: e,
21590
+ value: t,
21591
+ inputPlaceholder: n,
21592
+ error: i,
21593
+ loading: r,
21594
+ onChange: o,
21595
+ hint: s
21593
21596
  }) {
21594
- const { isScrolled: p, isScrolledRight: y } = TM(), g = l?.left !== void 0, v = l?.right !== void 0, b = g || v, w = l?.left ?? 0, x = l?.right ?? 0, k = r || s, _ = r || o ? () => {
21595
- r?.(), o?.();
21596
- } : void 0, S = /* @__PURE__ */ R(
21597
+ const a = e.textConfig, l = a?.inputType ?? "text", c = gne(a);
21598
+ return /* @__PURE__ */ m(Qo, { error: i, hint: s, children: /* @__PURE__ */ m(
21597
21599
  "div",
21598
21600
  {
21599
21601
  className: U(
21600
- "flex items-center whitespace-nowrap",
21601
- k && "gap-1",
21602
- f === "right" && "flex-row-reverse"
21602
+ "flex w-full min-w-0",
21603
+ "cursor-text items-center",
21604
+ e.align === "right" && "[&_input]:text-right"
21603
21605
  ),
21604
- children: [
21605
- typeof e == "string" ? /* @__PURE__ */ m(Hr, { className: U(t !== "auto" && "overflow-hidden"), children: e }) : /* @__PURE__ */ m("div", { className: U("truncate", t !== "auto" && "overflow-hidden"), children: e }),
21606
- k ? /* @__PURE__ */ R("div", { className: "flex items-center", children: [
21607
- s ? /* @__PURE__ */ m(
21608
- "div",
21609
- {
21610
- className: "flex h-6 w-6 items-center justify-center text-f1-foreground-secondary",
21611
- onClick: (A) => A.stopPropagation(),
21612
- children: /* @__PURE__ */ m(
21613
- MM,
21614
- {
21615
- info: s,
21616
- icon: a,
21617
- label: typeof e == "string" ? e : void 0
21618
- }
21619
- )
21620
- }
21621
- ) : null,
21622
- r ? /* @__PURE__ */ m(
21623
- it.button,
21624
- {
21625
- className: U(
21626
- "relative h-5 w-5 rounded-xs p-1 text-f1-foreground-secondary opacity-0 transition-all focus-within:opacity-100 hover:bg-f1-background-hover group-hover:opacity-100",
21627
- tn()
21628
- ),
21629
- "aria-label": "Sort",
21630
- whileTap: { scale: 0.8 },
21631
- transition: { duration: 0.1 },
21632
- children: /* @__PURE__ */ R(Jt, { children: [
21633
- /* @__PURE__ */ m(
21634
- it.div,
21635
- {
21636
- className: "absolute left-1 top-1 flex h-3 w-3 items-center justify-center",
21637
- animate: {
21638
- rotate: i === "desc" ? 0 : 180,
21639
- x: i === "none" ? -3 : 0,
21640
- y: i === "none" ? -1 : 0,
21641
- scale: i === "none" ? 0.9 : 1
21642
- },
21643
- transition: {
21644
- duration: 0.2,
21645
- ease: [0.175, 0.885, 0.32, 1.275]
21646
- },
21647
- children: /* @__PURE__ */ m(st, { icon: qb, size: "xs" })
21648
- },
21649
- "sort-arrow"
21650
- ),
21651
- i === "none" ? /* @__PURE__ */ m(
21652
- it.div,
21653
- {
21654
- className: "absolute left-1 top-1 flex h-3 w-3 items-center justify-center",
21655
- initial: { opacity: 0, x: 0, y: 0, scale: 0.9 },
21656
- animate: { opacity: 1, x: 3, y: 1, scale: 0.9 },
21657
- exit: { opacity: 0, x: 0, y: 0, scale: 0.9 },
21658
- transition: {
21659
- duration: 0.2,
21660
- ease: [0.175, 0.885, 0.32, 1.275]
21661
- },
21662
- children: /* @__PURE__ */ m(st, { icon: qb, size: "xs" })
21663
- },
21664
- "sort-arrow-secondary"
21665
- ) : null
21666
- ] })
21667
- }
21668
- ) : null
21669
- ] }) : null
21670
- ]
21671
- }
21672
- ), E = dg(t), C = n !== void 0 ? dg(n) : E;
21673
- return /* @__PURE__ */ R(
21674
- NM,
21675
- {
21676
- className: U(
21677
- "group h-11",
21678
- "bg-f1-background",
21679
- b && (p || y) && "relative bg-f1-background z-10 before:absolute before:inset-x-0 before:bottom-0 before:h-px before:w-full before:bg-f1-border-secondary before:content-['']",
21680
- b && "sticky",
21681
- // The tint is a background-image over the opaque header background,
21682
- // not a bg-color swap: an alpha bg-color would let the `thead::before`
21683
- // top rule bleed through and double up with the one painted on top.
21684
- d && "bg-[linear-gradient(hsl(var(--neutral-2)),hsl(var(--neutral-2)))]",
21685
- c && "after:hidden",
21686
- _ && "cursor-pointer",
21687
- u
21688
- ),
21689
- "data-highlighted": d ? "true" : void 0,
21690
- onClick: _,
21691
- tabIndex: l ? 0 : void 0,
21692
- colSpan: h,
21693
- style: {
21694
- width: E,
21695
- maxWidth: E,
21696
- minWidth: C,
21697
- left: w,
21698
- right: x
21699
- },
21700
- role: c ? "presentation" : void 0,
21701
- "aria-sort": r ? i === "asc" ? "ascending" : i === "desc" ? "descending" : "none" : void 0,
21702
- children: [
21703
- /* @__PURE__ */ m("div", { className: "absolute inset-x-0 top-0 z-[1] h-px w-full bg-f1-border-secondary" }),
21704
- /* @__PURE__ */ m(Jt, { children: g && p || v && y ? /* @__PURE__ */ m(
21705
- it.div,
21706
- {
21707
- className: U(
21708
- "absolute inset-y-0 h-full w-4 from-f1-foreground-secondary to-transparent",
21709
- g && "-right-4 bg-gradient-to-r",
21710
- v && "-left-4 bg-gradient-to-l"
21711
- ),
21712
- initial: { opacity: 0 },
21713
- animate: { opacity: 0.1 },
21714
- exit: { opacity: 0 }
21715
- },
21716
- "shadow-gradient"
21717
- ) : null }),
21718
- c ? null : S
21719
- ]
21606
+ children: /* @__PURE__ */ m(
21607
+ oh,
21608
+ {
21609
+ type: l,
21610
+ icon: c,
21611
+ label: e.label,
21612
+ hideLabel: !0,
21613
+ value: t,
21614
+ placeholder: n ?? e.inputPlaceholder,
21615
+ onChange: o,
21616
+ loading: r,
21617
+ transparent: !0
21618
+ }
21619
+ )
21720
21620
  }
21721
- );
21621
+ ) });
21722
21622
  }
21723
- const Mc = 40, _i = Qe(
21724
- ({ children: e, selected: t, className: n, sticky: i, style: r }, o) => {
21725
- const a = ht(_d)?.stickyHeaderHeight ?? Mc;
21726
- return /* @__PURE__ */ m(
21727
- EM,
21728
- {
21729
- ref: o,
21730
- className: U(
21731
- t && "bg-f1-background-selected hover:bg-f1-background-selected",
21732
- n,
21733
- "relative before:pointer-events-none before:absolute before:inset-0 before:z-10 before:content-['']",
21734
- "[&:has(.table-cell-action-button:focus)]:before:rounded-sm [&:has(.table-cell-action-button:focus)]:before:ring-1 [&:has(.table-cell-action-button:focus)]:before:ring-inset [&:has(.table-cell-action-button:focus)]:before:ring-f1-special-ring",
21735
- "[&:has(a:focus)]:before:rounded-sm [&:has(a:focus)]:before:ring-1 [&:has(a:focus)]:before:ring-inset [&:has(a:focus)]:before:ring-f1-special-ring",
21736
- // A sticky row is lifted above the rows scrolling underneath it, so its
21737
- // background has to stay opaque in every state. `bg-f1-background-hover`
21738
- // is a 4%-alpha tint — right for a plain row, where it tints the page
21739
- // behind it, but on a sticky row it would own `background-color` and let
21740
- // those rows show through. So the opaque colour is kept on hover too and
21741
- // the tint rides over it as a background-image layer, the same way the
21742
- // highlighted table header paints its own.
21743
- i && "sticky z-20 bg-f1-background hover:bg-f1-background hover:bg-[linear-gradient(hsl(var(--neutral-5)),hsl(var(--neutral-5)))]"
21744
- ),
21745
- style: {
21746
- ...i ? { top: a } : void 0,
21747
- ...r
21748
- },
21749
- children: e
21623
+ const vne = {
21624
+ text: yne,
21625
+ number: _M,
21626
+ money: cne,
21627
+ date: rne,
21628
+ select: une,
21629
+ multiselect: fne,
21630
+ "display-only": CM,
21631
+ disabled: mne
21632
+ }, bne = /* @__PURE__ */ new Set([
21633
+ "text",
21634
+ "number",
21635
+ "money"
21636
+ ]), wne = 250, EM = Ft(null);
21637
+ function NM({
21638
+ item: e,
21639
+ onCellChange: t,
21640
+ children: n
21641
+ }) {
21642
+ const [i, r] = J(e), [o, s] = J({}), [a, l] = J({}), { t: c } = Re(), d = L(i);
21643
+ d.current = i;
21644
+ const f = L(null);
21645
+ ie(() => {
21646
+ const x = { ...e, ...f.current?.updates };
21647
+ d.current = x, r(x);
21648
+ }, [e]);
21649
+ const u = (x, k) => {
21650
+ l((_) => {
21651
+ const S = { ..._ };
21652
+ for (const E of x)
21653
+ S[E] = k;
21654
+ return S;
21655
+ });
21656
+ }, h = (x, k) => {
21657
+ s((_) => {
21658
+ if (k === void 0) {
21659
+ const E = new Set(x);
21660
+ return Object.fromEntries(
21661
+ Object.entries(_).filter(([C]) => !E.has(C))
21662
+ );
21750
21663
  }
21751
- );
21752
- }
21753
- );
21754
- _i.displayName = "TableRow";
21755
- function Z2({ children: e, sticky: t = !1 }) {
21756
- const n = L(null), r = ht(_d)?.setStickyHeaderHeight;
21757
- return Lt(() => {
21758
- if (!r)
21664
+ const S = { ..._ };
21665
+ for (const E of x)
21666
+ S[E] = k;
21667
+ return S;
21668
+ });
21669
+ }, p = (x) => {
21670
+ const k = Object.keys(x), _ = d.current, S = {};
21671
+ for (const E of k)
21672
+ S[E] = [x[E], _[E]];
21673
+ u(k, !0), t({
21674
+ updatedItem: _,
21675
+ changes: S
21676
+ }).then((E) => {
21677
+ E && Object.keys(E).length > 0 && s((C) => ({ ...C, ...E }));
21678
+ }).catch((E) => {
21679
+ const C = E instanceof Error ? E.message : c("collections.editableTable.errors.saveFailed");
21680
+ h(k, C);
21681
+ }).finally(() => {
21682
+ u(k, !1);
21683
+ });
21684
+ }, y = () => {
21685
+ const x = f.current;
21686
+ x && (x.timer && clearTimeout(x.timer), f.current = null, p(x.previousValues));
21687
+ }, g = L(y);
21688
+ g.current = y, ie(() => () => g.current(), []);
21689
+ const v = (x, k) => {
21690
+ const _ = Object.keys(x);
21691
+ if (_.length === 0)
21759
21692
  return;
21760
- if (!t) {
21761
- r(Mc);
21693
+ const S = d.current, E = {};
21694
+ for (const I of _)
21695
+ E[I] = S[I];
21696
+ const C = { ...S, ...x };
21697
+ if (d.current = C, r(C), h(_, void 0), !k?.debounce && k?.commitOn !== "blur") {
21698
+ y(), p(E);
21762
21699
  return;
21763
21700
  }
21764
- const o = n.current;
21765
- if (!o)
21766
- return;
21767
- const s = (l) => {
21768
- const c = l?.borderBoxSize?.[0]?.blockSize ?? o.getBoundingClientRect().height;
21769
- c > 0 && r(c);
21770
- };
21771
- s();
21772
- const a = new ResizeObserver(([l]) => s(l));
21773
- return a.observe(o), () => {
21774
- a.disconnect(), r(Mc);
21775
- };
21776
- }, [t, r]), /* @__PURE__ */ m(_M, { ref: n, className: U(t && "sticky top-0 z-30"), children: e });
21777
- }
21778
- function wne({ children: e, loading: t = !1 }) {
21779
- const [n, i] = J(!1), [r, o] = J(!1), [s, a] = J(
21780
- Mc
21781
- ), l = L(null);
21782
- ie(() => {
21783
- const d = l.current;
21784
- if (!d)
21785
- return;
21786
- const f = () => {
21787
- i(d.scrollLeft > 0), o(
21788
- d.scrollWidth - d.scrollLeft - d.clientWidth > 0
21789
- );
21790
- };
21791
- return f(), d.addEventListener("scroll", f), () => {
21792
- d.removeEventListener("scroll", f);
21701
+ const A = f.current;
21702
+ A?.timer && clearTimeout(A.timer);
21703
+ const T = A?.deferred || k?.commitOn === "blur";
21704
+ f.current = {
21705
+ previousValues: { ...E, ...A?.previousValues },
21706
+ updates: { ...A?.updates, ...x },
21707
+ deferred: T,
21708
+ timer: T ? void 0 : setTimeout(() => g.current(), wne)
21793
21709
  };
21794
- }, []);
21795
- const c = X(
21796
- () => ({
21797
- isScrolled: n,
21798
- setIsScrolled: i,
21799
- isScrolledRight: r,
21800
- setIsScrolledRight: o,
21801
- stickyHeaderHeight: s,
21802
- setStickyHeaderHeight: a
21803
- }),
21804
- [n, r, s]
21805
- );
21806
- return /* @__PURE__ */ m(_d.Provider, { value: c, children: /* @__PURE__ */ R("div", { ref: l, className: "relative h-full w-full overflow-auto", children: [
21807
- /* @__PURE__ */ m(
21808
- Y2,
21809
- {
21810
- className: U(t && "select-none opacity-50 transition-opacity"),
21811
- "aria-live": t ? "polite" : void 0,
21812
- "aria-busy": t ? "true" : void 0,
21813
- children: e
21814
- }
21815
- ),
21816
- /* @__PURE__ */ m(Jt, { children: t ? /* @__PURE__ */ m(
21817
- it.div,
21818
- {
21819
- className: "absolute inset-0 flex cursor-progress items-center justify-center",
21820
- initial: { opacity: 0 },
21821
- animate: { opacity: 1 },
21822
- exit: { opacity: 0 },
21823
- children: /* @__PURE__ */ m(Xa, {})
21824
- }
21825
- ) : null })
21826
- ] }) });
21827
- }
21828
- function xne({ columns: e = 5 }) {
21710
+ }, b = (x, k, _) => v({ [x]: k }, _), w = (x, k) => v(x, k);
21829
21711
  return /* @__PURE__ */ m(
21830
- _d.Provider,
21712
+ EM.Provider,
21831
21713
  {
21832
21714
  value: {
21833
- isScrolled: !1,
21834
- setIsScrolled: () => {
21835
- },
21836
- isScrolledRight: !1,
21837
- setIsScrolledRight: () => {
21838
- },
21839
- stickyHeaderHeight: Mc,
21840
- setStickyHeaderHeight: () => {
21841
- }
21715
+ localItem: i,
21716
+ cellErrors: o,
21717
+ cellLoading: a,
21718
+ handleCellChange: b,
21719
+ batchCellChanges: w,
21720
+ flushPendingChanges: y
21842
21721
  },
21843
- children: /* @__PURE__ */ R(
21844
- Y2,
21845
- {
21846
- className: "cursor-progress",
21847
- role: "presentation",
21848
- "aria-hidden": "true",
21849
- children: [
21850
- /* @__PURE__ */ m(Z2, { children: /* @__PURE__ */ m(_i, { children: Array.from({ length: e }).map((t, n) => /* @__PURE__ */ m(zi, { children: /* @__PURE__ */ m(Be, { className: "h-4 w-[80px]" }) }, `skeleton-header-${n}`)) }) }),
21851
- /* @__PURE__ */ m(X2, { children: Array.from({ length: 5 }).map((t, n) => /* @__PURE__ */ m(_i, { children: Array.from({ length: e }).map((i, r) => /* @__PURE__ */ m(jn, { children: /* @__PURE__ */ m(Be, { className: "h-4 w-[80px]" }) }, `skeleton-cell-${n}-${r}`)) }, `skeleton-row-${n}`)) })
21852
- ]
21853
- }
21854
- )
21722
+ children: n
21855
21723
  }
21856
21724
  );
21857
21725
  }
21858
- const Ew = fd(wne, xne);
21859
- function kne({ children: e }) {
21860
- return /* @__PURE__ */ m(
21861
- CM,
21862
- {
21863
- className: U(
21864
- "bg-f1-background-default sticky bottom-0 z-30 shadow-[0_-1px_0_0_var(--f1-border-secondary)]"
21865
- ),
21866
- children: e
21867
- }
21868
- );
21726
+ function xne() {
21727
+ return ht(EM);
21869
21728
  }
21870
- function _ne({ message: e, children: t }) {
21871
- const [n, i] = J(!1), r = K(() => {
21872
- e && i(!0);
21873
- }, [e]), o = K(() => i(!1), []);
21874
- return ie(() => {
21875
- e || i(!1);
21876
- }, [e]), /* @__PURE__ */ m("div", { className: "relative h-full w-full", children: /* @__PURE__ */ m(dh, { delayDuration: 100, disableHoverableContent: !0, children: /* @__PURE__ */ R(fh, { open: n && !!e, onOpenChange: i, children: [
21877
- /* @__PURE__ */ m(uh, { asChild: !0, className: "pointer-events-auto h-full w-full", children: /* @__PURE__ */ m(
21878
- "div",
21879
- {
21880
- className: "flex h-full w-full items-center",
21881
- onFocusCapture: r,
21882
- onBlurCapture: o,
21883
- children: t
21884
- }
21885
- ) }),
21886
- e ? /* @__PURE__ */ R(
21887
- Qy,
21888
- {
21889
- side: "top",
21890
- className: "border-black/10 flex items-center gap-1 bg-[#fff] shadow-md",
21891
- children: [
21892
- /* @__PURE__ */ m(st, { icon: nh, color: "critical", size: "sm" }),
21893
- /* @__PURE__ */ m("span", { className: "text-sm font-medium text-f1-foreground-critical", children: e })
21894
- ]
21895
- }
21896
- ) : null
21897
- ] }) }) });
21729
+ function e5(e, t) {
21730
+ if (t.id !== void 0 && t.id in e) {
21731
+ const i = e[t.id];
21732
+ return i == null ? "" : String(i);
21733
+ }
21734
+ const n = t.render(e);
21735
+ return typeof n == "string" ? n : typeof n == "number" ? String(n) : "";
21898
21736
  }
21899
- const Sne = {
21900
- text: "cursor-text",
21901
- pointer: "cursor-pointer",
21902
- default: "cursor-default",
21903
- "not-allowed": "cursor-not-allowed"
21904
- };
21905
- function Qo({
21906
- disabled: e = !1,
21907
- readonly: t = !1,
21908
- showRightBorder: n = !0,
21909
- cursor: i = "text",
21910
- isActive: r = !1,
21911
- borderOnHover: o = !0,
21912
- error: s,
21913
- hint: a,
21914
- hintPosition: l = "left",
21915
- children: c
21916
- }) {
21917
- const d = a && !s && /* @__PURE__ */ m(dh, { delayDuration: 100, children: /* @__PURE__ */ R(fh, { children: [
21918
- /* @__PURE__ */ m(uh, { asChild: !0, children: /* @__PURE__ */ m(
21919
- "button",
21920
- {
21921
- type: "button",
21922
- "aria-label": a.message,
21923
- className: U(
21924
- "pointer-events-auto flex shrink-0 cursor-pointer items-center rounded px-1",
21925
- tn()
21926
- ),
21927
- children: /* @__PURE__ */ m(st, { icon: a.icon, size: "md", color: a.iconColor })
21928
- }
21929
- ) }),
21930
- /* @__PURE__ */ m(
21931
- Qy,
21932
- {
21933
- side: "top",
21934
- className: "border-black/10 max-w-64 cursor-default text-f1-foreground shadow-md",
21935
- children: /* @__PURE__ */ m("span", { className: "text-sm font-medium text-f1-foreground", children: a.message })
21936
- }
21937
- )
21938
- ] }) });
21939
- return /* @__PURE__ */ m(
21940
- "div",
21941
- {
21942
- className: U(
21943
- "flex w-full h-full min-w-0 min-h-12 border-solid",
21944
- "border-0 border-r-[1px] border-f1-border-secondary",
21945
- !n && "border-r-0",
21946
- Sne[i],
21947
- s ? "relative z-[1] border-r-0 bg-f1-background-critical/10 shadow-[inset_0_0_0_1px_hsl(var(--critical-50))]" : r ? "relative z-[1] border-r-0 bg-f1-background shadow-[inset_0_0_0_1px_hsl(var(--selected-50))]" : o ? "shadow-none [&:not(:focus-within)]:hover:shadow-[inset_0_0_0_1px_hsl(var(--neutral-30))] focus-within:relative focus-within:z-[1] focus-within:border-r-0 focus-within:bg-f1-background focus-within:shadow-[inset_0_0_0_1px_hsl(var(--selected-50))]" : "shadow-none",
21948
- t && "bg-f1-background-secondary",
21949
- e && "bg-f1-background-disabled"
21950
- ),
21951
- children: /* @__PURE__ */ R(_ne, { message: s, children: [
21952
- l === "left" ? d : null,
21953
- /* @__PURE__ */ m("div", { className: "min-w-0 flex-1", children: c }),
21954
- l === "right" ? d : null
21955
- ] })
21956
- }
21957
- );
21737
+ function kne(e, t) {
21738
+ const n = (e === "number" || e === "money") && t.numberConfig?.commitOn === "blur" ? "blur" : void 0, i = n !== "blur" && e !== void 0 && bne.has(e);
21739
+ return { commitOn: n, debounce: i };
21958
21740
  }
21959
- const Cne = "yyyy-MM-dd";
21960
- function Ene({
21741
+ function _ne({
21961
21742
  editableColumn: e,
21962
- value: t,
21963
- inputPlaceholder: n,
21964
- error: i,
21965
- loading: r,
21966
- isLastColumn: o,
21967
- onChange: s,
21968
- hint: a,
21969
- item: l
21743
+ localItem: t,
21744
+ debounce: n,
21745
+ commitOn: i,
21746
+ handleCellChange: r,
21747
+ batchCellChanges: o
21970
21748
  }) {
21971
- const c = typeof e.dateConfig == "function" ? e.dateConfig(l) : e.dateConfig, d = X(() => {
21972
- if (!t)
21749
+ return (s, a) => {
21750
+ if (e.id === void 0)
21751
+ return;
21752
+ const l = e.formula;
21753
+ if (!l) {
21754
+ r(e.id, s, { debounce: n, commitOn: i });
21973
21755
  return;
21974
- const u = Ym(t);
21975
- if (Jk(u))
21976
- return { granularity: "day", value: { from: u, to: u } };
21977
- }, [t]), f = (u) => {
21978
- const h = u?.value?.from, p = h ? rh(h, Cne) : "";
21979
- p !== t && s(p);
21980
- };
21981
- return /* @__PURE__ */ m(
21982
- Qo,
21983
- {
21984
- showRightBorder: !o,
21985
- error: i,
21986
- hint: a,
21987
- cursor: "pointer",
21988
- children: /* @__PURE__ */ m(
21989
- "div",
21990
- {
21991
- className: U(
21992
- "flex w-full min-w-0 items-center",
21993
- e.align === "right" && "justify-end"
21994
- ),
21995
- children: /* @__PURE__ */ m(
21996
- h1,
21997
- {
21998
- className: U(
21999
- "[&_input]:!py-0",
22000
- // The cell is taller (48px) than a standalone input, so the icon's
22001
- // fixed top offset no longer centers it — pin it to the full height
22002
- // and let its auto margins center it vertically.
22003
- "[&_[data-slot='icon']]:!inset-y-0",
22004
- "[&_[data-slot='placeholder']]:!flex",
22005
- "[&_[data-slot='placeholder']]:!items-center",
22006
- "[&_[data-slot='placeholder']]:!py-0",
22007
- // The placeholder is absolutely positioned with no right edge, so
22008
- // bound it to the cell width; only then does truncate clip the
22009
- // text instead of letting it spill past the column.
22010
- "[&_[data-slot='placeholder']]:!right-0",
22011
- "[&_[data-slot='placeholder']]:!truncate"
22012
- ),
22013
- placeholder: n ?? e.inputPlaceholder,
22014
- label: e.label,
22015
- hideLabel: !0,
22016
- transparent: !0,
22017
- showIcon: c?.showIcon ?? !0,
22018
- clearable: c?.clearable,
22019
- displayFormat: "default",
22020
- value: d,
22021
- onChange: f,
22022
- loading: r,
22023
- minDate: c?.minDate,
22024
- maxDate: c?.maxDate
22025
- }
22026
- )
22027
- }
22028
- )
22029
- }
22030
- );
22031
- }
22032
- let h0 = null;
22033
- function Nne(e, t) {
22034
- h0 || (h0 = document.createElement("canvas"));
22035
- const n = h0.getContext("2d");
22036
- return n ? (n.font = t, Math.ceil(n.measureText(e).width)) : 0;
22037
- }
22038
- function Ane(e, t = 26, n = 48) {
22039
- const [i, r] = J(null), o = K((a) => {
22040
- if (a) {
22041
- const l = a.querySelector("input");
22042
- l && r(getComputedStyle(l).font);
22043
21756
  }
22044
- }, []), s = i ? Math.max(Nne(e || " ", i) + t, n) : void 0;
22045
- return { ref: o, width: s };
22046
- }
22047
- function Q2(e, t) {
22048
- if (e?.units)
22049
- return typeof e.units == "function" ? e.units(t) : e.units;
22050
- }
22051
- function Tne(e, t, n) {
22052
- const { locale: i } = oa(), r = e?.locale ?? i, o = Q2(e, n), s = o ? e?.unitsPosition === "before" : !1, a = e?.grouping ?? !0, l = X(
22053
- () => new Intl.NumberFormat(r, {
22054
- maximumFractionDigits: e?.maxDecimals,
22055
- useGrouping: a
22056
- }),
22057
- [r, e?.maxDecimals, a]
22058
- ), c = t != null ? l.format(t) : "", d = o ? s ? `${o} ${c}` : `${c} ${o}` : c, { ref: f, width: u } = Ane(d);
22059
- return { ref: f, width: u, locale: r, units: o, unitsBefore: s, grouping: a };
21757
+ const c = {};
21758
+ l({
21759
+ value: s,
21760
+ item: t,
21761
+ selectedItem: a?.selectedItem,
21762
+ setCellValue: (d, f) => {
21763
+ c[d] = f;
21764
+ }
21765
+ }), o(
21766
+ {
21767
+ [e.id]: s,
21768
+ ...c
21769
+ },
21770
+ { debounce: n, commitOn: i }
21771
+ );
21772
+ };
22060
21773
  }
22061
- function PM({
22062
- editableColumn: e,
22063
- value: t,
22064
- inputPlaceholder: n,
22065
- error: i,
22066
- loading: r,
22067
- onChange: o,
22068
- onBlur: s,
22069
- item: a,
22070
- hint: l
21774
+ function AM({
21775
+ column: e,
21776
+ children: t,
21777
+ isLastColumn: n,
21778
+ externalError: i
22071
21779
  }) {
22072
- const c = e.numberConfig, d = typeof t == "string" ? t.trim() : t, f = d !== "" && d != null ? Number(d) : NaN, u = isFinite(f) ? f : null, { ref: h, width: p, locale: y, units: g, unitsBefore: v, grouping: b } = Tne(c, u, a), w = (_) => {
22073
- if (_ == null) {
22074
- t !== "" && o(null);
22075
- return;
22076
- }
22077
- let S = _;
22078
- c?.min != null && S < c.min && (S = c.min), c?.max != null && S > c.max && (S = c.max);
22079
- const E = String(S);
22080
- E !== t && o(E);
22081
- }, x = g && /* @__PURE__ */ m("span", { className: "flex shrink-0 select-none items-center self-center pt-[1px] text-sm text-f1-foreground", children: g }), k = K((_) => {
22082
- const S = _.currentTarget.querySelector("input");
22083
- S && _.target !== S && S.focus();
22084
- }, []);
22085
- return /* @__PURE__ */ m(Qo, { error: i, hint: l, children: /* @__PURE__ */ m(
22086
- "div",
22087
- {
22088
- ref: h,
22089
- onClick: k,
22090
- className: U(
22091
- "flex h-full w-full cursor-text items-center",
22092
- e.align === "right" && "justify-end"
22093
- ),
22094
- children: /* @__PURE__ */ R(
22095
- "div",
22096
- {
22097
- className: U(
22098
- "flex h-full max-w-full items-center gap-1",
22099
- v && "pl-3 [&_input]:pl-1",
22100
- !v && g && "pr-3 [&_input]:pr-1"
22101
- ),
22102
- style: { width: p },
22103
- children: [
22104
- v ? x : null,
22105
- /* @__PURE__ */ m(
22106
- m1,
21780
+ const r = xne();
21781
+ if (!r)
21782
+ return /* @__PURE__ */ m(We, { children: t });
21783
+ const {
21784
+ localItem: o,
21785
+ cellErrors: s,
21786
+ cellLoading: a,
21787
+ handleCellChange: l,
21788
+ batchCellChanges: c,
21789
+ flushPendingChanges: d
21790
+ } = r, f = e, u = f.editType?.(o), h = f.id !== void 0, { commitOn: p, debounce: y } = kne(u, f), g = _ne({
21791
+ editableColumn: f,
21792
+ localItem: o,
21793
+ debounce: y,
21794
+ commitOn: p,
21795
+ handleCellChange: l,
21796
+ batchCellChanges: c
21797
+ });
21798
+ if (h && u) {
21799
+ const v = vne[u], b = e5(o, f);
21800
+ if (v) {
21801
+ const w = (f.id ? s[f.id] : void 0) ?? i, x = f.id ? a[f.id] ?? !1 : !1;
21802
+ return (
21803
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions -- stops cell navigation (href/onClick) from bubbling to the row after child interactions complete
21804
+ /* @__PURE__ */ m(
21805
+ "div",
21806
+ {
21807
+ className: "pointer-events-auto h-full",
21808
+ onClick: (k) => k.stopPropagation(),
21809
+ onMouseDown: (k) => k.stopPropagation(),
21810
+ children: /* @__PURE__ */ m(
21811
+ v,
22107
21812
  {
22108
- label: e.label,
22109
- hideLabel: !0,
22110
- value: u,
22111
- placeholder: n ?? e.inputPlaceholder,
22112
- onChange: w,
22113
- onBlur: s,
22114
- loading: r,
22115
- transparent: !0,
22116
- hint: "",
22117
- locale: y,
22118
- grouping: b,
22119
- min: c?.min,
22120
- max: c?.max,
22121
- step: c?.step,
22122
- maxDecimals: c?.maxDecimals
21813
+ editableColumn: f,
21814
+ value: b,
21815
+ inputPlaceholder: f.inputPlaceholder,
21816
+ error: w,
21817
+ item: o,
21818
+ isLastColumn: n,
21819
+ loading: x,
21820
+ onChange: g,
21821
+ onBlur: p === "blur" ? () => d() : void 0,
21822
+ hint: f.cellHint?.(o)
22123
21823
  }
22124
- ),
22125
- v ? null : x
22126
- ]
22127
- }
22128
- )
21824
+ )
21825
+ }
21826
+ )
21827
+ );
22129
21828
  }
22130
- ) });
22131
- }
22132
- const One = (e, t = "USD") => {
22133
- try {
22134
- const n = new Intl.NumberFormat(e, {
22135
- style: "currency",
22136
- currency: t
22137
- }).formatToParts(1), i = n.find((s) => s.type === "currency"), r = n.findIndex((s) => s.type === "currency"), o = n.findIndex((s) => s.type === "integer");
22138
- return {
22139
- symbol: i?.value ?? t,
22140
- before: r < o
22141
- };
22142
- } catch {
22143
- return;
22144
21829
  }
22145
- };
22146
- function Ine(e) {
22147
- const { locale: t } = oa(), n = e.editableColumn.numberConfig, i = n?.locale ?? t, r = Q2(n, e.item), o = X(
22148
- () => r ? One(i, r) : void 0,
22149
- [i, r]
22150
- ), s = X(() => r ? n?.unitsPosition ? n.unitsPosition === "before" : o?.before ?? !1 : !1, [r, n?.unitsPosition, o]);
22151
21830
  return /* @__PURE__ */ m(
22152
- PM,
21831
+ CM,
22153
21832
  {
22154
- ...e,
22155
- editableColumn: {
22156
- ...e.editableColumn,
22157
- numberConfig: {
22158
- ...n,
22159
- units: o?.symbol ?? r ?? "$",
22160
- unitsPosition: s ? "before" : "after"
22161
- }
22162
- }
21833
+ editableColumn: f,
21834
+ item: o,
21835
+ value: e5(o, f),
21836
+ isLastColumn: n,
21837
+ onChange: g
22163
21838
  }
22164
21839
  );
22165
21840
  }
22166
- const p0 = {
22167
- default: "-",
22168
- list: void 0
22169
- }, Th = ({
22170
- item: e,
22171
- property: t,
22172
- visualization: n,
22173
- i18n: i,
22174
- tableAlign: r
22175
- }) => {
22176
- const o = t.render(e), s = n in p0 ? p0[n] : p0.default;
22177
- return pH(
22178
- o,
22179
- {
22180
- visualization: n,
22181
- i18n: i,
22182
- tableAlign: r
22183
- },
22184
- s
22185
- );
22186
- }, QC = /* @__PURE__ */ new Set();
22187
- function Dne(e, t) {
22188
- if (t === void 0)
22189
- return [];
22190
- const n = e[t];
22191
- return Array.isArray(n) ? n.filter((i) => typeof i == "string") : [];
22192
- }
22193
- function Mne({
22194
- editableColumn: e,
22195
- error: t,
22196
- loading: n,
22197
- onChange: i,
22198
- item: r,
22199
- hint: o
22200
- }) {
22201
- const s = Re(), [a, l] = J(!1), c = e.selectConfig;
22202
- if (!c)
22203
- return QC.has(e.label) || (QC.add(e.label), console.warn(
22204
- `MultiSelectCell: column "${e.label}" has editType "multiselect" but no selectConfig`
22205
- )), /* @__PURE__ */ m(Qo, { children: Th({
22206
- item: r,
22207
- property: e,
22208
- visualization: "editableTable",
22209
- i18n: s
22210
- }) });
22211
- const d = Dne(r, e.id), f = {
22212
- label: e.label,
22213
- hideLabel: !0,
22214
- value: d,
22215
- onChange: (h) => i(h),
22216
- loading: n,
22217
- size: "sm",
22218
- placeholder: c.placeholder ?? s.t("common.selectPlaceholder"),
22219
- showSearchBox: c.showSearchBox,
22220
- multiple: !0,
22221
- onOpenChange: l
22222
- }, u = c.clearable ? { clearable: !0 } : {};
22223
- return /* @__PURE__ */ m(Qo, { error: t, isActive: a, hint: o, cursor: "pointer", children: /* @__PURE__ */ m(
22224
- "div",
22225
- {
22226
- className: U(
22227
- "flex w-full min-w-0 h-full",
22228
- "items-center",
22229
- "[&_[data-testid=input-field-wrapper]]:border-0",
22230
- "[&_[data-testid=input-field-wrapper]]:bg-transparent",
22231
- "[&_[data-testid=input-field-wrapper]]:shadow-none",
22232
- "[&_[data-testid=input-field-wrapper]]:ring-0",
22233
- "[&_[data-testid=input-field-wrapper]]:focus-within:ring-0",
22234
- "[&_[data-testid=input-field-wrapper]]:focus-within:ring-offset-0",
22235
- "[&_[data-testid=input-field-wrapper]]:h-full",
22236
- "[&_[data-testid=input-field-wrapper]_.absolute]:top-1/2",
22237
- "[&_[data-testid=input-field-wrapper]_.absolute]:-translate-y-1/2",
22238
- "[&_[data-testid=input-field-wrapper]_.absolute]:bottom-auto",
22239
- "[&>div]:h-full",
22240
- "[&>div]:w-full",
22241
- "[&>div>button]:h-full",
22242
- e.align === "right" && "justify-end"
22243
- ),
22244
- children: "source" in c && c.source ? /* @__PURE__ */ m(
22245
- Qn,
22246
- {
22247
- ...f,
22248
- ...u,
22249
- source: c.source,
22250
- mapOptions: c.mapOptions
22251
- }
22252
- ) : /* @__PURE__ */ m(
22253
- Qn,
22254
- {
22255
- ...f,
22256
- ...u,
22257
- options: typeof c.options == "function" ? c.options(r) : c.options
22258
- }
22259
- )
22260
- }
22261
- ) });
21841
+ const X2 = qe.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ m("div", { className: "relative w-full", children: /* @__PURE__ */ m(
21842
+ "table",
21843
+ {
21844
+ ref: n,
21845
+ className: U(
21846
+ "w-full caption-bottom border-spacing-0 border-0 border-none text-base",
21847
+ e
21848
+ ),
21849
+ ...t
21850
+ }
21851
+ ) }));
21852
+ X2.displayName = "Table";
21853
+ const TM = qe.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ m(
21854
+ "thead",
21855
+ {
21856
+ ref: n,
21857
+ className: U(
21858
+ "relative min-h-10 [&_tr]:hover:bg-transparent",
21859
+ "before:absolute before:inset-x-0 before:top-0 before:h-px before:w-full before:bg-f1-border-secondary before:content-['']",
21860
+ e
21861
+ ),
21862
+ ...t
21863
+ }
21864
+ ));
21865
+ TM.displayName = "TableHeader";
21866
+ const OM = qe.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ m("tbody", { ref: n, className: U("border-0", e), ...t }));
21867
+ OM.displayName = "TableBody";
21868
+ const IM = qe.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ m(
21869
+ "tfoot",
21870
+ {
21871
+ ref: n,
21872
+ className: U(
21873
+ "bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",
21874
+ e
21875
+ ),
21876
+ ...t
21877
+ }
21878
+ ));
21879
+ IM.displayName = "TableFooter";
21880
+ const DM = qe.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ m(
21881
+ "tr",
21882
+ {
21883
+ ref: n,
21884
+ className: U(
21885
+ "group relative transition-colors after:absolute after:inset-x-0 after:bottom-0 after:h-px after:w-full after:bg-f1-border-secondary after:content-[''] hover:bg-f1-background-hover",
21886
+ e
21887
+ ),
21888
+ ...t
21889
+ }
21890
+ ));
21891
+ DM.displayName = "TableRow";
21892
+ const MM = qe.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ m(
21893
+ "th",
21894
+ {
21895
+ ref: n,
21896
+ className: U(
21897
+ "relative px-3 py-2.5 text-left align-middle font-medium text-f1-foreground-secondary first:pl-6 last:pr-6",
21898
+ "after:pointer-events-none after:absolute after:inset-x-0 after:inset-y-1 after:rounded after:bg-transparent after:transition-colors after:content-[''] first:after:left-3 last:after:right-3 hover:after:bg-f1-background-hover",
21899
+ "[&:has([role=checkbox])]:px-2 [&:has([role=checkbox])]:py-2 [&:has([role=checkbox])]:hover:after:bg-transparent",
21900
+ e
21901
+ ),
21902
+ ...t
21903
+ }
21904
+ ));
21905
+ MM.displayName = "TableHead";
21906
+ const PM = qe.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ m(
21907
+ "td",
21908
+ {
21909
+ ref: n,
21910
+ className: U(
21911
+ // `pb` is 1px larger than `pt` on purpose: the row paints its separator on
21912
+ // its own last pixel (`after:bottom-0` on TableRow), so a symmetric `py`
21913
+ // leaves content looking 1px high — the gap below it is a pixel shorter
21914
+ // than the gap above once the rule is drawn over it.
21915
+ "relative min-h-[48px] whitespace-nowrap px-3 pb-[9px] pt-2 align-top first:pl-6 last:pr-6",
21916
+ "[&:has([role=checkbox])]:px-2",
21917
+ e
21918
+ ),
21919
+ ...t
21920
+ }
21921
+ ));
21922
+ PM.displayName = "TableCell";
21923
+ const Sne = qe.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ m(
21924
+ "caption",
21925
+ {
21926
+ ref: n,
21927
+ className: U("text-muted-foreground mt-4 text-sm", e),
21928
+ ...t
21929
+ }
21930
+ ));
21931
+ Sne.displayName = "TableCaption";
21932
+ function J2({ children: e }) {
21933
+ return /* @__PURE__ */ m(OM, { children: e });
22262
21934
  }
22263
- const e5 = /* @__PURE__ */ new Set();
22264
- function Pne({
22265
- editableColumn: e,
22266
- value: t,
22267
- error: n,
22268
- loading: i,
22269
- onChange: r,
22270
- item: o,
22271
- hint: s
22272
- }) {
22273
- const a = Re(), [l, c] = J(!1), d = e.selectConfig;
22274
- if (!d)
22275
- return e5.has(e.label) || (e5.add(e.label), console.warn(
22276
- `SelectCell: column "${e.label}" has editType "select" but no selectConfig`
22277
- )), /* @__PURE__ */ m(Qo, { children: Th({
22278
- item: o,
22279
- property: e,
22280
- visualization: "editableTable",
22281
- i18n: a
22282
- }) });
22283
- const f = {
22284
- label: e.label,
22285
- hideLabel: !0,
22286
- value: t || void 0,
22287
- onChange: (h, p) => {
22288
- const y = h ?? "";
22289
- y !== t && r(y, { selectedItem: p });
22290
- },
22291
- loading: i,
22292
- size: "sm",
22293
- placeholder: d.placeholder ?? a.t("common.selectPlaceholder"),
22294
- showSearchBox: d.showSearchBox,
22295
- defaultItem: d.defaultItem?.(o),
22296
- multiple: !1,
22297
- onOpenChange: c,
22298
- actions: typeof d.actions == "function" ? d.actions(o) : d.actions
22299
- }, u = d.clearable ? { clearable: !0 } : {};
22300
- return /* @__PURE__ */ m(Qo, { error: n, isActive: l, hint: s, cursor: "pointer", children: /* @__PURE__ */ m(
21935
+ const Cne = {
21936
+ auto: void 0,
21937
+ fit: 1
21938
+ }, Ene = (e) => typeof e == "number", dg = (e) => Ene(e) ? e : Cne[e], _d = Ft(
21939
+ void 0
21940
+ );
21941
+ function RM() {
21942
+ const e = ht(_d);
21943
+ if (!e)
21944
+ throw new Error("useTable must be used within a TableProvider");
21945
+ return e;
21946
+ }
21947
+ const S1 = 32, fg = 24, im = 18, Nne = "1px", Ds = 8, Ane = 32, Sw = 4, Cw = 40, Tne = Cw - fg, One = 24, Ine = 16, Z2 = ({
21948
+ depth: e,
21949
+ padding: t = 0
21950
+ }) => `${e * S1 + t}px`, Dne = ({
21951
+ depth: e
21952
+ }) => Z2({
21953
+ depth: e,
21954
+ padding: -Sw
21955
+ }), LM = (e, t) => e && t > 0, FM = (e, t) => e && t, Mne = (e, t) => e && t, $M = (e, t) => e && t, Pne = (e, t, n) => !t && $M(e, n), Rne = (e, t) => e && t?.nestedVariant === "detailed", Lne = ({
21956
+ width: e,
21957
+ linkRef: t,
21958
+ firstCell: n,
21959
+ nestedRowProps: i,
21960
+ children: r,
21961
+ onClick: o
21962
+ }) => {
21963
+ const { collections: s } = Re(), a = FM(
21964
+ n,
21965
+ !!i?.rowWithChildren
21966
+ ), l = LM(
21967
+ n,
21968
+ i?.depth ?? 0
21969
+ ), c = Pne(
21970
+ n,
21971
+ !!i?.rowWithChildren,
21972
+ !!i?.tableWithChildren
21973
+ ), d = Rne(n, i), f = i?.onLoadMoreChildren, u = i?.onAddRow, h = i?.depth ?? 0, p = l ? Z2({
21974
+ depth: a ? h : h + 1
21975
+ }) : void 0, y = f || u;
21976
+ return /* @__PURE__ */ m(
22301
21977
  "div",
22302
21978
  {
22303
21979
  className: U(
22304
- "flex w-full min-w-0 h-full",
22305
- "items-center",
22306
- "[&_[data-testid=input-field-wrapper]]:border-0",
22307
- "[&_[data-testid=input-field-wrapper]]:bg-transparent",
22308
- "[&_[data-testid=input-field-wrapper]]:shadow-none",
22309
- "[&_[data-testid=input-field-wrapper]]:ring-0",
22310
- "[&_[data-testid=input-field-wrapper]]:focus-within:ring-0",
22311
- "[&_[data-testid=input-field-wrapper]]:focus-within:ring-offset-0",
22312
- "[&_[data-testid=input-field-wrapper]]:h-full",
22313
- "[&_[data-testid=input-field-wrapper]_.absolute]:top-1/2",
22314
- "[&_[data-testid=input-field-wrapper]_.absolute]:-translate-y-1/2",
22315
- "[&_[data-testid=input-field-wrapper]_.absolute]:bottom-auto",
22316
- "[&>div]:h-full",
22317
- "[&>div]:w-full",
22318
- "[&>div>button]:h-full",
22319
- e.align === "right" && "justify-end"
21980
+ e !== "auto" && "overflow-hidden",
21981
+ "relative z-[1] h-full",
21982
+ a && "flex items-center gap-2"
22320
21983
  ),
22321
- children: "source" in d && d.source ? /* @__PURE__ */ m(
22322
- Qn,
21984
+ style: {
21985
+ marginLeft: y ? Dne({
21986
+ depth: h + (d ? 0 : 1)
21987
+ }) : p
21988
+ },
21989
+ onClick: () => {
21990
+ y || (t.current?.click(), o?.());
21991
+ },
21992
+ children: u ? /* @__PURE__ */ m(
21993
+ "div",
22323
21994
  {
22324
- ...f,
22325
- ...u,
22326
- source: d.source,
22327
- mapOptions: d.mapOptions
21995
+ className: U(
21996
+ "pointer-events-auto flex items-center w-full h-full",
21997
+ d && "pl-3"
21998
+ ),
21999
+ children: u.actions.length === 1 ? /* @__PURE__ */ m(
22000
+ De,
22001
+ {
22002
+ variant: "outline",
22003
+ size: "sm",
22004
+ icon: u.actions[0].icon ?? Ja,
22005
+ label: u.actions[0].label,
22006
+ onClick: (g) => {
22007
+ g.stopPropagation(), u.actions[0].onClick?.();
22008
+ },
22009
+ loading: u.actions[0].loading,
22010
+ disabled: u.actions[0].disabled
22011
+ }
22012
+ ) : u.actions.some((g) => g.description !== void 0) ? /* @__PURE__ */ m(
22013
+ mr,
22014
+ {
22015
+ mode: "dropdown",
22016
+ variant: "outline",
22017
+ size: "sm",
22018
+ trigger: u.label,
22019
+ disabled: u.actions.every((g) => g.disabled),
22020
+ loading: u.actions.some((g) => g.loading),
22021
+ items: u.actions.map((g, v) => ({
22022
+ value: v.toString(),
22023
+ label: g.label,
22024
+ icon: g.icon,
22025
+ description: g.description
22026
+ })),
22027
+ onClick: (g) => {
22028
+ u.actions[Number(g)]?.onClick?.();
22029
+ }
22030
+ }
22031
+ ) : /* @__PURE__ */ m(
22032
+ mr,
22033
+ {
22034
+ variant: "outline",
22035
+ size: "sm",
22036
+ disabled: u.actions.every((g) => g.disabled),
22037
+ loading: u.actions.some((g) => g.loading),
22038
+ items: u.actions.map((g, v) => ({
22039
+ value: v.toString(),
22040
+ label: g.label,
22041
+ icon: g.icon
22042
+ })),
22043
+ onClick: (g) => {
22044
+ u.actions[Number(g)]?.onClick?.();
22045
+ }
22046
+ }
22047
+ )
22328
22048
  }
22329
- ) : /* @__PURE__ */ m(
22330
- Qn,
22049
+ ) : f ? /* @__PURE__ */ m(
22050
+ "div",
22331
22051
  {
22332
- ...f,
22333
- ...u,
22334
- options: typeof d.options == "function" ? d.options(o) : d.options
22052
+ className: U(
22053
+ "pointer-events-auto cursor-pointer flex items-center w-full h-full border-0 border-r-[1px] border-solid border-f1-border-secondary"
22054
+ ),
22055
+ children: /* @__PURE__ */ m(
22056
+ De,
22057
+ {
22058
+ variant: "ghost",
22059
+ size: "md",
22060
+ icon: qb,
22061
+ label: s.table.seeMoreChildren,
22062
+ onClick: (g) => {
22063
+ g.stopPropagation(), f?.();
22064
+ }
22065
+ }
22066
+ )
22335
22067
  }
22336
- )
22068
+ ) : /* @__PURE__ */ R(We, { children: [
22069
+ /* @__PURE__ */ m(
22070
+ "div",
22071
+ {
22072
+ className: U(
22073
+ "flex h-[var(--chevron-parent-size)] w-[var(--chevron-parent-size)] min-w-[var(--chevron-parent-size)] items-center justify-center",
22074
+ a && "pointer-events-auto cursor-pointer rounded-sm hover:bg-f1-foreground-disabled"
22075
+ ),
22076
+ style: {
22077
+ "--chevron-parent-size": `${fg}px`,
22078
+ "--chevron-size": `${im}px`,
22079
+ "--spacing-factor": `${S1}px`
22080
+ },
22081
+ onClick: (g) => {
22082
+ a && (g.stopPropagation(), i?.onExpand?.());
22083
+ },
22084
+ children: a ? i?.expanded ? /* @__PURE__ */ m(
22085
+ hH,
22086
+ {
22087
+ className: "pointer-events-none shrink-0",
22088
+ size: im
22089
+ }
22090
+ ) : /* @__PURE__ */ m(
22091
+ pH,
22092
+ {
22093
+ className: "pointer-events-none shrink-0",
22094
+ size: im
22095
+ }
22096
+ ) : null
22097
+ }
22098
+ ),
22099
+ /* @__PURE__ */ m(
22100
+ "div",
22101
+ {
22102
+ className: U(
22103
+ a && "min-w-0 w-full h-full",
22104
+ c && "pl-[var(--spacing-factor)]",
22105
+ "relative"
22106
+ ),
22107
+ children: r
22108
+ }
22109
+ )
22110
+ ] })
22337
22111
  }
22338
- ) });
22339
- }
22340
- function Rne(e, t, n) {
22341
- if (!e.dateConfig || e.id === void 0)
22342
- return;
22343
- const i = t[e.id];
22344
- if (!(typeof i != "string" || !i || !Jk(Ym(i))))
22345
- return rh(Ym(i), "dd MMM yyyy", { locale: n });
22346
- }
22347
- function Lne(e, t, n) {
22348
- const i = e.selectConfig, r = i && typeof i.options == "function" ? i.options(t) : i?.options, o = new Map(
22349
- (Array.isArray(r) ? r : []).filter((s) => "value" in s).map((s) => [s.value, s.label])
22350
22112
  );
22351
- return n.map((s) => o.get(s) ?? String(s)).join(", ");
22352
- }
22353
- function RM({
22354
- editableColumn: e,
22355
- item: t,
22356
- className: n,
22357
- showFieldAffordances: i = !0
22358
- }) {
22359
- const r = Re(), o = lI(), s = e.align === "right", a = Rne(e, t, o), l = e.id !== void 0 ? t[e.id] : void 0, c = Array.isArray(l) ? Lne(e, t, l) : void 0, d = i ? Q2(e.numberConfig, t) : void 0, f = e.numberConfig?.unitsPosition === "before", u = d ? /* @__PURE__ */ m("span", { className: "shrink-0 select-none pt-px text-sm", children: d }) : null;
22360
- return /* @__PURE__ */ m(
22113
+ }, Fne = ({
22114
+ horizontalOffset: e,
22115
+ isDetailedVariant: t,
22116
+ lineHeight: n
22117
+ }) => {
22118
+ const i = t ? 12 : 0;
22119
+ return {
22120
+ "--horizontal-offset": `${e + (t ? 12 : 8)}px`,
22121
+ "--starting-y": "52px",
22122
+ ...n ? { "--line-height": `calc(${n} - ${i}px)` } : {}
22123
+ };
22124
+ }, $ne = (e, t, n) => {
22125
+ const { rowWithChildren: i, nestedVariant: r, onLoadMoreChildren: o, onAddRow: s } = t ?? {}, a = r === "detailed", l = o || s, c = l ? Ane / 2 - Ds : fg / 2 - Ds, d = i && !l ? Tne : a ? Cw - 6 : Cw, f = e !== 0 && `calc(${e}px - ${fg + Ds}px )`, u = n === "editableTable" ? Fne({
22126
+ horizontalOffset: c,
22127
+ isDetailedVariant: a,
22128
+ lineHeight: f
22129
+ }) : {}, h = n === "editableTable" ? One : Ine, p = t?.selectableRow ? h : 0;
22130
+ return {
22131
+ "--line-left": `-${2 * im - p}px`,
22132
+ "--line-width": Nne,
22133
+ "--horizontal-offset": `${c}px`,
22134
+ "--horizontal-left": `calc(4px - ${p}px)`,
22135
+ "--horizontal-height": `${S1 / 2}px`,
22136
+ "--connector-width": `${d}px`,
22137
+ ...f ? { "--line-height": f } : {},
22138
+ "--starting-y": "40px",
22139
+ ...u
22140
+ };
22141
+ }, Bne = "h-full overflow-visible before:absolute before:-left-[var(--line-left)] before:top-[var(--starting-y)] before:h-[var(--line-height)] before:w-[var(--line-width)] before:bg-f1-foreground-disabled before:content-['']", zne = "after:absolute after:left-[var(--horizontal-left)] after:top-[var(--horizontal-offset)] after:h-[var(--horizontal-height)] after:w-[var(--connector-width)] after:rounded-bl-[var(--horizontal-height)] after:content-[''] after:shadow-[inset_1px_-1px_0_0_hsl(var(--neutral-30))]", jne = ({
22142
+ firstCell: e,
22143
+ nestedRowProps: t,
22144
+ fromVisualization: n
22145
+ }) => {
22146
+ const i = LM(
22147
+ e,
22148
+ t?.depth ?? 0
22149
+ ), r = Mne(
22150
+ t?.expanded ?? !1,
22151
+ e
22152
+ ), o = t === void 0 || t?.nestedVariant === "basic", s = t?.nestedVariant === "detailed", a = o || t?.rowWithChildren, l = s && (t?.onLoadMoreChildren || t?.onAddRow), c = i ? Z2({
22153
+ depth: t?.depth ?? 0,
22154
+ padding: 0
22155
+ }) : void 0, d = t?.connectorHeight ?? 0;
22156
+ return !r && !i && !t?.rowWithChildren ? null : /* @__PURE__ */ m(
22361
22157
  "div",
22362
22158
  {
22363
22159
  className: U(
22364
- "flex h-full w-full min-w-0 items-center gap-1.5",
22365
- "px-3",
22366
- s && "justify-end",
22367
- n
22160
+ "absolute inset-0 h-full",
22161
+ t?.parentHasChildren && r && Bne,
22162
+ t?.parentHasChildren && i && a && !l && zne
22368
22163
  ),
22369
- children: /* @__PURE__ */ R("span", { className: "flex min-w-0 items-center gap-1.5", children: [
22370
- f ? u : null,
22371
- /* @__PURE__ */ m("span", { className: "min-w-0 truncate", children: a ?? c ?? Th({
22372
- item: t,
22373
- property: e,
22374
- visualization: "editableTable",
22375
- i18n: r
22376
- }) }),
22377
- f ? null : u
22378
- ] })
22164
+ style: {
22165
+ marginLeft: c,
22166
+ ...$ne(
22167
+ d,
22168
+ t,
22169
+ n
22170
+ )
22171
+ }
22379
22172
  }
22380
22173
  );
22381
- }
22382
- function Fne({
22383
- editableColumn: e,
22384
- item: t,
22385
- hint: n
22174
+ }, h0 = "repeating-linear-gradient(45deg,transparent_0px,transparent_8px,hsl(var(--neutral-20))_8px,hsl(var(--neutral-20))_9px)", p0 = "before:absolute before:inset-0 before:z-[-1] before:h-[calc(100%-1px)] before:w-full before:transition-all before:content-[''] after:absolute after:inset-x-0 after:bottom-0 after:h-px after:w-full after:bg-f1-border-secondary after:content-['']", t5 = {
22175
+ none: `bg-f1-background ${p0} before:bg-f1-background group-hover:before:bg-f1-background-hover`,
22176
+ striped: `bg-f1-background bg-[${h0}] [background-size:100%_100px] ${p0} before:bg-[${h0},_var(--f1-background)] before:[background-size:100%_100px,_100%_100%] group-hover:before:bg-[${h0},_var(--f1-background-hover)] group-hover:before:[background-size:100%_100px,_100%_100%]`,
22177
+ striked: `bg-f1-background ${p0} before:bg-f1-background group-hover:before:bg-f1-background-hover`
22178
+ };
22179
+ function jn({
22180
+ children: e,
22181
+ href: t,
22182
+ onClick: n,
22183
+ width: i = "auto",
22184
+ minWidth: r,
22185
+ firstCell: o = !1,
22186
+ sticky: s,
22187
+ colSpan: a,
22188
+ className: l,
22189
+ loading: c = !1,
22190
+ nestedRowProps: d,
22191
+ fromVisualization: f,
22192
+ referenceRowType: u = "none",
22193
+ highlighted: h = !1
22386
22194
  }) {
22387
- return /* @__PURE__ */ m(
22388
- Qo,
22195
+ const { isScrolled: p, isScrolledRight: y } = RM(), { actions: g } = Re(), v = s?.left !== void 0, b = s?.right !== void 0, w = v || b, x = s?.left, k = s?.right, _ = dg(i), S = r !== void 0 ? dg(r) : _, E = L(null), C = d?.depth ?? 0, A = d?.nestedVariant === "detailed", T = $M(
22196
+ o,
22197
+ !!d?.tableWithChildren
22198
+ ) && {
22199
+ marginLeft: `${(C + (A ? 0 : 1)) * S1}px`
22200
+ };
22201
+ return /* @__PURE__ */ R(
22202
+ PM,
22389
22203
  {
22390
- disabled: !0,
22391
- borderOnHover: !1,
22392
- hint: n,
22393
- hintPosition: n?.hintPosition ?? "right",
22394
- cursor: "not-allowed",
22395
- children: /* @__PURE__ */ m(
22396
- RM,
22397
- {
22398
- editableColumn: e,
22399
- item: t,
22400
- className: "min-h-12 [&_*]:text-f1-foreground-secondary"
22401
- }
22402
- )
22204
+ colSpan: a,
22205
+ className: U(
22206
+ "h-full",
22207
+ o && "peer font-medium",
22208
+ w && p && t5[u],
22209
+ w && "sticky z-10",
22210
+ b && t5[u],
22211
+ // The row hover keeps reading through the highlighted cell, so a hovered
22212
+ // row stays one uniform surface.
22213
+ h && "bg-[hsl(var(--neutral-2))] group-hover:bg-f1-background-hover",
22214
+ // Sticky cells paint their opaque background on the `before` layer;
22215
+ // the highlighted tint has to land there too or it stays hidden under it.
22216
+ h && w && "before:bg-[hsl(var(--neutral-2))] group-hover:before:bg-f1-background-hover",
22217
+ t && "cursor-pointer",
22218
+ l
22219
+ ),
22220
+ style: {
22221
+ width: _,
22222
+ maxWidth: _,
22223
+ minWidth: S,
22224
+ left: x,
22225
+ right: k
22226
+ },
22227
+ children: [
22228
+ /* @__PURE__ */ m(Jt, { children: v && p || b && y ? /* @__PURE__ */ m(
22229
+ it.div,
22230
+ {
22231
+ className: U(
22232
+ "absolute inset-y-0 h-full w-4 from-f1-foreground-secondary to-transparent",
22233
+ v && "-right-4 bg-gradient-to-r",
22234
+ b && "-left-4 bg-gradient-to-l"
22235
+ ),
22236
+ initial: { opacity: 0 },
22237
+ animate: { opacity: 0.1 },
22238
+ exit: { opacity: 0 }
22239
+ },
22240
+ "cell-shadow-gradient"
22241
+ ) : null }),
22242
+ o && d?.tableWithChildren ? /* @__PURE__ */ m(
22243
+ jne,
22244
+ {
22245
+ firstCell: o,
22246
+ nestedRowProps: d,
22247
+ fromVisualization: f
22248
+ }
22249
+ ) : null,
22250
+ c ? /* @__PURE__ */ m(
22251
+ "div",
22252
+ {
22253
+ style: { ...T },
22254
+ className: U(
22255
+ "flex h-full items-center",
22256
+ f === "editableTable" ? "min-h-[32px]" : "min-h-[24px]"
22257
+ ),
22258
+ children: /* @__PURE__ */ m(Be, { className: "h-4 w-full" })
22259
+ }
22260
+ ) : null,
22261
+ c ? null : /* @__PURE__ */ R(We, { children: [
22262
+ /* @__PURE__ */ m(
22263
+ "div",
22264
+ {
22265
+ className: U(
22266
+ "[&:has([role=checkbox])]:relative [&:has([role=checkbox])]:z-[1]",
22267
+ "[&:has([type=button])]:relative [&:has([type=button])]:z-[1]",
22268
+ "[&:has(a)]:relative [&:has(a)]:z-[1]",
22269
+ "pointer-events-none h-full items-start"
22270
+ ),
22271
+ children: FM(
22272
+ o,
22273
+ !!d?.rowWithChildren
22274
+ ) ? /* @__PURE__ */ m(
22275
+ Lne,
22276
+ {
22277
+ linkRef: E,
22278
+ firstCell: o,
22279
+ nestedRowProps: d,
22280
+ children: e
22281
+ }
22282
+ ) : /* @__PURE__ */ m(
22283
+ "div",
22284
+ {
22285
+ className: U(
22286
+ i !== "auto" && "overflow-hidden",
22287
+ "relative z-[1] h-full"
22288
+ ),
22289
+ style: {
22290
+ ...T
22291
+ },
22292
+ onClick: () => {
22293
+ E.current?.click(), n?.();
22294
+ },
22295
+ children: e
22296
+ }
22297
+ )
22298
+ }
22299
+ ),
22300
+ t ? /* @__PURE__ */ m(
22301
+ fO,
22302
+ {
22303
+ ref: E,
22304
+ href: t,
22305
+ className: "pointer-events-auto absolute inset-0 !z-0 block",
22306
+ tabIndex: o ? void 0 : -1,
22307
+ children: /* @__PURE__ */ m("span", { className: "sr-only", children: g.view })
22308
+ }
22309
+ ) : null,
22310
+ n ? /* @__PURE__ */ m(
22311
+ "button",
22312
+ {
22313
+ type: "button",
22314
+ onClick: (I) => {
22315
+ I.stopPropagation(), n();
22316
+ },
22317
+ "data-testid": "table-cell-action-button",
22318
+ className: "table-cell-action-button absolute inset-0 !z-0 block",
22319
+ tabIndex: o ? void 0 : -1,
22320
+ onKeyDown: (I) => {
22321
+ (I.key === "Enter" || I.key === " ") && (I.preventDefault(), n());
22322
+ },
22323
+ children: /* @__PURE__ */ m("span", { className: "sr-only", children: g.view })
22324
+ }
22325
+ ) : null
22326
+ ] })
22327
+ ]
22403
22328
  }
22404
22329
  );
22405
22330
  }
22406
- function LM({
22407
- editableColumn: e,
22408
- item: t,
22409
- isLastColumn: n,
22410
- hint: i
22331
+ function Hne({
22332
+ info: e,
22333
+ icon: t,
22334
+ label: n
22411
22335
  }) {
22412
- return /* @__PURE__ */ m(
22413
- Qo,
22336
+ const [i, r] = J(!1), { forms: o } = Re();
22337
+ return /* @__PURE__ */ R(
22338
+ sI,
22414
22339
  {
22415
- showRightBorder: !n,
22416
- borderOnHover: !1,
22417
- hint: i,
22418
- hintPosition: i?.hintPosition ?? "right",
22419
- cursor: "default",
22420
- children: /* @__PURE__ */ m(
22421
- RM,
22422
- {
22423
- editableColumn: e,
22424
- item: t,
22425
- showFieldAffordances: !1
22426
- }
22427
- )
22340
+ open: i,
22341
+ onOpenChange: r,
22342
+ openDelay: 300,
22343
+ closeDelay: 100,
22344
+ children: [
22345
+ /* @__PURE__ */ m(aI, { asChild: !0, children: /* @__PURE__ */ m(
22346
+ "button",
22347
+ {
22348
+ type: "button",
22349
+ className: U(
22350
+ "flex h-5 w-5 items-center justify-center rounded-xs text-f1-foreground-secondary",
22351
+ tn()
22352
+ ),
22353
+ "aria-label": e.label ?? n ?? o.moreInformation,
22354
+ children: /* @__PURE__ */ m(st, { icon: t, size: "sm" })
22355
+ }
22356
+ ) }),
22357
+ /* @__PURE__ */ m(lI, { className: "w-auto max-w-xs px-3 py-2 shadow-md", children: /* @__PURE__ */ R("div", { className: "flex flex-col gap-1 whitespace-normal text-left", children: [
22358
+ /* @__PURE__ */ m("p", { children: e.title }),
22359
+ /* @__PURE__ */ m("p", { className: "text-f1-foreground-inverse-secondary", children: e.description }),
22360
+ e.link ? /* @__PURE__ */ m(
22361
+ "button",
22362
+ {
22363
+ type: "button",
22364
+ onClick: () => {
22365
+ r(!1), e.link?.onClick();
22366
+ },
22367
+ className: U(
22368
+ "mt-1 w-fit rounded-xs font-medium text-f1-foreground-inverse underline underline-offset-2 transition-colors hover:text-f1-foreground-inverse-secondary",
22369
+ tn()
22370
+ ),
22371
+ children: e.link.label
22372
+ }
22373
+ ) : null
22374
+ ] }) })
22375
+ ]
22428
22376
  }
22429
22377
  );
22430
22378
  }
22431
- function $ne(e) {
22432
- if (e)
22433
- return e.icon ? e.icon : Ch(e.inputType);
22434
- }
22435
- function Bne({
22436
- editableColumn: e,
22437
- value: t,
22438
- inputPlaceholder: n,
22439
- error: i,
22440
- loading: r,
22441
- onChange: o,
22442
- hint: s
22379
+ function BM({
22380
+ info: e,
22381
+ icon: t = Fy,
22382
+ label: n
22443
22383
  }) {
22444
- const a = e.textConfig, l = a?.inputType ?? "text", c = $ne(a);
22445
- return /* @__PURE__ */ m(Qo, { error: i, hint: s, children: /* @__PURE__ */ m(
22384
+ return typeof e != "string" ? /* @__PURE__ */ m(Hne, { info: e, icon: t, label: n }) : /* @__PURE__ */ m(xc, { label: e, children: /* @__PURE__ */ m(
22446
22385
  "div",
22447
22386
  {
22448
22387
  className: U(
22449
- "flex w-full min-w-0",
22450
- "cursor-text items-center",
22451
- e.align === "right" && "[&_input]:text-right"
22388
+ "flex h-5 w-5 items-center justify-center rounded-xs",
22389
+ tn()
22452
22390
  ),
22453
- children: /* @__PURE__ */ m(
22454
- oh,
22455
- {
22456
- type: l,
22457
- icon: c,
22458
- label: e.label,
22459
- hideLabel: !0,
22460
- value: t,
22461
- placeholder: n ?? e.inputPlaceholder,
22462
- onChange: o,
22463
- loading: r,
22464
- transparent: !0
22465
- }
22466
- )
22391
+ tabIndex: 0,
22392
+ children: /* @__PURE__ */ m(st, { icon: t, size: "sm" })
22467
22393
  }
22468
22394
  ) });
22469
22395
  }
22470
- const zne = {
22471
- text: Bne,
22472
- number: PM,
22473
- money: Ine,
22474
- date: Ene,
22475
- select: Pne,
22476
- multiselect: Mne,
22477
- "display-only": LM,
22478
- disabled: Fne
22479
- }, jne = /* @__PURE__ */ new Set([
22480
- "text",
22481
- "number",
22482
- "money"
22483
- ]), Hne = 250, FM = Ft(null);
22484
- function $M({
22485
- item: e,
22486
- onCellChange: t,
22487
- children: n
22396
+ function zi({
22397
+ children: e,
22398
+ width: t = "auto",
22399
+ minWidth: n,
22400
+ sortState: i = "none",
22401
+ onSortClick: r,
22402
+ onClick: o,
22403
+ info: s,
22404
+ infoIcon: a = Fy,
22405
+ sticky: l,
22406
+ hidden: c = !1,
22407
+ highlighted: d = !1,
22408
+ align: f = "left",
22409
+ className: u,
22410
+ colSpan: h
22488
22411
  }) {
22489
- const [i, r] = J(e), [o, s] = J({}), [a, l] = J({}), { t: c } = Re(), d = L(i);
22490
- d.current = i;
22491
- const f = L(null);
22492
- ie(() => {
22493
- const x = { ...e, ...f.current?.updates };
22494
- d.current = x, r(x);
22495
- }, [e]);
22496
- const u = (x, k) => {
22497
- l((_) => {
22498
- const S = { ..._ };
22499
- for (const E of x)
22500
- S[E] = k;
22501
- return S;
22502
- });
22503
- }, h = (x, k) => {
22504
- s((_) => {
22505
- if (k === void 0) {
22506
- const E = new Set(x);
22507
- return Object.fromEntries(
22508
- Object.entries(_).filter(([C]) => !E.has(C))
22509
- );
22510
- }
22511
- const S = { ..._ };
22512
- for (const E of x)
22513
- S[E] = k;
22514
- return S;
22515
- });
22516
- }, p = (x) => {
22517
- const k = Object.keys(x), _ = d.current, S = {};
22518
- for (const E of k)
22519
- S[E] = [x[E], _[E]];
22520
- u(k, !0), t({
22521
- updatedItem: _,
22522
- changes: S
22523
- }).then((E) => {
22524
- E && Object.keys(E).length > 0 && s((C) => ({ ...C, ...E }));
22525
- }).catch((E) => {
22526
- const C = E instanceof Error ? E.message : c("collections.editableTable.errors.saveFailed");
22527
- h(k, C);
22528
- }).finally(() => {
22529
- u(k, !1);
22530
- });
22531
- }, y = () => {
22532
- const x = f.current;
22533
- x && (x.timer && clearTimeout(x.timer), f.current = null, p(x.previousValues));
22534
- }, g = L(y);
22535
- g.current = y, ie(() => () => g.current(), []);
22536
- const v = (x, k) => {
22537
- const _ = Object.keys(x);
22538
- if (_.length === 0)
22539
- return;
22540
- const S = d.current, E = {};
22541
- for (const I of _)
22542
- E[I] = S[I];
22543
- const C = { ...S, ...x };
22544
- if (d.current = C, r(C), h(_, void 0), !k?.debounce && k?.commitOn !== "blur") {
22545
- y(), p(E);
22546
- return;
22412
+ const { isScrolled: p, isScrolledRight: y } = RM(), g = l?.left !== void 0, v = l?.right !== void 0, b = g || v, w = l?.left ?? 0, x = l?.right ?? 0, k = r || s, _ = r || o ? () => {
22413
+ r?.(), o?.();
22414
+ } : void 0, S = /* @__PURE__ */ R(
22415
+ "div",
22416
+ {
22417
+ className: U(
22418
+ "flex items-center whitespace-nowrap",
22419
+ k && "gap-1",
22420
+ f === "right" && "flex-row-reverse"
22421
+ ),
22422
+ children: [
22423
+ typeof e == "string" ? /* @__PURE__ */ m(Hr, { className: U(t !== "auto" && "overflow-hidden"), children: e }) : /* @__PURE__ */ m("div", { className: U("truncate", t !== "auto" && "overflow-hidden"), children: e }),
22424
+ k ? /* @__PURE__ */ R("div", { className: "flex items-center", children: [
22425
+ s ? /* @__PURE__ */ m(
22426
+ "div",
22427
+ {
22428
+ className: "flex h-6 w-6 items-center justify-center text-f1-foreground-secondary",
22429
+ onClick: (A) => A.stopPropagation(),
22430
+ children: /* @__PURE__ */ m(
22431
+ BM,
22432
+ {
22433
+ info: s,
22434
+ icon: a,
22435
+ label: typeof e == "string" ? e : void 0
22436
+ }
22437
+ )
22438
+ }
22439
+ ) : null,
22440
+ r ? /* @__PURE__ */ m(
22441
+ it.button,
22442
+ {
22443
+ className: U(
22444
+ "relative h-5 w-5 rounded-xs p-1 text-f1-foreground-secondary opacity-0 transition-all focus-within:opacity-100 hover:bg-f1-background-hover group-hover:opacity-100",
22445
+ tn()
22446
+ ),
22447
+ "aria-label": "Sort",
22448
+ whileTap: { scale: 0.8 },
22449
+ transition: { duration: 0.1 },
22450
+ children: /* @__PURE__ */ R(Jt, { children: [
22451
+ /* @__PURE__ */ m(
22452
+ it.div,
22453
+ {
22454
+ className: "absolute left-1 top-1 flex h-3 w-3 items-center justify-center",
22455
+ animate: {
22456
+ rotate: i === "desc" ? 0 : 180,
22457
+ x: i === "none" ? -3 : 0,
22458
+ y: i === "none" ? -1 : 0,
22459
+ scale: i === "none" ? 0.9 : 1
22460
+ },
22461
+ transition: {
22462
+ duration: 0.2,
22463
+ ease: [0.175, 0.885, 0.32, 1.275]
22464
+ },
22465
+ children: /* @__PURE__ */ m(st, { icon: qb, size: "xs" })
22466
+ },
22467
+ "sort-arrow"
22468
+ ),
22469
+ i === "none" ? /* @__PURE__ */ m(
22470
+ it.div,
22471
+ {
22472
+ className: "absolute left-1 top-1 flex h-3 w-3 items-center justify-center",
22473
+ initial: { opacity: 0, x: 0, y: 0, scale: 0.9 },
22474
+ animate: { opacity: 1, x: 3, y: 1, scale: 0.9 },
22475
+ exit: { opacity: 0, x: 0, y: 0, scale: 0.9 },
22476
+ transition: {
22477
+ duration: 0.2,
22478
+ ease: [0.175, 0.885, 0.32, 1.275]
22479
+ },
22480
+ children: /* @__PURE__ */ m(st, { icon: qb, size: "xs" })
22481
+ },
22482
+ "sort-arrow-secondary"
22483
+ ) : null
22484
+ ] })
22485
+ }
22486
+ ) : null
22487
+ ] }) : null
22488
+ ]
22547
22489
  }
22548
- const A = f.current;
22549
- A?.timer && clearTimeout(A.timer);
22550
- const T = A?.deferred || k?.commitOn === "blur";
22551
- f.current = {
22552
- previousValues: { ...E, ...A?.previousValues },
22553
- updates: { ...A?.updates, ...x },
22554
- deferred: T,
22555
- timer: T ? void 0 : setTimeout(() => g.current(), Hne)
22556
- };
22557
- }, b = (x, k, _) => v({ [x]: k }, _), w = (x, k) => v(x, k);
22558
- return /* @__PURE__ */ m(
22559
- FM.Provider,
22490
+ ), E = dg(t), C = n !== void 0 ? dg(n) : E;
22491
+ return /* @__PURE__ */ R(
22492
+ MM,
22560
22493
  {
22561
- value: {
22562
- localItem: i,
22563
- cellErrors: o,
22564
- cellLoading: a,
22565
- handleCellChange: b,
22566
- batchCellChanges: w,
22567
- flushPendingChanges: y
22494
+ className: U(
22495
+ "group h-11",
22496
+ "bg-f1-background",
22497
+ b && (p || y) && "relative bg-f1-background z-10 before:absolute before:inset-x-0 before:bottom-0 before:h-px before:w-full before:bg-f1-border-secondary before:content-['']",
22498
+ b && "sticky",
22499
+ // The tint is a background-image over the opaque header background,
22500
+ // not a bg-color swap: an alpha bg-color would let the `thead::before`
22501
+ // top rule bleed through and double up with the one painted on top.
22502
+ d && "bg-[linear-gradient(hsl(var(--neutral-2)),hsl(var(--neutral-2)))]",
22503
+ c && "after:hidden",
22504
+ _ && "cursor-pointer",
22505
+ u
22506
+ ),
22507
+ "data-highlighted": d ? "true" : void 0,
22508
+ onClick: _,
22509
+ tabIndex: l ? 0 : void 0,
22510
+ colSpan: h,
22511
+ style: {
22512
+ width: E,
22513
+ maxWidth: E,
22514
+ minWidth: C,
22515
+ left: w,
22516
+ right: x
22568
22517
  },
22569
- children: n
22518
+ role: c ? "presentation" : void 0,
22519
+ "aria-sort": r ? i === "asc" ? "ascending" : i === "desc" ? "descending" : "none" : void 0,
22520
+ children: [
22521
+ /* @__PURE__ */ m("div", { className: "absolute inset-x-0 top-0 z-[1] h-px w-full bg-f1-border-secondary" }),
22522
+ /* @__PURE__ */ m(Jt, { children: g && p || v && y ? /* @__PURE__ */ m(
22523
+ it.div,
22524
+ {
22525
+ className: U(
22526
+ "absolute inset-y-0 h-full w-4 from-f1-foreground-secondary to-transparent",
22527
+ g && "-right-4 bg-gradient-to-r",
22528
+ v && "-left-4 bg-gradient-to-l"
22529
+ ),
22530
+ initial: { opacity: 0 },
22531
+ animate: { opacity: 0.1 },
22532
+ exit: { opacity: 0 }
22533
+ },
22534
+ "shadow-gradient"
22535
+ ) : null }),
22536
+ c ? null : S
22537
+ ]
22570
22538
  }
22571
22539
  );
22572
22540
  }
22573
- function Vne() {
22574
- return ht(FM);
22575
- }
22576
- function t5(e, t) {
22577
- if (t.id !== void 0 && t.id in e) {
22578
- const i = e[t.id];
22579
- return i == null ? "" : String(i);
22541
+ const Mc = 40, _i = Qe(
22542
+ ({ children: e, selected: t, className: n, sticky: i, style: r }, o) => {
22543
+ const a = ht(_d)?.stickyHeaderHeight ?? Mc;
22544
+ return /* @__PURE__ */ m(
22545
+ DM,
22546
+ {
22547
+ ref: o,
22548
+ className: U(
22549
+ t && "bg-f1-background-selected hover:bg-f1-background-selected",
22550
+ n,
22551
+ "relative before:pointer-events-none before:absolute before:inset-0 before:z-10 before:content-['']",
22552
+ "[&:has(.table-cell-action-button:focus)]:before:rounded-sm [&:has(.table-cell-action-button:focus)]:before:ring-1 [&:has(.table-cell-action-button:focus)]:before:ring-inset [&:has(.table-cell-action-button:focus)]:before:ring-f1-special-ring",
22553
+ "[&:has(a:focus)]:before:rounded-sm [&:has(a:focus)]:before:ring-1 [&:has(a:focus)]:before:ring-inset [&:has(a:focus)]:before:ring-f1-special-ring",
22554
+ // A sticky row is lifted above the rows scrolling underneath it, so its
22555
+ // background has to stay opaque in every state. `bg-f1-background-hover`
22556
+ // is a 4%-alpha tint — right for a plain row, where it tints the page
22557
+ // behind it, but on a sticky row it would own `background-color` and let
22558
+ // those rows show through. So the opaque colour is kept on hover too and
22559
+ // the tint rides over it as a background-image layer, the same way the
22560
+ // highlighted table header paints its own.
22561
+ i && "sticky z-20 bg-f1-background hover:bg-f1-background hover:bg-[linear-gradient(hsl(var(--neutral-5)),hsl(var(--neutral-5)))]"
22562
+ ),
22563
+ style: {
22564
+ ...i ? { top: a } : void 0,
22565
+ ...r
22566
+ },
22567
+ children: e
22568
+ }
22569
+ );
22580
22570
  }
22581
- const n = t.render(e);
22582
- return typeof n == "string" ? n : typeof n == "number" ? String(n) : "";
22583
- }
22584
- function Wne(e, t) {
22585
- const n = (e === "number" || e === "money") && t.numberConfig?.commitOn === "blur" ? "blur" : void 0, i = n !== "blur" && e !== void 0 && jne.has(e);
22586
- return { commitOn: n, debounce: i };
22587
- }
22588
- function Une({
22589
- editableColumn: e,
22590
- localItem: t,
22591
- debounce: n,
22592
- commitOn: i,
22593
- handleCellChange: r,
22594
- batchCellChanges: o
22595
- }) {
22596
- return (s, a) => {
22597
- if (e.id === void 0)
22571
+ );
22572
+ _i.displayName = "TableRow";
22573
+ function Q2({ children: e, sticky: t = !1 }) {
22574
+ const n = L(null), r = ht(_d)?.setStickyHeaderHeight;
22575
+ return Lt(() => {
22576
+ if (!r)
22598
22577
  return;
22599
- const l = e.formula;
22600
- if (!l) {
22601
- r(e.id, s, { debounce: n, commitOn: i });
22578
+ if (!t) {
22579
+ r(Mc);
22602
22580
  return;
22603
22581
  }
22604
- const c = {};
22605
- l({
22606
- value: s,
22607
- item: t,
22608
- selectedItem: a?.selectedItem,
22609
- setCellValue: (d, f) => {
22610
- c[d] = f;
22582
+ const o = n.current;
22583
+ if (!o)
22584
+ return;
22585
+ const s = (l) => {
22586
+ const c = l?.borderBoxSize?.[0]?.blockSize ?? o.getBoundingClientRect().height;
22587
+ c > 0 && r(c);
22588
+ };
22589
+ s();
22590
+ const a = new ResizeObserver(([l]) => s(l));
22591
+ return a.observe(o), () => {
22592
+ a.disconnect(), r(Mc);
22593
+ };
22594
+ }, [t, r]), /* @__PURE__ */ m(TM, { ref: n, className: U(t && "sticky top-0 z-30"), children: e });
22595
+ }
22596
+ function Vne({ children: e, loading: t = !1 }) {
22597
+ const [n, i] = J(!1), [r, o] = J(!1), [s, a] = J(
22598
+ Mc
22599
+ ), l = L(null);
22600
+ ie(() => {
22601
+ const d = l.current;
22602
+ if (!d)
22603
+ return;
22604
+ const f = () => {
22605
+ i(d.scrollLeft > 0), o(
22606
+ d.scrollWidth - d.scrollLeft - d.clientWidth > 0
22607
+ );
22608
+ };
22609
+ return f(), d.addEventListener("scroll", f), () => {
22610
+ d.removeEventListener("scroll", f);
22611
+ };
22612
+ }, []);
22613
+ const c = X(
22614
+ () => ({
22615
+ isScrolled: n,
22616
+ setIsScrolled: i,
22617
+ isScrolledRight: r,
22618
+ setIsScrolledRight: o,
22619
+ stickyHeaderHeight: s,
22620
+ setStickyHeaderHeight: a
22621
+ }),
22622
+ [n, r, s]
22623
+ );
22624
+ return /* @__PURE__ */ m(_d.Provider, { value: c, children: /* @__PURE__ */ R("div", { ref: l, className: "relative h-full w-full overflow-auto", children: [
22625
+ /* @__PURE__ */ m(
22626
+ X2,
22627
+ {
22628
+ className: U(t && "select-none opacity-50 transition-opacity"),
22629
+ "aria-live": t ? "polite" : void 0,
22630
+ "aria-busy": t ? "true" : void 0,
22631
+ children: e
22611
22632
  }
22612
- }), o(
22633
+ ),
22634
+ /* @__PURE__ */ m(Jt, { children: t ? /* @__PURE__ */ m(
22635
+ it.div,
22613
22636
  {
22614
- [e.id]: s,
22615
- ...c
22616
- },
22617
- { debounce: n, commitOn: i }
22618
- );
22619
- };
22637
+ className: "absolute inset-0 flex cursor-progress items-center justify-center",
22638
+ initial: { opacity: 0 },
22639
+ animate: { opacity: 1 },
22640
+ exit: { opacity: 0 },
22641
+ children: /* @__PURE__ */ m(Xa, {})
22642
+ }
22643
+ ) : null })
22644
+ ] }) });
22620
22645
  }
22621
- function BM({
22622
- column: e,
22623
- children: t,
22624
- isLastColumn: n,
22625
- externalError: i
22626
- }) {
22627
- const r = Vne();
22628
- if (!r)
22629
- return /* @__PURE__ */ m(We, { children: t });
22630
- const {
22631
- localItem: o,
22632
- cellErrors: s,
22633
- cellLoading: a,
22634
- handleCellChange: l,
22635
- batchCellChanges: c,
22636
- flushPendingChanges: d
22637
- } = r, f = e, u = f.editType?.(o), h = f.id !== void 0, { commitOn: p, debounce: y } = Wne(u, f), g = Une({
22638
- editableColumn: f,
22639
- localItem: o,
22640
- debounce: y,
22641
- commitOn: p,
22642
- handleCellChange: l,
22643
- batchCellChanges: c
22644
- });
22645
- if (h && u) {
22646
- const v = zne[u], b = t5(o, f);
22647
- if (v) {
22648
- const w = (f.id ? s[f.id] : void 0) ?? i, x = f.id ? a[f.id] ?? !1 : !1;
22649
- return (
22650
- // eslint-disable-next-line jsx-a11y/no-static-element-interactions -- stops cell navigation (href/onClick) from bubbling to the row after child interactions complete
22651
- /* @__PURE__ */ m(
22652
- "div",
22653
- {
22654
- className: "pointer-events-auto h-full",
22655
- onClick: (k) => k.stopPropagation(),
22656
- onMouseDown: (k) => k.stopPropagation(),
22657
- children: /* @__PURE__ */ m(
22658
- v,
22659
- {
22660
- editableColumn: f,
22661
- value: b,
22662
- inputPlaceholder: f.inputPlaceholder,
22663
- error: w,
22664
- item: o,
22665
- isLastColumn: n,
22666
- loading: x,
22667
- onChange: g,
22668
- onBlur: p === "blur" ? () => d() : void 0,
22669
- hint: f.cellHint?.(o)
22670
- }
22671
- )
22672
- }
22673
- )
22674
- );
22646
+ function Wne({ columns: e = 5 }) {
22647
+ return /* @__PURE__ */ m(
22648
+ _d.Provider,
22649
+ {
22650
+ value: {
22651
+ isScrolled: !1,
22652
+ setIsScrolled: () => {
22653
+ },
22654
+ isScrolledRight: !1,
22655
+ setIsScrolledRight: () => {
22656
+ },
22657
+ stickyHeaderHeight: Mc,
22658
+ setStickyHeaderHeight: () => {
22659
+ }
22660
+ },
22661
+ children: /* @__PURE__ */ R(
22662
+ X2,
22663
+ {
22664
+ className: "cursor-progress",
22665
+ role: "presentation",
22666
+ "aria-hidden": "true",
22667
+ children: [
22668
+ /* @__PURE__ */ m(Q2, { children: /* @__PURE__ */ m(_i, { children: Array.from({ length: e }).map((t, n) => /* @__PURE__ */ m(zi, { children: /* @__PURE__ */ m(Be, { className: "h-4 w-[80px]" }) }, `skeleton-header-${n}`)) }) }),
22669
+ /* @__PURE__ */ m(J2, { children: Array.from({ length: 5 }).map((t, n) => /* @__PURE__ */ m(_i, { children: Array.from({ length: e }).map((i, r) => /* @__PURE__ */ m(jn, { children: /* @__PURE__ */ m(Be, { className: "h-4 w-[80px]" }) }, `skeleton-cell-${n}-${r}`)) }, `skeleton-row-${n}`)) })
22670
+ ]
22671
+ }
22672
+ )
22675
22673
  }
22676
- }
22674
+ );
22675
+ }
22676
+ const Ew = fd(Vne, Wne);
22677
+ function Une({ children: e }) {
22677
22678
  return /* @__PURE__ */ m(
22678
- LM,
22679
+ IM,
22679
22680
  {
22680
- editableColumn: f,
22681
- item: o,
22682
- value: t5(o, f),
22683
- isLastColumn: n,
22684
- onChange: g
22681
+ className: U(
22682
+ "bg-f1-background-default sticky bottom-0 z-30 shadow-[0_-1px_0_0_var(--f1-border-secondary)]"
22683
+ ),
22684
+ children: e
22685
22685
  }
22686
22686
  );
22687
22687
  }
@@ -22797,7 +22797,7 @@ function VM({
22797
22797
  k && (_ ? Gne : Kne)
22798
22798
  ),
22799
22799
  children: /* @__PURE__ */ m(
22800
- BM,
22800
+ AM,
22801
22801
  {
22802
22802
  item: e,
22803
22803
  column: b,
@@ -22972,7 +22972,7 @@ function eie({
22972
22972
  editLabel: E,
22973
22973
  disabled: g
22974
22974
  };
22975
- return /* @__PURE__ */ m($M, { item: O, onCellChange: i, children: r ? /* @__PURE__ */ m(
22975
+ return /* @__PURE__ */ m(NM, { item: O, onCellChange: i, children: r ? /* @__PURE__ */ m(
22976
22976
  Qne,
22977
22977
  {
22978
22978
  ...z,
@@ -22981,7 +22981,7 @@ function eie({
22981
22981
  }
22982
22982
  ) : /* @__PURE__ */ m(_i, { className: jM, children: /* @__PURE__ */ m(VM, { ...z }) }) }, F);
22983
22983
  }), M = /* @__PURE__ */ R(Ew, { children: [
22984
- /* @__PURE__ */ m(Z2, { children: /* @__PURE__ */ R(_i, { children: [
22984
+ /* @__PURE__ */ m(Q2, { children: /* @__PURE__ */ R(_i, { children: [
22985
22985
  r ? /* @__PURE__ */ m(
22986
22986
  zi,
22987
22987
  {
@@ -23017,7 +23017,7 @@ function eie({
23017
23017
  }
23018
23018
  ) : null
23019
23019
  ] }) }),
23020
- /* @__PURE__ */ m(X2, { children: r ? /* @__PURE__ */ m(
23020
+ /* @__PURE__ */ m(J2, { children: r ? /* @__PURE__ */ m(
23021
23021
  EK,
23022
23022
  {
23023
23023
  items: x,
@@ -23823,6 +23823,19 @@ const gie = (e) => "date" in e, yie = {
23823
23823
  currentNavigationFilters: a,
23824
23824
  setCurrentNavigationFilters: l
23825
23825
  };
23826
+ }, Pw = ({
23827
+ value: e,
23828
+ delay: t
23829
+ }) => {
23830
+ const [n, i] = J(!1);
23831
+ return ie(() => {
23832
+ let r;
23833
+ return e ? r = setTimeout(() => {
23834
+ i(e);
23835
+ }, t) : i(!1), () => {
23836
+ r && clearTimeout(r);
23837
+ };
23838
+ }, [e, t]), n;
23826
23839
  }, bie = ({ text: e, isCompleted: t }) => /* @__PURE__ */ R("div", { className: "flex flex-row items-center gap-2", children: [
23827
23840
  /* @__PURE__ */ m(
23828
23841
  st,
@@ -24053,20 +24066,7 @@ function Cie({
24053
24066
  }
24054
24067
  );
24055
24068
  }
24056
- const Eie = $t(Cie), Pw = ({
24057
- value: e,
24058
- delay: t
24059
- }) => {
24060
- const [n, i] = J(!1);
24061
- return ie(() => {
24062
- let r;
24063
- return e ? r = setTimeout(() => {
24064
- i(e);
24065
- }, t) : i(!1), () => {
24066
- r && clearTimeout(r);
24067
- };
24068
- }, [e, t]), n;
24069
- }, Nie = (e) => {
24069
+ const Eie = $t(Cie), Nie = (e) => {
24070
24070
  if (!e)
24071
24071
  return [];
24072
24072
  const t = e();
@@ -27343,7 +27343,7 @@ const Are = 220, Tre = (e, t, n, i = !0) => {
27343
27343
  g && "overflow-hidden rounded-lg border border-solid border-f1-border-secondary [&_thead::before]:!bg-transparent [&_thead_th>div:first-child]:!bg-transparent [&_tbody>tr:last-child::after]:!bg-transparent"
27344
27344
  ),
27345
27345
  children: /* @__PURE__ */ R(Ew, { loading: ue, children: [
27346
- /* @__PURE__ */ R(Z2, { sticky: !0, children: [
27346
+ /* @__PURE__ */ R(Q2, { sticky: !0, children: [
27347
27347
  P ? /* @__PURE__ */ R(_i, { children: [
27348
27348
  t.selectable ? /* @__PURE__ */ m(
27349
27349
  zi,
@@ -27546,7 +27546,7 @@ const Are = 220, Tre = (e, t, n, i = !0) => {
27546
27546
  }
27547
27547
  ) }) : null
27548
27548
  ] }),
27549
- /* @__PURE__ */ R(X2, { children: [
27549
+ /* @__PURE__ */ R(J2, { children: [
27550
27550
  Z?.type === "grouped" ? Z.groups.map((be, je) => {
27551
27551
  const Ct = be.itemCount, Bt = /* @__PURE__ */ m(
27552
27552
  Jy,
@@ -27729,7 +27729,7 @@ const Are = 220, Tre = (e, t, n, i = !0) => {
27729
27729
  ] }),
27730
27730
  (() => {
27731
27731
  const be = Fre(C?.addRowActions?.());
27732
- return !Me && be.length === 0 ? null : /* @__PURE__ */ R(kne, { children: [
27732
+ return !Me && be.length === 0 ? null : /* @__PURE__ */ R(Une, { children: [
27733
27733
  Me ? /* @__PURE__ */ R(
27734
27734
  _i,
27735
27735
  {
@@ -27900,7 +27900,7 @@ const Are = 220, Tre = (e, t, n, i = !0) => {
27900
27900
  a.current = e;
27901
27901
  const l = X(() => function({ item: d, children: f }) {
27902
27902
  return /* @__PURE__ */ m(
27903
- $M,
27903
+ NM,
27904
27904
  {
27905
27905
  item: d,
27906
27906
  onCellChange: (...u) => a.current?.(...u),
@@ -27920,7 +27920,7 @@ const Are = 220, Tre = (e, t, n, i = !0) => {
27920
27920
  {
27921
27921
  ...o,
27922
27922
  rowWrapper: l,
27923
- cellRenderer: BM,
27923
+ cellRenderer: AM,
27924
27924
  visualizationSettings: s.visualization?.editableTable,
27925
27925
  fromVisualization: "editableTable"
27926
27926
  }
@@ -36439,10 +36439,10 @@ function Wue({
36439
36439
  tagLabels: o
36440
36440
  }) {
36441
36441
  const s = r?.map((a) => Vue(a, o?.[_g(a)] ?? "")).filter((a) => a !== null);
36442
- return /* @__PURE__ */ R(oI, { openDelay: 300, closeDelay: 100, children: [
36443
- /* @__PURE__ */ m(sI, { asChild: !0, children: e }),
36442
+ return /* @__PURE__ */ R(sI, { openDelay: 300, closeDelay: 100, children: [
36443
+ /* @__PURE__ */ m(aI, { asChild: !0, children: e }),
36444
36444
  /* @__PURE__ */ m(
36445
- aI,
36445
+ lI,
36446
36446
  {
36447
36447
  side: "top",
36448
36448
  align: "center",
@@ -37506,271 +37506,8 @@ const fhe = ({
37506
37506
  pinnedTagTypes: e.pinnedTagTypes,
37507
37507
  lockedTagTypes: e.lockedTagTypes
37508
37508
  }
37509
- );
37510
- var SE = Object.prototype.hasOwnProperty;
37511
- function CE(e, t, n) {
37512
- for (n of e.keys())
37513
- if (_f(n, t)) return n;
37514
- }
37515
- function _f(e, t) {
37516
- var n, i, r;
37517
- if (e === t) return !0;
37518
- if (e && t && (n = e.constructor) === t.constructor) {
37519
- if (n === Date) return e.getTime() === t.getTime();
37520
- if (n === RegExp) return e.toString() === t.toString();
37521
- if (n === Array) {
37522
- if ((i = e.length) === t.length)
37523
- for (; i-- && _f(e[i], t[i]); ) ;
37524
- return i === -1;
37525
- }
37526
- if (n === Set) {
37527
- if (e.size !== t.size)
37528
- return !1;
37529
- for (i of e)
37530
- if (r = i, r && typeof r == "object" && (r = CE(t, r), !r) || !t.has(r)) return !1;
37531
- return !0;
37532
- }
37533
- if (n === Map) {
37534
- if (e.size !== t.size)
37535
- return !1;
37536
- for (i of e)
37537
- if (r = i[0], r && typeof r == "object" && (r = CE(t, r), !r) || !_f(i[1], t.get(r)))
37538
- return !1;
37539
- return !0;
37540
- }
37541
- if (n === ArrayBuffer)
37542
- e = new Uint8Array(e), t = new Uint8Array(t);
37543
- else if (n === DataView) {
37544
- if ((i = e.byteLength) === t.byteLength)
37545
- for (; i-- && e.getInt8(i) === t.getInt8(i); ) ;
37546
- return i === -1;
37547
- }
37548
- if (ArrayBuffer.isView(e)) {
37549
- if ((i = e.byteLength) === t.byteLength)
37550
- for (; i-- && e[i] === t[i]; ) ;
37551
- return i === -1;
37552
- }
37553
- if (!n || typeof e == "object") {
37554
- i = 0;
37555
- for (n in e)
37556
- if (SE.call(e, n) && ++i && !SE.call(t, n) || !(n in t) || !_f(e[n], t[n])) return !1;
37557
- return Object.keys(t).length === i;
37558
- }
37559
- }
37560
- return e !== e && t !== t;
37561
- }
37562
- function phe(e) {
37563
- var t = qe.useRef(e), n = qe.useRef(0);
37564
- return _f(e, t.current) || (t.current = e, n.current += 1), qe.useMemo(function() {
37565
- return t.current;
37566
- }, [n.current]);
37567
- }
37568
- function mhe(e, t) {
37569
- const n = { ...e };
37570
- for (const [i, r] of Object.entries(t)) {
37571
- const o = e[i];
37572
- if (Array.isArray(o) && Array.isArray(r) && o.length > 0 && r.length > 0) {
37573
- const s = o.filter(
37574
- (a) => r.includes(a)
37575
- );
37576
- n[i] = s.length > 0 ? s : r;
37577
- } else
37578
- n[i] = r;
37579
- }
37580
- return n;
37581
- }
37582
- const ghe = ({
37583
- source: e,
37584
- lane: t,
37585
- onError: n,
37586
- onHookUpdate: i
37587
- }) => {
37588
- const [r, o] = J(!1), s = X(
37589
- () => ({
37590
- ...e,
37591
- isLoading: r,
37592
- setIsLoading: o
37593
- }),
37594
- [e, r]
37595
- ), a = X(
37596
- () => mhe(e.currentFilters, t.filters),
37597
- [e.currentFilters, t.filters]
37598
- ), l = E1(s, {
37599
- filters: a,
37600
- onError: n
37601
- }), {
37602
- data: c,
37603
- search: d,
37604
- setSearch: f,
37605
- isInitialLoading: u,
37606
- isLoading: h,
37607
- isLoadingMore: p,
37608
- error: y,
37609
- paginationInfo: g,
37610
- setPage: v,
37611
- loadMore: b,
37612
- totalItems: w,
37613
- mergedFilters: x,
37614
- summaries: k,
37615
- committedQuery: _
37616
- } = l;
37617
- return ie(() => {
37618
- i?.(t.id, {
37619
- data: c,
37620
- search: d,
37621
- setSearch: f,
37622
- isInitialLoading: u,
37623
- isLoading: h,
37624
- isLoadingMore: p,
37625
- error: y,
37626
- paginationInfo: g,
37627
- setPage: v,
37628
- loadMore: b,
37629
- totalItems: w,
37630
- mergedFilters: x,
37631
- summaries: k,
37632
- committedQuery: _
37633
- });
37634
- }, [
37635
- c,
37636
- d,
37637
- f,
37638
- u,
37639
- h,
37640
- p,
37641
- y,
37642
- g,
37643
- v,
37644
- b,
37645
- w,
37646
- x,
37647
- k,
37648
- _,
37649
- i,
37650
- t.id
37651
- ]), null;
37652
- };
37653
- function yhe(e, t = {}) {
37654
- const { lanes: n } = e;
37655
- if (!X(() => n && n.length > 0, [n]))
37656
- throw new Error("Lanes has not been configured on data source");
37657
- const [r, o] = J({}), s = L({}), a = L(!1), l = L(!1);
37658
- ie(() => (l.current = !0, () => {
37659
- l.current = !1;
37660
- }), []);
37661
- const c = L(t.onError);
37662
- ie(() => {
37663
- c.current = t.onError;
37664
- });
37665
- const d = K((y) => {
37666
- c.current?.(y);
37667
- }, []), f = K(
37668
- (y, g) => {
37669
- s.current[y] = g, !a.current && (a.current = !0, queueMicrotask(() => {
37670
- const v = s.current;
37671
- s.current = {}, a.current = !1, l.current && o((b) => ({ ...b, ...v }));
37672
- }));
37673
- },
37674
- []
37675
- ), u = {
37676
- lanes: n,
37677
- currentFilters: e.currentFilters,
37678
- currentNavigationFilters: e.currentNavigationFilters,
37679
- currentSortings: e.currentSortings,
37680
- currentGrouping: e.currentGrouping,
37681
- currentSearch: e.currentSearch,
37682
- grouping: e.grouping,
37683
- summaries: e.summaries,
37684
- dataAdapter: e.dataAdapter,
37685
- itemPreFilter: e.itemPreFilter
37686
- }, h = phe(u);
37687
- return {
37688
- lanesProvider: X(
37689
- () => (n || []).map((y) => /* @__PURE__ */ m(
37690
- ghe,
37691
- {
37692
- lane: y,
37693
- onError: d,
37694
- source: e,
37695
- onHookUpdate: f
37696
- },
37697
- String(y.id)
37698
- )),
37699
- // eslint-disable-next-line react-hooks/exhaustive-deps
37700
- [h]
37701
- ),
37702
- lanesHooks: r
37703
- };
37704
- }
37705
- const vhe = (e) => {
37706
- const t = Array.from(e.values()), n = {}, i = {};
37707
- for (const r of t)
37708
- Object.assign(n, r.groupsStatus), Object.assign(i, r.filters);
37709
- return {
37710
- allSelected: t.every((r) => r.allSelected),
37711
- itemsStatus: t.flatMap((r) => r.itemsStatus),
37712
- groupsStatus: n,
37713
- filters: i,
37714
- selectedCount: t.reduce(
37715
- (r, o) => r + o.selectedCount,
37716
- 0
37717
- ),
37718
- selectedIds: t.flatMap((r) => r.selectedIds)
37719
- };
37720
- }, bhe = (e) => {
37721
- const t = Yy({
37722
- data: e.data || { type: "flat", records: [], groups: [] },
37723
- paginationInfo: e.paginationInfo,
37724
- source: e.source,
37725
- onSelectItems: e.onSelectItems,
37726
- selectedState: e.source.defaultSelectedItems
37727
- });
37728
- return ie(() => {
37729
- e.onHookUpdate(t);
37730
- }, [t]), null;
37731
- }, whe = (e, t, n) => {
37732
- const [i, r] = J(/* @__PURE__ */ new Map()), [o, s] = J({ selectItemsStatus: /* @__PURE__ */ new Map(), clearCallback: /* @__PURE__ */ new Map() }), a = K(() => {
37733
- o.clearCallback.forEach((c) => c());
37734
- }, [o.clearCallback]);
37735
- ie(() => {
37736
- const c = Object.fromEntries(
37737
- o.selectItemsStatus
37738
- );
37739
- n?.(
37740
- {
37741
- ...vhe(
37742
- o.selectItemsStatus
37743
- ),
37744
- byLane: c
37745
- },
37746
- a
37747
- );
37748
- }, [o]);
37749
- const l = X(() => (e || []).map((c) => /* @__PURE__ */ m(
37750
- bhe,
37751
- {
37752
- source: t,
37753
- data: c.data || { type: "flat", records: [], groups: [] },
37754
- paginationInfo: c.paginationInfo,
37755
- onHookUpdate: (d) => r((f) => new Map(f).set(c.id, d)),
37756
- onSelectItems: (d, f) => {
37757
- s((u) => ({
37758
- selectItemsStatus: new Map(u.selectItemsStatus).set(
37759
- c.id,
37760
- d
37761
- ),
37762
- clearCallback: new Map(u.clearCallback).set(c.id, f)
37763
- }));
37764
- }
37765
- },
37766
- c.id
37767
- )), [JSON.stringify(e)]);
37768
- return {
37769
- lanesUseSelectable: i,
37770
- lanesSelectProvider: l
37771
- };
37772
- }, xhe = 5;
37773
- function khe(e) {
37509
+ ), phe = 5;
37510
+ function mhe(e) {
37774
37511
  if (!e.length)
37775
37512
  return;
37776
37513
  if (e.length === 1 && e[0] && // checking to see if `classNames[0]` is a string that contains other classnames
@@ -37782,7 +37519,7 @@ function khe(e) {
37782
37519
  continue;
37783
37520
  const r = i.split(" ");
37784
37521
  for (const o of r) {
37785
- const s = o.startsWith("_") ? o.slice(0, xhe) : o;
37522
+ const s = o.startsWith("_") ? o.slice(0, phe) : o;
37786
37523
  t[s] = o;
37787
37524
  }
37788
37525
  }
@@ -37795,22 +37532,22 @@ function khe(e) {
37795
37532
  var w8 = {
37796
37533
  default: "var(--ds-border-selected, #1868DB)",
37797
37534
  warning: "var(--ds-border-warning, #E06C00)"
37798
- }, _he = "var(--ds-border-width-selected, 2px)", She = {
37535
+ }, ghe = "var(--ds-border-width-selected, 2px)", yhe = {
37799
37536
  top: "horizontal",
37800
37537
  bottom: "horizontal",
37801
37538
  left: "vertical",
37802
37539
  right: "vertical"
37803
- }, Che = {
37540
+ }, vhe = {
37804
37541
  root: "_1e0c1ule _kqswstnw _1pbykb7n _lcxvglyw _bfhkys7w _rfx31ssb _3l8810ly _kzdanqa1 _15m6ys7w _cfu11ld9 _1kt9b3bt _1cs8stnw _13y0usvi _1mp4vjfa _kfgtvjfa"
37805
- }, Ehe = {
37542
+ }, bhe = {
37806
37543
  horizontal: "_4t3i10ly _1e02fghn _rjxpidpf _z5wtuj5p",
37807
37544
  vertical: "_1bsb10ly _154ifghn _94n5idpf _1aukuj5p"
37808
- }, Nhe = {
37545
+ }, whe = {
37809
37546
  top: "_154ihv0e _1auk70hn",
37810
37547
  right: "_1xi2hv0e _ooun70hn",
37811
37548
  bottom: "_94n5hv0e _19wo70hn",
37812
37549
  left: "_1ltvhv0e _qnec70hn"
37813
- }, Ahe = {
37550
+ }, xhe = {
37814
37551
  // - half the terminal bleeding out the containing element
37815
37552
  // - half the terminal inside the containing element (we need to position the line next to this)
37816
37553
  terminal: function(t) {
@@ -37828,8 +37565,8 @@ var w8 = {
37828
37565
  return n;
37829
37566
  }
37830
37567
  };
37831
- function The(e) {
37832
- var t = e.edge, n = e.gap, i = n === void 0 ? "0px" : n, r = e.indent, o = r === void 0 ? "0px" : r, s = e.strokeColor, a = s === void 0 ? w8.default : s, l = e.strokeWidth, c = l === void 0 ? _he : l, d = e.type, f = d === void 0 ? "terminal" : d, u = She[t];
37568
+ function khe(e) {
37569
+ var t = e.edge, n = e.gap, i = n === void 0 ? "0px" : n, r = e.indent, o = r === void 0 ? "0px" : r, s = e.strokeColor, a = s === void 0 ? w8.default : s, l = e.strokeWidth, c = l === void 0 ? ghe : l, d = e.type, f = d === void 0 ? "terminal" : d, u = yhe[t];
37833
37570
  return /* @__PURE__ */ qe.createElement("div", {
37834
37571
  style: {
37835
37572
  // ## All
@@ -37839,7 +37576,7 @@ function The(e) {
37839
37576
  "--main-axis-offset": "calc(-0.5 * (".concat(i, " + var(--stroke-width)))"),
37840
37577
  // ## Line
37841
37578
  // If there is a terminal, we want the line to start from next to it
37842
- "--line-main-axis-start": Ahe[f]({
37579
+ "--line-main-axis-start": xhe[f]({
37843
37580
  indent: o
37844
37581
  }),
37845
37582
  // ## Terminal
@@ -37854,12 +37591,12 @@ function The(e) {
37854
37591
  // so the center of the terminal lines up with the center of the line
37855
37592
  "--terminal-cross-axis-offset": "calc(calc(var(--stroke-width) - var(--terminal-diameter)) / 2)"
37856
37593
  },
37857
- className: khe([Che.root, Ehe[u], Nhe[t]])
37594
+ className: mhe([vhe.root, bhe[u], whe[t]])
37858
37595
  });
37859
37596
  }
37860
- function Ohe(e) {
37597
+ function _he(e) {
37861
37598
  var t = e.appearance, n = t === void 0 ? "default" : t, i = e.edge, r = e.gap, o = e.indent, s = e.type;
37862
- return /* @__PURE__ */ oe.createElement(The, {
37599
+ return /* @__PURE__ */ oe.createElement(khe, {
37863
37600
  edge: i,
37864
37601
  gap: r,
37865
37602
  strokeColor: w8[n],
@@ -37867,8 +37604,8 @@ function Ohe(e) {
37867
37604
  indent: o
37868
37605
  });
37869
37606
  }
37870
- const Ihe = 'button, a[href], input, select, textarea, [role="button"], [role="checkbox"], [role="menuitem"], [role="option"], [role="radio"], [role="switch"]', Dhe = (e) => e instanceof HTMLElement ? !!e.closest(Ihe) : !1;
37871
- function Mhe({
37607
+ const She = 'button, a[href], input, select, textarea, [role="button"], [role="checkbox"], [role="menuitem"], [role="option"], [role="radio"], [role="switch"]', Che = (e) => e instanceof HTMLElement ? !!e.closest(She) : !1;
37608
+ function Ehe({
37872
37609
  drag: e,
37873
37610
  id: t,
37874
37611
  index: n,
@@ -37917,7 +37654,7 @@ function Mhe({
37917
37654
  });
37918
37655
  }, [t, n, r]);
37919
37656
  const p = n === 0, y = n === i - 1, g = (v) => {
37920
- if (o && !Dhe(v.target)) {
37657
+ if (o && !Che(v.target)) {
37921
37658
  if (c.onClick) {
37922
37659
  c.onClick(), v.preventDefault(), v.stopPropagation();
37923
37660
  return;
@@ -37957,7 +37694,7 @@ function Mhe({
37957
37694
  s && (l ?? u) ? /* @__PURE__ */ m(We, { children: (() => {
37958
37695
  const v = l ?? u;
37959
37696
  return a.includes(v) ? null : /* @__PURE__ */ m(
37960
- Ohe,
37697
+ _he,
37961
37698
  {
37962
37699
  edge: v,
37963
37700
  type: "terminal-no-bleed",
@@ -37969,7 +37706,269 @@ function Mhe({
37969
37706
  }
37970
37707
  );
37971
37708
  }
37972
- const Phe = ({
37709
+ var SE = Object.prototype.hasOwnProperty;
37710
+ function CE(e, t, n) {
37711
+ for (n of e.keys())
37712
+ if (_f(n, t)) return n;
37713
+ }
37714
+ function _f(e, t) {
37715
+ var n, i, r;
37716
+ if (e === t) return !0;
37717
+ if (e && t && (n = e.constructor) === t.constructor) {
37718
+ if (n === Date) return e.getTime() === t.getTime();
37719
+ if (n === RegExp) return e.toString() === t.toString();
37720
+ if (n === Array) {
37721
+ if ((i = e.length) === t.length)
37722
+ for (; i-- && _f(e[i], t[i]); ) ;
37723
+ return i === -1;
37724
+ }
37725
+ if (n === Set) {
37726
+ if (e.size !== t.size)
37727
+ return !1;
37728
+ for (i of e)
37729
+ if (r = i, r && typeof r == "object" && (r = CE(t, r), !r) || !t.has(r)) return !1;
37730
+ return !0;
37731
+ }
37732
+ if (n === Map) {
37733
+ if (e.size !== t.size)
37734
+ return !1;
37735
+ for (i of e)
37736
+ if (r = i[0], r && typeof r == "object" && (r = CE(t, r), !r) || !_f(i[1], t.get(r)))
37737
+ return !1;
37738
+ return !0;
37739
+ }
37740
+ if (n === ArrayBuffer)
37741
+ e = new Uint8Array(e), t = new Uint8Array(t);
37742
+ else if (n === DataView) {
37743
+ if ((i = e.byteLength) === t.byteLength)
37744
+ for (; i-- && e.getInt8(i) === t.getInt8(i); ) ;
37745
+ return i === -1;
37746
+ }
37747
+ if (ArrayBuffer.isView(e)) {
37748
+ if ((i = e.byteLength) === t.byteLength)
37749
+ for (; i-- && e[i] === t[i]; ) ;
37750
+ return i === -1;
37751
+ }
37752
+ if (!n || typeof e == "object") {
37753
+ i = 0;
37754
+ for (n in e)
37755
+ if (SE.call(e, n) && ++i && !SE.call(t, n) || !(n in t) || !_f(e[n], t[n])) return !1;
37756
+ return Object.keys(t).length === i;
37757
+ }
37758
+ }
37759
+ return e !== e && t !== t;
37760
+ }
37761
+ function Nhe(e) {
37762
+ var t = qe.useRef(e), n = qe.useRef(0);
37763
+ return _f(e, t.current) || (t.current = e, n.current += 1), qe.useMemo(function() {
37764
+ return t.current;
37765
+ }, [n.current]);
37766
+ }
37767
+ function Ahe(e, t) {
37768
+ const n = { ...e };
37769
+ for (const [i, r] of Object.entries(t)) {
37770
+ const o = e[i];
37771
+ if (Array.isArray(o) && Array.isArray(r) && o.length > 0 && r.length > 0) {
37772
+ const s = o.filter(
37773
+ (a) => r.includes(a)
37774
+ );
37775
+ n[i] = s.length > 0 ? s : r;
37776
+ } else
37777
+ n[i] = r;
37778
+ }
37779
+ return n;
37780
+ }
37781
+ const The = ({
37782
+ source: e,
37783
+ lane: t,
37784
+ onError: n,
37785
+ onHookUpdate: i
37786
+ }) => {
37787
+ const [r, o] = J(!1), s = X(
37788
+ () => ({
37789
+ ...e,
37790
+ isLoading: r,
37791
+ setIsLoading: o
37792
+ }),
37793
+ [e, r]
37794
+ ), a = X(
37795
+ () => Ahe(e.currentFilters, t.filters),
37796
+ [e.currentFilters, t.filters]
37797
+ ), l = E1(s, {
37798
+ filters: a,
37799
+ onError: n
37800
+ }), {
37801
+ data: c,
37802
+ search: d,
37803
+ setSearch: f,
37804
+ isInitialLoading: u,
37805
+ isLoading: h,
37806
+ isLoadingMore: p,
37807
+ error: y,
37808
+ paginationInfo: g,
37809
+ setPage: v,
37810
+ loadMore: b,
37811
+ totalItems: w,
37812
+ mergedFilters: x,
37813
+ summaries: k,
37814
+ committedQuery: _
37815
+ } = l;
37816
+ return ie(() => {
37817
+ i?.(t.id, {
37818
+ data: c,
37819
+ search: d,
37820
+ setSearch: f,
37821
+ isInitialLoading: u,
37822
+ isLoading: h,
37823
+ isLoadingMore: p,
37824
+ error: y,
37825
+ paginationInfo: g,
37826
+ setPage: v,
37827
+ loadMore: b,
37828
+ totalItems: w,
37829
+ mergedFilters: x,
37830
+ summaries: k,
37831
+ committedQuery: _
37832
+ });
37833
+ }, [
37834
+ c,
37835
+ d,
37836
+ f,
37837
+ u,
37838
+ h,
37839
+ p,
37840
+ y,
37841
+ g,
37842
+ v,
37843
+ b,
37844
+ w,
37845
+ x,
37846
+ k,
37847
+ _,
37848
+ i,
37849
+ t.id
37850
+ ]), null;
37851
+ };
37852
+ function Ohe(e, t = {}) {
37853
+ const { lanes: n } = e;
37854
+ if (!X(() => n && n.length > 0, [n]))
37855
+ throw new Error("Lanes has not been configured on data source");
37856
+ const [r, o] = J({}), s = L({}), a = L(!1), l = L(!1);
37857
+ ie(() => (l.current = !0, () => {
37858
+ l.current = !1;
37859
+ }), []);
37860
+ const c = L(t.onError);
37861
+ ie(() => {
37862
+ c.current = t.onError;
37863
+ });
37864
+ const d = K((y) => {
37865
+ c.current?.(y);
37866
+ }, []), f = K(
37867
+ (y, g) => {
37868
+ s.current[y] = g, !a.current && (a.current = !0, queueMicrotask(() => {
37869
+ const v = s.current;
37870
+ s.current = {}, a.current = !1, l.current && o((b) => ({ ...b, ...v }));
37871
+ }));
37872
+ },
37873
+ []
37874
+ ), u = {
37875
+ lanes: n,
37876
+ currentFilters: e.currentFilters,
37877
+ currentNavigationFilters: e.currentNavigationFilters,
37878
+ currentSortings: e.currentSortings,
37879
+ currentGrouping: e.currentGrouping,
37880
+ currentSearch: e.currentSearch,
37881
+ grouping: e.grouping,
37882
+ summaries: e.summaries,
37883
+ dataAdapter: e.dataAdapter,
37884
+ itemPreFilter: e.itemPreFilter
37885
+ }, h = Nhe(u);
37886
+ return {
37887
+ lanesProvider: X(
37888
+ () => (n || []).map((y) => /* @__PURE__ */ m(
37889
+ The,
37890
+ {
37891
+ lane: y,
37892
+ onError: d,
37893
+ source: e,
37894
+ onHookUpdate: f
37895
+ },
37896
+ String(y.id)
37897
+ )),
37898
+ // eslint-disable-next-line react-hooks/exhaustive-deps
37899
+ [h]
37900
+ ),
37901
+ lanesHooks: r
37902
+ };
37903
+ }
37904
+ const Ihe = (e) => {
37905
+ const t = Array.from(e.values()), n = {}, i = {};
37906
+ for (const r of t)
37907
+ Object.assign(n, r.groupsStatus), Object.assign(i, r.filters);
37908
+ return {
37909
+ allSelected: t.every((r) => r.allSelected),
37910
+ itemsStatus: t.flatMap((r) => r.itemsStatus),
37911
+ groupsStatus: n,
37912
+ filters: i,
37913
+ selectedCount: t.reduce(
37914
+ (r, o) => r + o.selectedCount,
37915
+ 0
37916
+ ),
37917
+ selectedIds: t.flatMap((r) => r.selectedIds)
37918
+ };
37919
+ }, Dhe = (e) => {
37920
+ const t = Yy({
37921
+ data: e.data || { type: "flat", records: [], groups: [] },
37922
+ paginationInfo: e.paginationInfo,
37923
+ source: e.source,
37924
+ onSelectItems: e.onSelectItems,
37925
+ selectedState: e.source.defaultSelectedItems
37926
+ });
37927
+ return ie(() => {
37928
+ e.onHookUpdate(t);
37929
+ }, [t]), null;
37930
+ }, Mhe = (e, t, n) => {
37931
+ const [i, r] = J(/* @__PURE__ */ new Map()), [o, s] = J({ selectItemsStatus: /* @__PURE__ */ new Map(), clearCallback: /* @__PURE__ */ new Map() }), a = K(() => {
37932
+ o.clearCallback.forEach((c) => c());
37933
+ }, [o.clearCallback]);
37934
+ ie(() => {
37935
+ const c = Object.fromEntries(
37936
+ o.selectItemsStatus
37937
+ );
37938
+ n?.(
37939
+ {
37940
+ ...Ihe(
37941
+ o.selectItemsStatus
37942
+ ),
37943
+ byLane: c
37944
+ },
37945
+ a
37946
+ );
37947
+ }, [o]);
37948
+ const l = X(() => (e || []).map((c) => /* @__PURE__ */ m(
37949
+ Dhe,
37950
+ {
37951
+ source: t,
37952
+ data: c.data || { type: "flat", records: [], groups: [] },
37953
+ paginationInfo: c.paginationInfo,
37954
+ onHookUpdate: (d) => r((f) => new Map(f).set(c.id, d)),
37955
+ onSelectItems: (d, f) => {
37956
+ s((u) => ({
37957
+ selectItemsStatus: new Map(u.selectItemsStatus).set(
37958
+ c.id,
37959
+ d
37960
+ ),
37961
+ clearCallback: new Map(u.clearCallback).set(c.id, f)
37962
+ }));
37963
+ }
37964
+ },
37965
+ c.id
37966
+ )), [JSON.stringify(e)]);
37967
+ return {
37968
+ lanesUseSelectable: i,
37969
+ lanesSelectProvider: l
37970
+ };
37971
+ }, Phe = ({
37973
37972
  label: e,
37974
37973
  variant: t,
37975
37974
  color: n,
@@ -37983,7 +37982,7 @@ const Phe = ({
37983
37982
  /* @__PURE__ */ m(Fk, { size: "md", type: "default", value: i }),
37984
37983
  s || a ? /* @__PURE__ */ R("div", { className: "ml-auto flex items-center gap-1 pr-1", children: [
37985
37984
  r ? /* @__PURE__ */ m(
37986
- MM,
37985
+ BM,
37987
37986
  {
37988
37987
  info: r,
37989
37988
  icon: typeof r == "string" ? void 0 : r.icon,
@@ -38836,7 +38835,7 @@ const R0 = ({
38836
38835
  getLanesForGroup: f,
38837
38836
  selectableGroups: u = !0
38838
38837
  }) => {
38839
- const { lanesProvider: h, lanesHooks: p } = yhe(a, {
38838
+ const { lanesProvider: h, lanesHooks: p } = Ohe(a, {
38840
38839
  onError: (B) => c(B)
38841
38840
  }), y = a.idProvider, g = is(), v = a.currentSortings === null, { totalItemsAggregated: b, isInitialLoadingAggregated: w } = X(() => {
38842
38841
  const B = Object.values(p), Y = B.length === e.length;
@@ -38881,7 +38880,7 @@ const R0 = ({
38881
38880
  groups: []
38882
38881
  },
38883
38882
  paginationInfo: p[B.id]?.paginationInfo || null
38884
- })), [e, p]), { lanesSelectProvider: _, lanesUseSelectable: S } = whe(k, a, (B, Y) => {
38883
+ })), [e, p]), { lanesSelectProvider: _, lanesUseSelectable: S } = Mhe(k, a, (B, Y) => {
38885
38884
  l?.(B, Y);
38886
38885
  }), E = K(
38887
38886
  (B, Y) => {
@@ -38897,7 +38896,7 @@ const R0 = ({
38897
38896
  y ? y(B, Y) : B?.id ?? Y
38898
38897
  ), le = a.selectable ? a.selectable(B) : B.id, te = S && j ? S.get(j) : void 0, Q = (typeof le == "string" || typeof le == "number") && te && te?.selectedItems.has(le), ue = a.itemUrl ? a.itemUrl(B) : void 0, me = a.itemOnClick ? a.itemOnClick(B) : void 0;
38899
38898
  return /* @__PURE__ */ m(
38900
- Mhe,
38899
+ Ehe,
38901
38900
  {
38902
38901
  drag: { id: ne, type: "list-card", data: { ...B, laneId: j } },
38903
38902
  id: String(B.id),
@@ -39831,7 +39830,7 @@ const R0 = ({
39831
39830
  }
39832
39831
  );
39833
39832
  }, lpe = Cz(
39834
- () => import("./index-HEb5Ocnl.js").then((e) => ({ default: e.MapCollection }))
39833
+ () => import("./index-C95Ox1WO.js").then((e) => ({ default: e.MapCollection }))
39835
39834
  ), Xs = {
39836
39835
  table: {
39837
39836
  name: "Table",
@@ -42211,7 +42210,7 @@ function xme({
42211
42210
  removeLabel: u,
42212
42211
  viewLabel: h
42213
42212
  }) {
42214
- const p = lI(), y = t[0], g = t.slice(1), v = g.filter((C) => C.tag), b = g.filter((C) => !C.tag), w = !!c, x = X(
42213
+ const p = oI(), y = t[0], g = t.slice(1), v = g.filter((C) => C.tag), b = g.filter((C) => !C.tag), w = !!c, x = X(
42215
42214
  () => e.map(({ __key: C, ...A }) => ({ ...A, id: C })),
42216
42215
  [e]
42217
42216
  ), k = !!i || !!r || !!d, _ = vie(
@@ -62204,7 +62203,7 @@ const Wg = ({
62204
62203
  pressed: _,
62205
62204
  variant: "ai",
62206
62205
  ref: w,
62207
- icon: RU,
62206
+ icon: LU,
62208
62207
  label: b.richTextEditor.ai.enhanceButtonLabel,
62209
62208
  onClick: V,
62210
62209
  disabled: n,
@@ -86920,7 +86919,13 @@ const jf = /* @__PURE__ */ new Map(), pTe = (e) => {
86920
86919
  close: vTe,
86921
86920
  /** Dismiss every open toast. */
86922
86921
  closeAll: bTe
86923
- }, $a = 8, JT = (e) => {
86922
+ }, wTe = "maplibre", k4 = Ft(null), jOe = ({ children: e, provider: t, config: n }) => {
86923
+ const i = X(() => ({ provider: t, config: n }), [t, n]);
86924
+ return /* @__PURE__ */ m(k4.Provider, { value: i, children: e });
86925
+ }, HOe = (e) => {
86926
+ const t = ht(k4);
86927
+ return e ?? t?.provider ?? wTe;
86928
+ }, VOe = () => ht(k4)?.config, $a = 8, JT = (e) => {
86924
86929
  const t = e.getBoundingClientRect();
86925
86930
  return {
86926
86931
  top: t.top - $a,
@@ -86928,7 +86933,7 @@ const jf = /* @__PURE__ */ new Map(), pTe = (e) => {
86928
86933
  width: t.width + $a * 2,
86929
86934
  height: t.height + $a * 2
86930
86935
  };
86931
- }, wTe = (e, t) => e.top === t.top && e.left === t.left && e.width === t.width && e.height === t.height, ZT = (e) => {
86936
+ }, xTe = (e, t) => e.top === t.top && e.left === t.left && e.width === t.width && e.height === t.height, ZT = (e) => {
86932
86937
  const t = (r) => parseFloat(getComputedStyle(r).borderTopLeftRadius) || 0, n = t(e);
86933
86938
  if (n > 0)
86934
86939
  return n + $a;
@@ -86942,12 +86947,12 @@ const jf = /* @__PURE__ */ new Map(), pTe = (e) => {
86942
86947
  return o + (s.left - i.left) + $a;
86943
86948
  }
86944
86949
  return $a;
86945
- }, xTe = (e) => {
86950
+ }, kTe = (e) => {
86946
86951
  const [t, n] = J(() => JT(e)), i = L(t);
86947
86952
  return ie(() => {
86948
86953
  const r = () => {
86949
86954
  const s = JT(e);
86950
- wTe(i.current, s) || (i.current = s, n(s));
86955
+ xTe(i.current, s) || (i.current = s, n(s));
86951
86956
  };
86952
86957
  if (r(), typeof requestAnimationFrame != "function")
86953
86958
  return;
@@ -86956,24 +86961,24 @@ const jf = /* @__PURE__ */ new Map(), pTe = (e) => {
86956
86961
  });
86957
86962
  return () => cancelAnimationFrame(o);
86958
86963
  }, [e]), t;
86959
- }, kTe = (e) => {
86964
+ }, _Te = (e) => {
86960
86965
  const [t, n] = J(() => ZT(e));
86961
86966
  return ie(() => n(ZT(e)), [e]), t;
86962
- }, _Te = 300, STe = (e, t) => {
86967
+ }, STe = 300, CTe = (e, t) => {
86963
86968
  const [n, i] = J(!1), r = L(e);
86964
86969
  return ie(() => {
86965
86970
  if (r.current === e || (r.current = e, !t))
86966
86971
  return;
86967
86972
  i(!0);
86968
- const o = setTimeout(() => i(!1), _Te);
86973
+ const o = setTimeout(() => i(!1), STe);
86969
86974
  return () => clearTimeout(o);
86970
86975
  }, [e, t]), n;
86971
- }, CTe = ({
86976
+ }, ETe = ({
86972
86977
  target: e,
86973
86978
  container: t,
86974
86979
  onOutsideInteraction: n
86975
86980
  }) => {
86976
- const i = xTe(e), r = kTe(e), o = is(), s = STe(e, !o);
86981
+ const i = kTe(e), r = _Te(e), o = is(), s = CTe(e, !o);
86977
86982
  return ie(() => {
86978
86983
  if (typeof e.scrollIntoView != "function")
86979
86984
  return;
@@ -87009,7 +87014,7 @@ const jf = /* @__PURE__ */ new Map(), pTe = (e) => {
87009
87014
  ),
87010
87015
  t ?? document.body
87011
87016
  );
87012
- }, qp = 12, Kp = 6, ETe = ["0px", "-6px", "6px", "-4px", "4px", "0px"], NTe = 320, mz = "textarea, input:not([type='hidden']), [contenteditable='true']", QT = `${mz}, select, button, a[href], [tabindex]:not([tabindex='-1'])`, ATe = (e) => e.matches(QT) ? e : e.querySelector(mz) ?? e.querySelector(QT), TTe = (e, t, n) => {
87017
+ }, qp = 12, Kp = 6, NTe = ["0px", "-6px", "6px", "-4px", "4px", "0px"], ATe = 320, mz = "textarea, input:not([type='hidden']), [contenteditable='true']", QT = `${mz}, select, button, a[href], [tabindex]:not([tabindex='-1'])`, TTe = (e) => e.matches(QT) ? e : e.querySelector(mz) ?? e.querySelector(QT), OTe = (e, t, n) => {
87013
87018
  const [i, r] = J(!1), o = L(!1);
87014
87019
  return ie(() => {
87015
87020
  o.current = !1, r(!1);
@@ -87031,20 +87036,20 @@ const jf = /* @__PURE__ */ new Map(), pTe = (e) => {
87031
87036
  const l = new ResizeObserver(a);
87032
87037
  return l.observe(s), () => l.disconnect();
87033
87038
  }, [e, t, n]), i;
87034
- }, OTe = () => X(
87039
+ }, ITe = () => X(
87035
87040
  () => ({
87036
87041
  current: {
87037
87042
  getBoundingClientRect: () => new DOMRect(window.innerWidth / 2, window.innerHeight / 2, 0, 0)
87038
87043
  }
87039
87044
  }),
87040
87045
  []
87041
- ), ITe = (e) => {
87046
+ ), DTe = (e) => {
87042
87047
  const t = is();
87043
87048
  return K(() => {
87044
87049
  const n = e.current;
87045
87050
  !n || t || typeof n.animate != "function" || n.animate(
87046
- ETe.map((i) => ({ translate: i })),
87047
- { duration: NTe, easing: "ease-in-out" }
87051
+ NTe.map((i) => ({ translate: i })),
87052
+ { duration: ATe, easing: "ease-in-out" }
87048
87053
  );
87049
87054
  }, [e, t]);
87050
87055
  }, gz = ({
@@ -87065,8 +87070,8 @@ const jf = /* @__PURE__ */ new Map(), pTe = (e) => {
87065
87070
  leaving: p = !1,
87066
87071
  focusTarget: y = !1
87067
87072
  }) => {
87068
- const g = Re(), v = L(null), b = L(null), w = ITe(v), x = TTe(v, s?.current, e), k = OTe(), _ = () => {
87069
- ((y ? ATe(e) : null) ?? v.current)?.focus();
87073
+ const g = Re(), v = L(null), b = L(null), w = DTe(v), x = OTe(v, s?.current, e), k = ITe(), _ = () => {
87074
+ ((y ? TTe(e) : null) ?? v.current)?.focus();
87070
87075
  }, S = mi(), E = `${S}-title`, C = `${S}-description`, A = X(() => ({ current: e }), [e]), T = L(s?.current);
87071
87076
  ie(() => {
87072
87077
  T.current !== s?.current && (T.current = s?.current, _());
@@ -87082,7 +87087,7 @@ const jf = /* @__PURE__ */ new Map(), pTe = (e) => {
87082
87087
  children: [
87083
87088
  /* @__PURE__ */ m(rW, { virtualRef: x ? k : A }),
87084
87089
  u ? /* @__PURE__ */ m(
87085
- CTe,
87090
+ ETe,
87086
87091
  {
87087
87092
  target: e,
87088
87093
  container: f,
@@ -87193,7 +87198,7 @@ const jf = /* @__PURE__ */ new Map(), pTe = (e) => {
87193
87198
  );
87194
87199
  };
87195
87200
  gz.displayName = "F0Coachmark";
87196
- const DTe = ii("F0Coachmark", gz), Ok = [];
87201
+ const MTe = ii("F0Coachmark", gz), Ok = [];
87197
87202
  let Nr = Ok;
87198
87203
  const Ik = /* @__PURE__ */ new Set();
87199
87204
  let eO = 0;
@@ -87267,7 +87272,7 @@ const Gp = /* @__PURE__ */ new Set(), Dk = /* @__PURE__ */ new Set(), Hb = () =>
87267
87272
  hasProvider() {
87268
87273
  return Gp.size > 0;
87269
87274
  }
87270
- }, MTe = process.env.NODE_ENV !== "production", Mk = (e) => typeof e.checkVisibility == "function" ? e.checkVisibility() : !0, nO = (e) => typeof e != "string" ? e.isConnected && Mk(e) ? e : null : [...document.querySelectorAll(e)].find(Mk) ?? null, PTe = (e) => typeof e == "string" ? [...document.querySelectorAll(e)].filter(Mk).length : 1, RTe = (e) => {
87275
+ }, PTe = process.env.NODE_ENV !== "production", Mk = (e) => typeof e.checkVisibility == "function" ? e.checkVisibility() : !0, nO = (e) => typeof e != "string" ? e.isConnected && Mk(e) ? e : null : [...document.querySelectorAll(e)].find(Mk) ?? null, RTe = (e) => typeof e == "string" ? [...document.querySelectorAll(e)].filter(Mk).length : 1, LTe = (e) => {
87271
87276
  const [t, n] = J(null), i = L(null);
87272
87277
  return ie(() => {
87273
87278
  const r = (s) => {
@@ -87277,11 +87282,11 @@ const Gp = /* @__PURE__ */ new Set(), Dk = /* @__PURE__ */ new Set(), Hb = () =>
87277
87282
  r(null);
87278
87283
  return;
87279
87284
  }
87280
- if (r(nO(e)), MTe) {
87285
+ if (r(nO(e)), PTe) {
87281
87286
  i.current === null && typeof e == "string" && console.warn(
87282
87287
  `[f0] coachmarks: no element matches the selector "${e}" yet. The coachmark will show as soon as one does.`
87283
87288
  );
87284
- const s = PTe(e);
87289
+ const s = RTe(e);
87285
87290
  s > 1 && console.warn(
87286
87291
  `[f0] coachmarks: the selector "${String(e)}" matched ${s} elements. Anchoring to the first one — use a selector that matches exactly one.`
87287
87292
  );
@@ -87294,7 +87299,7 @@ const Gp = /* @__PURE__ */ new Set(), Dk = /* @__PURE__ */ new Set(), Hb = () =>
87294
87299
  attributeFilter: ["hidden"]
87295
87300
  }), () => o.disconnect();
87296
87301
  }, [e]), t;
87297
- }, LTe = 5, FTe = 150, $Te = ({
87302
+ }, FTe = 5, $Te = 150, BTe = ({
87298
87303
  item: e,
87299
87304
  container: t
87300
87305
  }) => {
@@ -87307,8 +87312,8 @@ const Gp = /* @__PURE__ */ new Set(), Dk = /* @__PURE__ */ new Set(), Hb = () =>
87307
87312
  }
87308
87313
  o(!0), s.current = setTimeout(() => {
87309
87314
  i(v), o(!1);
87310
- }, FTe);
87311
- }, u = RTe(c.targetElement), h = L(0), p = e.skipAfterOutsideClicks ?? LTe, y = () => Ea.removeItem(e.id), g = (v) => {
87315
+ }, $Te);
87316
+ }, u = LTe(c.targetElement), h = L(0), p = e.skipAfterOutsideClicks ?? FTe, y = () => Ea.removeItem(e.id), g = (v) => {
87312
87317
  e.onEnd?.({
87313
87318
  reason: v,
87314
87319
  step: l + 1,
@@ -87317,7 +87322,7 @@ const Gp = /* @__PURE__ */ new Set(), Dk = /* @__PURE__ */ new Set(), Hb = () =>
87317
87322
  }), y();
87318
87323
  };
87319
87324
  return u ? /* @__PURE__ */ m(
87320
- DTe,
87325
+ MTe,
87321
87326
  {
87322
87327
  target: u,
87323
87328
  container: t,
@@ -87343,7 +87348,7 @@ const Gp = /* @__PURE__ */ new Set(), Dk = /* @__PURE__ */ new Set(), Hb = () =>
87343
87348
  }
87344
87349
  }
87345
87350
  ) : null;
87346
- }, jOe = ({
87351
+ }, WOe = ({
87347
87352
  children: e,
87348
87353
  portalTarget: t = "#f0-overlay-root"
87349
87354
  }) => {
@@ -87366,16 +87371,10 @@ const Gp = /* @__PURE__ */ new Set(), Dk = /* @__PURE__ */ new Set(), Hb = () =>
87366
87371
  }, [t]);
87367
87372
  const l = n[0];
87368
87373
  return /* @__PURE__ */ R(We, { children: [
87369
- o && l ? /* @__PURE__ */ m($Te, { item: l, container: s }, l.id) : null,
87374
+ o && l ? /* @__PURE__ */ m(BTe, { item: l, container: s }, l.id) : null,
87370
87375
  e
87371
87376
  ] });
87372
- }, BTe = "maplibre", k4 = Ft(null), HOe = ({ children: e, provider: t, config: n }) => {
87373
- const i = X(() => ({ provider: t, config: n }), [t, n]);
87374
- return /* @__PURE__ */ m(k4.Provider, { value: i, children: e });
87375
- }, VOe = (e) => {
87376
- const t = ht(k4);
87377
- return e ?? t?.provider ?? BTe;
87378
- }, WOe = () => ht(k4)?.config;
87377
+ };
87379
87378
  export {
87380
87379
  FX as $,
87381
87380
  vie as A,
@@ -87475,7 +87474,7 @@ export {
87475
87474
  hOe as b0,
87476
87475
  Kie as b1,
87477
87476
  ROe as b2,
87478
- jOe as b3,
87477
+ WOe as b3,
87479
87478
  lz as b4,
87480
87479
  nTe as b5,
87481
87480
  MOe as b6,
@@ -87488,7 +87487,7 @@ export {
87488
87487
  U2 as bD,
87489
87488
  kie as bE,
87490
87489
  dM as bF,
87491
- MM as bG,
87490
+ BM as bG,
87492
87491
  XM as bH,
87493
87492
  c5 as bI,
87494
87493
  qle as bJ,
@@ -87497,7 +87496,7 @@ export {
87497
87496
  uz as bM,
87498
87497
  Om as bN,
87499
87498
  GTe as bO,
87500
- HOe as bP,
87499
+ jOe as bP,
87501
87500
  h1 as bQ,
87502
87501
  vOe as bR,
87503
87502
  p1 as bS,
@@ -87510,7 +87509,7 @@ export {
87510
87509
  Br as bZ,
87511
87510
  KQ as b_,
87512
87511
  L$ as ba,
87513
- LU as bb,
87512
+ PU as bb,
87514
87513
  kOe as bc,
87515
87514
  LK as bd,
87516
87515
  w2 as be,
@@ -87553,8 +87552,8 @@ export {
87553
87552
  Fpe as ce,
87554
87553
  $pe as cf,
87555
87554
  COe as cg,
87556
- VOe as d,
87557
- WOe as e,
87555
+ HOe as d,
87556
+ VOe as e,
87558
87557
  _f as f,
87559
87558
  Ea as g,
87560
87559
  t2e as h,