@ceed/ads 1.28.0 → 1.28.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -2320,7 +2320,7 @@ var StyledTd = (0, import_joy25.styled)("td")(({ theme }) => ({
2320
2320
  var MotionSortIcon = (0, import_framer_motion17.motion)(import_ArrowUpwardRounded.default);
2321
2321
  var DefaultLoadingOverlay = () => /* @__PURE__ */ import_react19.default.createElement(import_joy25.LinearProgress, { value: 8, variant: "plain" });
2322
2322
  var DefaultNoRowsOverlay = () => /* @__PURE__ */ import_react19.default.createElement(import_joy25.Typography, { level: "body-sm", textColor: "text.tertiary" }, "No rows");
2323
- var Resizer = (ref, targetRef = ref) => /* @__PURE__ */ import_react19.default.createElement(
2323
+ var Resizer = (ref, targetRef = ref, onResizeStateChange) => /* @__PURE__ */ import_react19.default.createElement(
2324
2324
  Box_default,
2325
2325
  {
2326
2326
  sx: {
@@ -2335,6 +2335,7 @@ var Resizer = (ref, targetRef = ref) => /* @__PURE__ */ import_react19.default.c
2335
2335
  onMouseDown: (e) => {
2336
2336
  const initialX = e.clientX;
2337
2337
  const initialWidth = ref.current?.getBoundingClientRect().width;
2338
+ onResizeStateChange?.(true);
2338
2339
  const onMouseMove = (e2) => {
2339
2340
  if (initialWidth && initialX) {
2340
2341
  ref.current.style.width = `${initialWidth + (e2.clientX - initialX)}px`;
@@ -2344,6 +2345,7 @@ var Resizer = (ref, targetRef = ref) => /* @__PURE__ */ import_react19.default.c
2344
2345
  const onMouseUp = () => {
2345
2346
  document.removeEventListener("mousemove", onMouseMove);
2346
2347
  document.removeEventListener("mouseup", onMouseUp);
2348
+ requestAnimationFrame(() => onResizeStateChange?.(false));
2347
2349
  };
2348
2350
  document.addEventListener("mousemove", onMouseMove);
2349
2351
  document.addEventListener("mouseup", onMouseUp);
@@ -2931,7 +2933,7 @@ var TextEllipsis = ({ children, lineClamp }) => {
2931
2933
  ro.observe(element);
2932
2934
  return () => ro.disconnect();
2933
2935
  }, [children, lineClamp]);
2934
- return /* @__PURE__ */ import_react24.default.createElement(Tooltip_default, { title: showTooltip ? children : "", placement: "top", onClick: (e) => e.stopPropagation() }, /* @__PURE__ */ import_react24.default.createElement(EllipsisDiv, { ref: textRef, lineClamp }, children));
2936
+ return /* @__PURE__ */ import_react24.default.createElement(Tooltip_default, { title: showTooltip ? children : "", placement: "top" }, /* @__PURE__ */ import_react24.default.createElement(EllipsisDiv, { ref: textRef, lineClamp }, children));
2935
2937
  };
2936
2938
  var CellTextEllipsis = ({ children }) => {
2937
2939
  const textRef = (0, import_react24.useRef)(null);
@@ -2988,13 +2990,23 @@ var HeadCell = (props) => {
2988
2990
  const theme = (0, import_joy32.useTheme)();
2989
2991
  const ref = headerRef;
2990
2992
  const colRef = tableColRef;
2993
+ const localRef = (0, import_react24.useRef)(null);
2994
+ (0, import_react24.useLayoutEffect)(() => {
2995
+ ref.current = localRef.current;
2996
+ }, [ref]);
2991
2997
  const [isHovered, setIsHovered] = (0, import_react24.useState)(false);
2992
2998
  const sortable = type === "actions" ? false : _sortable;
2993
2999
  const headId = (0, import_react24.useMemo)(
2994
3000
  () => `${tableId}_header_${headerName ?? field}`.trim(),
2995
3001
  [tableId, headerName, field]
2996
3002
  );
2997
- const resizer = (0, import_react24.useMemo)(() => resizable ?? true ? Resizer(ref, colRef) : null, [resizable, ref, colRef]);
3003
+ const isResizingRef = (0, import_react24.useRef)(false);
3004
+ const resizer = (0, import_react24.useMemo)(
3005
+ () => resizable ?? true ? Resizer(ref, colRef, (isResizing) => {
3006
+ isResizingRef.current = isResizing;
3007
+ }) : null,
3008
+ [resizable, ref, colRef]
3009
+ );
2998
3010
  const style = (0, import_react24.useMemo)(
2999
3011
  () => ({
3000
3012
  width,
@@ -3064,11 +3076,15 @@ var HeadCell = (props) => {
3064
3076
  id: headId,
3065
3077
  "aria-label": headerName ?? field,
3066
3078
  "aria-sort": sort ? { asc: "ascending", desc: "descending" }[sort] : "none",
3067
- ref,
3079
+ ref: localRef,
3068
3080
  key: field,
3069
3081
  style,
3070
3082
  onClick: (0, import_react24.useCallback)(
3071
- (e) => sortable && onSortChange?.({ field, currentSort: sort, multiple: e.shiftKey }),
3083
+ (e) => {
3084
+ if (isResizingRef.current) return;
3085
+ if (!(e.target instanceof Element) || !e.currentTarget.contains(e.target)) return;
3086
+ sortable && onSortChange?.({ field, currentSort: sort, multiple: e.shiftKey });
3087
+ },
3072
3088
  [field, onSortChange, sort, sortable]
3073
3089
  ),
3074
3090
  onMouseEnter: () => setIsHovered(true),
package/dist/index.js CHANGED
@@ -2186,7 +2186,7 @@ var StyledTd = styled8("td")(({ theme }) => ({
2186
2186
  var MotionSortIcon = motion17(SortIcon);
2187
2187
  var DefaultLoadingOverlay = () => /* @__PURE__ */ React17.createElement(LinearProgress, { value: 8, variant: "plain" });
2188
2188
  var DefaultNoRowsOverlay = () => /* @__PURE__ */ React17.createElement(Typography3, { level: "body-sm", textColor: "text.tertiary" }, "No rows");
2189
- var Resizer = (ref, targetRef = ref) => /* @__PURE__ */ React17.createElement(
2189
+ var Resizer = (ref, targetRef = ref, onResizeStateChange) => /* @__PURE__ */ React17.createElement(
2190
2190
  Box_default,
2191
2191
  {
2192
2192
  sx: {
@@ -2201,6 +2201,7 @@ var Resizer = (ref, targetRef = ref) => /* @__PURE__ */ React17.createElement(
2201
2201
  onMouseDown: (e) => {
2202
2202
  const initialX = e.clientX;
2203
2203
  const initialWidth = ref.current?.getBoundingClientRect().width;
2204
+ onResizeStateChange?.(true);
2204
2205
  const onMouseMove = (e2) => {
2205
2206
  if (initialWidth && initialX) {
2206
2207
  ref.current.style.width = `${initialWidth + (e2.clientX - initialX)}px`;
@@ -2210,6 +2211,7 @@ var Resizer = (ref, targetRef = ref) => /* @__PURE__ */ React17.createElement(
2210
2211
  const onMouseUp = () => {
2211
2212
  document.removeEventListener("mousemove", onMouseMove);
2212
2213
  document.removeEventListener("mouseup", onMouseUp);
2214
+ requestAnimationFrame(() => onResizeStateChange?.(false));
2213
2215
  };
2214
2216
  document.addEventListener("mousemove", onMouseMove);
2215
2217
  document.addEventListener("mouseup", onMouseUp);
@@ -2806,7 +2808,7 @@ var TextEllipsis = ({ children, lineClamp }) => {
2806
2808
  ro.observe(element);
2807
2809
  return () => ro.disconnect();
2808
2810
  }, [children, lineClamp]);
2809
- return /* @__PURE__ */ React22.createElement(Tooltip_default, { title: showTooltip ? children : "", placement: "top", onClick: (e) => e.stopPropagation() }, /* @__PURE__ */ React22.createElement(EllipsisDiv, { ref: textRef, lineClamp }, children));
2811
+ return /* @__PURE__ */ React22.createElement(Tooltip_default, { title: showTooltip ? children : "", placement: "top" }, /* @__PURE__ */ React22.createElement(EllipsisDiv, { ref: textRef, lineClamp }, children));
2810
2812
  };
2811
2813
  var CellTextEllipsis = ({ children }) => {
2812
2814
  const textRef = useRef5(null);
@@ -2863,13 +2865,23 @@ var HeadCell = (props) => {
2863
2865
  const theme = useTheme();
2864
2866
  const ref = headerRef;
2865
2867
  const colRef = tableColRef;
2868
+ const localRef = useRef5(null);
2869
+ useLayoutEffect(() => {
2870
+ ref.current = localRef.current;
2871
+ }, [ref]);
2866
2872
  const [isHovered, setIsHovered] = useState8(false);
2867
2873
  const sortable = type === "actions" ? false : _sortable;
2868
2874
  const headId = useMemo8(
2869
2875
  () => `${tableId}_header_${headerName ?? field}`.trim(),
2870
2876
  [tableId, headerName, field]
2871
2877
  );
2872
- const resizer = useMemo8(() => resizable ?? true ? Resizer(ref, colRef) : null, [resizable, ref, colRef]);
2878
+ const isResizingRef = useRef5(false);
2879
+ const resizer = useMemo8(
2880
+ () => resizable ?? true ? Resizer(ref, colRef, (isResizing) => {
2881
+ isResizingRef.current = isResizing;
2882
+ }) : null,
2883
+ [resizable, ref, colRef]
2884
+ );
2873
2885
  const style = useMemo8(
2874
2886
  () => ({
2875
2887
  width,
@@ -2939,11 +2951,15 @@ var HeadCell = (props) => {
2939
2951
  id: headId,
2940
2952
  "aria-label": headerName ?? field,
2941
2953
  "aria-sort": sort ? { asc: "ascending", desc: "descending" }[sort] : "none",
2942
- ref,
2954
+ ref: localRef,
2943
2955
  key: field,
2944
2956
  style,
2945
2957
  onClick: useCallback9(
2946
- (e) => sortable && onSortChange?.({ field, currentSort: sort, multiple: e.shiftKey }),
2958
+ (e) => {
2959
+ if (isResizingRef.current) return;
2960
+ if (!(e.target instanceof Element) || !e.currentTarget.contains(e.target)) return;
2961
+ sortable && onSortChange?.({ field, currentSort: sort, multiple: e.shiftKey });
2962
+ },
2947
2963
  [field, onSortChange, sort, sortable]
2948
2964
  ),
2949
2965
  onMouseEnter: () => setIsHovered(true),