x-ui-design 0.7.88 → 0.7.89

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.
@@ -20,5 +20,6 @@ declare const Dropdown: React.ForwardRefExoticComponent<import("../..").DefaultP
20
20
  autoAdjustOverflow?: boolean;
21
21
  popupRender?: (node: React.ReactNode) => React.ReactNode;
22
22
  overlay?: React.ReactElement | (() => React.ReactElement);
23
+ onVisibleChange?: ((open: boolean) => void) | undefined;
23
24
  } & React.RefAttributes<HTMLDivElement>>;
24
25
  export default Dropdown;
@@ -45,6 +45,7 @@ declare const Dropdown: import("react").ComponentType<import("@/types").DefaultP
45
45
  autoAdjustOverflow?: boolean;
46
46
  popupRender?: (node: import("react").ReactNode) => import("react").ReactNode;
47
47
  overlay?: import("react").ReactElement | (() => import("react").ReactElement);
48
+ onVisibleChange?: ((open: boolean) => void) | undefined;
48
49
  } & import("react").RefAttributes<HTMLDivElement>>;
49
50
  export { Button, Checkbox, Empty, DatePicker, RangePicker, TimePicker, Form, FormItem, Input, Textarea, Radio, RadioButton, RadioGroup, Select, Option, Tag, Skeleton, SkeletonAvatar, SkeletonButton, SkeletonImage, SkeletonInput, Upload, Switch, Menu, MenuItem, MenuSubMenu, Dropdown };
50
51
  export { ClearIcon, ArrowIcon, LoadingIcon, CheckIcon, SearchIcon, CalendarIcon, SuccessIcon, ErrorIcon, DateDistanceIcon, TimeIcon, StampleIcon, TrashIcon, SpinerIcon, } from '@/components/Icons';
@@ -29,6 +29,7 @@ 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;
32
33
  };
