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.
@@ -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, onOpenChange, onCalendarChange, style, className, separator, defaultValue, bordered, getPopupContainer, placement }: TRangePickerProps) => React.JSX.Element;
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, onOpenChange, trigger, placement, overlayClassName, overlayStyle, getPopupContainer, destroyOnHidden, disabled, arrow, autoFocus, popupRender, className, overlay, prefixCls, onVisibleChange }: DropdownProps) => React.JSX.Element;
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, onOpenChange, getPopupContainer }: PopoverProps) => React.JSX.Element;
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
- onOpenChange?: (open: boolean) => void;
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
- onOpenChange?: (open: boolean) => void;
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
- onOpenChange?: (open: boolean) => void;
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
- onOpenChange,
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
- onOpenChange?.(false);
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
- onOpenChange?.(false);
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
- onOpenChange?.(!isOpen);
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
- onOpenChange,
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
- onOpenChange?.(next);
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
- onOpenChange,
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 isOpen = open !== undefined ? open : innerOpen;
4919
- const [_hover, setHover] = useState(isOpen);
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
- onOpenChange ? onOpenChange(!isOpen) : setInnerOpen(!isOpen);
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
- onOpenChange ? onOpenChange(true) : setInnerOpen(true);
4940
+ onVisibleChange ? onVisibleChange(true) : setInnerOpen(true);
4938
4941
  }
4939
4942
  };
4940
4943
  const hide = () => {
4941
4944
  setHover(false);
4942
4945
  if (trigger === "hover") {
4943
- onOpenChange ? onOpenChange(false) : setInnerOpen(false);
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 !== undefined,
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: _hover ? 1000 : 1,
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' : ''}`