x-ui-design 0.7.87 → 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.
- package/dist/esm/types/components/Dropdown/Dropdown.d.ts +2 -0
- package/dist/esm/types/index.d.ts +2 -0
- package/dist/esm/types/types/dropdown.d.ts +7 -3
- package/dist/index.d.ts +2 -0
- package/dist/index.esm.js +7 -3
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/lib/components/Dropdown/Dropdown.tsx +7 -3
- package/lib/components/Dropdown/style.css +7 -1
- package/lib/types/dropdown.ts +7 -3
- package/package.json +1 -1
- package/src/app/page.tsx +71 -1930
|
@@ -19,5 +19,7 @@ declare const Dropdown: React.ForwardRefExoticComponent<import("../..").DefaultP
|
|
|
19
19
|
autoFocus?: boolean;
|
|
20
20
|
autoAdjustOverflow?: boolean;
|
|
21
21
|
popupRender?: (node: React.ReactNode) => React.ReactNode;
|
|
22
|
+
overlay?: React.ReactElement | (() => React.ReactElement);
|
|
23
|
+
onVisibleChange?: ((open: boolean) => void) | undefined;
|
|
22
24
|
} & React.RefAttributes<HTMLDivElement>>;
|
|
23
25
|
export default Dropdown;
|
|
@@ -44,6 +44,8 @@ declare const Dropdown: import("react").ComponentType<import("@/types").DefaultP
|
|
|
44
44
|
autoFocus?: boolean;
|
|
45
45
|
autoAdjustOverflow?: boolean;
|
|
46
46
|
popupRender?: (node: import("react").ReactNode) => import("react").ReactNode;
|
|
47
|
+
overlay?: import("react").ReactElement | (() => import("react").ReactElement);
|
|
48
|
+
onVisibleChange?: ((open: boolean) => void) | undefined;
|
|
47
49
|
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
48
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 };
|
|
49
51
|
export { ClearIcon, ArrowIcon, LoadingIcon, CheckIcon, SearchIcon, CalendarIcon, SuccessIcon, ErrorIcon, DateDistanceIcon, TimeIcon, StampleIcon, TrashIcon, SpinerIcon, } from '@/components/Icons';
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { CSSProperties, ReactNode } from "react";
|
|
1
|
+
import { CSSProperties, MouseEvent, ReactElement, ReactNode, RefObject } from "react";
|
|
2
2
|
import { DefaultProps, Placement } from ".";
|
|
3
3
|
export type TriggerType = 'click' | 'hover' | 'contextMenu' | Array<TriggerType>;
|
|
4
4
|
export interface DropdownItemType {
|
|
5
5
|
key: string;
|
|
6
6
|
label?: ReactNode;
|
|
7
7
|
disabled?: boolean;
|
|
8
|
-
onClick?: (e:
|
|
8
|
+
onClick?: (e: MouseEvent) => void;
|
|
9
9
|
danger?: boolean;
|
|
10
10
|
}
|
|
11
|
+
declare type OverlayFunc = () => ReactElement;
|
|
11
12
|
export type DropdownProps = DefaultProps & {
|
|
12
13
|
children: ReactNode;
|
|
13
14
|
menu?: {
|
|
@@ -27,9 +28,12 @@ export type DropdownProps = DefaultProps & {
|
|
|
27
28
|
autoFocus?: boolean;
|
|
28
29
|
autoAdjustOverflow?: boolean;
|
|
29
30
|
popupRender?: (node: ReactNode) => ReactNode;
|
|
31
|
+
overlay?: ReactElement | OverlayFunc;
|
|
32
|
+
onVisibleChange?: ((open: boolean) => void) | undefined;
|
|
30
33
|
};
|
|
31
34
|
export type DropdownMenuInnerProps = DefaultProps & {
|
|
32
35
|
items: DropdownItemType[];
|
|
33
|
-
menuRef:
|
|
36
|
+
menuRef: RefObject<HTMLUListElement | null>;
|
|
34
37
|
onClose: () => void;
|
|
35
38
|
};
|
|
39
|
+
export {};
|
package/dist/index.d.ts
CHANGED
|
@@ -154,6 +154,8 @@ declare const Dropdown: react.ComponentType<__types.DefaultProps & {
|
|
|
154
154
|
autoFocus?: boolean;
|
|
155
155
|
autoAdjustOverflow?: boolean;
|
|
156
156
|
popupRender?: (node: react.ReactNode) => react.ReactNode;
|
|
157
|
+
overlay?: react.ReactElement | (() => react.ReactElement);
|
|
158
|
+
onVisibleChange?: ((open: boolean) => void) | undefined;
|
|
157
159
|
} & react.RefAttributes<HTMLDivElement>>;
|
|
158
160
|
|
|
159
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 .xUi-dropdown-menu{margin:0;padding:0 4px;position:relative;&:before{content:\"\";height:10px;position:absolute;top:-
|
|
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(({
|
|
@@ -4742,7 +4742,9 @@ const Dropdown = /*#__PURE__*/forwardRef(({
|
|
|
4742
4742
|
autoFocus = false,
|
|
4743
4743
|
popupRender,
|
|
4744
4744
|
className = '',
|
|
4745
|
-
|
|
4745
|
+
overlay,
|
|
4746
|
+
prefixCls = prefixClsDropdown,
|
|
4747
|
+
onVisibleChange
|
|
4746
4748
|
}, ref) => {
|
|
4747
4749
|
const [open, setOpen] = useState(controlledOpen ?? defaultOpen);
|
|
4748
4750
|
const [_hover, setHover] = useState(controlledOpen ?? defaultOpen);
|
|
@@ -4764,6 +4766,7 @@ const Dropdown = /*#__PURE__*/forwardRef(({
|
|
|
4764
4766
|
useEffect(() => {
|
|
4765
4767
|
if (isControlled) {
|
|
4766
4768
|
setOpen(Boolean(controlledOpen));
|
|
4769
|
+
onVisibleChange?.(Boolean(controlledOpen));
|
|
4767
4770
|
}
|
|
4768
4771
|
}, [controlledOpen]);
|
|
4769
4772
|
useEffect(() => {
|
|
@@ -4782,6 +4785,7 @@ const Dropdown = /*#__PURE__*/forwardRef(({
|
|
|
4782
4785
|
setOpen(next);
|
|
4783
4786
|
}
|
|
4784
4787
|
onOpenChange?.(next);
|
|
4788
|
+
onVisibleChange?.(next);
|
|
4785
4789
|
};
|
|
4786
4790
|
useEffect(() => {
|
|
4787
4791
|
const handleClick = e => {
|
|
@@ -4828,7 +4832,7 @@ const Dropdown = /*#__PURE__*/forwardRef(({
|
|
|
4828
4832
|
}
|
|
4829
4833
|
}, arrow && /*#__PURE__*/React.createElement("div", {
|
|
4830
4834
|
className: `${prefixCls}-arrow ${shouldShowAbove ? 'bottom' : ''}`
|
|
4831
|
-
}), popupRender ? popupRender(menu ? /*#__PURE__*/React.createElement(MenuInner, {
|
|
4835
|
+
}), overlay ? typeof overlay === 'function' ? overlay() : overlay : popupRender ? popupRender(menu ? /*#__PURE__*/React.createElement(MenuInner, {
|
|
4832
4836
|
prefixCls: prefixCls,
|
|
4833
4837
|
items: menu.items,
|
|
4834
4838
|
menuRef: menuRef,
|