@shtabapp/ui-kit 1.72.0 → 1.74.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [@shtabapp/ui-kit-v1.74.0](https://gitlab.com/mstikharev/shtab-ui-kit/compare/@shtabapp/ui-kit@1.73.0...@shtabapp/ui-kit@1.74.0) (2026-09-13)
2
+
3
+ ### Features
4
+
5
+ - **components:** reveal the sort button on hover and make drop-inside delay configurable ([5655956](https://gitlab.com/mstikharev/shtab-ui-kit/commit/5655956f3357bc8e0311925ed535aae442d12be8))
6
+ - **components:** s-table rowStyle prop for app-driven row inline style ([e9a991c](https://gitlab.com/mstikharev/shtab-ui-kit/commit/e9a991c0a031b2c1f0f0c373240269cc37bfec73))
7
+ - **components:** stable group rows honour rowStyle and expose their cells ([6efe711](https://gitlab.com/mstikharev/shtab-ui-kit/commit/6efe7111078c81b2987a4e1a2dcb78f234663742))
8
+
9
+ ## [@shtabapp/ui-kit-v1.73.0](https://gitlab.com/mstikharev/shtab-ui-kit/compare/@shtabapp/ui-kit@1.72.0...@shtabapp/ui-kit@1.73.0) (2026-09-12)
10
+
11
+ ### Features
12
+
13
+ - row stable bg color ([7132833](https://gitlab.com/mstikharev/shtab-ui-kit/commit/7132833f5ab706147b4d49cb233e61c7a2d5a8c0))
14
+
1
15
  ## [@shtabapp/ui-kit-v1.72.0](https://gitlab.com/mstikharev/shtab-ui-kit/compare/@shtabapp/ui-kit@1.71.2...@shtabapp/ui-kit@1.72.0) (2026-09-12)
2
16
 
3
17
  ### Features
@@ -181,14 +181,15 @@ var J = /* @__PURE__ */ function(e) {
181
181
  let t = o.get(e);
182
182
  t && (e !== d.value && i.has(e) || c.push(t));
183
183
  });
184
- let l = [], u = [], f = [], p = [];
184
+ let l = [], u = [], f = [], p = [], m = [];
185
185
  return c.forEach((e) => {
186
- e.key === d.value ? l.push(e) : e.sticky === J.LEFT ? u.push(e) : e.sticky === J.RIGHT ? p.push(e) : f.push(e);
186
+ e.key === d.value ? u.push(e) : e.leading ? l.push(e) : e.sticky === J.LEFT ? f.push(e) : e.sticky === J.RIGHT ? m.push(e) : p.push(e);
187
187
  }), [
188
188
  ...l,
189
189
  ...u,
190
190
  ...f,
191
- ...p
191
+ ...p,
192
+ ...m
192
193
  ];
193
194
  }), p = (e, t) => {
194
195
  let r = n.value?.[e.key];
@@ -232,27 +233,27 @@ var J = /* @__PURE__ */ function(e) {
232
233
  });
233
234
  };
234
235
  U(i) && r("indicator", 2), U(a) && r("checkbox", 24), f.value.forEach((r) => {
235
- let i = r.key === d.value, a = i ? J.LEFT : r.sticky, { baseWidth: o, flexible: s } = p(r, i);
236
+ let i = r.key === d.value, a = !!r.leading && !i, o = i || a ? J.LEFT : r.sticky, { baseWidth: s, flexible: c } = p(r, i);
236
237
  e.push({
237
238
  key: r.key,
238
239
  column: r,
239
- width: o,
240
- baseWidth: o,
241
- flexible: s,
240
+ width: s,
241
+ baseWidth: s,
242
+ flexible: c,
242
243
  minWidth: r.minWidth ?? 60,
243
244
  maxWidth: r.maxWidth,
244
- sticky: a,
245
+ sticky: o,
245
246
  align: r.align ?? Y.LEFT,
246
247
  primary: i,
247
248
  resizable: t && (r.resizable ?? !0),
248
- draggable: n && !i && (r.draggable ?? !0),
249
+ draggable: n && !i && !a && (r.draggable ?? !0),
249
250
  sortable: r.sortable ?? !1,
250
- hideable: !i && (r.hideable ?? !0),
251
+ hideable: !i && !a && (r.hideable ?? !0),
251
252
  colIndex: 0,
252
253
  widthVar: Qe(r.key),
253
254
  liveWidthVar: et(r.key),
254
- stickyOffsetVar: a ? $e(r.key) : void 0,
255
- liveStickyOffsetVar: a ? tt(r.key) : void 0,
255
+ stickyOffsetVar: o ? $e(r.key) : void 0,
256
+ liveStickyOffsetVar: o ? tt(r.key) : void 0,
256
257
  lastStickyLeft: !1,
257
258
  firstStickyRight: !1
258
259
  });
@@ -595,7 +596,7 @@ var J = /* @__PURE__ */ function(e) {
595
596
  "data-section": W($).BODY,
596
597
  tabindex: m.descriptor.key === e.focusColumnKey ? 0 : -1
597
598
  }, [m.descriptor.key === e.groupColumnKey ? (L(), C("div", {
598
- key: 0,
599
+ key: 1,
599
600
  class: "s-ui-table__group-content",
600
601
  style: P(h.value)
601
602
  }, [B(t.$slots, "row", {}, () => [
@@ -649,7 +650,10 @@ var J = /* @__PURE__ */ function(e) {
649
650
  })]),
650
651
  _: 3
651
652
  }, 8, ["modelValue", "placement"])) : S("", !0)])
652
- ])], 4)) : S("", !0)], 14, mt))), 128)),
653
+ ])], 4)) : B(t.$slots, "group-cell", {
654
+ key: 0,
655
+ columnKey: m.descriptor.key
656
+ })], 14, mt))), 128)),
653
657
  b[4] ||= w("td", {
654
658
  class: "s-ui-table__cell s-ui-table__filler-cell s-ui-table__group-cell",
655
659
  role: "presentation"
@@ -705,6 +709,10 @@ var J = /* @__PURE__ */ function(e) {
705
709
  menuOpen: {
706
710
  type: Boolean,
707
711
  default: !1
712
+ },
713
+ menuEnabled: {
714
+ type: Boolean,
715
+ default: !0
708
716
  }
709
717
  },
710
718
  emits: [
@@ -714,7 +722,7 @@ var J = /* @__PURE__ */ function(e) {
714
722
  "hide"
715
723
  ],
716
724
  setup(e, { emit: t }) {
717
- let n = t, s = ie(), { t: c } = de(), f = b(() => !!s.menu || e.descriptor.sortable || e.descriptor.hideable), p = b(() => ({
725
+ let n = t, s = ie(), { t: c } = de(), f = b(() => e.menuEnabled === !1 ? !1 : !!s.menu || e.descriptor.sortable || e.descriptor.hideable), p = b(() => ({
718
726
  "s-ui-table__header-plaque--sorted": !!e.sortDirection,
719
727
  "s-ui-table__header-plaque--sortable": e.descriptor.sortable,
720
728
  "s-ui-table__header-plaque--align-center": e.descriptor.align === Y.CENTER,
@@ -1704,74 +1712,74 @@ var J = /* @__PURE__ */ function(e) {
1704
1712
  }
1705
1713
  }
1706
1714
  };
1707
- }, _n = ({ tableId: e, enabled: t, dragMode: n, snapshot: r, scrollElement: i, isRowDraggable: a, dragExpandDelayMs: o, isExpanded: s, onHoverExpand: c, onReorder: l, onTreeDrop: u, resolveRowPreviewTitle: d }) => {
1708
- let f = /* @__PURE__ */ new Map(), p = V(), m = V(), h = V(), g = (e) => {
1715
+ }, _n = ({ tableId: e, enabled: t, dragMode: n, snapshot: r, scrollElement: i, isRowDraggable: a, dragExpandDelayMs: o, dragInsideDelayMs: s, isExpanded: c, onHoverExpand: l, onReorder: u, onTreeDrop: d, resolveRowPreviewTitle: f }) => {
1716
+ let p = /* @__PURE__ */ new Map(), m = V(), h = V(), g = V(), _ = (e) => {
1709
1717
  if (!(e instanceof HTMLElement)) return;
1710
1718
  let t = Number(e.dataset.index);
1711
1719
  if (Number.isInteger(t)) return r.value.flatRows[t];
1712
- }, _ = (e) => {
1720
+ }, v = (e) => {
1713
1721
  if (!e || !U(t) || e.kind !== Q.ROW && e.kind !== Q.GROUP) return !1;
1714
1722
  let n = U(a);
1715
1723
  return n ? n(e.item) !== !1 : !0;
1716
- }, v = (e, t) => {
1724
+ }, y = (e, t) => {
1717
1725
  let { getSubtreeRangeByKey: n, getRowIndexByKey: i } = r.value, a = n(e), o = i(t);
1718
1726
  return !a || o === void 0 ? !1 : o >= a[0] && o <= a[1];
1719
- }, y = _e(() => {
1720
- let e = b.value;
1721
- e && !s(e) && c(e);
1722
- }, () => U(o) ?? 500, { immediate: !1 }), b = V(), x = _e(() => {
1723
- C.value = S.value;
1724
- }, He, { immediate: !1 }), S = V(), C = V(), w = (e) => {
1725
- !(e.hasChildren || e.kind === Q.GROUP) || e.expanded || b.value !== e.key && (b.value = e.key, y.stop(), y.start());
1726
- }, T = () => {
1727
- y.stop(), b.value = void 0, x.stop(), S.value = void 0, C.value = void 0;
1728
- }, E = (e, t, r, i) => {
1727
+ }, b = _e(() => {
1728
+ let e = x.value;
1729
+ e && !c(e) && l(e);
1730
+ }, () => U(o) ?? 500, { immediate: !1 }), x = V(), S = _e(() => {
1731
+ w.value = C.value;
1732
+ }, () => U(s) ?? 1300, { immediate: !1 }), C = V(), w = V(), T = (e) => {
1733
+ !(e.hasChildren || e.kind === Q.GROUP) || e.expanded || x.value !== e.key && (x.value = e.key, b.stop(), b.start());
1734
+ }, E = () => {
1735
+ b.stop(), x.value = void 0, S.stop(), C.value = void 0, w.value = void 0;
1736
+ }, D = (e, t, r, i) => {
1729
1737
  if (U(n) === Pe.TREE) {
1730
1738
  let n = t.getBoundingClientRect(), i = Ve * n.height / 2;
1731
1739
  if (Math.abs(r - (n.top + n.height / 2)) <= i) {
1732
- if (e.kind === Q.GROUP || C.value === e.key) return Fe.CHILD;
1733
- S.value !== e.key && (S.value = e.key, x.stop(), x.start());
1734
- } else S.value === e.key && (x.stop(), S.value = void 0, C.value = void 0);
1740
+ if (e.kind === Q.GROUP || w.value === e.key) return Fe.CHILD;
1741
+ C.value !== e.key && (C.value = e.key, S.stop(), S.start());
1742
+ } else C.value === e.key && (S.stop(), C.value = void 0, w.value = void 0);
1735
1743
  }
1736
1744
  return i === "top" ? Fe.BEFORE : Fe.AFTER;
1737
- }, D, O = (e) => {
1745
+ }, O, k = (e) => {
1738
1746
  [e, ...e.querySelectorAll("[id], [tabindex]")].forEach((e) => {
1739
1747
  e.removeAttribute("id"), e.removeAttribute("tabindex");
1740
1748
  });
1741
- }, k = (e) => {
1749
+ }, A = (e) => {
1742
1750
  let t = e.querySelector(".s-ui-table__cell--primary .s-ui-table__cell-body, .s-ui-table__cell--primary .s-ui-table__group-content"), n = t?.closest("td");
1743
1751
  return t && n ? {
1744
1752
  content: t,
1745
1753
  cell: n
1746
1754
  } : void 0;
1747
- }, A = (e, t) => {
1755
+ }, j = (e, t) => {
1748
1756
  let n = document.createElement("div");
1749
1757
  n.className = "s-ui-table__row-drag-preview", n.setAttribute("aria-hidden", "true");
1750
- let r = k(e);
1751
- if (!r) return n.textContent = t ? d(t) : "", n;
1758
+ let r = A(e);
1759
+ if (!r) return n.textContent = t ? f(t) : "", n;
1752
1760
  let i = r.content.cloneNode(!0);
1753
- return i instanceof Element && O(i), n.style.inlineSize = `${Math.round(r.cell.getBoundingClientRect().width)}px`, n.appendChild(i), n;
1754
- }, j = (e, t) => {
1755
- D && (D.style.transform = `translate(${e + 8}px, ${t + 8}px)`);
1756
- }, M = (e) => {
1757
- j(e.clientX, e.clientY);
1758
- }, ee = (e, t, n) => {
1759
- N(), D = document.createElement("div"), D.className = "s-ui-table__row-drag-layer", D.appendChild(e), document.body.appendChild(D), document.addEventListener("dragover", M), j(t, n);
1760
- }, N = () => {
1761
- document.removeEventListener("dragover", M), D?.remove(), D = void 0;
1762
- }, P = (t) => {
1761
+ return i instanceof Element && k(i), n.style.inlineSize = `${Math.round(r.cell.getBoundingClientRect().width)}px`, n.appendChild(i), n;
1762
+ }, M = (e, t) => {
1763
+ O && (O.style.transform = `translate(${e + 8}px, ${t + 8}px)`);
1764
+ }, ee = (e) => {
1765
+ M(e.clientX, e.clientY);
1766
+ }, N = (e, t, n) => {
1767
+ P(), O = document.createElement("div"), O.className = "s-ui-table__row-drag-layer", O.appendChild(e), document.body.appendChild(O), document.addEventListener("dragover", ee), M(t, n);
1768
+ }, P = () => {
1769
+ document.removeEventListener("dragover", ee), O?.remove(), O = void 0;
1770
+ }, I = (t) => {
1763
1771
  if (!(t instanceof HTMLElement)) {
1764
- f.forEach((e, t) => {
1765
- t.isConnected || (e(), f.delete(t));
1772
+ p.forEach((e, t) => {
1773
+ t.isConnected || (e(), p.delete(t));
1766
1774
  });
1767
1775
  return;
1768
1776
  }
1769
- if (f.has(t)) return;
1777
+ if (p.has(t)) return;
1770
1778
  let n = q(xe({
1771
1779
  element: t,
1772
- canDrag: () => _(g(t)),
1780
+ canDrag: () => v(_(t)),
1773
1781
  getInitialData: () => {
1774
- let n = g(t);
1782
+ let n = _(t);
1775
1783
  return {
1776
1784
  type: ln,
1777
1785
  tableId: e,
@@ -1780,94 +1788,94 @@ var J = /* @__PURE__ */ function(e) {
1780
1788
  };
1781
1789
  },
1782
1790
  onGenerateDragPreview: ({ nativeSetDragImage: e, location: n }) => {
1783
- let r = A(t, g(t)), { clientX: i, clientY: a } = n.current.input;
1784
- Oe({ nativeSetDragImage: e }), ee(r, i, a);
1791
+ let r = j(t, _(t)), { clientX: i, clientY: a } = n.current.input;
1792
+ Oe({ nativeSetDragImage: e }), N(r, i, a);
1785
1793
  },
1786
1794
  onDragStart: () => {
1787
- p.value = g(t)?.key, h.value = void 0;
1795
+ m.value = _(t)?.key, g.value = void 0;
1788
1796
  },
1789
1797
  onDrop: () => {
1790
- p.value = void 0, m.value = void 0, T(), N();
1798
+ m.value = void 0, h.value = void 0, E(), P();
1791
1799
  }
1792
1800
  }), Se({
1793
1801
  element: t,
1794
1802
  canDrop: ({ source: n }) => {
1795
1803
  if (!dn(n.data, e)) return !1;
1796
- let r = g(t);
1797
- return !r || r.key === n.data.rowKey ? !1 : !v(n.data.rowKey, r.key);
1804
+ let r = _(t);
1805
+ return !r || r.key === n.data.rowKey ? !1 : !y(n.data.rowKey, r.key);
1798
1806
  },
1799
- getData: ({ input: e, element: t }) => Ee({ rowKey: g(t)?.key ?? "" }, {
1807
+ getData: ({ input: e, element: t }) => Ee({ rowKey: _(t)?.key ?? "" }, {
1800
1808
  input: e,
1801
1809
  element: t,
1802
1810
  allowedEdges: ["top", "bottom"]
1803
1811
  }),
1804
1812
  onDrag: ({ self: e, location: n }) => {
1805
- let r = g(t);
1813
+ let r = _(t);
1806
1814
  if (!r) return;
1807
- w(r);
1808
- let i = De(e.data), a = i === "top" || i === "bottom" ? i : null, o = E(r, t, n.current.input.clientY, a), s = o === Fe.CHILD ? r.depth + 1 : r.depth, c = m.value;
1809
- (c?.targetKey !== r.key || c.action !== o || c.depth !== s) && (m.value = {
1815
+ T(r);
1816
+ let i = De(e.data), a = i === "top" || i === "bottom" ? i : null, o = D(r, t, n.current.input.clientY, a), s = o === Fe.CHILD ? r.depth + 1 : r.depth, c = h.value;
1817
+ (c?.targetKey !== r.key || c.action !== o || c.depth !== s) && (h.value = {
1810
1818
  targetKey: r.key,
1811
1819
  action: o,
1812
1820
  depth: s
1813
- }), h.value = {
1821
+ }), g.value = {
1814
1822
  targetKey: r.key,
1815
1823
  action: o,
1816
1824
  depth: s
1817
1825
  };
1818
1826
  },
1819
1827
  onDragLeave: () => {
1820
- let e = g(t);
1821
- m.value?.targetKey === e?.key && (m.value = void 0), b.value === e?.key && (y.stop(), b.value = void 0);
1828
+ let e = _(t);
1829
+ h.value?.targetKey === e?.key && (h.value = void 0), x.value === e?.key && (b.stop(), x.value = void 0);
1822
1830
  }
1823
1831
  }));
1824
- f.set(t, n);
1825
- }, I = Ce({
1832
+ p.set(t, n);
1833
+ }, L = Ce({
1826
1834
  canMonitor: ({ source: t }) => dn(t.data, e),
1827
1835
  onDrop: ({ source: t, location: i }) => {
1828
- let a = h.value;
1829
- if (h.value = void 0, p.value = void 0, m.value = void 0, T(), !i.current.dropTargets[0] || !a || !dn(t.data, e)) return;
1830
- let { flatRows: o, getRowIndexByKey: s } = r.value, c = s(t.data.rowKey), d = s(a.targetKey), f = c === void 0 ? void 0 : o[c], g = d === void 0 ? void 0 : o[d];
1831
- if (!f || !g || f.key === g.key || v(f.key, g.key)) return;
1836
+ let a = g.value;
1837
+ if (g.value = void 0, m.value = void 0, h.value = void 0, E(), !i.current.dropTargets[0] || !a || !dn(t.data, e)) return;
1838
+ let { flatRows: o, getRowIndexByKey: s } = r.value, c = s(t.data.rowKey), l = s(a.targetKey), f = c === void 0 ? void 0 : o[c], p = l === void 0 ? void 0 : o[l];
1839
+ if (!f || !p || f.key === p.key || y(f.key, p.key)) return;
1832
1840
  if (U(n) === Pe.FLAT) {
1833
1841
  if (a.action === Fe.CHILD) return;
1834
- l({
1842
+ u({
1835
1843
  action: a.action,
1836
1844
  sourceKey: f.key,
1837
1845
  sourceItem: f.item,
1838
- targetKey: g.key,
1839
- targetItem: g.item,
1846
+ targetKey: p.key,
1847
+ targetItem: p.item,
1840
1848
  sourceIndex: f.index,
1841
- targetIndex: g.index
1849
+ targetIndex: p.index
1842
1850
  });
1843
1851
  return;
1844
1852
  }
1845
- let _ = a.action === Fe.CHILD, y = _ ? g.key : g.parentKey, b = y === void 0 ? void 0 : s(y), x = b === void 0 ? void 0 : o[b];
1846
- u({
1853
+ let _ = a.action === Fe.CHILD, v = _ ? p.key : p.parentKey, b = v === void 0 ? void 0 : s(v), x = b === void 0 ? void 0 : o[b];
1854
+ d({
1847
1855
  action: a.action,
1848
1856
  sourceKey: f.key,
1849
1857
  sourceItem: f.item,
1850
- targetKey: g.key,
1851
- targetItem: g.item,
1852
- parentKey: y,
1858
+ targetKey: p.key,
1859
+ targetItem: p.item,
1860
+ parentKey: v,
1853
1861
  parentItem: x?.item,
1854
- depth: _ ? g.depth + 1 : g.depth
1862
+ depth: _ ? p.depth + 1 : p.depth
1855
1863
  });
1856
1864
  }
1857
- }), L;
1865
+ }), R;
1858
1866
  return G(i, (t) => {
1859
- L?.(), L = void 0, t && (L = ke({
1867
+ R?.(), R = void 0, t && (R = ke({
1860
1868
  element: t,
1861
1869
  canScroll: ({ source: t }) => dn(t.data, e)
1862
1870
  }));
1863
1871
  }, { immediate: !0 }), F(() => {
1864
- I(), L?.(), N(), f.forEach((e) => {
1872
+ L(), R?.(), P(), p.forEach((e) => {
1865
1873
  e();
1866
- }), f.clear();
1874
+ }), p.clear();
1867
1875
  }), {
1868
- registerRowElement: P,
1869
- draggingRowKey: p,
1870
- dropIndicator: m
1876
+ registerRowElement: I,
1877
+ draggingRowKey: m,
1878
+ dropIndicator: h
1871
1879
  };
1872
1880
  }, vn = ({ flatRows: e, virtualEnabled: t, windowIndexes: n, uiTotalSize: r, getRowUiOffset: i, activeGroupRowIndex: a, activeDepthFooterRowIndexes: o, leavingDepthFooterRowIndex: s, slidingDepthFooterRowIndexes: c, farDepthFooterRowIndexes: l, activeRowIndex: u }) => {
1873
1881
  let d = b(() => {
@@ -2578,6 +2586,7 @@ var J = /* @__PURE__ */ function(e) {
2578
2586
  rowsDragMode: {},
2579
2587
  isRowDraggable: { type: Function },
2580
2588
  dragExpandDelayMs: { default: () => 500 },
2589
+ dragInsideDelayMs: { default: () => He },
2581
2590
  columnsResizable: {
2582
2591
  type: Boolean,
2583
2592
  default: !0
@@ -2586,6 +2595,10 @@ var J = /* @__PURE__ */ function(e) {
2586
2595
  type: Boolean,
2587
2596
  default: !0
2588
2597
  },
2598
+ columnMenu: {
2599
+ type: Boolean,
2600
+ default: !0
2601
+ },
2589
2602
  scrollSeekPlaceholders: {
2590
2603
  type: Boolean,
2591
2604
  default: !0
@@ -2735,6 +2748,7 @@ var J = /* @__PURE__ */ function(e) {
2735
2748
  scrollElement: te,
2736
2749
  isRowDraggable: () => e.isRowDraggable,
2737
2750
  dragExpandDelayMs: () => e.dragExpandDelayMs,
2751
+ dragInsideDelayMs: () => e.dragInsideDelayMs,
2738
2752
  isExpanded: (e) => p.value.includes(e),
2739
2753
  onHoverExpand: (e) => {
2740
2754
  xe(e);
@@ -3047,50 +3061,52 @@ var J = /* @__PURE__ */ function(e) {
3047
3061
  style: P({ width: `var(${e.liveWidthVar}, var(${e.widthVar}))` })
3048
3062
  }, null, 4))), 128))
3049
3063
  ]),
3050
- w("thead", Rn, [w("tr", zn, [(L(!0), C(y, null, z(W(Ee), ({ key: e, descriptor: s }) => (L(), C(y, { key: e }, [s ? (L(), C("th", {
3064
+ w("thead", Rn, [w("tr", zn, [(L(!0), C(y, null, z(W(Ee), ({ key: s, descriptor: c }) => (L(), C(y, { key: s }, [c ? (L(), C("th", {
3051
3065
  key: 1,
3052
3066
  id: pr({
3053
3067
  section: W($).HEADER,
3054
- columnKey: s.key
3068
+ columnKey: c.key
3055
3069
  }),
3056
3070
  ref_for: !0,
3057
- ref: (e) => ut(e, s.key),
3058
- class: N(["s-ui-table__header-cell", [W(Oe)(s), { "s-ui-table__header-cell--dragging": W(st) === s.key }]]),
3059
- style: P(W(De)(s)),
3060
- "data-column-key": s.key,
3071
+ ref: (e) => ut(e, c.key),
3072
+ class: N(["s-ui-table__header-cell", [W(Oe)(c), { "s-ui-table__header-cell--dragging": W(st) === c.key }]]),
3073
+ style: P(W(De)(c)),
3074
+ "data-column-key": c.key,
3061
3075
  "data-section": W($).HEADER,
3062
- "aria-colindex": s.colIndex,
3063
- "aria-sort": W(Ft)(s),
3064
- tabindex: yr(W($).HEADER, void 0, s.key),
3076
+ "aria-colindex": c.colIndex,
3077
+ "aria-sort": W(Ft)(c),
3078
+ tabindex: yr(W($).HEADER, void 0, c.key),
3065
3079
  scope: "col"
3066
- }, [s.column ? (L(), x(Dt, {
3080
+ }, [c.column ? (L(), x(Dt, {
3067
3081
  key: 0,
3068
- descriptor: s,
3069
- "sort-direction": W(At)(s.key),
3070
- "sort-index": W(jt)(s.key),
3071
- "menu-open": Lt.value === s.key,
3072
- "onUpdate:menuOpen": (e) => Rt(s.key, e),
3073
- onSortToggle: (e) => W(Nt)(s.key, e),
3074
- onSortSet: (e) => W(Pt)(s.key, e),
3075
- onHide: (e) => qt(s.key)
3076
- }, T({ _: 2 }, [W(F)[`header:${s.key}`] ? {
3082
+ descriptor: c,
3083
+ "sort-direction": W(At)(c.key),
3084
+ "sort-index": W(jt)(c.key),
3085
+ "menu-enabled": e.columnMenu,
3086
+ "menu-open": Lt.value === c.key,
3087
+ "onUpdate:menuOpen": (e) => Rt(c.key, e),
3088
+ onSortToggle: (e) => W(Nt)(c.key, e),
3089
+ onSortSet: (e) => W(Pt)(c.key, e),
3090
+ onHide: (e) => qt(c.key)
3091
+ }, T({ _: 2 }, [W(F)[`header:${c.key}`] ? {
3077
3092
  name: "default",
3078
- fn: K(() => [B(t.$slots, `header:${s.key}`, M({ ref_for: !0 }, W(It)(s)))]),
3093
+ fn: K(() => [B(t.$slots, `header:${c.key}`, M({ ref_for: !0 }, W(It)(c)))]),
3079
3094
  key: "0"
3080
- } : void 0, W(F)[`header-menu:${s.key}`] ? {
3095
+ } : void 0, W(F)[`header-menu:${c.key}`] ? {
3081
3096
  name: "menu",
3082
- fn: K(() => [B(t.$slots, `header-menu:${s.key}`, M({ ref_for: !0 }, W(It)(s)))]),
3097
+ fn: K(() => [B(t.$slots, `header-menu:${c.key}`, M({ ref_for: !0 }, W(It)(c)))]),
3083
3098
  key: "1"
3084
3099
  } : void 0]), 1032, [
3085
3100
  "descriptor",
3086
3101
  "sort-direction",
3087
3102
  "sort-index",
3103
+ "menu-enabled",
3088
3104
  "menu-open",
3089
3105
  "onUpdate:menuOpen",
3090
3106
  "onSortToggle",
3091
3107
  "onSortSet",
3092
3108
  "onHide"
3093
- ])) : s.service === W(qe).CHECKBOX ? (L(), x(We, {
3109
+ ])) : c.service === W(qe).CHECKBOX ? (L(), x(We, {
3094
3110
  key: 1,
3095
3111
  class: N(["s-ui-table__header-checkbox", { "s-ui-table__header-checkbox--active": W(Yt) !== W(Z).UNCHECKED }]),
3096
3112
  "model-value": W(Yt) === W(Z).CHECKED,
@@ -3102,7 +3118,7 @@ var J = /* @__PURE__ */ function(e) {
3102
3118
  "model-value",
3103
3119
  "indeterminate",
3104
3120
  "screen-reader-label"
3105
- ])) : s.service === W(qe).COLUMNS_MANAGER ? (L(), C("div", Hn, [D(W(u), {
3121
+ ])) : c.service === W(qe).COLUMNS_MANAGER ? (L(), C("div", Hn, [D(W(u), {
3106
3122
  modelValue: Bt.value,
3107
3123
  "onUpdate:modelValue": n[1] ||= (e) => Bt.value = e,
3108
3124
  placement: W(l).BOTTOM_END,
@@ -3160,16 +3176,16 @@ var J = /* @__PURE__ */ function(e) {
3160
3176
  _: 3
3161
3177
  })]),
3162
3178
  _: 3
3163
- }, 8, ["modelValue", "placement"])])) : S("", !0), s.resizable ? (L(), C("span", {
3179
+ }, 8, ["modelValue", "placement"])])) : S("", !0), c.resizable ? (L(), C("span", {
3164
3180
  key: 3,
3165
- class: N(["s-ui-table__resize-handle", { "s-ui-table__resize-handle--active": W(tt) === s.key }]),
3181
+ class: N(["s-ui-table__resize-handle", { "s-ui-table__resize-handle--active": W(tt) === c.key }]),
3166
3182
  role: "separator",
3167
3183
  "aria-orientation": "vertical",
3168
3184
  "aria-label": W(I)("table.resizeColumn"),
3169
3185
  tabindex: "-1",
3170
- onPointerdown: (e) => W(nt)(e, s.key),
3171
- onKeydown: (e) => W(rt)(e, s.key),
3172
- onDblclick: (e) => W(it)(s.key),
3186
+ onPointerdown: (e) => W(nt)(e, c.key),
3187
+ onKeydown: (e) => W(rt)(e, c.key),
3188
+ onDblclick: (e) => W(it)(c.key),
3173
3189
  onClick: n[2] ||= oe(() => {}, ["stop"])
3174
3190
  }, null, 42, Gn)) : S("", !0)], 14, Vn)) : (L(), C("th", Bn))], 64))), 128))])]),
3175
3191
  w("tbody", Kn, [
@@ -3230,15 +3246,23 @@ var J = /* @__PURE__ */ function(e) {
3230
3246
  fn: K(() => [B(t.$slots, "group-row", M({ ref_for: !0 }, ar(n)))]),
3231
3247
  key: "1"
3232
3248
  } : void 0,
3249
+ W(F)["group-cell"] ? {
3250
+ name: "group-cell",
3251
+ fn: K((e) => [B(t.$slots, "group-cell", M({ ref_for: !0 }, {
3252
+ ...ar(n),
3253
+ ...e
3254
+ }))]),
3255
+ key: "2"
3256
+ } : void 0,
3233
3257
  W(F)["group-title"] ? {
3234
3258
  name: "title",
3235
3259
  fn: K(() => [B(t.$slots, "group-title", M({ ref_for: !0 }, ar(n)))]),
3236
- key: "2"
3260
+ key: "3"
3237
3261
  } : void 0,
3238
3262
  W(F)["group-actions"] ? {
3239
3263
  name: "actions",
3240
3264
  fn: K(() => [B(t.$slots, "group-actions", M({ ref_for: !0 }, ar(n)))]),
3241
- key: "3"
3265
+ key: "4"
3242
3266
  } : void 0
3243
3267
  ]), 1032, [
3244
3268
  "id",