x-ui-design 0.8.11 → 0.8.13
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/esm/types/components/DatePicker/RangePicker/RangePicker.d.ts +1 -1
- package/dist/esm/types/components/Dropdown/Dropdown.d.ts +1 -1
- package/dist/esm/types/components/Popover/Popover.d.ts +1 -1
- package/dist/esm/types/types/datepicker.d.ts +1 -1
- package/dist/esm/types/types/dropdown.d.ts +1 -2
- package/dist/esm/types/types/popover.d.ts +4 -1
- package/dist/index.esm.js +24 -19
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +24 -19
- package/dist/index.js.map +1 -1
- package/lib/components/DatePicker/RangePicker/RangePicker.tsx +4 -4
- package/lib/components/Dropdown/Dropdown.tsx +2 -3
- package/lib/components/Popover/Popover.tsx +25 -18
- package/lib/components/Popover/style.css +4 -0
- package/lib/types/datepicker.ts +1 -1
- package/lib/types/dropdown.ts +1 -2
- package/lib/types/popover.ts +4 -1
- package/package.json +1 -1
- package/src/app/page.tsx +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { TRangePickerProps } from '../../../types/datepicker';
|
|
3
3
|
import './style.css';
|
|
4
|
-
declare const RangePicker: ({ prefixCls, value, onChange, placeholder, disabled, error, format, prefix, allowClear, inputReadOnly, size, picker, locale, disabledDate,
|
|
4
|
+
declare const RangePicker: ({ prefixCls, value, onChange, placeholder, disabled, error, format, prefix, allowClear, inputReadOnly, size, picker, locale, disabledDate, onVisibleChange, onCalendarChange, style, className, separator, defaultValue, bordered, getPopupContainer, placement }: TRangePickerProps) => React.JSX.Element;
|
|
5
5
|
export default RangePicker;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { DropdownProps } from '../../types/dropdown';
|
|
3
3
|
import './style.css';
|
|
4
|
-
declare const Dropdown: ({ children, menu, open: controlledOpen, defaultOpen,
|
|
4
|
+
declare const Dropdown: ({ children, menu, open: controlledOpen, defaultOpen, onVisibleChange, trigger, placement, overlayClassName, overlayStyle, getPopupContainer, destroyOnHidden, disabled, arrow, autoFocus, popupRender, className, overlay, prefixCls, }: DropdownProps) => React.JSX.Element;
|
|
5
5
|
export default Dropdown;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { PopoverProps } from "../../types/popover";
|
|
3
3
|
import './style.css';
|
|
4
|
-
declare const Popover: ({ prefixCls, content, children, trigger, placement, open, overlayStyle,
|
|
4
|
+
declare const Popover: ({ prefixCls, content, children, trigger, placement, open, visible, title, overlayClassName, overlayStyle, onVisibleChange, getPopupContainer }: PopoverProps) => React.JSX.Element;
|
|
5
5
|
export default Popover;
|
|
@@ -33,7 +33,7 @@ export type TDatePickerProps = DefaultProps & {
|
|
|
33
33
|
};
|
|
34
34
|
onChange?: (date: RuleType | RuleType[], dateString: string | string[]) => void;
|
|
35
35
|
onCalendarChange?: (date: RuleType | RuleType[], dateString: string | string[], info: BaseInfo) => void;
|
|
36
|
-
|
|
36
|
+
onVisibleChange?: ((open: boolean) => void) | undefined;
|
|
37
37
|
getPopupContainer?: (node: HTMLElement) => HTMLElement;
|
|
38
38
|
showToday?: boolean;
|
|
39
39
|
inputReadOnly?: boolean;
|
|
@@ -16,7 +16,7 @@ export type DropdownProps = DefaultProps & {
|
|
|
16
16
|
};
|
|
17
17
|
open?: boolean;
|
|
18
18
|
defaultOpen?: boolean;
|
|
19
|
-
|
|
19
|
+
onVisibleChange?: ((open: boolean) => void) | undefined;
|
|
20
20
|
trigger?: TriggerType;
|
|
21
21
|
placement?: Placement;
|
|
22
22
|
overlayClassName?: string;
|
|
@@ -29,7 +29,6 @@ export type DropdownProps = DefaultProps & {
|
|
|
29
29
|
autoAdjustOverflow?: boolean;
|
|
30
30
|
popupRender?: (node: ReactNode) => ReactNode;
|
|
31
31
|
overlay?: ReactElement | OverlayFunc;
|
|
32
|
-
onVisibleChange?: ((open: boolean) => void) | undefined;
|
|
33
32
|
};
|
|
34
33
|
export type DropdownMenuInnerProps = DefaultProps & {
|
|
35
34
|
items: DropdownItemType[];
|
|
@@ -7,6 +7,9 @@ export interface PopoverProps {
|
|
|
7
7
|
placement?: "top" | "bottom" | "left" | "right" | "topRight" | "bottomRight" | "topLeft" | "bottomLeft";
|
|
8
8
|
open?: boolean;
|
|
9
9
|
overlayStyle?: CSSProperties;
|
|
10
|
-
|
|
10
|
+
overlayClassName?: string;
|
|
11
|
+
title?: string | ReactNode;
|
|
12
|
+
visible?: boolean;
|
|
13
|
+
onVisibleChange?: ((open: boolean) => void) | undefined;
|
|
11
14
|
getPopupContainer?: ((node: HTMLElement) => HTMLElement) | undefined;
|
|
12
15
|
}
|
package/dist/index.esm.js
CHANGED
|
@@ -2440,7 +2440,7 @@ const RangePicker = ({
|
|
|
2440
2440
|
picker = 'date',
|
|
2441
2441
|
locale,
|
|
2442
2442
|
disabledDate,
|
|
2443
|
-
|
|
2443
|
+
onVisibleChange,
|
|
2444
2444
|
onCalendarChange,
|
|
2445
2445
|
style = {},
|
|
2446
2446
|
className = '',
|
|
@@ -2480,7 +2480,7 @@ const RangePicker = ({
|
|
|
2480
2480
|
const handleClickOutside = event => {
|
|
2481
2481
|
if (popupRef.current && !popupRef.current.contains(event.target) && triggerRef.current && !triggerRef.current.contains(event.target)) {
|
|
2482
2482
|
setIsOpen(false);
|
|
2483
|
-
|
|
2483
|
+
onVisibleChange?.(false);
|
|
2484
2484
|
}
|
|
2485
2485
|
};
|
|
2486
2486
|
document.addEventListener('mousedown', handleClickOutside);
|
|
@@ -2505,7 +2505,7 @@ const RangePicker = ({
|
|
|
2505
2505
|
onChange?.([begin.toUTCString(), end.toUTCString()], [formatDate(begin), formatDate(end)]);
|
|
2506
2506
|
onCalendarChange?.([begin.toUTCString(), end.toUTCString()], [formatDate(begin), formatDate(end)], {});
|
|
2507
2507
|
setIsOpen(false);
|
|
2508
|
-
|
|
2508
|
+
onVisibleChange?.(false);
|
|
2509
2509
|
}
|
|
2510
2510
|
};
|
|
2511
2511
|
const isMonthDisabled = month => {
|
|
@@ -2701,7 +2701,7 @@ const RangePicker = ({
|
|
|
2701
2701
|
e.stopPropagation();
|
|
2702
2702
|
if (!isOpen) {
|
|
2703
2703
|
setIsOpen(!isOpen);
|
|
2704
|
-
|
|
2704
|
+
onVisibleChange?.(!isOpen);
|
|
2705
2705
|
}
|
|
2706
2706
|
}
|
|
2707
2707
|
}, prefix, /*#__PURE__*/React.createElement("input", {
|
|
@@ -4729,7 +4729,7 @@ const Dropdown = ({
|
|
|
4729
4729
|
menu,
|
|
4730
4730
|
open: controlledOpen,
|
|
4731
4731
|
defaultOpen = false,
|
|
4732
|
-
|
|
4732
|
+
onVisibleChange,
|
|
4733
4733
|
trigger = 'hover',
|
|
4734
4734
|
placement = 'bottomLeft',
|
|
4735
4735
|
overlayClassName = '',
|
|
@@ -4742,8 +4742,7 @@ const Dropdown = ({
|
|
|
4742
4742
|
popupRender,
|
|
4743
4743
|
className = '',
|
|
4744
4744
|
overlay,
|
|
4745
|
-
prefixCls = prefixClsDropdown
|
|
4746
|
-
onVisibleChange
|
|
4745
|
+
prefixCls = prefixClsDropdown
|
|
4747
4746
|
}) => {
|
|
4748
4747
|
const [open, setOpen] = useState(controlledOpen ?? defaultOpen);
|
|
4749
4748
|
const [_hover, setHover] = useState(controlledOpen ?? defaultOpen);
|
|
@@ -4783,7 +4782,7 @@ const Dropdown = ({
|
|
|
4783
4782
|
if (!isControlled) {
|
|
4784
4783
|
setOpen(next);
|
|
4785
4784
|
}
|
|
4786
|
-
|
|
4785
|
+
onVisibleChange?.(next);
|
|
4787
4786
|
onVisibleChange?.(next);
|
|
4788
4787
|
};
|
|
4789
4788
|
useEffect(() => {
|
|
@@ -4898,7 +4897,7 @@ var Dropdown$1 = /*#__PURE__*/Object.freeze({
|
|
|
4898
4897
|
default: Dropdown
|
|
4899
4898
|
});
|
|
4900
4899
|
|
|
4901
|
-
var css_248z = ".xUi-popover{&:before{content:\"\";height:8px;left:0;position:absolute;top:-8px;width:100%;z-index:10000}}.xUi-popover-wrapper{display:inline-block;position:relative}.xUi-popover-wrapper-content{cursor:pointer}.xUi-popover{background:var(--xui-background-color);border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.15);padding:8px 12px;width:max-content;z-index:1000}.xUi-popover-inner{color:var(--xui-text-color);font-size:14px}.xUi-popover-arrow{background:var(--xui-background-color);border-left:.5px solid var(--xui-border-color);border-top:.5px solid var(--xui-border-color);height:10px;left:12px;position:absolute;top:-6px;transform:rotate(45deg);width:10px}.xUi-popover-arrow.bottom{border-bottom:.5px solid var(--xui-border-color);border-left:unset;border-right:.5px solid var(--xui-border-color);border-top:unset;bottom:-6px;top:unset}";
|
|
4900
|
+
var css_248z = ".xUi-popover{&:before{content:\"\";height:8px;left:0;position:absolute;top:-8px;width:100%;z-index:10000}}.xUi-popover-wrapper{display:inline-block;position:relative}.xUi-popover-wrapper-content{cursor:pointer}.xUi-popover{background:var(--xui-background-color);border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.15);padding:8px 12px;width:max-content;z-index:1000}.xUi-popover-title{padding:4px}.xUi-popover-inner{color:var(--xui-text-color);font-size:14px}.xUi-popover-arrow{background:var(--xui-background-color);border-left:.5px solid var(--xui-border-color);border-top:.5px solid var(--xui-border-color);height:10px;left:12px;position:absolute;top:-6px;transform:rotate(45deg);width:10px}.xUi-popover-arrow.bottom{border-bottom:.5px solid var(--xui-border-color);border-left:unset;border-right:.5px solid var(--xui-border-color);border-top:unset;bottom:-6px;top:unset}";
|
|
4902
4901
|
styleInject(css_248z);
|
|
4903
4902
|
|
|
4904
4903
|
const Popover = ({
|
|
@@ -4908,15 +4907,18 @@ const Popover = ({
|
|
|
4908
4907
|
trigger = "click",
|
|
4909
4908
|
placement = "bottom",
|
|
4910
4909
|
open,
|
|
4910
|
+
visible,
|
|
4911
|
+
title,
|
|
4912
|
+
overlayClassName = '',
|
|
4911
4913
|
overlayStyle = {},
|
|
4912
|
-
|
|
4914
|
+
onVisibleChange,
|
|
4913
4915
|
getPopupContainer
|
|
4914
4916
|
}) => {
|
|
4915
4917
|
const triggerRef = useRef(null);
|
|
4916
4918
|
const popupRef = useRef(null);
|
|
4917
4919
|
const [innerOpen, setInnerOpen] = useState(false);
|
|
4918
|
-
const
|
|
4919
|
-
const
|
|
4920
|
+
const [hover, setHover] = useState(false);
|
|
4921
|
+
const isOpen = visible !== undefined ? visible : open !== undefined ? open : innerOpen;
|
|
4920
4922
|
const {
|
|
4921
4923
|
dropdownPosition,
|
|
4922
4924
|
shouldShowAbove
|
|
@@ -4929,18 +4931,19 @@ const Popover = ({
|
|
|
4929
4931
|
getPopupContainer: getPopupContainer?.(triggerRef.current)
|
|
4930
4932
|
});
|
|
4931
4933
|
const toggle = () => {
|
|
4932
|
-
|
|
4934
|
+
const newState = !isOpen;
|
|
4935
|
+
onVisibleChange ? onVisibleChange(newState) : setInnerOpen(newState);
|
|
4933
4936
|
};
|
|
4934
4937
|
const show = () => {
|
|
4935
4938
|
setHover(true);
|
|
4936
4939
|
if (trigger === "hover") {
|
|
4937
|
-
|
|
4940
|
+
onVisibleChange ? onVisibleChange(true) : setInnerOpen(true);
|
|
4938
4941
|
}
|
|
4939
4942
|
};
|
|
4940
4943
|
const hide = () => {
|
|
4941
4944
|
setHover(false);
|
|
4942
4945
|
if (trigger === "hover") {
|
|
4943
|
-
|
|
4946
|
+
onVisibleChange ? onVisibleChange(false) : setInnerOpen(false);
|
|
4944
4947
|
}
|
|
4945
4948
|
};
|
|
4946
4949
|
const childProps = trigger === "click" ? {
|
|
@@ -4956,18 +4959,20 @@ const Popover = ({
|
|
|
4956
4959
|
}, /*#__PURE__*/React.createElement("div", _extends({
|
|
4957
4960
|
className: `${prefixCls}-wrapper-content`
|
|
4958
4961
|
}, childProps), children), isOpen && /*#__PURE__*/React.createElement(ConditionalWrapper, {
|
|
4959
|
-
condition: getPopupContainer
|
|
4962
|
+
condition: !!getPopupContainer,
|
|
4960
4963
|
wrapper: element => getPopupContainer ? /*#__PURE__*/createPortal(element, getPopupContainer(popupRef.current)) : /*#__PURE__*/React.createElement(React.Fragment, null, element)
|
|
4961
4964
|
}, /*#__PURE__*/React.createElement("div", {
|
|
4962
4965
|
ref: popupRef,
|
|
4963
|
-
className: clsx(prefixCls, `${prefixCls}-${placement}
|
|
4966
|
+
className: clsx(prefixCls, `${prefixCls}-${placement}`, overlayClassName),
|
|
4964
4967
|
style: {
|
|
4965
|
-
zIndex:
|
|
4968
|
+
zIndex: hover ? 1000 : 1,
|
|
4966
4969
|
...overlayStyle,
|
|
4967
4970
|
position: "absolute",
|
|
4968
4971
|
...dropdownPosition
|
|
4969
4972
|
}
|
|
4970
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
4973
|
+
}, title && /*#__PURE__*/React.createElement("div", {
|
|
4974
|
+
className: `${prefixCls}-title`
|
|
4975
|
+
}, title), /*#__PURE__*/React.createElement("div", {
|
|
4971
4976
|
className: `${prefixCls}-inner`
|
|
4972
4977
|
}, content), /*#__PURE__*/React.createElement("div", {
|
|
4973
4978
|
className: `${prefixCls}-arrow ${shouldShowAbove ? 'bottom' : ''}`
|