@bigbinary/neeto-atoms 1.0.75 → 1.0.76

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.
@@ -1,4 +1,4 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { createContext, forwardRef, useContext } from 'react';
3
3
  import { c as cn } from './utils-BJnb9o5c.js';
4
4
  import { r as renderIcon } from './renderIcon-C6twJSqH.js';
@@ -35,16 +35,16 @@ TabsListComponent.displayName = "Tabs.List";
35
35
  const TabsItemComponent = forwardRef(
36
36
  ({ icon, className, children, ...otherProps }, ref) => {
37
37
  const size = useContext(TabsSizeContext);
38
- return /* @__PURE__ */ jsxs(
38
+ return /* @__PURE__ */ jsx(
39
39
  TabsTrigger,
40
40
  {
41
41
  ref,
42
42
  className: cn(SIZE_CLASSES[size], icon && "gap-1.5", className),
43
43
  ...otherProps,
44
- children: [
45
- icon && renderIcon(icon, size === "lg" ? "size-5" : "size-4"),
44
+ children: icon ? /* @__PURE__ */ jsxs(Fragment, { children: [
45
+ renderIcon(icon, size === "lg" ? "size-5" : "size-4"),
46
46
  children
47
- ]
47
+ ] }) : children
48
48
  }
49
49
  );
50
50
  }
@@ -61,4 +61,4 @@ const Tabs = Object.assign(TabsRoot, {
61
61
  });
62
62
 
63
63
  export { Tabs as T };
64
- //# sourceMappingURL=Tabs-DTbbJITd.js.map
64
+ //# sourceMappingURL=Tabs-BqlZLpHc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs-DTbbJITd.js","sources":["../src/components/Tabs/constants.ts","../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import { createContext } from \"react\";\n\ntype TabsSize = \"default\" | \"lg\";\n\nexport const SIZE_CLASSES: Record<TabsSize, string> = {\n default: \"\",\n lg: \"text-[15px] px-3 py-1.5\",\n};\n\nexport const LIST_HEIGHT: Record<TabsSize, string> = {\n default: \"\",\n lg: \"group-data-horizontal/tabs:h-10\",\n};\n\nexport const TabsSizeContext = createContext<TabsSize>(\"default\");\n","import React, { forwardRef, useContext } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { renderIcon, type IconProp } from \"src/shared/renderIcon\";\nimport {\n Tabs as PrimitiveTabs,\n TabsList as PrimitiveTabsList,\n TabsTrigger as PrimitiveTabsTrigger,\n TabsContent as PrimitiveTabsContent,\n} from \"src/primitives/Tabs\";\n\nimport { SIZE_CLASSES, LIST_HEIGHT, TabsSizeContext } from \"./constants\";\n\ntype TabsSize = \"default\" | \"lg\";\n\nexport interface TabsProps extends React.ComponentProps<typeof PrimitiveTabs> {\n /** Size of tab triggers. Applied to all Tabs.Item children. */\n size?: TabsSize;\n}\n\ntype TabsListProps = React.ComponentProps<typeof PrimitiveTabsList>;\n\ninterface TabsItemProps extends React.ComponentProps<\n typeof PrimitiveTabsTrigger\n> {\n /** Icon component, element, or class-name string rendered before the label. */\n icon?: IconProp;\n}\n\ntype TabsContentProps = React.ComponentProps<typeof PrimitiveTabsContent>;\n\nconst TabsRoot = forwardRef<HTMLDivElement, TabsProps>(\n ({ size = \"default\", children, ...props }, ref) => (\n <TabsSizeContext.Provider value={size}>\n <PrimitiveTabs ref={ref} {...props}>\n {children}\n </PrimitiveTabs>\n </TabsSizeContext.Provider>\n )\n);\nTabsRoot.displayName = \"Tabs\";\n\nconst TabsListComponent = forwardRef<HTMLDivElement, TabsListProps>(\n ({ className, ...props }, ref) => {\n const size = useContext(TabsSizeContext);\n\n return (\n <PrimitiveTabsList\n ref={ref}\n className={cn(LIST_HEIGHT[size], className)}\n {...props}\n />\n );\n }\n);\nTabsListComponent.displayName = \"Tabs.List\";\n\nconst TabsItemComponent = forwardRef<HTMLButtonElement, TabsItemProps>(\n ({ icon, className, children, ...otherProps }, ref) => {\n const size = useContext(TabsSizeContext);\n\n return (\n <PrimitiveTabsTrigger\n ref={ref}\n className={cn(SIZE_CLASSES[size], icon && \"gap-1.5\", className)}\n {...otherProps}\n >\n {icon && renderIcon(icon, size === \"lg\" ? \"size-5\" : \"size-4\")}\n {children}\n </PrimitiveTabsTrigger>\n );\n }\n);\nTabsItemComponent.displayName = \"Tabs.Item\";\n\nconst TabsContentComponent = forwardRef<HTMLDivElement, TabsContentProps>(\n (props, ref) => <PrimitiveTabsContent ref={ref} {...props} />\n);\nTabsContentComponent.displayName = \"Tabs.Content\";\n\nconst Tabs = Object.assign(TabsRoot, {\n List: TabsListComponent,\n Item: TabsItemComponent,\n Content: TabsContentComponent,\n});\n\nexport { Tabs };\n"],"names":["PrimitiveTabs","PrimitiveTabsList","PrimitiveTabsTrigger","PrimitiveTabsContent"],"mappings":";;;;;;AAIO,MAAM,YAAA,GAAyC;AAAA,EACpD,OAAA,EAAS,EAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEO,MAAM,WAAA,GAAwC;AAAA,EACnD,OAAA,EAAS,EAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEO,MAAM,eAAA,GAAkB,cAAwB,SAAS,CAAA;;ACiBhE,MAAM,QAAA,GAAW,UAAA;AAAA,EACf,CAAC,EAAE,IAAA,GAAO,SAAA,EAAW,UAAU,GAAG,KAAA,IAAS,GAAA,qBACzC,GAAA,CAAC,gBAAgB,QAAA,EAAhB,EAAyB,OAAO,IAAA,EAC/B,QAAA,kBAAA,GAAA,CAACA,UAAc,GAAA,EAAW,GAAG,KAAA,EAC1B,QAAA,EACH,CAAA,EACF;AAEJ,CAAA;AACA,QAAA,CAAS,WAAA,GAAc,MAAA;AAEvB,MAAM,iBAAA,GAAoB,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAChC,IAAA,MAAM,IAAA,GAAO,WAAW,eAAe,CAAA;AAEvC,IAAA,uBACE,GAAA;AAAA,MAACC,QAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA,CAAG,WAAA,CAAY,IAAI,GAAG,SAAS,CAAA;AAAA,QACzC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF,CAAA;AACA,iBAAA,CAAkB,WAAA,GAAc,WAAA;AAEhC,MAAM,iBAAA,GAAoB,UAAA;AAAA,EACxB,CAAC,EAAE,IAAA,EAAM,SAAA,EAAW,UAAU,GAAG,UAAA,IAAc,GAAA,KAAQ;AACrD,IAAA,MAAM,IAAA,GAAO,WAAW,eAAe,CAAA;AAEvC,IAAA,uBACE,IAAA;AAAA,MAACC,WAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAW,EAAA,CAAG,YAAA,CAAa,IAAI,CAAA,EAAG,IAAA,IAAQ,WAAW,SAAS,CAAA;AAAA,QAC7D,GAAG,UAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,IAAA,IAAQ,UAAA,CAAW,IAAA,EAAM,IAAA,KAAS,IAAA,GAAO,WAAW,QAAQ,CAAA;AAAA,UAC5D;AAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF,CAAA;AACA,iBAAA,CAAkB,WAAA,GAAc,WAAA;AAEhC,MAAM,oBAAA,GAAuB,UAAA;AAAA,EAC3B,CAAC,KAAA,EAAO,GAAA,yBAASC,WAAA,EAAA,EAAqB,GAAA,EAAW,GAAG,KAAA,EAAO;AAC7D,CAAA;AACA,oBAAA,CAAqB,WAAA,GAAc,cAAA;AAEnC,MAAM,IAAA,GAAO,MAAA,CAAO,MAAA,CAAO,QAAA,EAAU;AAAA,EACnC,IAAA,EAAM,iBAAA;AAAA,EACN,IAAA,EAAM,iBAAA;AAAA,EACN,OAAA,EAAS;AACX,CAAC;;;;"}
1
+ {"version":3,"file":"Tabs-BqlZLpHc.js","sources":["../src/components/Tabs/constants.ts","../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import { createContext } from \"react\";\n\ntype TabsSize = \"default\" | \"lg\";\n\nexport const SIZE_CLASSES: Record<TabsSize, string> = {\n default: \"\",\n lg: \"text-[15px] px-3 py-1.5\",\n};\n\nexport const LIST_HEIGHT: Record<TabsSize, string> = {\n default: \"\",\n lg: \"group-data-horizontal/tabs:h-10\",\n};\n\nexport const TabsSizeContext = createContext<TabsSize>(\"default\");\n","import React, { forwardRef, useContext } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { renderIcon, type IconProp } from \"src/shared/renderIcon\";\nimport {\n Tabs as PrimitiveTabs,\n TabsList as PrimitiveTabsList,\n TabsTrigger as PrimitiveTabsTrigger,\n TabsContent as PrimitiveTabsContent,\n} from \"src/primitives/Tabs\";\n\nimport { SIZE_CLASSES, LIST_HEIGHT, TabsSizeContext } from \"./constants\";\n\ntype TabsSize = \"default\" | \"lg\";\n\nexport interface TabsProps extends React.ComponentProps<typeof PrimitiveTabs> {\n /** Size of tab triggers. Applied to all Tabs.Item children. */\n size?: TabsSize;\n}\n\ntype TabsListProps = React.ComponentProps<typeof PrimitiveTabsList>;\n\ninterface TabsItemProps extends React.ComponentProps<\n typeof PrimitiveTabsTrigger\n> {\n /** Icon component, element, or class-name string rendered before the label. */\n icon?: IconProp;\n}\n\ntype TabsContentProps = React.ComponentProps<typeof PrimitiveTabsContent>;\n\nconst TabsRoot = forwardRef<HTMLDivElement, TabsProps>(\n ({ size = \"default\", children, ...props }, ref) => (\n <TabsSizeContext.Provider value={size}>\n <PrimitiveTabs ref={ref} {...props}>\n {children}\n </PrimitiveTabs>\n </TabsSizeContext.Provider>\n )\n);\nTabsRoot.displayName = \"Tabs\";\n\nconst TabsListComponent = forwardRef<HTMLDivElement, TabsListProps>(\n ({ className, ...props }, ref) => {\n const size = useContext(TabsSizeContext);\n\n return (\n <PrimitiveTabsList\n ref={ref}\n className={cn(LIST_HEIGHT[size], className)}\n {...props}\n />\n );\n }\n);\nTabsListComponent.displayName = \"Tabs.List\";\n\nconst TabsItemComponent = forwardRef<HTMLButtonElement, TabsItemProps>(\n ({ icon, className, children, ...otherProps }, ref) => {\n const size = useContext(TabsSizeContext);\n\n return (\n <PrimitiveTabsTrigger\n ref={ref}\n className={cn(SIZE_CLASSES[size], icon && \"gap-1.5\", className)}\n {...otherProps}\n >\n {icon ? (\n <>\n {renderIcon(icon, size === \"lg\" ? \"size-5\" : \"size-4\")}\n {children}\n </>\n ) : (\n children\n )}\n </PrimitiveTabsTrigger>\n );\n }\n);\nTabsItemComponent.displayName = \"Tabs.Item\";\n\nconst TabsContentComponent = forwardRef<HTMLDivElement, TabsContentProps>(\n (props, ref) => <PrimitiveTabsContent ref={ref} {...props} />\n);\nTabsContentComponent.displayName = \"Tabs.Content\";\n\nconst Tabs = Object.assign(TabsRoot, {\n List: TabsListComponent,\n Item: TabsItemComponent,\n Content: TabsContentComponent,\n});\n\nexport { Tabs };\n"],"names":["PrimitiveTabs","PrimitiveTabsList","PrimitiveTabsTrigger","PrimitiveTabsContent"],"mappings":";;;;;;AAIO,MAAM,YAAA,GAAyC;AAAA,EACpD,OAAA,EAAS,EAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEO,MAAM,WAAA,GAAwC;AAAA,EACnD,OAAA,EAAS,EAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEO,MAAM,eAAA,GAAkB,cAAwB,SAAS,CAAA;;ACiBhE,MAAM,QAAA,GAAW,UAAA;AAAA,EACf,CAAC,EAAE,IAAA,GAAO,SAAA,EAAW,UAAU,GAAG,KAAA,IAAS,GAAA,qBACzC,GAAA,CAAC,gBAAgB,QAAA,EAAhB,EAAyB,OAAO,IAAA,EAC/B,QAAA,kBAAA,GAAA,CAACA,UAAc,GAAA,EAAW,GAAG,KAAA,EAC1B,QAAA,EACH,CAAA,EACF;AAEJ,CAAA;AACA,QAAA,CAAS,WAAA,GAAc,MAAA;AAEvB,MAAM,iBAAA,GAAoB,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAChC,IAAA,MAAM,IAAA,GAAO,WAAW,eAAe,CAAA;AAEvC,IAAA,uBACE,GAAA;AAAA,MAACC,QAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA,CAAG,WAAA,CAAY,IAAI,GAAG,SAAS,CAAA;AAAA,QACzC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF,CAAA;AACA,iBAAA,CAAkB,WAAA,GAAc,WAAA;AAEhC,MAAM,iBAAA,GAAoB,UAAA;AAAA,EACxB,CAAC,EAAE,IAAA,EAAM,SAAA,EAAW,UAAU,GAAG,UAAA,IAAc,GAAA,KAAQ;AACrD,IAAA,MAAM,IAAA,GAAO,WAAW,eAAe,CAAA;AAEvC,IAAA,uBACE,GAAA;AAAA,MAACC,WAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAW,EAAA,CAAG,YAAA,CAAa,IAAI,CAAA,EAAG,IAAA,IAAQ,WAAW,SAAS,CAAA;AAAA,QAC7D,GAAG,UAAA;AAAA,QAEH,iCACC,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,UAAA,UAAA,CAAW,IAAA,EAAM,IAAA,KAAS,IAAA,GAAO,QAAA,GAAW,QAAQ,CAAA;AAAA,UACpD;AAAA,SAAA,EACH,CAAA,GAEA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF,CAAA;AACA,iBAAA,CAAkB,WAAA,GAAc,WAAA;AAEhC,MAAM,oBAAA,GAAuB,UAAA;AAAA,EAC3B,CAAC,KAAA,EAAO,GAAA,yBAASC,WAAA,EAAA,EAAqB,GAAA,EAAW,GAAG,KAAA,EAAO;AAC7D,CAAA;AACA,oBAAA,CAAqB,WAAA,GAAc,cAAA;AAEnC,MAAM,IAAA,GAAO,MAAA,CAAO,MAAA,CAAO,QAAA,EAAU;AAAA,EACnC,IAAA,EAAM,iBAAA;AAAA,EACN,IAAA,EAAM,iBAAA;AAAA,EACN,OAAA,EAAS;AACX,CAAC;;;;"}
@@ -3178,6 +3178,7 @@ const SORT_DIRECTIONS = {
3178
3178
  };
3179
3179
  const STORAGE_KEY_PREFIX = "NEETOUI";
3180
3180
  const STORAGE_KEY_SUFFIX = "FIXED_COLUMNS";
3181
+ const COLUMN_SIZING_STORAGE_KEY_SUFFIX = "COLUMN_SIZING";
3181
3182
 
3182
3183
  const getSearchParams = () => new URLSearchParams(window.location.search);
3183
3184
  const readSortFromURL = () => {
@@ -3231,9 +3232,9 @@ const hashPathname = () => {
3231
3232
  }
3232
3233
  return Math.abs(hash).toString(16).toUpperCase();
3233
3234
  };
3234
- const getStorageKey = (prefix) => {
3235
+ const getStorageKey = (prefix, suffix = STORAGE_KEY_SUFFIX) => {
3235
3236
  const resolvedPrefix = prefix || hashPathname();
3236
- return `${STORAGE_KEY_PREFIX}-${resolvedPrefix}-${STORAGE_KEY_SUFFIX}`;
3237
+ return `${STORAGE_KEY_PREFIX}-${resolvedPrefix}-${suffix}`;
3237
3238
  };
3238
3239
  const readFromLocalStorage = (key) => {
3239
3240
  try {
@@ -3249,6 +3250,33 @@ const writeToLocalStorage = (key, value) => {
3249
3250
  } catch {
3250
3251
  }
3251
3252
  };
3253
+ const readSizingFromLocalStorage = (key) => {
3254
+ try {
3255
+ const stored = localStorage.getItem(key);
3256
+ if (!stored) return {};
3257
+ const parsed = JSON.parse(stored);
3258
+ if (!parsed || typeof parsed !== "object") return {};
3259
+ const result = {};
3260
+ for (const [id, size] of Object.entries(parsed)) {
3261
+ if (typeof size === "number" && Number.isFinite(size)) {
3262
+ result[id] = size;
3263
+ }
3264
+ }
3265
+ return result;
3266
+ } catch {
3267
+ return {};
3268
+ }
3269
+ };
3270
+ const writeSizingToLocalStorage = (key, value) => {
3271
+ try {
3272
+ if (Object.keys(value).length === 0) {
3273
+ localStorage.removeItem(key);
3274
+ } else {
3275
+ localStorage.setItem(key, JSON.stringify(value));
3276
+ }
3277
+ } catch {
3278
+ }
3279
+ };
3252
3280
  const getResizeColumnStyle = ({
3253
3281
  size,
3254
3282
  isSelectionCol,
@@ -3634,14 +3662,25 @@ const useColumnResize = ({
3634
3662
  hasSelectionColumn,
3635
3663
  scrollContainerRef,
3636
3664
  columnSizing,
3637
- setColumnSizing
3665
+ setColumnSizing,
3666
+ initialUserResizedIds,
3667
+ onUserResize
3638
3668
  }) => {
3639
3669
  const [containerWidth, setContainerWidth] = React.useState(0);
3640
- const userResizedColumnsRef = React.useRef(/* @__PURE__ */ new Set());
3670
+ const userResizedColumnsRef = React.useRef(
3671
+ new Set(initialUserResizedIds ?? [])
3672
+ );
3641
3673
  const columns = table.options.columns;
3642
- const clearUserResized = React.useCallback((columnId) => {
3643
- userResizedColumnsRef.current.delete(columnId);
3644
- }, []);
3674
+ const clearUserResized = React.useCallback(
3675
+ (columnId) => {
3676
+ userResizedColumnsRef.current.delete(columnId);
3677
+ onUserResize?.(
3678
+ table.getState().columnSizing,
3679
+ userResizedColumnsRef.current
3680
+ );
3681
+ },
3682
+ [onUserResize, table]
3683
+ );
3645
3684
  const trackUserResize = React.useCallback(
3646
3685
  (updaterOrValue) => {
3647
3686
  setColumnSizing((prev) => {
@@ -3651,10 +3690,11 @@ const useColumnResize = ({
3651
3690
  userResizedColumnsRef.current.add(id);
3652
3691
  }
3653
3692
  }
3693
+ onUserResize?.(next, userResizedColumnsRef.current);
3654
3694
  return next;
3655
3695
  });
3656
3696
  },
3657
- [setColumnSizing]
3697
+ [setColumnSizing, onUserResize]
3658
3698
  );
3659
3699
  React.useEffect(() => {
3660
3700
  const container = scrollContainerRef.current;
@@ -3727,6 +3767,56 @@ const useColumnResize = ({
3727
3767
  return { trackUserResize, lastDataColumnId, clearUserResized };
3728
3768
  };
3729
3769
 
3770
+ const resolveUpdater = (updaterOrValue, prev) => typeof updaterOrValue === "function" ? updaterOrValue(prev) : updaterOrValue;
3771
+ const useColumnSizingPersistence = ({
3772
+ enabled = true,
3773
+ persistToLocalStorage = false,
3774
+ columnSizing: controlledSizing,
3775
+ onColumnSizingChange: controlledOnChange,
3776
+ localStorageKeyPrefix
3777
+ }) => {
3778
+ const isControlled = controlledSizing !== void 0;
3779
+ const storageKey = React.useMemo(
3780
+ () => getStorageKey(localStorageKeyPrefix, COLUMN_SIZING_STORAGE_KEY_SUFFIX),
3781
+ [localStorageKeyPrefix]
3782
+ );
3783
+ const initialSizingRef = React.useRef(null);
3784
+ if (initialSizingRef.current === null) {
3785
+ initialSizingRef.current = enabled && persistToLocalStorage && !isControlled ? readSizingFromLocalStorage(storageKey) : {};
3786
+ }
3787
+ const [internalSizing, setInternalSizing] = React.useState(
3788
+ initialSizingRef.current
3789
+ );
3790
+ const sizing = isControlled ? controlledSizing : internalSizing;
3791
+ const setColumnSizing = React.useCallback(
3792
+ (updaterOrValue) => {
3793
+ if (!isControlled) {
3794
+ setInternalSizing((prev) => resolveUpdater(updaterOrValue, prev));
3795
+ }
3796
+ controlledOnChange?.(updaterOrValue);
3797
+ },
3798
+ [isControlled, controlledOnChange]
3799
+ );
3800
+ const persistUserResizedSizing = React.useCallback(
3801
+ (sizingState, userResizedIds) => {
3802
+ if (!enabled || !persistToLocalStorage || isControlled) return;
3803
+ const filtered = {};
3804
+ userResizedIds.forEach((id) => {
3805
+ const size = sizingState[id];
3806
+ if (typeof size === "number") filtered[id] = size;
3807
+ });
3808
+ writeSizingToLocalStorage(storageKey, filtered);
3809
+ },
3810
+ [enabled, persistToLocalStorage, isControlled, storageKey]
3811
+ );
3812
+ return {
3813
+ columnSizing: enabled ? sizing : {},
3814
+ setColumnSizing,
3815
+ initialUserResizedIds: Object.keys(initialSizingRef.current),
3816
+ persistUserResizedSizing
3817
+ };
3818
+ };
3819
+
3730
3820
  const LoadingOverlay = () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 z-10 flex items-center justify-center bg-background/50", children: /* @__PURE__ */ jsxRuntime.jsx(primitives_Spinner.Spinner, { className: "size-6" }) });
3731
3821
 
3732
3822
  const EmptyState = ({ colSpan, message }) => {
@@ -4053,6 +4143,9 @@ const DataTable = ({
4053
4143
  onRowSelect,
4054
4144
  bulkSelectAllRowsProps,
4055
4145
  enableColumnResize = true,
4146
+ persistColumnSizing = false,
4147
+ columnSizing: columnSizingProp,
4148
+ onColumnSizingChange: onColumnSizingChangeProp,
4056
4149
  enableColumnFreeze = true,
4057
4150
  columnPinning: columnPinningProp,
4058
4151
  onColumnPinningChange: onColumnPinningChangeProp,
@@ -4162,7 +4255,18 @@ const DataTable = ({
4162
4255
  return { ...columnPinning, left: ["_selection", ...left] };
4163
4256
  }, [columnPinning, selectionColumn, enableColumnFreeze]);
4164
4257
  const scrollContainerRef = React.useRef(null);
4165
- const [columnSizing, setColumnSizing] = React.useState({});
4258
+ const {
4259
+ columnSizing,
4260
+ setColumnSizing,
4261
+ initialUserResizedIds,
4262
+ persistUserResizedSizing
4263
+ } = useColumnSizingPersistence({
4264
+ enabled: enableColumnResize,
4265
+ persistToLocalStorage: persistColumnSizing,
4266
+ columnSizing: columnSizingProp,
4267
+ onColumnSizingChange: onColumnSizingChangeProp,
4268
+ localStorageKeyPrefix
4269
+ });
4166
4270
  const table = useReactTable({
4167
4271
  data,
4168
4272
  columns: allColumns,
@@ -4199,7 +4303,9 @@ const DataTable = ({
4199
4303
  hasSelectionColumn: !!selectionColumn,
4200
4304
  scrollContainerRef,
4201
4305
  columnSizing,
4202
- setColumnSizing
4306
+ setColumnSizing,
4307
+ initialUserResizedIds,
4308
+ onUserResize: persistUserResizedSizing
4203
4309
  });
4204
4310
  table.setOptions((prev) => ({
4205
4311
  ...prev,
@@ -4450,4 +4556,4 @@ exports.useColumnVisibility = useColumnVisibility;
4450
4556
  exports.useTablePagination = useTablePagination;
4451
4557
  exports.useTableSelection = useTableSelection;
4452
4558
  exports.useTableSort = useTableSort;
4453
- //# sourceMappingURL=DataTable-CXjAvPHV.js.map
4559
+ //# sourceMappingURL=DataTable-D4JGU1T4.js.map