diff --git a/README.md b/README.md
index 71d846daf..c39fd29bb 100644
--- a/README.md
+++ b/README.md
@@ -48,7 +48,7 @@ render(, mountNode);
| popupAlign | Object:alignConfig of [dom-align](https://github.com/yiminghe/dom-align) | | value will be merged into placement's popupAlign config |
| popupStyle | React.CSSProperties | | customize popup style |
| transitionName | String | '' | css class for animation |
-| locale | Object | import from '@rc-component/picker/lib/locale/en_US' | @rc-component/picker locale |
+| locale | Object | import from '@rc-component/picker/locale/en_US' | @rc-component/picker locale |
| inputReadOnly | boolean | false | set input to read only |
| allowClear | boolean \| { clearIcon?: ReactNode } | false | whether show clear button or customize clear button |
| autoFocus | boolean | false | whether auto focus |
@@ -82,7 +82,7 @@ render(, mountNode);
| prefixCls | String | @rc-component/picker | prefixCls of this component |
| className | String | '' | additional css class of root dom |
| style | React.CSSProperties | | additional style of root dom node |
-| locale | Object | import from '@rc-component/picker/lib/locale/en_US' | @rc-component/picker locale |
+| locale | Object | import from '@rc-component/picker/locale/en_US' | @rc-component/picker locale |
| value | moment | | current value like input's value |
| defaultValue | moment | | defaultValue like input's defaultValue |
| defaultPickerValue | moment | | Set default display picker view date |
@@ -107,7 +107,7 @@ render(, mountNode);
| prefixCls | String | rc-picker | prefixCls of this component |
| className | String | '' | additional css class of root dom |
| style | React.CSSProperties | | additional style of root dom node |
-| locale | Object | import from '@rc-component/picker/lib/locale/en_US' | @rc-component/picker locale |
+| locale | Object | import from '@rc-component/picker/locale/en_US' | @rc-component/picker locale |
| value | moment | | current value like input's value |
| defaultValue | moment | | defaultValue like input's defaultValue |
| defaultPickerValue | moment | | Set default display picker view date |
diff --git a/package.json b/package.json
index 7dd7ef17e..ff5354ba8 100644
--- a/package.json
+++ b/package.json
@@ -112,11 +112,11 @@
"@rc-component/overflow": "^1.0.0",
"@rc-component/resize-observer": "^1.0.0",
"@rc-component/trigger": "^3.6.15",
- "@rc-component/util": "^1.3.0",
+ "@rc-component/util": "^1.11.1",
"clsx": "^2.1.1"
},
"devDependencies": {
- "@rc-component/father-plugin": "^1.0.0",
+ "@rc-component/father-plugin": "^2.2.0",
"@rc-component/np": "^1.0.3",
"@testing-library/react": "^16.0.0",
"@types/jest": "^29.4.0",
diff --git a/src/PickerInput/RangePicker.tsx b/src/PickerInput/RangePicker.tsx
index 4daadcae0..8cccd7869 100644
--- a/src/PickerInput/RangePicker.tsx
+++ b/src/PickerInput/RangePicker.tsx
@@ -1,9 +1,12 @@
-import { useEvent, useControlledState } from '@rc-component/util';
+import {
+ omit,
+ pickAttrs,
+ useControlledState,
+ useEvent,
+ useLayoutEffect,
+ warning,
+} from '@rc-component/util';
import { clsx } from 'clsx';
-import useLayoutEffect from '@rc-component/util/lib/hooks/useLayoutEffect';
-import omit from '@rc-component/util/lib/omit';
-import pickAttrs from '@rc-component/util/lib/pickAttrs';
-import warning from '@rc-component/util/lib/warning';
import * as React from 'react';
import type {
BaseInfo,
@@ -56,8 +59,10 @@ export type RangeValueType = [
/** Used for change event, it should always be not undefined */
export type NoUndefinedRangeValueType = [start: DateType | null, end: DateType | null];
-export interface BaseRangePickerProps
- extends Omit, 'showTime' | 'id'> {
+export interface BaseRangePickerProps extends Omit<
+ SharedPickerProps,
+ 'showTime' | 'id'
+> {
// Structure
id?: SelectorIdType;
@@ -132,7 +137,8 @@ export interface BaseRangePickerProps
}
export interface RangePickerProps
- extends BaseRangePickerProps,
+ extends
+ BaseRangePickerProps,
Omit, 'format' | 'defaultValue' | 'defaultOpenValue'> {}
function getActiveRange(activeIndex: number) {
diff --git a/src/PickerInput/Selector/Input.tsx b/src/PickerInput/Selector/Input.tsx
index 7e2fae5da..c0d06bf0d 100644
--- a/src/PickerInput/Selector/Input.tsx
+++ b/src/PickerInput/Selector/Input.tsx
@@ -1,7 +1,5 @@
import { clsx } from 'clsx';
-import { useEvent } from '@rc-component/util';
-import useLayoutEffect from '@rc-component/util/lib/hooks/useLayoutEffect';
-import raf from '@rc-component/util/lib/raf';
+import { raf, useEvent, useLayoutEffect } from '@rc-component/util';
import * as React from 'react';
import { leftPad } from '../../utils/miscUtil';
import PickerContext from '../context';
diff --git a/src/PickerInput/Selector/hooks/useClearIcon.tsx b/src/PickerInput/Selector/hooks/useClearIcon.tsx
index 83335c647..37c587fe9 100644
--- a/src/PickerInput/Selector/hooks/useClearIcon.tsx
+++ b/src/PickerInput/Selector/hooks/useClearIcon.tsx
@@ -1,4 +1,4 @@
-import warning from '@rc-component/util/lib/warning';
+import { warning } from '@rc-component/util';
import type { ReactNode } from 'react';
import * as React from 'react';
diff --git a/src/PickerInput/Selector/hooks/useInputProps.ts b/src/PickerInput/Selector/hooks/useInputProps.ts
index 251777982..605551afb 100644
--- a/src/PickerInput/Selector/hooks/useInputProps.ts
+++ b/src/PickerInput/Selector/hooks/useInputProps.ts
@@ -1,5 +1,4 @@
-import { warning } from '@rc-component/util';
-import pickAttrs from '@rc-component/util/lib/pickAttrs';
+import { pickAttrs, warning } from '@rc-component/util';
import * as React from 'react';
import type { SelectorProps } from '../../../interface';
import { formatValue } from '../../../utils/dateUtil';
diff --git a/src/PickerInput/SinglePicker.tsx b/src/PickerInput/SinglePicker.tsx
index bdb8b78cb..5b7f0a15e 100644
--- a/src/PickerInput/SinglePicker.tsx
+++ b/src/PickerInput/SinglePicker.tsx
@@ -1,8 +1,5 @@
-import { useEvent, useControlledState } from '@rc-component/util';
+import { omit, pickAttrs, useControlledState, useEvent, useLayoutEffect } from '@rc-component/util';
import { clsx } from 'clsx';
-import useLayoutEffect from '@rc-component/util/lib/hooks/useLayoutEffect';
-import omit from '@rc-component/util/lib/omit';
-import pickAttrs from '@rc-component/util/lib/pickAttrs';
import * as React from 'react';
import useToggleDates from '../hooks/useToggleDates';
import type {
diff --git a/src/PickerInput/hooks/useDelayState.ts b/src/PickerInput/hooks/useDelayState.ts
index 0904bcf0a..0faca60d1 100644
--- a/src/PickerInput/hooks/useDelayState.ts
+++ b/src/PickerInput/hooks/useDelayState.ts
@@ -1,5 +1,4 @@
-import { useEvent, useControlledState } from '@rc-component/util';
-import raf from '@rc-component/util/lib/raf';
+import { raf, useControlledState, useEvent } from '@rc-component/util';
import React from 'react';
/**
diff --git a/src/PickerInput/hooks/useLockEffect.ts b/src/PickerInput/hooks/useLockEffect.ts
index 135b73c4d..d4f9e8cc4 100644
--- a/src/PickerInput/hooks/useLockEffect.ts
+++ b/src/PickerInput/hooks/useLockEffect.ts
@@ -1,5 +1,4 @@
-import { useLayoutUpdateEffect } from '@rc-component/util/lib/hooks/useLayoutEffect';
-import raf from '@rc-component/util/lib/raf';
+import { raf, useLayoutUpdateEffect } from '@rc-component/util';
import * as React from 'react';
/**
diff --git a/src/PickerInput/hooks/usePresets.ts b/src/PickerInput/hooks/usePresets.ts
index 19debcd7c..22a7406f0 100644
--- a/src/PickerInput/hooks/usePresets.ts
+++ b/src/PickerInput/hooks/usePresets.ts
@@ -1,5 +1,5 @@
import * as React from 'react';
-import warning from '@rc-component/util/lib/warning';
+import { warning } from '@rc-component/util';
import type { ValueDate } from '../../interface';
export default function usePresets(
diff --git a/src/PickerInput/hooks/useRangePickerValue.ts b/src/PickerInput/hooks/useRangePickerValue.ts
index be21e528b..ccf3992b2 100644
--- a/src/PickerInput/hooks/useRangePickerValue.ts
+++ b/src/PickerInput/hooks/useRangePickerValue.ts
@@ -1,5 +1,4 @@
-import { useControlledState } from '@rc-component/util';
-import useLayoutEffect from '@rc-component/util/lib/hooks/useLayoutEffect';
+import { useControlledState, useLayoutEffect } from '@rc-component/util';
import * as React from 'react';
import type { GenerateConfig } from '../../generate';
import type { InternalMode, Locale, PanelMode } from '../../interface';
diff --git a/src/PickerInput/hooks/useRangeValue.ts b/src/PickerInput/hooks/useRangeValue.ts
index 4c8df734d..6cd0ac367 100644
--- a/src/PickerInput/hooks/useRangeValue.ts
+++ b/src/PickerInput/hooks/useRangeValue.ts
@@ -1,4 +1,4 @@
-import { useEvent, useControlledState } from '@rc-component/util';
+import { useControlledState, useEvent } from '@rc-component/util';
import * as React from 'react';
import type { GenerateConfig } from '../../generate';
import useSyncState from '../../hooks/useSyncState';
diff --git a/src/PickerPanel/TimePanel/TimePanelBody/TimeColumn.tsx b/src/PickerPanel/TimePanel/TimePanelBody/TimeColumn.tsx
index 4e6e53739..e8130a170 100644
--- a/src/PickerPanel/TimePanel/TimePanelBody/TimeColumn.tsx
+++ b/src/PickerPanel/TimePanel/TimePanelBody/TimeColumn.tsx
@@ -1,5 +1,5 @@
import { clsx } from 'clsx';
-import useLayoutEffect from '@rc-component/util/lib/hooks/useLayoutEffect';
+import { useLayoutEffect } from '@rc-component/util';
import * as React from 'react';
import { usePanelContext } from '../../context';
import useScrollTo from './useScrollTo';
diff --git a/src/PickerPanel/TimePanel/TimePanelBody/useScrollTo.ts b/src/PickerPanel/TimePanel/TimePanelBody/useScrollTo.ts
index 3c153c83d..47c172b04 100644
--- a/src/PickerPanel/TimePanel/TimePanelBody/useScrollTo.ts
+++ b/src/PickerPanel/TimePanel/TimePanelBody/useScrollTo.ts
@@ -1,6 +1,4 @@
-import { useEvent } from '@rc-component/util';
-import raf from '@rc-component/util/lib/raf';
-import isVisible from '@rc-component/util/lib/Dom/isVisible';
+import { isVisible, raf, useEvent } from '@rc-component/util';
import * as React from 'react';
const SPEED_PTG = 1 / 3;
diff --git a/src/PickerPanel/index.tsx b/src/PickerPanel/index.tsx
index 1e44948ed..c0eeacebd 100644
--- a/src/PickerPanel/index.tsx
+++ b/src/PickerPanel/index.tsx
@@ -1,5 +1,5 @@
import { clsx } from 'clsx';
-import { useEvent, useControlledState, warning } from '@rc-component/util';
+import { useControlledState, useEvent, warning } from '@rc-component/util';
import * as React from 'react';
import useLocale from '../hooks/useLocale';
import { fillShowTimeConfig, getTimeProps } from '../hooks/useTimeConfig';
@@ -46,7 +46,8 @@ export interface PickerPanelRef {
}
export interface BasePickerPanelProps
- extends Pick<
+ extends
+ Pick<
SharedPanelProps,
// MISC
| 'locale'
@@ -119,8 +120,9 @@ export interface BasePickerPanelProps
hideHeader?: boolean;
}
-export interface SinglePickerPanelProps
- extends BasePickerPanelProps {
+export interface SinglePickerPanelProps<
+ DateType extends object = any,
+> extends BasePickerPanelProps {
multiple?: false;
defaultValue?: DateType | null;
diff --git a/src/PickerTrigger/index.tsx b/src/PickerTrigger/index.tsx
index 1bb260d11..91da6ba7f 100644
--- a/src/PickerTrigger/index.tsx
+++ b/src/PickerTrigger/index.tsx
@@ -1,5 +1,4 @@
-import Trigger from '@rc-component/trigger';
-import type { AlignType, BuildInPlacements } from '@rc-component/trigger/lib/interface';
+import Trigger, { type AlignType, type BuildInPlacements } from '@rc-component/trigger';
import { clsx } from 'clsx';
import * as React from 'react';
import { getRealPlacement } from '../utils/uiUtil';
diff --git a/src/generate/moment.ts b/src/generate/moment.ts
index fe450a727..b318405cb 100644
--- a/src/generate/moment.ts
+++ b/src/generate/moment.ts
@@ -1,6 +1,6 @@
import type { Moment } from 'moment';
import moment from 'moment';
-import { noteOnce } from '@rc-component/util/lib/warning';
+import { noteOnce } from '@rc-component/util';
import type { GenerateConfig } from '.';
const generateConfig: GenerateConfig = {
diff --git a/src/utils/warnUtil.ts b/src/utils/warnUtil.ts
index 4cc06beab..d47276ff5 100644
--- a/src/utils/warnUtil.ts
+++ b/src/utils/warnUtil.ts
@@ -1,5 +1,5 @@
import type { DisabledTimes, PickerMode } from '../interface';
-import warning from '@rc-component/util/lib/warning';
+import { warning } from '@rc-component/util';
export interface WarningProps extends DisabledTimes {
picker?: PickerMode;
diff --git a/tests/disabledTime.spec.tsx b/tests/disabledTime.spec.tsx
index b7ff950db..a6d0ad97d 100644
--- a/tests/disabledTime.spec.tsx
+++ b/tests/disabledTime.spec.tsx
@@ -1,6 +1,6 @@
import { fireEvent, render } from '@testing-library/react';
import type { Dayjs } from 'dayjs';
-import { resetWarned } from '@rc-component/util/lib/warning';
+import { resetWarned } from '@rc-component/util';
import React from 'react';
import {
closePicker,
diff --git a/tests/keyboard.spec.tsx b/tests/keyboard.spec.tsx
index e8cb25c98..f3fb93352 100644
--- a/tests/keyboard.spec.tsx
+++ b/tests/keyboard.spec.tsx
@@ -1,5 +1,5 @@
import { act, fireEvent, render } from '@testing-library/react';
-import { resetWarned } from '@rc-component/util/lib/warning';
+import { resetWarned } from '@rc-component/util';
import React from 'react';
import { DateFnsSinglePicker, DayPicker, getMoment, isOpen, openPicker } from './util/commonUtil';
diff --git a/tests/loop.spec.tsx b/tests/loop.spec.tsx
index 585c268a1..45b905971 100644
--- a/tests/loop.spec.tsx
+++ b/tests/loop.spec.tsx
@@ -1,6 +1,6 @@
import { render } from '@testing-library/react';
import dayjs from 'dayjs';
-import { resetWarned } from '@rc-component/util/lib/warning';
+import { resetWarned } from '@rc-component/util';
import React from 'react';
import zhCN from '../src/locale/zh_CN';
import { DayRangePicker, getMoment } from './util/commonUtil';
diff --git a/tests/multiple.spec.tsx b/tests/multiple.spec.tsx
index 3a9de1f88..fee0cd103 100644
--- a/tests/multiple.spec.tsx
+++ b/tests/multiple.spec.tsx
@@ -1,6 +1,6 @@
/* eslint-disable @typescript-eslint/no-loop-func */
import { fireEvent, render } from '@testing-library/react';
-import { resetWarned } from '@rc-component/util/lib/warning';
+import { resetWarned } from '@rc-component/util';
import React from 'react';
import { clearValue, DayPicker, getDay, isOpen, openPicker, selectCell } from './util/commonUtil';
diff --git a/tests/new-range.spec.tsx b/tests/new-range.spec.tsx
index 4d80c6a4b..549d0080e 100644
--- a/tests/new-range.spec.tsx
+++ b/tests/new-range.spec.tsx
@@ -2,8 +2,7 @@
import { act, createEvent, fireEvent, render } from '@testing-library/react';
import dayjs, { type Dayjs } from 'dayjs';
import 'dayjs/locale/ar';
-import { spyElementPrototype } from '@rc-component/util/lib/test/domHook';
-import { resetWarned } from '@rc-component/util/lib/warning';
+import { resetWarned, spyElementPrototype } from '@rc-component/util';
import React from 'react';
import type { RangePickerProps } from '../src';
import zh_CN from '../src/locale/zh_CN';
diff --git a/tests/panel.spec.tsx b/tests/panel.spec.tsx
index 9762613c5..7bd3dadf9 100644
--- a/tests/panel.spec.tsx
+++ b/tests/panel.spec.tsx
@@ -1,6 +1,6 @@
import { fireEvent, render } from '@testing-library/react';
import dayjs, { type Dayjs } from 'dayjs';
-import { resetWarned } from '@rc-component/util/lib/warning';
+import { resetWarned } from '@rc-component/util';
import React from 'react';
import type { PanelMode } from '../src/interface';
import enUS from '../src/locale/en_US';
diff --git a/tests/picker.spec.tsx b/tests/picker.spec.tsx
index 76bca254c..6ce5b86e5 100644
--- a/tests/picker.spec.tsx
+++ b/tests/picker.spec.tsx
@@ -4,9 +4,7 @@ import type { Dayjs } from 'dayjs';
import dayjs from 'dayjs';
import moment from 'moment';
import 'moment/locale/zh-cn';
-import KeyCode from '@rc-component/util/lib/KeyCode';
-import { spyElementPrototypes } from '@rc-component/util/lib/test/domHook';
-import { resetWarned } from '@rc-component/util/lib/warning';
+import { KeyCode, resetWarned, spyElementPrototypes } from '@rc-component/util';
import React from 'react';
import Picker, { PickerPanel, type PickerRef } from '../src';
import type { PanelMode, PickerMode } from '../src/interface';
diff --git a/tests/range.spec.tsx b/tests/range.spec.tsx
index 4a500236b..18de5e82e 100644
--- a/tests/range.spec.tsx
+++ b/tests/range.spec.tsx
@@ -4,9 +4,7 @@ import { act, createEvent, fireEvent, render } from '@testing-library/react';
import { createRoot } from 'react-dom/client';
import type { Dayjs } from 'dayjs';
import dayjs from 'dayjs';
-import KeyCode from '@rc-component/util/lib/KeyCode';
-import { spyElementPrototypes } from '@rc-component/util/lib/test/domHook';
-import { resetWarned } from '@rc-component/util/lib/warning';
+import { KeyCode, resetWarned, spyElementPrototypes } from '@rc-component/util';
import React from 'react';
import type { PickerRef, RangePickerProps } from '../src';
import type { PickerMode } from '../src/interface';
diff --git a/tests/time.spec.tsx b/tests/time.spec.tsx
index afcd4841c..d8418a945 100644
--- a/tests/time.spec.tsx
+++ b/tests/time.spec.tsx
@@ -1,5 +1,5 @@
import { fireEvent, render } from '@testing-library/react';
-import { resetWarned } from '@rc-component/util/lib/warning';
+import { resetWarned } from '@rc-component/util';
import React from 'react';
import dayjs from 'dayjs';
import { DayPicker, getDay, openPicker, selectCell } from './util/commonUtil';