x-ui-design 0.7.76 → 0.7.77
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/Menu/Menu.d.ts +1 -1
- package/dist/index.esm.js +28 -42
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +28 -42
- package/dist/index.js.map +1 -1
- package/lib/components/Menu/Item/Item.tsx +13 -14
- package/lib/components/Menu/Menu.tsx +11 -26
- package/lib/components/Menu/SubMenu/SubMenu.tsx +7 -5
- package/package.json +1 -1
|
@@ -12,11 +12,11 @@ export declare const MenuContext: React.Context<{
|
|
|
12
12
|
toggleOpen: (key: string, level?: "1" | "2") => void;
|
|
13
13
|
onItemClick: (key: string, domEvent?: MouseEvent) => void;
|
|
14
14
|
triggerSubMenuAction?: "hover" | "click";
|
|
15
|
-
prefixCls: string;
|
|
16
15
|
} | null>;
|
|
17
16
|
declare const ItemGroup: FC<{
|
|
18
17
|
title?: ReactNode;
|
|
19
18
|
children?: ReactNode;
|
|
19
|
+
prefixCls?: string;
|
|
20
20
|
}>;
|
|
21
21
|
declare const Menu: FC<MenuProps> & {
|
|
22
22
|
Item: typeof MenuItem;
|
package/dist/index.esm.js
CHANGED
|
@@ -4427,34 +4427,34 @@ const MenuItem = ({
|
|
|
4427
4427
|
danger,
|
|
4428
4428
|
extra,
|
|
4429
4429
|
selected,
|
|
4430
|
-
className = ''
|
|
4430
|
+
className = '',
|
|
4431
|
+
prefixCls = prefixClsMenu
|
|
4431
4432
|
}) => {
|
|
4432
|
-
const
|
|
4433
|
-
if (!
|
|
4434
|
-
|
|
4433
|
+
const menuContext = useContext(MenuContext);
|
|
4434
|
+
if (!menuContext) {
|
|
4435
|
+
throw new Error('MenuItem must be used within a Menu');
|
|
4435
4436
|
}
|
|
4436
|
-
const prefix = ctx?.prefixCls ?? prefixClsMenu;
|
|
4437
4437
|
const handleClick = e => {
|
|
4438
4438
|
if (disabled) {
|
|
4439
4439
|
return;
|
|
4440
4440
|
}
|
|
4441
|
-
|
|
4441
|
+
menuContext?.onItemClick(itemKey, e);
|
|
4442
4442
|
};
|
|
4443
4443
|
return /*#__PURE__*/React.createElement("li", {
|
|
4444
4444
|
role: "menuitem",
|
|
4445
4445
|
title: title,
|
|
4446
4446
|
onClick: handleClick,
|
|
4447
|
-
className: clsx([`${
|
|
4448
|
-
[`${
|
|
4449
|
-
[`${
|
|
4450
|
-
[`${
|
|
4447
|
+
className: clsx([`${prefixCls}-item ${className}`, {
|
|
4448
|
+
[`${prefixCls}-item-disabled`]: disabled,
|
|
4449
|
+
[`${prefixCls}-item-selected`]: selected,
|
|
4450
|
+
[`${prefixCls}-item-danger`]: danger
|
|
4451
4451
|
}])
|
|
4452
4452
|
}, icon && /*#__PURE__*/React.createElement("span", {
|
|
4453
|
-
className: `${
|
|
4453
|
+
className: `${prefixCls}-item-icon`
|
|
4454
4454
|
}, icon), /*#__PURE__*/React.createElement("span", {
|
|
4455
|
-
className: `${
|
|
4455
|
+
className: `${prefixCls}-item-label`
|
|
4456
4456
|
}, label), extra && /*#__PURE__*/React.createElement("span", {
|
|
4457
|
-
className: `${
|
|
4457
|
+
className: `${prefixCls}-item-extra`
|
|
4458
4458
|
}, extra));
|
|
4459
4459
|
};
|
|
4460
4460
|
|
|
@@ -4469,18 +4469,18 @@ const SubMenu = ({
|
|
|
4469
4469
|
icon,
|
|
4470
4470
|
children,
|
|
4471
4471
|
className = '',
|
|
4472
|
-
level
|
|
4472
|
+
level,
|
|
4473
|
+
prefixCls = prefixClsMenu
|
|
4473
4474
|
}) => {
|
|
4474
|
-
const
|
|
4475
|
-
if (!
|
|
4476
|
-
|
|
4475
|
+
const menuContext = useContext(MenuContext);
|
|
4476
|
+
if (!menuContext) {
|
|
4477
|
+
throw new Error('MenuItem must be used within a Menu');
|
|
4477
4478
|
}
|
|
4478
4479
|
const {
|
|
4479
|
-
prefixCls,
|
|
4480
4480
|
openKeys,
|
|
4481
4481
|
toggleOpen,
|
|
4482
4482
|
triggerSubMenuAction
|
|
4483
|
-
} =
|
|
4483
|
+
} = menuContext;
|
|
4484
4484
|
const isOpen = openKeys.includes(itemKey);
|
|
4485
4485
|
const handleClick = useCallback(() => {
|
|
4486
4486
|
if (triggerSubMenuAction === "click") {
|
|
@@ -4521,32 +4521,18 @@ var SubMenu$1 = /*#__PURE__*/Object.freeze({
|
|
|
4521
4521
|
var css_248z = ".xUi-menu{box-shadow:0 0 4px rgba(0,0,0,.15);font-size:14px;user-select:none}.xUi-menu,.xUi-menu-sub-list{border-radius:4px;display:flex;flex-direction:column;gap:4px;list-style:none;margin:0;padding:4px}.xUi-menu-sub-list{background:var(--xui-background-color);height:max-content}.xUi-menu-item-group{padding:0 24px!important}.xUi-menu-vertical .xUi-menu-sub-list{background-color:#fff;box-shadow:0 0 4px rgba(0,0,0,.15);left:100%;min-width:160px;position:absolute;right:-100%;top:0;width:min-content;z-index:1}.xUi-menu-horizontal{display:flex;flex-direction:row}.xUi-menu-item{align-items:center;border-radius:4px;cursor:pointer;display:flex;height:40px;padding:0 12px;transition:background .3s}.xUi-menu-item:hover{background:rgba(0,0,0,.04)}.xUi-menu-item-icon{margin-right:8px}.xUi-menu-sub{border-radius:6px;position:relative}.xUi-menu-sub-title{align-items:center;cursor:pointer;display:flex;height:40px;padding:0 12px;&:hover{background-color:var(--xui-color-hover);border-radius:6px}}.xUi-menu-sub-label{flex:1}.xUi-menu-sub-arrow{margin-left:8px;transition:transform .2s}.xUi-menu-vertical .xUi-menu-sub-arrow{transform:rotate(-90deg)}.xUi-menu-group{list-style:none;margin:0;padding:0}.xUi-menu-group-title{color:rgba(0,0,0,.45);font-size:12px;padding:8px 12px}.xUi-menu-group-list{list-style:none;margin:0;padding:0}.xUi-menu-divider{border-bottom:1px solid var(--xui-color-disabled);display:block;margin:0 auto;width:calc(100% - 16px)}.xUi-menu-item.xUi-menu-item-disabled{cursor:auto;opacity:.6;&:hover{background-color:unset}}.xUi-menu-inline .xUi-menu-sub-list{background-color:var(--xui-menu-inline-bg)}.xUi-menu-inline .xUi-menu-item{padding:0 24px}.xUi-menu-inline .xUi-menu-sub-title{padding:0 20px}.xUi-menu-inline .xUi-menu-sub-list-sub .xUi-menu-item{padding:0 30px}";
|
|
4522
4522
|
styleInject(css_248z);
|
|
4523
4523
|
|
|
4524
|
-
const MenuContext = /*#__PURE__*/createContext(
|
|
4525
|
-
prefixCls: prefixClsMenu,
|
|
4526
|
-
mode: "vertical",
|
|
4527
|
-
inlineIndent: 0,
|
|
4528
|
-
inlineCollapsed: false,
|
|
4529
|
-
selectedKeys: [],
|
|
4530
|
-
openKeys: [],
|
|
4531
|
-
toggleOpen: function (key, level) {
|
|
4532
|
-
throw new Error("Function not implemented.");
|
|
4533
|
-
},
|
|
4534
|
-
onItemClick: function (key, domEvent) {
|
|
4535
|
-
throw new Error("Function not implemented.");
|
|
4536
|
-
}
|
|
4537
|
-
});
|
|
4524
|
+
const MenuContext = /*#__PURE__*/createContext(null);
|
|
4538
4525
|
const ItemGroup = ({
|
|
4539
4526
|
title,
|
|
4540
|
-
children
|
|
4527
|
+
children,
|
|
4528
|
+
prefixCls
|
|
4541
4529
|
}) => {
|
|
4542
|
-
const ctx = useContext(MenuContext);
|
|
4543
|
-
const prefix = ctx?.prefixCls ?? prefixClsMenu;
|
|
4544
4530
|
return /*#__PURE__*/React.createElement("li", {
|
|
4545
|
-
className: `${
|
|
4531
|
+
className: `${prefixCls}-group`
|
|
4546
4532
|
}, title && /*#__PURE__*/React.createElement("div", {
|
|
4547
|
-
className: `${
|
|
4533
|
+
className: `${prefixCls}-group-title`
|
|
4548
4534
|
}, title), /*#__PURE__*/React.createElement("ul", {
|
|
4549
|
-
className: `${
|
|
4535
|
+
className: `${prefixCls}-group-list`
|
|
4550
4536
|
}, children));
|
|
4551
4537
|
};
|
|
4552
4538
|
const Menu = ({
|
|
@@ -4622,7 +4608,7 @@ const Menu = ({
|
|
|
4622
4608
|
});
|
|
4623
4609
|
}
|
|
4624
4610
|
}, [multiple, onClick, onSelect, onDeselect, selectedKeys, selectable, selectedKeysProp]);
|
|
4625
|
-
const
|
|
4611
|
+
const menuContext = useMemo(() => ({
|
|
4626
4612
|
mode,
|
|
4627
4613
|
inlineIndent,
|
|
4628
4614
|
inlineCollapsed,
|
|
@@ -4631,10 +4617,10 @@ const Menu = ({
|
|
|
4631
4617
|
toggleOpen,
|
|
4632
4618
|
onItemClick,
|
|
4633
4619
|
triggerSubMenuAction: _triggerSubMenuActionClick,
|
|
4634
|
-
prefixCls
|
|
4620
|
+
prefixCls
|
|
4635
4621
|
}), [mode, inlineIndent, inlineCollapsed, selectedKeys, openKeys, toggleOpen, onItemClick, _triggerSubMenuActionClick, prefixCls]);
|
|
4636
4622
|
return /*#__PURE__*/React.createElement(MenuContext.Provider, {
|
|
4637
|
-
value:
|
|
4623
|
+
value: menuContext
|
|
4638
4624
|
}, /*#__PURE__*/React.createElement("ul", {
|
|
4639
4625
|
role: "menu",
|
|
4640
4626
|
style: style,
|