33
34
  export type DropdownMenuInnerProps = DefaultProps & {
34
35
  items: DropdownItemType[];
package/dist/index.d.ts CHANGED
@@ -155,6 +155,7 @@ declare const Dropdown: react.ComponentType<__types.DefaultProps & {
155
155
  autoAdjustOverflow?: boolean;
156
156
  popupRender?: (node: react.ReactNode) => react.ReactNode;
157
157
  overlay?: react.ReactElement | (() => react.ReactElement);
158
+ onVisibleChange?: ((open: boolean) => void) | undefined;
158
159
  } & react.RefAttributes<HTMLDivElement>>;
159
160
 
160
161
  export { Button, Checkbox, DatePicker, Dropdown, Empty, Form, FormItem, Input, Menu, MenuItem, MenuSubMenu, Option, Radio, RadioButton, RadioGroup, RangePicker, Select, Skeleton, SkeletonAvatar, SkeletonButton, SkeletonImage, SkeletonInput, Switch, Tag, Textarea, TimePicker, Upload };
package/dist/index.esm.js CHANGED
@@ -4722,7 +4722,7 @@ var Menu$1 = /*#__PURE__*/Object.freeze({
4722
4722
  default: Menu
4723
4723
  });
4724
4724
 
4725
- var css_248z = ".xUi-dropdown-overlay{background:var(--xui-background-color);border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.08);min-width:160px;padding:4px 0;position:absolute}.xUi-dropdown-overlay>div,.xUi-dropdown-overlay>select,.xUi-dropdown-overlay>ul{box-shadow:unset}.xUi-dropdown-overlay .xUi-dropdown-menu{margin:0;padding:0 4px;position:relative;&:before{content:\"\";height:10px;position:absolute;top:-10px;width:100%;z-index:1}}.xUi-dropdown-overlay .xUi-dropdown-item{border-radius:8px;cursor:pointer;font-size:14px;list-style:none;padding:8px 12px;user-select:none}.xUi-dropdown-overlay .xUi-dropdown-item:focus,.xUi-dropdown-overlay .xUi-dropdown-item:hover{background:var(--xui-color-hover);outline:none}.xUi-dropdown-overlay .xUi-dropdown-item.disabled{cursor:not-allowed;opacity:.5}.xUi-dropdown-overlay .xUi-dropdown-item.danger{color:var(--xui-error-color-light);&:hover{background-color:var(--xui-error-color-light);color:var(--xui-background-color)}}.xUi-dropdown-arrow{background:var(--xui-background-color);border-left:1px solid #e5e7eb;border-top:1px solid #e5e7eb;height:10px;left:12px;position:absolute;top:-6px;transform:rotate(45deg);width:10px}.xUi-dropdown-arrow.bottom{border-bottom:1px solid #e5e7eb;border-left:unset;border-right:1px solid #e5e7eb;border-top:unset;bottom:-6px;top:unset}.xUi-dropdown-placement-bottom{margin-top:8px}.xUi-dropdown-placement-top{margin-bottom:8px}.xUi-dropdown-placement-left{margin-right:8px}.xUi-dropdown-placement-right{margin-left:8px}";
4725
+ var css_248z = ".xUi-dropdown-overlay{background:var(--xui-background-color);border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.08);min-width:160px;padding:4px 0;position:absolute}.xUi-dropdown-overlay>div,.xUi-dropdown-overlay>select,.xUi-dropdown-overlay>ul{box-shadow:unset}.xUi-dropdown-overlay .xUi-dropdown-menu{margin:0;padding:0 4px;position:relative;&:before{content:\"\";height:10px;position:absolute;top:-15px;width:100%;z-index:1}}.xUi-dropdown-overlay .xUi-dropdown-item{border-radius:8px;cursor:pointer;font-size:14px;list-style:none;padding:8px 12px;user-select:none}.xUi-dropdown-overlay .xUi-dropdown-item:focus,.xUi-dropdown-overlay .xUi-dropdown-item:hover{background:var(--xui-color-hover);outline:none}.xUi-dropdown-overlay .xUi-dropdown-item.disabled{cursor:not-allowed;opacity:.5}.xUi-dropdown-overlay .xUi-dropdown-item.danger{color:var(--xui-error-color-light);&:hover{background-color:var(--xui-error-color-light);color:var(--xui-background-color)}}.xUi-dropdown-arrow{background:var(--xui-background-color);border-left:1px solid #e5e7eb;border-top:1px solid #e5e7eb;height:10px;left:12px;position:absolute;top:-6px;transform:rotate(45deg);width:10px}.xUi-dropdown-arrow.bottom{border-bottom:1px solid #e5e7eb;border-left:unset;border-right:1px solid #e5e7eb;border-top:unset;bottom:-6px;top:unset}.xUi-dropdown-placement-bottom{margin-top:8px}.xUi-dropdown-placement-top{margin-bottom:8px}.xUi-dropdown-placement-left{margin-right:8px}.xUi-dropdown-placement-right{margin-left:8px}";
4726
4726
  styleInject(css_248z);
4727
4727
 
4728
4728
  const Dropdown = /*#__PURE__*/forwardRef(({
@@ -4743,7 +4743,8 @@ const Dropdown = /*#__PURE__*/forwardRef(({
4743
4743
  popupRender,
4744
4744
  className = '',
4745
4745
  overlay,
4746
- prefixCls = prefixClsDropdown
4746
+ prefixCls = prefixClsDropdown,
4747
+ onVisibleChange
4747
4748
  }, ref) => {
4748
4749
  const [open, setOpen] = useState(controlledOpen ?? defaultOpen);
4749
4750
  const [_hover, setHover] = useState(controlledOpen ?? defaultOpen);
@@ -4765,6 +4766,7 @@ const Dropdown = /*#__PURE__*/forwardRef(({
4765
4766
  useEffect(() => {
4766
4767
  if (isControlled) {
4767
4768
  setOpen(Boolean(controlledOpen));
4769
+ onVisibleChange?.(Boolean(controlledOpen));
4768
4770
  }
4769
4771
  }, [controlledOpen]);
4770
4772
  useEffect(() => {
@@ -4783,6 +4785,7 @@ const Dropdown = /*#__PURE__*/forwardRef(({
4783
4785
  setOpen(next);
4784
4786
  }
4785
4787
  onOpenChange?.(next);
4788
+ onVisibleChange?.(next);
4786
4789
  };
4787
4790
  useEffect(() => {
4788
4791
  const handleClick = e => {