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.
@@ -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 ctx = useContext(MenuContext);
4433
- if (!ctx) {
4434
- return null;
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
- ctx?.onItemClick(itemKey, e);
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([`${prefix}-item ${className}`, {
4448
- [`${prefix}-item-disabled`]: disabled,
4449
- [`${prefix}-item-selected`]: selected,
4450
- [`${prefix}-item-danger`]: danger
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: `${prefix}-item-icon`
4453
+ className: `${prefixCls}-item-icon`
4454
4454
  }, icon), /*#__PURE__*/React.createElement("span", {
4455
- className: `${prefix}-item-label`
4455
+ className: `${prefixCls}-item-label`
4456
4456
  }, label), extra && /*#__PURE__*/React.createElement("span", {
4457
- className: `${prefix}-item-extra`
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 ctx = useContext(MenuContext);
4475
- if (!ctx) {
4476
- return null;
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
- } = ctx;
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: `${prefix}-group`
4531
+ className: `${prefixCls}-group`
4546
4532
  }, title && /*#__PURE__*/React.createElement("div", {
4547
- className: `${prefix}-group-title`
4533
+ className: `${prefixCls}-group-title`
4548
4534
  }, title), /*#__PURE__*/React.createElement("ul", {
4549
- className: `${prefix}-group-list`
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 ctxValue = useMemo(() => ({
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: prefixCls ?? prefixClsMenu
4620
+ prefixCls
4635
4621
  }), [mode, inlineIndent, inlineCollapsed, selectedKeys, openKeys, toggleOpen, onItemClick, _triggerSubMenuActionClick, prefixCls]);
4636
4622
  return /*#__PURE__*/React.createElement(MenuContext.Provider, {
4637
- value: ctxValue ?? {}
4623
+ value: menuContext
4638
4624
  }, /*#__PURE__*/React.createElement("ul", {
4639
4625
  role: "menu",
4640
4626
  style: style,