@lobehub/ui 4.21.3 → 4.22.0

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.
Files changed (137) hide show
  1. package/es/Accordion/Accordion.d.mts +2 -2
  2. package/es/Accordion/AccordionItem.d.mts +2 -2
  3. package/es/ActionIcon/ActionIcon.d.mts +2 -2
  4. package/es/Alert/Alert.d.mts +2 -2
  5. package/es/AutoComplete/Select.d.mts +2 -2
  6. package/es/Avatar/AvatarGroup/index.d.mts +2 -2
  7. package/es/Burger/Burger.d.mts +2 -2
  8. package/es/CodeDiff/CodeDiff.d.mts +2 -2
  9. package/es/CodeDiff/PatchDiff.d.mts +2 -2
  10. package/es/CodeEditor/CodeEditor.d.mts +2 -2
  11. package/es/Collapse/Collapse.d.mts +2 -2
  12. package/es/ConfigProvider/index.d.mts +2 -2
  13. package/es/ContextMenu/ContextMenuHost.d.mts +2 -2
  14. package/es/ContextMenu/imperative.d.mts +1 -1
  15. package/es/ContextMenu/index.d.mts +2 -2
  16. package/es/ContextMenu/index.mjs +2 -2
  17. package/es/ContextMenu/renderItems.mjs +1 -0
  18. package/es/ContextMenu/renderItems.mjs.map +1 -1
  19. package/es/ContextMenu/store.d.mts +2 -1
  20. package/es/CopyButton/CopyButton.d.mts +2 -2
  21. package/es/DatePicker/DatePicker.d.mts +2 -2
  22. package/es/DraggablePanel/components/DraggablePanelBody.d.mts +2 -2
  23. package/es/DraggablePanel/components/DraggablePanelContainer.d.mts +2 -2
  24. package/es/DraggablePanel/components/DraggablePanelFooter.d.mts +2 -2
  25. package/es/DraggablePanel/components/DraggablePanelHeader.d.mts +2 -2
  26. package/es/DraggableSideNav/DraggableSideNav.d.mts +2 -2
  27. package/es/Drawer/Drawer.d.mts +2 -2
  28. package/es/Dropdown/Dropdown.d.mts +2 -2
  29. package/es/DropdownMenu/DropdownMenu.d.mts +2 -2
  30. package/es/DropdownMenu/atoms.d.mts +16 -16
  31. package/es/DropdownMenu/renderItems.mjs +7 -5
  32. package/es/DropdownMenu/renderItems.mjs.map +1 -1
  33. package/es/EditableText/EditableText.d.mts +2 -2
  34. package/es/EmojiPicker/EmojiPicker.d.mts +2 -2
  35. package/es/Flex/FlexBasic.d.mts +2 -2
  36. package/es/FontLoader/index.d.mts +2 -2
  37. package/es/Footer/Footer.d.mts +2 -2
  38. package/es/Form/components/FormGroup.d.mts +2 -2
  39. package/es/Form/components/FormItem.d.mts +2 -2
  40. package/es/Form/components/FormSubmitFooter.d.mts +2 -2
  41. package/es/FormModal/FormModal.d.mts +2 -2
  42. package/es/GuideCard/GuideCard.d.mts +2 -2
  43. package/es/Header/Header.d.mts +2 -2
  44. package/es/Highlighter/Highlighter.d.mts +2 -2
  45. package/es/Highlighter/SyntaxHighlighter/index.d.mts +2 -2
  46. package/es/Hotkey/Hotkey.d.mts +2 -2
  47. package/es/HotkeyInput/HotkeyInput.d.mts +2 -2
  48. package/es/Icon/Icon.d.mts +2 -2
  49. package/es/Icon/components/IconProvider.d.mts +3 -3
  50. package/es/Image/PreviewGroup.d.mts +2 -2
  51. package/es/ImageSelect/ImageSelect.d.mts +2 -2
  52. package/es/Input/Input.d.mts +2 -2
  53. package/es/Input/InputNumber.d.mts +2 -2
  54. package/es/Input/InputOPT.d.mts +2 -2
  55. package/es/Input/InputPassword.d.mts +2 -2
  56. package/es/Input/TextArea.d.mts +2 -2
  57. package/es/Layout/components/LayoutFooter.d.mts +2 -2
  58. package/es/Layout/components/LayoutHeader.d.mts +2 -2
  59. package/es/Layout/components/LayoutMain.d.mts +2 -2
  60. package/es/Layout/components/LayoutSidebar.d.mts +2 -2
  61. package/es/Layout/components/LayoutSidebarInner.d.mts +2 -2
  62. package/es/Layout/components/LayoutToc.d.mts +2 -2
  63. package/es/List/ListItem/index.d.mts +2 -2
  64. package/es/LobeSelect/LobeSelect.d.mts +2 -2
  65. package/es/LobeSelect/atoms.d.mts +19 -19
  66. package/es/Markdown/Markdown.d.mts +2 -2
  67. package/es/Markdown/Typography.d.mts +2 -2
  68. package/es/Markdown/components/SearchResultCards/index.d.mts +2 -2
  69. package/es/MaskShadow/MaskShadow.d.mts +2 -2
  70. package/es/Menu/Menu.d.mts +2 -2
  71. package/es/Menu/type.d.mts +6 -0
  72. package/es/Mermaid/Mermaid.d.mts +2 -2
  73. package/es/Mermaid/SyntaxMermaid/index.d.mts +2 -2
  74. package/es/Modal/Modal.d.mts +2 -2
  75. package/es/Modal/ModalProvider.d.mts +2 -2
  76. package/es/MotionProvider/index.d.mts +2 -2
  77. package/es/Popover/atoms.d.mts +2 -2
  78. package/es/Popover/context.d.mts +2 -2
  79. package/es/SearchBar/SearchBar.d.mts +2 -2
  80. package/es/Segmented/Segmented.d.mts +2 -2
  81. package/es/Select/Select.d.mts +2 -2
  82. package/es/SliderWithInput/SliderWithInput.d.mts +2 -2
  83. package/es/SortableList/components/DragHandle.d.mts +2 -2
  84. package/es/SortableList/components/SortableItem.d.mts +2 -2
  85. package/es/ThemeProvider/ThemeProvider.d.mts +2 -2
  86. package/es/Toast/imperative.d.mts +3 -3
  87. package/es/Toc/Toc.d.mts +2 -2
  88. package/es/Video/index.d.mts +2 -2
  89. package/es/awesome/AuroraBackground/AuroraBackground.d.mts +2 -2
  90. package/es/awesome/BottomGradientButton/BottomGradientButton.d.mts +2 -2
  91. package/es/awesome/Features/Features.d.mts +2 -2
  92. package/es/awesome/GradientButton/GradientButton.d.mts +2 -2
  93. package/es/awesome/GridBackground/GridBackground.d.mts +2 -2
  94. package/es/awesome/GridBackground/GridShowcase.d.mts +2 -2
  95. package/es/awesome/Hero/Hero.d.mts +2 -2
  96. package/es/awesome/Spline/Spine.d.mts +2 -2
  97. package/es/awesome/Spotlight/Spotlight.d.mts +2 -2
  98. package/es/awesome/SpotlightCard/SpotlightCard.d.mts +2 -2
  99. package/es/awesome/TypewriterEffect/TypewriterEffect.d.mts +2 -2
  100. package/es/brand/LobeChat/index.d.mts +2 -2
  101. package/es/brand/LobeHub/index.d.mts +2 -2
  102. package/es/brand/LogoThree/LogoSpline.d.mts +2 -2
  103. package/es/brand/LogoThree/index.d.mts +2 -2
  104. package/es/chat/BackBottom/BackBottom.d.mts +2 -2
  105. package/es/chat/ChatInputArea/components/ChatInputAreaInner.d.mts +2 -2
  106. package/es/chat/ChatItem/ChatItem.d.mts +2 -2
  107. package/es/chat/ChatList/ChatList.d.mts +2 -2
  108. package/es/chat/EditableMessage/EditableMessage.d.mts +2 -2
  109. package/es/chat/EditableMessageList/EditableMessageList.d.mts +2 -2
  110. package/es/chat/MessageInput/MessageInput.d.mts +2 -2
  111. package/es/chat/MessageModal/MessageModal.d.mts +2 -2
  112. package/es/color/ColorScales/index.d.mts +2 -2
  113. package/es/color/CssVar/index.d.mts +2 -2
  114. package/es/i18n/context.d.mts +2 -2
  115. package/es/icons/lucideExtra/BotPromptIcon.d.mts +2 -2
  116. package/es/icons/lucideExtra/CreateBotIcon.d.mts +3 -3
  117. package/es/icons/lucideExtra/DiscordIcon.d.mts +3 -3
  118. package/es/icons/lucideExtra/GlobeOffIcon.d.mts +3 -3
  119. package/es/icons/lucideExtra/GroupBotIcon.d.mts +3 -3
  120. package/es/icons/lucideExtra/GroupBotSquareIcon.d.mts +3 -3
  121. package/es/icons/lucideExtra/LeftClickIcon.d.mts +2 -2
  122. package/es/icons/lucideExtra/LeftDoubleClickIcon.d.mts +3 -3
  123. package/es/icons/lucideExtra/McpIcon.d.mts +2 -2
  124. package/es/icons/lucideExtra/ProviderIcon.d.mts +2 -2
  125. package/es/icons/lucideExtra/RightClickIcon.d.mts +3 -3
  126. package/es/icons/lucideExtra/RightDoubleClickIcon.d.mts +3 -3
  127. package/es/icons/lucideExtra/ShapesUploadIcon.d.mts +3 -3
  128. package/es/icons/lucideExtra/TreeDownRightIcon.d.mts +3 -3
  129. package/es/icons/lucideExtra/TreeUpDownRightIcon.d.mts +3 -3
  130. package/es/index.d.mts +2 -2
  131. package/es/index.mjs +2 -2
  132. package/es/mdx/Mdx/index.d.mts +2 -2
  133. package/es/mobile/ChatHeader/ChatHeaderTitle.d.mts +2 -2
  134. package/es/mobile/ChatInputArea/components/ChatSendButton.d.mts +2 -2
  135. package/es/mobile/TabBar/TabBar.d.mts +2 -2
  136. package/es/storybook/StoryBook/index.d.mts +2 -2
  137. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  import { AccordionProps } from "./type.mjs";
2
- import * as react23 from "react";
2
+ import * as react61 from "react";
3
3
 
4
4
  //#region src/Accordion/Accordion.d.ts
5
- declare const Accordion: react23.NamedExoticComponent<AccordionProps>;
5
+ declare const Accordion: react61.NamedExoticComponent<AccordionProps>;
6
6
  //#endregion
7
7
  export { Accordion };
8
8
  //# sourceMappingURL=Accordion.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { AccordionItemProps } from "./type.mjs";
2
- import * as react24 from "react";
2
+ import * as react62 from "react";
3
3
 
4
4
  //#region src/Accordion/AccordionItem.d.ts
5
- declare const AccordionItem: react24.NamedExoticComponent<AccordionItemProps>;
5
+ declare const AccordionItem: react62.NamedExoticComponent<AccordionItemProps>;
6
6
  //#endregion
7
7
  export { AccordionItem };
8
8
  //# sourceMappingURL=AccordionItem.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { ActionIconProps } from "./type.mjs";
2
- import * as react21 from "react";
2
+ import * as react59 from "react";
3
3
 
4
4
  //#region src/ActionIcon/ActionIcon.d.ts
5
- declare const ActionIcon: react21.NamedExoticComponent<ActionIconProps>;
5
+ declare const ActionIcon: react59.NamedExoticComponent<ActionIconProps>;
6
6
  //#endregion
7
7
  export { ActionIcon };
8
8
  //# sourceMappingURL=ActionIcon.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { AlertProps } from "./type.mjs";
2
- import * as react20 from "react";
2
+ import * as react70 from "react";
3
3
 
4
4
  //#region src/Alert/Alert.d.ts
5
- declare const Alert: react20.NamedExoticComponent<AlertProps>;
5
+ declare const Alert: react70.NamedExoticComponent<AlertProps>;
6
6
  //#endregion
7
7
  export { Alert };
8
8
  //# sourceMappingURL=Alert.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { AutoCompleteProps } from "./type.mjs";
2
- import * as react22 from "react";
2
+ import * as react69 from "react";
3
3
 
4
4
  //#region src/AutoComplete/Select.d.ts
5
- declare const AutoComplete: react22.NamedExoticComponent<AutoCompleteProps>;
5
+ declare const AutoComplete: react69.NamedExoticComponent<AutoCompleteProps>;
6
6
  //#endregion
7
7
  export { AutoComplete };
8
8
  //# sourceMappingURL=Select.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { AvatarGroupProps } from "../type.mjs";
2
- import * as react79 from "react";
2
+ import * as react68 from "react";
3
3
 
4
4
  //#region src/Avatar/AvatarGroup/index.d.ts
5
- declare const AvatarGroup: react79.NamedExoticComponent<AvatarGroupProps>;
5
+ declare const AvatarGroup: react68.NamedExoticComponent<AvatarGroupProps>;
6
6
  //#endregion
7
7
  export { AvatarGroup };
8
8
  //# sourceMappingURL=index.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { BurgerProps } from "./type.mjs";
2
- import * as react78 from "react";
2
+ import * as react67 from "react";
3
3
 
4
4
  //#region src/Burger/Burger.d.ts
5
- declare const Burger: react78.NamedExoticComponent<BurgerProps>;
5
+ declare const Burger: react67.NamedExoticComponent<BurgerProps>;
6
6
  //#endregion
7
7
  export { Burger };
8
8
  //# sourceMappingURL=Burger.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { CodeDiffProps } from "./type.mjs";
2
- import * as react6 from "react";
2
+ import * as react64 from "react";
3
3
 
4
4
  //#region src/CodeDiff/CodeDiff.d.ts
5
- declare const CodeDiff: react6.NamedExoticComponent<CodeDiffProps>;
5
+ declare const CodeDiff: react64.NamedExoticComponent<CodeDiffProps>;
6
6
  //#endregion
7
7
  export { CodeDiff };
8
8
  //# sourceMappingURL=CodeDiff.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { PatchDiffProps } from "./type.mjs";
2
- import * as react7 from "react";
2
+ import * as react65 from "react";
3
3
 
4
4
  //#region src/CodeDiff/PatchDiff.d.ts
5
- declare const PatchDiff: react7.NamedExoticComponent<PatchDiffProps>;
5
+ declare const PatchDiff: react65.NamedExoticComponent<PatchDiffProps>;
6
6
  //#endregion
7
7
  export { PatchDiff };
8
8
  //# sourceMappingURL=PatchDiff.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { CodeEditorProps } from "./type.mjs";
2
- import * as react57 from "react";
2
+ import * as react66 from "react";
3
3
 
4
4
  //#region src/CodeEditor/CodeEditor.d.ts
5
- declare const CodeEditor: react57.NamedExoticComponent<CodeEditorProps>;
5
+ declare const CodeEditor: react66.NamedExoticComponent<CodeEditorProps>;
6
6
  //#endregion
7
7
  export { CodeEditor };
8
8
  //# sourceMappingURL=CodeEditor.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { CollapseProps } from "./type.mjs";
2
- import * as react56 from "react";
2
+ import * as react60 from "react";
3
3
 
4
4
  //#region src/Collapse/Collapse.d.ts
5
- declare const Collapse: react56.NamedExoticComponent<CollapseProps>;
5
+ declare const Collapse: react60.NamedExoticComponent<CollapseProps>;
6
6
  //#endregion
7
7
  export { Collapse };
8
8
  //# sourceMappingURL=Collapse.d.mts.map
@@ -1,7 +1,7 @@
1
1
  import { MotionComponentType } from "../MotionProvider/index.mjs";
2
2
  import { TranslationResourcesInput } from "../i18n/types.mjs";
3
3
  import { CDN, CdnApi } from "../utils/genCdnUrl.mjs";
4
- import * as react81 from "react";
4
+ import * as react77 from "react";
5
5
  import { ElementType, ReactNode } from "react";
6
6
 
7
7
  //#region src/ConfigProvider/index.d.ts
@@ -19,7 +19,7 @@ interface ConfigProviderProps {
19
19
  motion: MotionComponentType;
20
20
  resources?: TranslationResourcesInput;
21
21
  }
22
- declare const ConfigProvider: react81.NamedExoticComponent<ConfigProviderProps>;
22
+ declare const ConfigProvider: react77.NamedExoticComponent<ConfigProviderProps>;
23
23
  type CdnFn = ({
24
24
  pkg,
25
25
  version,
@@ -1,8 +1,8 @@
1
- import * as react123 from "react";
1
+ import * as react124 from "react";
2
2
  import * as react_jsx_runtime37 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/ContextMenu/ContextMenuHost.d.ts
5
- declare const ContextMenuHost: react123.MemoExoticComponent<() => react_jsx_runtime37.JSX.Element | null>;
5
+ declare const ContextMenuHost: react124.MemoExoticComponent<() => react_jsx_runtime37.JSX.Element | null>;
6
6
  //#endregion
7
7
  export { ContextMenuHost };
8
8
  //# sourceMappingURL=ContextMenuHost.d.mts.map
@@ -1,3 +1,3 @@
1
1
  import { ContextMenuTrigger } from "./ContextMenuTrigger.mjs";
2
2
  import { ContextMenuHost } from "./ContextMenuHost.mjs";
3
- import { showContextMenu, updateContextMenuItems } from "./store.mjs";
3
+ import { closeContextMenu, showContextMenu, updateContextMenuItems } from "./store.mjs";
@@ -1,6 +1,6 @@
1
1
  import { ContextMenuCheckboxItem, ContextMenuItem, ContextMenuSwitchItem } from "./type.mjs";
2
2
  import { ContextMenuTrigger, ContextMenuTriggerProps } from "./ContextMenuTrigger.mjs";
3
3
  import { ContextMenuHost } from "./ContextMenuHost.mjs";
4
- import { showContextMenu, updateContextMenuItems } from "./store.mjs";
4
+ import { closeContextMenu, showContextMenu, updateContextMenuItems } from "./store.mjs";
5
5
  import "./imperative.mjs";
6
- export { type ContextMenuCheckboxItem, ContextMenuHost, type ContextMenuItem, type ContextMenuSwitchItem, ContextMenuTrigger, type ContextMenuTriggerProps, showContextMenu, updateContextMenuItems };
6
+ export { type ContextMenuCheckboxItem, ContextMenuHost, type ContextMenuItem, type ContextMenuSwitchItem, ContextMenuTrigger, type ContextMenuTriggerProps, closeContextMenu, showContextMenu, updateContextMenuItems };
@@ -1,5 +1,5 @@
1
- import { showContextMenu, updateContextMenuItems } from "./store.mjs";
1
+ import { closeContextMenu, showContextMenu, updateContextMenuItems } from "./store.mjs";
2
2
  import { ContextMenuHost } from "./ContextMenuHost.mjs";
3
3
  import { ContextMenuTrigger } from "./ContextMenuTrigger.mjs";
4
4
 
5
- export { ContextMenuHost, ContextMenuTrigger, showContextMenu, updateContextMenuItems };
5
+ export { ContextMenuHost, ContextMenuTrigger, closeContextMenu, showContextMenu, updateContextMenuItems };
@@ -198,6 +198,7 @@ const renderContextMenuItems = (items, keyPath = [], options) => {
198
198
  const isDanger = "danger" in menuItem && Boolean(menuItem.danger);
199
199
  return /* @__PURE__ */ jsx(ContextMenu.Item, {
200
200
  className: cx(styles.item, isDanger && styles.danger),
201
+ closeOnClick: menuItem.closeOnClick,
201
202
  disabled: menuItem.disabled,
202
203
  label: labelText,
203
204
  onClick: (event) => invokeItemClick(menuItem, nextKeyPath, event),
@@ -1 +1 @@
1
- {"version":3,"file":"renderItems.mjs","names":["common","Icon","info: MenuInfo","label","labelText","isDanger"],"sources":["../../src/ContextMenu/renderItems.tsx"],"sourcesContent":["import { ContextMenu } from '@base-ui/react/context-menu';\nimport { Switch } from 'antd';\nimport { cx } from 'antd-style';\nimport { Check, ChevronRight } from 'lucide-react';\nimport type { MenuInfo } from 'rc-menu/es/interface';\nimport type {\n Key,\n KeyboardEvent as ReactKeyboardEvent,\n MouseEvent as ReactMouseEvent,\n ReactNode,\n} from 'react';\nimport { isValidElement, memo, useCallback, useState } from 'react';\n\nimport Icon from '@/Icon';\nimport type { MenuDividerType, MenuItemGroupType, MenuItemType, SubMenuType } from '@/Menu';\nimport common from '@/i18n/resources/en/common';\nimport { useTranslation } from '@/i18n/useTranslation';\nimport { preventDefaultAndStopPropagation } from '@/utils/dom';\n\nimport { styles } from './style';\nimport type { ContextMenuCheckboxItem, ContextMenuItem, ContextMenuSwitchItem } from './type';\n\nconst EmptyMenuItem = memo(() => {\n const { t } = useTranslation(common);\n return (\n <ContextMenu.Item className={cx(styles.item, styles.empty)} disabled>\n <div className={styles.itemContent}>\n <span className={styles.label}>{t('common.empty')}</span>\n </div>\n </ContextMenu.Item>\n );\n});\n\nEmptyMenuItem.displayName = 'EmptyMenuItem';\n\ninterface ContextMenuSwitchItemInternalProps {\n checked?: boolean;\n children: ReactNode;\n closeOnClick?: boolean;\n danger?: boolean;\n defaultChecked?: boolean;\n disabled?: boolean;\n label?: string;\n onCheckedChange?: (checked: boolean) => void;\n}\n\nconst ContextMenuSwitchItemInternal = ({\n checked: checkedProp,\n children,\n closeOnClick = false,\n danger,\n defaultChecked,\n disabled,\n label,\n onCheckedChange,\n}: ContextMenuSwitchItemInternalProps) => {\n const [internalChecked, setInternalChecked] = useState(defaultChecked ?? false);\n const isControlled = checkedProp !== undefined;\n const checked = isControlled ? checkedProp : internalChecked;\n\n const handleCheckedChange = useCallback(\n (newChecked: boolean) => {\n if (!isControlled) {\n setInternalChecked(newChecked);\n }\n onCheckedChange?.(newChecked);\n },\n [isControlled, onCheckedChange],\n );\n\n return (\n <ContextMenu.Item\n className={cx(styles.item, danger && styles.danger)}\n closeOnClick={closeOnClick}\n disabled={disabled}\n label={label}\n onClick={(e) => {\n e.preventDefault();\n if (!disabled) {\n handleCheckedChange(!checked);\n }\n }}\n >\n {children}\n <Switch\n checked={checked}\n disabled={disabled}\n onChange={handleCheckedChange}\n onClick={(_, e) => e.stopPropagation()}\n size=\"small\"\n style={{ marginInlineStart: 16 }}\n />\n </ContextMenu.Item>\n );\n};\n\ntype KeyableItem = { key?: Key };\n\nconst getItemKey = (item: KeyableItem, fallback: string): Key => {\n if (item && 'key' in item && item.key !== undefined) return item.key;\n return fallback;\n};\n\ntype LabelableItem = {\n key?: Key;\n label?: ReactNode;\n title?: ReactNode;\n};\n\nconst getItemLabel = (\n item: MenuItemType | SubMenuType | ContextMenuCheckboxItem | LabelableItem,\n): ReactNode => {\n if (item.label !== undefined) return item.label;\n if ('title' in item && item.title !== undefined) return item.title;\n return item.key;\n};\n\nconst renderIcon = (icon: MenuItemType['icon']) => {\n if (!icon) return null;\n if (isValidElement(icon)) return icon;\n return <Icon icon={icon} size={'small'} />;\n};\n\nconst hasAnyIcon = (items: ContextMenuItem[]): boolean => {\n return items.some((item) => {\n if (!item) return false;\n if ((item as ContextMenuCheckboxItem).type === 'checkbox') return true;\n if ('icon' in item && item.icon) return true;\n return false;\n });\n};\n\nconst renderItemContent = (\n item: MenuItemType | SubMenuType | ContextMenuCheckboxItem | ContextMenuSwitchItem,\n options?: { reserveIconSpace?: boolean; submenu?: boolean },\n iconNode?: ReactNode,\n) => {\n const label = getItemLabel(item);\n const extra = 'extra' in item ? item.extra : undefined;\n const hasCustomIcon = iconNode !== undefined;\n const hasIcon = hasCustomIcon ? Boolean(iconNode) : Boolean(item.icon);\n const shouldRenderIcon = hasCustomIcon\n ? Boolean(options?.reserveIconSpace || iconNode)\n : Boolean(hasIcon || options?.reserveIconSpace);\n\n return (\n <div className={styles.itemContent}>\n {shouldRenderIcon ? (\n <span aria-hidden={!hasIcon} className={styles.icon}>\n {hasCustomIcon ? iconNode : hasIcon ? renderIcon(item.icon) : null}\n </span>\n ) : null}\n <span className={styles.label}>{label}</span>\n {extra ? <span className={styles.extra}>{extra}</span> : null}\n {options?.submenu ? (\n <span className={styles.submenuArrow}>\n <ChevronRight size={16} />\n </span>\n ) : null}\n </div>\n );\n};\n\nconst invokeItemClick = (\n item: MenuItemType,\n keyPath: string[],\n event: ReactMouseEvent<HTMLElement> | ReactKeyboardEvent<HTMLElement>,\n) => {\n if (!item.onClick) return;\n const key = item.key ?? keyPath.at(-1) ?? '';\n const info: MenuInfo = {\n domEvent: event,\n item: event.currentTarget as MenuInfo['item'],\n key: String(key),\n keyPath,\n };\n item.onClick(info);\n};\n\nexport const renderContextMenuItems = (\n items: ContextMenuItem[],\n keyPath: string[] = [],\n options?: { reserveIconSpace?: boolean },\n): ReactNode[] => {\n const reserveIconSpace = options?.reserveIconSpace ?? hasAnyIcon(items);\n\n return items.map((item, index) => {\n if (!item) return null;\n\n const fallbackKey = `${keyPath.join('-') || 'root'}-${index}`;\n const itemKey = getItemKey(item, fallbackKey);\n const nextKeyPath = [...keyPath, String(itemKey)];\n\n if ((item as ContextMenuCheckboxItem).type === 'checkbox') {\n const checkboxItem = item as ContextMenuCheckboxItem;\n const label = getItemLabel(checkboxItem);\n const labelText = typeof label === 'string' ? label : undefined;\n const isDanger = Boolean(checkboxItem.danger);\n const indicator = (\n <ContextMenu.CheckboxItemIndicator>\n <Icon icon={Check} size={'small'} />\n </ContextMenu.CheckboxItemIndicator>\n );\n\n return (\n <ContextMenu.CheckboxItem\n checked={checkboxItem.checked}\n className={cx(styles.item, isDanger && styles.danger)}\n closeOnClick={checkboxItem.closeOnClick}\n defaultChecked={checkboxItem.defaultChecked}\n disabled={checkboxItem.disabled}\n key={itemKey}\n label={labelText}\n onCheckedChange={(checked) => checkboxItem.onCheckedChange?.(checked)}\n >\n {renderItemContent(checkboxItem, { reserveIconSpace }, indicator)}\n </ContextMenu.CheckboxItem>\n );\n }\n\n if ((item as ContextMenuSwitchItem).type === 'switch') {\n const switchItem = item as ContextMenuSwitchItem;\n const label = getItemLabel(switchItem);\n const labelText = typeof label === 'string' ? label : undefined;\n const isDanger = Boolean(switchItem.danger);\n\n return (\n <ContextMenuSwitchItemInternal\n checked={switchItem.checked}\n closeOnClick={switchItem.closeOnClick}\n danger={isDanger}\n defaultChecked={switchItem.defaultChecked}\n disabled={switchItem.disabled}\n key={itemKey}\n label={labelText}\n onCheckedChange={switchItem.onCheckedChange}\n >\n {renderItemContent(switchItem, { reserveIconSpace })}\n </ContextMenuSwitchItemInternal>\n );\n }\n\n if ((item as MenuDividerType).type === 'divider') {\n return <ContextMenu.Separator className={styles.separator} key={itemKey} />;\n }\n\n if ((item as MenuItemGroupType).type === 'group') {\n const group = item as MenuItemGroupType;\n return (\n <ContextMenu.Group key={itemKey}>\n {group.label ? (\n <ContextMenu.GroupLabel className={styles.groupLabel}>\n {group.label}\n </ContextMenu.GroupLabel>\n ) : null}\n {group.children\n ? renderContextMenuItems(group.children, nextKeyPath, { reserveIconSpace })\n : null}\n </ContextMenu.Group>\n );\n }\n\n if (\n (item as SubMenuType).type === 'submenu' ||\n ('children' in item && (item as SubMenuType).children)\n ) {\n const submenu = item as SubMenuType;\n const label = getItemLabel(submenu);\n const labelText = typeof label === 'string' ? label : undefined;\n const isDanger = 'danger' in submenu && Boolean(submenu.danger);\n\n return (\n <ContextMenu.SubmenuRoot key={itemKey}>\n <ContextMenu.SubmenuTrigger\n className={cx(styles.item, isDanger && styles.danger)}\n disabled={submenu.disabled}\n label={labelText}\n >\n {renderItemContent(submenu, {\n reserveIconSpace,\n submenu: true,\n })}\n </ContextMenu.SubmenuTrigger>\n <ContextMenu.Portal>\n <ContextMenu.Positioner\n alignOffset={-4}\n className={styles.positioner}\n onContextMenu={preventDefaultAndStopPropagation}\n sideOffset={-1}\n >\n <ContextMenu.Popup className={styles.popup}>\n {submenu.children && submenu.children.length > 0 ? (\n renderContextMenuItems(submenu.children, nextKeyPath)\n ) : (\n <EmptyMenuItem />\n )}\n </ContextMenu.Popup>\n </ContextMenu.Positioner>\n </ContextMenu.Portal>\n </ContextMenu.SubmenuRoot>\n );\n }\n\n const menuItem = item as MenuItemType;\n const label = getItemLabel(menuItem);\n const labelText = typeof label === 'string' ? label : undefined;\n const isDanger = 'danger' in menuItem && Boolean(menuItem.danger);\n\n return (\n <ContextMenu.Item\n className={cx(styles.item, isDanger && styles.danger)}\n disabled={menuItem.disabled}\n key={itemKey}\n label={labelText}\n onClick={(event) => invokeItemClick(menuItem, nextKeyPath, event)}\n >\n {renderItemContent(menuItem, { reserveIconSpace })}\n </ContextMenu.Item>\n );\n });\n};\n"],"mappings":";;;;;;;;;;;;;AAsBA,MAAM,gBAAgB,WAAW;CAC/B,MAAM,EAAE,MAAM,eAAeA,eAAO;AACpC,QACE,oBAAC,YAAY;EAAK,WAAW,GAAG,OAAO,MAAM,OAAO,MAAM;EAAE;YAC1D,oBAAC;GAAI,WAAW,OAAO;aACrB,oBAAC;IAAK,WAAW,OAAO;cAAQ,EAAE,eAAe;KAAQ;IACrD;GACW;EAErB;AAEF,cAAc,cAAc;AAa5B,MAAM,iCAAiC,EACrC,SAAS,aACT,UACA,eAAe,OACf,QACA,gBACA,UACA,OACA,sBACwC;CACxC,MAAM,CAAC,iBAAiB,sBAAsB,SAAS,kBAAkB,MAAM;CAC/E,MAAM,eAAe,gBAAgB;CACrC,MAAM,UAAU,eAAe,cAAc;CAE7C,MAAM,sBAAsB,aACzB,eAAwB;AACvB,MAAI,CAAC,aACH,oBAAmB,WAAW;AAEhC,oBAAkB,WAAW;IAE/B,CAAC,cAAc,gBAAgB,CAChC;AAED,QACE,qBAAC,YAAY;EACX,WAAW,GAAG,OAAO,MAAM,UAAU,OAAO,OAAO;EACrC;EACJ;EACH;EACP,UAAU,MAAM;AACd,KAAE,gBAAgB;AAClB,OAAI,CAAC,SACH,qBAAoB,CAAC,QAAQ;;aAIhC,UACD,oBAAC;GACU;GACC;GACV,UAAU;GACV,UAAU,GAAG,MAAM,EAAE,iBAAiB;GACtC,MAAK;GACL,OAAO,EAAE,mBAAmB,IAAI;IAChC;GACe;;AAMvB,MAAM,cAAc,MAAmB,aAA0B;AAC/D,KAAI,QAAQ,SAAS,QAAQ,KAAK,QAAQ,OAAW,QAAO,KAAK;AACjE,QAAO;;AAST,MAAM,gBACJ,SACc;AACd,KAAI,KAAK,UAAU,OAAW,QAAO,KAAK;AAC1C,KAAI,WAAW,QAAQ,KAAK,UAAU,OAAW,QAAO,KAAK;AAC7D,QAAO,KAAK;;AAGd,MAAM,cAAc,SAA+B;AACjD,KAAI,CAAC,KAAM,QAAO;AAClB,KAAI,eAAe,KAAK,CAAE,QAAO;AACjC,QAAO,oBAACC;EAAW;EAAM,MAAM;GAAW;;AAG5C,MAAM,cAAc,UAAsC;AACxD,QAAO,MAAM,MAAM,SAAS;AAC1B,MAAI,CAAC,KAAM,QAAO;AAClB,MAAK,KAAiC,SAAS,WAAY,QAAO;AAClE,MAAI,UAAU,QAAQ,KAAK,KAAM,QAAO;AACxC,SAAO;GACP;;AAGJ,MAAM,qBACJ,MACA,SACA,aACG;CACH,MAAM,QAAQ,aAAa,KAAK;CAChC,MAAM,QAAQ,WAAW,OAAO,KAAK,QAAQ;CAC7C,MAAM,gBAAgB,aAAa;CACnC,MAAM,UAAU,gBAAgB,QAAQ,SAAS,GAAG,QAAQ,KAAK,KAAK;CACtE,MAAM,mBAAmB,gBACrB,QAAQ,SAAS,oBAAoB,SAAS,GAC9C,QAAQ,WAAW,SAAS,iBAAiB;AAEjD,QACE,qBAAC;EAAI,WAAW,OAAO;;GACpB,mBACC,oBAAC;IAAK,eAAa,CAAC;IAAS,WAAW,OAAO;cAC5C,gBAAgB,WAAW,UAAU,WAAW,KAAK,KAAK,GAAG;KACzD,GACL;GACJ,oBAAC;IAAK,WAAW,OAAO;cAAQ;KAAa;GAC5C,QAAQ,oBAAC;IAAK,WAAW,OAAO;cAAQ;KAAa,GAAG;GACxD,SAAS,UACR,oBAAC;IAAK,WAAW,OAAO;cACtB,oBAAC,gBAAa,MAAM,KAAM;KACrB,GACL;;GACA;;AAIV,MAAM,mBACJ,MACA,SACA,UACG;AACH,KAAI,CAAC,KAAK,QAAS;CACnB,MAAM,MAAM,KAAK,OAAO,QAAQ,GAAG,GAAG,IAAI;CAC1C,MAAMC,OAAiB;EACrB,UAAU;EACV,MAAM,MAAM;EACZ,KAAK,OAAO,IAAI;EAChB;EACD;AACD,MAAK,QAAQ,KAAK;;AAGpB,MAAa,0BACX,OACA,UAAoB,EAAE,EACtB,YACgB;CAChB,MAAM,mBAAmB,SAAS,oBAAoB,WAAW,MAAM;AAEvE,QAAO,MAAM,KAAK,MAAM,UAAU;AAChC,MAAI,CAAC,KAAM,QAAO;EAGlB,MAAM,UAAU,WAAW,MADP,GAAG,QAAQ,KAAK,IAAI,IAAI,OAAO,GAAG,QACT;EAC7C,MAAM,cAAc,CAAC,GAAG,SAAS,OAAO,QAAQ,CAAC;AAEjD,MAAK,KAAiC,SAAS,YAAY;GACzD,MAAM,eAAe;GACrB,MAAMC,UAAQ,aAAa,aAAa;GACxC,MAAMC,cAAY,OAAOD,YAAU,WAAWA,UAAQ;GACtD,MAAME,aAAW,QAAQ,aAAa,OAAO;GAC7C,MAAM,YACJ,oBAAC,YAAY,mCACX,oBAACJ;IAAK,MAAM;IAAO,MAAM;KAAW,GACF;AAGtC,UACE,oBAAC,YAAY;IACX,SAAS,aAAa;IACtB,WAAW,GAAG,OAAO,MAAMI,cAAY,OAAO,OAAO;IACrD,cAAc,aAAa;IAC3B,gBAAgB,aAAa;IAC7B,UAAU,aAAa;IAEvB,OAAOD;IACP,kBAAkB,YAAY,aAAa,kBAAkB,QAAQ;cAEpE,kBAAkB,cAAc,EAAE,kBAAkB,EAAE,UAAU;MAJ5D,QAKoB;;AAI/B,MAAK,KAA+B,SAAS,UAAU;GACrD,MAAM,aAAa;GACnB,MAAMD,UAAQ,aAAa,WAAW;GACtC,MAAMC,cAAY,OAAOD,YAAU,WAAWA,UAAQ;GACtD,MAAME,aAAW,QAAQ,WAAW,OAAO;AAE3C,UACE,oBAAC;IACC,SAAS,WAAW;IACpB,cAAc,WAAW;IACzB,QAAQA;IACR,gBAAgB,WAAW;IAC3B,UAAU,WAAW;IAErB,OAAOD;IACP,iBAAiB,WAAW;cAE3B,kBAAkB,YAAY,EAAE,kBAAkB,CAAC;MAJ/C,QAKyB;;AAIpC,MAAK,KAAyB,SAAS,UACrC,QAAO,oBAAC,YAAY,aAAU,WAAW,OAAO,aAAgB,QAAW;AAG7E,MAAK,KAA2B,SAAS,SAAS;GAChD,MAAM,QAAQ;AACd,UACE,qBAAC,YAAY,oBACV,MAAM,QACL,oBAAC,YAAY;IAAW,WAAW,OAAO;cACvC,MAAM;KACgB,GACvB,MACH,MAAM,WACH,uBAAuB,MAAM,UAAU,aAAa,EAAE,kBAAkB,CAAC,GACzE,SARkB,QASJ;;AAIxB,MACG,KAAqB,SAAS,aAC9B,cAAc,QAAS,KAAqB,UAC7C;GACA,MAAM,UAAU;GAChB,MAAMD,UAAQ,aAAa,QAAQ;GACnC,MAAMC,cAAY,OAAOD,YAAU,WAAWA,UAAQ;GACtD,MAAME,aAAW,YAAY,WAAW,QAAQ,QAAQ,OAAO;AAE/D,UACE,qBAAC,YAAY,0BACX,oBAAC,YAAY;IACX,WAAW,GAAG,OAAO,MAAMA,cAAY,OAAO,OAAO;IACrD,UAAU,QAAQ;IAClB,OAAOD;cAEN,kBAAkB,SAAS;KAC1B;KACA,SAAS;KACV,CAAC;KACyB,EAC7B,oBAAC,YAAY,oBACX,oBAAC,YAAY;IACX,aAAa;IACb,WAAW,OAAO;IAClB,eAAe;IACf,YAAY;cAEZ,oBAAC,YAAY;KAAM,WAAW,OAAO;eAClC,QAAQ,YAAY,QAAQ,SAAS,SAAS,IAC7C,uBAAuB,QAAQ,UAAU,YAAY,GAErD,oBAAC,kBAAgB;MAED;KACG,GACN,KA1BO,QA2BJ;;EAI9B,MAAM,WAAW;EACjB,MAAM,QAAQ,aAAa,SAAS;EACpC,MAAM,YAAY,OAAO,UAAU,WAAW,QAAQ;EACtD,MAAM,WAAW,YAAY,YAAY,QAAQ,SAAS,OAAO;AAEjE,SACE,oBAAC,YAAY;GACX,WAAW,GAAG,OAAO,MAAM,YAAY,OAAO,OAAO;GACrD,UAAU,SAAS;GAEnB,OAAO;GACP,UAAU,UAAU,gBAAgB,UAAU,aAAa,MAAM;aAEhE,kBAAkB,UAAU,EAAE,kBAAkB,CAAC;KAJ7C,QAKY;GAErB"}
1
+ {"version":3,"file":"renderItems.mjs","names":["common","Icon","info: MenuInfo","label","labelText","isDanger"],"sources":["../../src/ContextMenu/renderItems.tsx"],"sourcesContent":["import { ContextMenu } from '@base-ui/react/context-menu';\nimport { Switch } from 'antd';\nimport { cx } from 'antd-style';\nimport { Check, ChevronRight } from 'lucide-react';\nimport type { MenuInfo } from 'rc-menu/es/interface';\nimport type {\n Key,\n KeyboardEvent as ReactKeyboardEvent,\n MouseEvent as ReactMouseEvent,\n ReactNode,\n} from 'react';\nimport { isValidElement, memo, useCallback, useState } from 'react';\n\nimport Icon from '@/Icon';\nimport type { MenuDividerType, MenuItemGroupType, MenuItemType, SubMenuType } from '@/Menu';\nimport common from '@/i18n/resources/en/common';\nimport { useTranslation } from '@/i18n/useTranslation';\nimport { preventDefaultAndStopPropagation } from '@/utils/dom';\n\nimport { styles } from './style';\nimport type { ContextMenuCheckboxItem, ContextMenuItem, ContextMenuSwitchItem } from './type';\n\nconst EmptyMenuItem = memo(() => {\n const { t } = useTranslation(common);\n return (\n <ContextMenu.Item className={cx(styles.item, styles.empty)} disabled>\n <div className={styles.itemContent}>\n <span className={styles.label}>{t('common.empty')}</span>\n </div>\n </ContextMenu.Item>\n );\n});\n\nEmptyMenuItem.displayName = 'EmptyMenuItem';\n\ninterface ContextMenuSwitchItemInternalProps {\n checked?: boolean;\n children: ReactNode;\n closeOnClick?: boolean;\n danger?: boolean;\n defaultChecked?: boolean;\n disabled?: boolean;\n label?: string;\n onCheckedChange?: (checked: boolean) => void;\n}\n\nconst ContextMenuSwitchItemInternal = ({\n checked: checkedProp,\n children,\n closeOnClick = false,\n danger,\n defaultChecked,\n disabled,\n label,\n onCheckedChange,\n}: ContextMenuSwitchItemInternalProps) => {\n const [internalChecked, setInternalChecked] = useState(defaultChecked ?? false);\n const isControlled = checkedProp !== undefined;\n const checked = isControlled ? checkedProp : internalChecked;\n\n const handleCheckedChange = useCallback(\n (newChecked: boolean) => {\n if (!isControlled) {\n setInternalChecked(newChecked);\n }\n onCheckedChange?.(newChecked);\n },\n [isControlled, onCheckedChange],\n );\n\n return (\n <ContextMenu.Item\n className={cx(styles.item, danger && styles.danger)}\n closeOnClick={closeOnClick}\n disabled={disabled}\n label={label}\n onClick={(e) => {\n e.preventDefault();\n if (!disabled) {\n handleCheckedChange(!checked);\n }\n }}\n >\n {children}\n <Switch\n checked={checked}\n disabled={disabled}\n onChange={handleCheckedChange}\n onClick={(_, e) => e.stopPropagation()}\n size=\"small\"\n style={{ marginInlineStart: 16 }}\n />\n </ContextMenu.Item>\n );\n};\n\ntype KeyableItem = { key?: Key };\n\nconst getItemKey = (item: KeyableItem, fallback: string): Key => {\n if (item && 'key' in item && item.key !== undefined) return item.key;\n return fallback;\n};\n\ntype LabelableItem = {\n key?: Key;\n label?: ReactNode;\n title?: ReactNode;\n};\n\nconst getItemLabel = (\n item: MenuItemType | SubMenuType | ContextMenuCheckboxItem | LabelableItem,\n): ReactNode => {\n if (item.label !== undefined) return item.label;\n if ('title' in item && item.title !== undefined) return item.title;\n return item.key;\n};\n\nconst renderIcon = (icon: MenuItemType['icon']) => {\n if (!icon) return null;\n if (isValidElement(icon)) return icon;\n return <Icon icon={icon} size={'small'} />;\n};\n\nconst hasAnyIcon = (items: ContextMenuItem[]): boolean => {\n return items.some((item) => {\n if (!item) return false;\n if ((item as ContextMenuCheckboxItem).type === 'checkbox') return true;\n if ('icon' in item && item.icon) return true;\n return false;\n });\n};\n\nconst renderItemContent = (\n item: MenuItemType | SubMenuType | ContextMenuCheckboxItem | ContextMenuSwitchItem,\n options?: { reserveIconSpace?: boolean; submenu?: boolean },\n iconNode?: ReactNode,\n) => {\n const label = getItemLabel(item);\n const extra = 'extra' in item ? item.extra : undefined;\n const hasCustomIcon = iconNode !== undefined;\n const hasIcon = hasCustomIcon ? Boolean(iconNode) : Boolean(item.icon);\n const shouldRenderIcon = hasCustomIcon\n ? Boolean(options?.reserveIconSpace || iconNode)\n : Boolean(hasIcon || options?.reserveIconSpace);\n\n return (\n <div className={styles.itemContent}>\n {shouldRenderIcon ? (\n <span aria-hidden={!hasIcon} className={styles.icon}>\n {hasCustomIcon ? iconNode : hasIcon ? renderIcon(item.icon) : null}\n </span>\n ) : null}\n <span className={styles.label}>{label}</span>\n {extra ? <span className={styles.extra}>{extra}</span> : null}\n {options?.submenu ? (\n <span className={styles.submenuArrow}>\n <ChevronRight size={16} />\n </span>\n ) : null}\n </div>\n );\n};\n\nconst invokeItemClick = (\n item: MenuItemType,\n keyPath: string[],\n event: ReactMouseEvent<HTMLElement> | ReactKeyboardEvent<HTMLElement>,\n) => {\n if (!item.onClick) return;\n const key = item.key ?? keyPath.at(-1) ?? '';\n const info: MenuInfo = {\n domEvent: event,\n item: event.currentTarget as MenuInfo['item'],\n key: String(key),\n keyPath,\n };\n item.onClick(info);\n};\n\nexport const renderContextMenuItems = (\n items: ContextMenuItem[],\n keyPath: string[] = [],\n options?: { reserveIconSpace?: boolean },\n): ReactNode[] => {\n const reserveIconSpace = options?.reserveIconSpace ?? hasAnyIcon(items);\n\n return items.map((item, index) => {\n if (!item) return null;\n\n const fallbackKey = `${keyPath.join('-') || 'root'}-${index}`;\n const itemKey = getItemKey(item, fallbackKey);\n const nextKeyPath = [...keyPath, String(itemKey)];\n\n if ((item as ContextMenuCheckboxItem).type === 'checkbox') {\n const checkboxItem = item as ContextMenuCheckboxItem;\n const label = getItemLabel(checkboxItem);\n const labelText = typeof label === 'string' ? label : undefined;\n const isDanger = Boolean(checkboxItem.danger);\n const indicator = (\n <ContextMenu.CheckboxItemIndicator>\n <Icon icon={Check} size={'small'} />\n </ContextMenu.CheckboxItemIndicator>\n );\n\n return (\n <ContextMenu.CheckboxItem\n checked={checkboxItem.checked}\n className={cx(styles.item, isDanger && styles.danger)}\n closeOnClick={checkboxItem.closeOnClick}\n defaultChecked={checkboxItem.defaultChecked}\n disabled={checkboxItem.disabled}\n key={itemKey}\n label={labelText}\n onCheckedChange={(checked) => checkboxItem.onCheckedChange?.(checked)}\n >\n {renderItemContent(checkboxItem, { reserveIconSpace }, indicator)}\n </ContextMenu.CheckboxItem>\n );\n }\n\n if ((item as ContextMenuSwitchItem).type === 'switch') {\n const switchItem = item as ContextMenuSwitchItem;\n const label = getItemLabel(switchItem);\n const labelText = typeof label === 'string' ? label : undefined;\n const isDanger = Boolean(switchItem.danger);\n\n return (\n <ContextMenuSwitchItemInternal\n checked={switchItem.checked}\n closeOnClick={switchItem.closeOnClick}\n danger={isDanger}\n defaultChecked={switchItem.defaultChecked}\n disabled={switchItem.disabled}\n key={itemKey}\n label={labelText}\n onCheckedChange={switchItem.onCheckedChange}\n >\n {renderItemContent(switchItem, { reserveIconSpace })}\n </ContextMenuSwitchItemInternal>\n );\n }\n\n if ((item as MenuDividerType).type === 'divider') {\n return <ContextMenu.Separator className={styles.separator} key={itemKey} />;\n }\n\n if ((item as MenuItemGroupType).type === 'group') {\n const group = item as MenuItemGroupType;\n return (\n <ContextMenu.Group key={itemKey}>\n {group.label ? (\n <ContextMenu.GroupLabel className={styles.groupLabel}>\n {group.label}\n </ContextMenu.GroupLabel>\n ) : null}\n {group.children\n ? renderContextMenuItems(group.children, nextKeyPath, { reserveIconSpace })\n : null}\n </ContextMenu.Group>\n );\n }\n\n if (\n (item as SubMenuType).type === 'submenu' ||\n ('children' in item && (item as SubMenuType).children)\n ) {\n const submenu = item as SubMenuType;\n const label = getItemLabel(submenu);\n const labelText = typeof label === 'string' ? label : undefined;\n const isDanger = 'danger' in submenu && Boolean(submenu.danger);\n\n return (\n <ContextMenu.SubmenuRoot key={itemKey}>\n <ContextMenu.SubmenuTrigger\n className={cx(styles.item, isDanger && styles.danger)}\n disabled={submenu.disabled}\n label={labelText}\n >\n {renderItemContent(submenu, {\n reserveIconSpace,\n submenu: true,\n })}\n </ContextMenu.SubmenuTrigger>\n <ContextMenu.Portal>\n <ContextMenu.Positioner\n alignOffset={-4}\n className={styles.positioner}\n onContextMenu={preventDefaultAndStopPropagation}\n sideOffset={-1}\n >\n <ContextMenu.Popup className={styles.popup}>\n {submenu.children && submenu.children.length > 0 ? (\n renderContextMenuItems(submenu.children, nextKeyPath)\n ) : (\n <EmptyMenuItem />\n )}\n </ContextMenu.Popup>\n </ContextMenu.Positioner>\n </ContextMenu.Portal>\n </ContextMenu.SubmenuRoot>\n );\n }\n\n const menuItem = item as MenuItemType;\n const label = getItemLabel(menuItem);\n const labelText = typeof label === 'string' ? label : undefined;\n const isDanger = 'danger' in menuItem && Boolean(menuItem.danger);\n\n return (\n <ContextMenu.Item\n className={cx(styles.item, isDanger && styles.danger)}\n closeOnClick={menuItem.closeOnClick}\n disabled={menuItem.disabled}\n key={itemKey}\n label={labelText}\n onClick={(event) => invokeItemClick(menuItem, nextKeyPath, event)}\n >\n {renderItemContent(menuItem, { reserveIconSpace })}\n </ContextMenu.Item>\n );\n });\n};\n"],"mappings":"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"}
@@ -9,6 +9,7 @@ declare const showContextMenu: (items: ContextMenuItem[]) => void;
9
9
  * Useful for interactive menu items (e.g. checkbox) to avoid re-positioning.
10
10
  */
11
11
  declare const updateContextMenuItems: (items: ContextMenuItem[]) => void;
12
+ declare const closeContextMenu: () => void;
12
13
  //#endregion
13
- export { showContextMenu, updateContextMenuItems };
14
+ export { closeContextMenu, showContextMenu, updateContextMenuItems };
14
15
  //# sourceMappingURL=store.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { CopyButtonProps } from "./type.mjs";
2
- import * as react77 from "react";
2
+ import * as react56 from "react";
3
3
 
4
4
  //#region src/CopyButton/CopyButton.d.ts
5
- declare const CopyButton: react77.NamedExoticComponent<CopyButtonProps>;
5
+ declare const CopyButton: react56.NamedExoticComponent<CopyButtonProps>;
6
6
  //#endregion
7
7
  export { CopyButton };
8
8
  //# sourceMappingURL=CopyButton.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { DatePickerProps } from "./type.mjs";
2
- import * as react15 from "react";
2
+ import * as react57 from "react";
3
3
 
4
4
  //#region src/DatePicker/DatePicker.d.ts
5
- declare const DatePicker: react15.NamedExoticComponent<DatePickerProps>;
5
+ declare const DatePicker: react57.NamedExoticComponent<DatePickerProps>;
6
6
  //#endregion
7
7
  export { DatePicker };
8
8
  //# sourceMappingURL=DatePicker.d.mts.map
@@ -1,9 +1,9 @@
1
1
  import { DivProps } from "../../types/index.mjs";
2
- import * as react16 from "react";
2
+ import * as react52 from "react";
3
3
 
4
4
  //#region src/DraggablePanel/components/DraggablePanelBody.d.ts
5
5
  type DraggablePanelBodyProps = DivProps;
6
- declare const DraggablePanelBody: react16.NamedExoticComponent<DivProps>;
6
+ declare const DraggablePanelBody: react52.NamedExoticComponent<DivProps>;
7
7
  //#endregion
8
8
  export { DraggablePanelBody, DraggablePanelBodyProps };
9
9
  //# sourceMappingURL=DraggablePanelBody.d.mts.map
@@ -1,9 +1,9 @@
1
1
  import { DivProps } from "../../types/index.mjs";
2
- import * as react18 from "react";
2
+ import * as react55 from "react";
3
3
 
4
4
  //#region src/DraggablePanel/components/DraggablePanelContainer.d.ts
5
5
  type DraggablePanelContainerProps = DivProps;
6
- declare const DraggablePanelContainer: react18.NamedExoticComponent<DivProps>;
6
+ declare const DraggablePanelContainer: react55.NamedExoticComponent<DivProps>;
7
7
  //#endregion
8
8
  export { DraggablePanelContainer, DraggablePanelContainerProps };
9
9
  //# sourceMappingURL=DraggablePanelContainer.d.mts.map
@@ -1,9 +1,9 @@
1
1
  import { DivProps } from "../../types/index.mjs";
2
- import * as react17 from "react";
2
+ import * as react53 from "react";
3
3
 
4
4
  //#region src/DraggablePanel/components/DraggablePanelFooter.d.ts
5
5
  type DraggablePanelFooterProps = DivProps;
6
- declare const DraggablePanelFooter: react17.NamedExoticComponent<DivProps>;
6
+ declare const DraggablePanelFooter: react53.NamedExoticComponent<DivProps>;
7
7
  //#endregion
8
8
  export { DraggablePanelFooter, DraggablePanelFooterProps };
9
9
  //# sourceMappingURL=DraggablePanelFooter.d.mts.map
@@ -1,5 +1,5 @@
1
1
  import { DivProps } from "../../types/index.mjs";
2
- import * as react19 from "react";
2
+ import * as react54 from "react";
3
3
 
4
4
  //#region src/DraggablePanel/components/DraggablePanelHeader.d.ts
5
5
  interface DraggablePanelHeaderProps extends Omit<DivProps, 'children'> {
@@ -9,7 +9,7 @@ interface DraggablePanelHeaderProps extends Omit<DivProps, 'children'> {
9
9
  setPin?: (pin: boolean) => void;
10
10
  title?: string;
11
11
  }
12
- declare const DraggablePanelHeader: react19.NamedExoticComponent<DraggablePanelHeaderProps>;
12
+ declare const DraggablePanelHeader: react54.NamedExoticComponent<DraggablePanelHeaderProps>;
13
13
  //#endregion
14
14
  export { DraggablePanelHeader, DraggablePanelHeaderProps };
15
15
  //# sourceMappingURL=DraggablePanelHeader.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { DraggableSideNavProps } from "./type.mjs";
2
- import * as react13 from "react";
2
+ import * as react51 from "react";
3
3
 
4
4
  //#region src/DraggableSideNav/DraggableSideNav.d.ts
5
- declare const DraggableSideNav: react13.NamedExoticComponent<DraggableSideNavProps>;
5
+ declare const DraggableSideNav: react51.NamedExoticComponent<DraggableSideNavProps>;
6
6
  //#endregion
7
7
  export { DraggableSideNav };
8
8
  //# sourceMappingURL=DraggableSideNav.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { DrawerProps } from "./type.mjs";
2
- import * as react10 from "react";
2
+ import * as react50 from "react";
3
3
 
4
4
  //#region src/Drawer/Drawer.d.ts
5
- declare const Drawer: react10.NamedExoticComponent<DrawerProps>;
5
+ declare const Drawer: react50.NamedExoticComponent<DrawerProps>;
6
6
  //#endregion
7
7
  export { Drawer };
8
8
  //# sourceMappingURL=Drawer.d.mts.map
@@ -1,5 +1,5 @@
1
1
  import { DropdownProps } from "./type.mjs";
2
- import * as react9 from "react";
2
+ import * as react49 from "react";
3
3
 
4
4
  //#region src/Dropdown/Dropdown.d.ts
5
5
 
@@ -9,7 +9,7 @@ import * as react9 from "react";
9
9
  * @see https://ui.lobehub.com/components/context-menu
10
10
  * @see https://ui.lobehub.com/components/dropdown-menu
11
11
  */
12
- declare const Dropdown: react9.NamedExoticComponent<DropdownProps>;
12
+ declare const Dropdown: react49.NamedExoticComponent<DropdownProps>;
13
13
  //#endregion
14
14
  export { Dropdown };
15
15
  //# sourceMappingURL=Dropdown.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { DropdownMenuProps } from "./type.mjs";
2
- import * as react11 from "react";
2
+ import * as react48 from "react";
3
3
 
4
4
  //#region src/DropdownMenu/DropdownMenu.d.ts
5
- declare const DropdownMenu: react11.NamedExoticComponent<DropdownMenuProps<unknown>>;
5
+ declare const DropdownMenu: react48.NamedExoticComponent<DropdownMenuProps<unknown>>;
6
6
  //#endregion
7
7
  export { DropdownMenu };
8
8
  //# sourceMappingURL=DropdownMenu.d.mts.map
@@ -1,6 +1,6 @@
1
1
  import { DropdownMenuPlacement } from "./type.mjs";
2
2
  import React from "react";
3
- import * as react_jsx_runtime0 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime22 from "react/jsx-runtime";
4
4
  import * as _base_ui_react_menu0 from "@base-ui/react/menu";
5
5
  import { Menu } from "@base-ui/react/menu";
6
6
 
@@ -19,7 +19,7 @@ declare const DropdownMenuTrigger: {
19
19
  nativeButton,
20
20
  ref: refProp,
21
21
  ...rest
22
- }: DropdownMenuTriggerProps): react_jsx_runtime0.JSX.Element;
22
+ }: DropdownMenuTriggerProps): react_jsx_runtime22.JSX.Element;
23
23
  displayName: string;
24
24
  };
25
25
  type DropdownMenuPortalProps = React.ComponentProps<typeof Menu.Portal> & {
@@ -32,7 +32,7 @@ declare const DropdownMenuPortal: {
32
32
  ({
33
33
  container,
34
34
  ...rest
35
- }: DropdownMenuPortalProps): react_jsx_runtime0.JSX.Element;
35
+ }: DropdownMenuPortalProps): react_jsx_runtime22.JSX.Element;
36
36
  displayName: string;
37
37
  };
38
38
  type DropdownMenuPositionerProps = React.ComponentProps<typeof Menu.Positioner> & {
@@ -48,7 +48,7 @@ declare const DropdownMenuPositioner: {
48
48
  side,
49
49
  sideOffset,
50
50
  ...rest
51
- }: DropdownMenuPositionerProps): react_jsx_runtime0.JSX.Element;
51
+ }: DropdownMenuPositionerProps): react_jsx_runtime22.JSX.Element;
52
52
  displayName: string;
53
53
  };
54
54
  type DropdownMenuPopupProps = React.ComponentProps<typeof Menu.Popup>;
@@ -56,7 +56,7 @@ declare const DropdownMenuPopup: {
56
56
  ({
57
57
  className,
58
58
  ...rest
59
- }: DropdownMenuPopupProps): react_jsx_runtime0.JSX.Element;
59
+ }: DropdownMenuPopupProps): react_jsx_runtime22.JSX.Element;
60
60
  displayName: string;
61
61
  };
62
62
  type DropdownMenuItemProps = React.ComponentProps<typeof Menu.Item> & {
@@ -67,7 +67,7 @@ declare const DropdownMenuItem: {
67
67
  className,
68
68
  danger,
69
69
  ...rest
70
- }: DropdownMenuItemProps): react_jsx_runtime0.JSX.Element;
70
+ }: DropdownMenuItemProps): react_jsx_runtime22.JSX.Element;
71
71
  displayName: string;
72
72
  };
73
73
  type DropdownMenuCheckboxItemProps = React.ComponentProps<typeof Menu.CheckboxItem> & {
@@ -78,7 +78,7 @@ declare const DropdownMenuCheckboxItemPrimitive: {
78
78
  className,
79
79
  danger,
80
80
  ...rest
81
- }: DropdownMenuCheckboxItemProps): react_jsx_runtime0.JSX.Element;
81
+ }: DropdownMenuCheckboxItemProps): react_jsx_runtime22.JSX.Element;
82
82
  displayName: string;
83
83
  };
84
84
  type DropdownMenuSeparatorProps = React.ComponentProps<typeof Menu.Separator>;
@@ -86,7 +86,7 @@ declare const DropdownMenuSeparator: {
86
86
  ({
87
87
  className,
88
88
  ...rest
89
- }: DropdownMenuSeparatorProps): react_jsx_runtime0.JSX.Element;
89
+ }: DropdownMenuSeparatorProps): react_jsx_runtime22.JSX.Element;
90
90
  displayName: string;
91
91
  };
92
92
  declare const DropdownMenuGroup: React.ForwardRefExoticComponent<_base_ui_react_menu0.MenuGroupProps & React.RefAttributes<Element>>;
@@ -95,7 +95,7 @@ declare const DropdownMenuGroupLabel: {
95
95
  ({
96
96
  className,
97
97
  ...rest
98
- }: DropdownMenuGroupLabelProps): react_jsx_runtime0.JSX.Element;
98
+ }: DropdownMenuGroupLabelProps): react_jsx_runtime22.JSX.Element;
99
99
  displayName: string;
100
100
  };
101
101
  type DropdownMenuSubmenuTriggerProps = React.ComponentProps<typeof Menu.SubmenuTrigger> & {
@@ -106,7 +106,7 @@ declare const DropdownMenuSubmenuTrigger: {
106
106
  className,
107
107
  danger,
108
108
  ...rest
109
- }: DropdownMenuSubmenuTriggerProps): react_jsx_runtime0.JSX.Element;
109
+ }: DropdownMenuSubmenuTriggerProps): react_jsx_runtime22.JSX.Element;
110
110
  displayName: string;
111
111
  };
112
112
  type DropdownMenuItemContentProps = React.HTMLAttributes<HTMLDivElement>;
@@ -114,7 +114,7 @@ declare const DropdownMenuItemContent: {
114
114
  ({
115
115
  className,
116
116
  ...rest
117
- }: DropdownMenuItemContentProps): react_jsx_runtime0.JSX.Element;
117
+ }: DropdownMenuItemContentProps): react_jsx_runtime22.JSX.Element;
118
118
  displayName: string;
119
119
  };
120
120
  type DropdownMenuItemIconProps = React.HTMLAttributes<HTMLSpanElement>;
@@ -122,7 +122,7 @@ declare const DropdownMenuItemIcon: {
122
122
  ({
123
123
  className,
124
124
  ...rest
125
- }: DropdownMenuItemIconProps): react_jsx_runtime0.JSX.Element;
125
+ }: DropdownMenuItemIconProps): react_jsx_runtime22.JSX.Element;
126
126
  displayName: string;
127
127
  };
128
128
  type DropdownMenuItemLabelProps = React.HTMLAttributes<HTMLSpanElement>;
@@ -130,7 +130,7 @@ declare const DropdownMenuItemLabel: {
130
130
  ({
131
131
  className,
132
132
  ...rest
133
- }: DropdownMenuItemLabelProps): react_jsx_runtime0.JSX.Element;
133
+ }: DropdownMenuItemLabelProps): react_jsx_runtime22.JSX.Element;
134
134
  displayName: string;
135
135
  };
136
136
  type DropdownMenuItemExtraProps = React.HTMLAttributes<HTMLSpanElement>;
@@ -138,7 +138,7 @@ declare const DropdownMenuItemExtra: {
138
138
  ({
139
139
  className,
140
140
  ...rest
141
- }: DropdownMenuItemExtraProps): react_jsx_runtime0.JSX.Element;
141
+ }: DropdownMenuItemExtraProps): react_jsx_runtime22.JSX.Element;
142
142
  displayName: string;
143
143
  };
144
144
  type DropdownMenuSubmenuArrowProps = React.HTMLAttributes<HTMLSpanElement>;
@@ -146,7 +146,7 @@ declare const DropdownMenuSubmenuArrow: {
146
146
  ({
147
147
  className,
148
148
  ...rest
149
- }: DropdownMenuSubmenuArrowProps): react_jsx_runtime0.JSX.Element;
149
+ }: DropdownMenuSubmenuArrowProps): react_jsx_runtime22.JSX.Element;
150
150
  displayName: string;
151
151
  };
152
152
  type DropdownMenuSwitchItemProps = Omit<React.ComponentProps<typeof Menu.Item>, 'onClick'> & {
@@ -167,7 +167,7 @@ declare const DropdownMenuSwitchItem: {
167
167
  onCheckedChange,
168
168
  children,
169
169
  ...rest
170
- }: DropdownMenuSwitchItemProps): react_jsx_runtime0.JSX.Element;
170
+ }: DropdownMenuSwitchItemProps): react_jsx_runtime22.JSX.Element;
171
171
  displayName: string;
172
172
  };
173
173
  //#endregion
@@ -63,12 +63,12 @@ const renderDropdownMenuItems = (items, keyPath = [], options) => {
63
63
  const checkboxItem = item;
64
64
  const label$1 = getItemLabel(checkboxItem);
65
65
  const labelText$1 = typeof label$1 === "string" ? label$1 : void 0;
66
- const isDanger = Boolean(checkboxItem.danger);
66
+ const isDanger$1 = Boolean(checkboxItem.danger);
67
67
  const indicator = /* @__PURE__ */ jsx(DropdownMenuCheckboxItemIndicator, { children: /* @__PURE__ */ jsx(Icon_default, { icon: Check }) });
68
68
  return /* @__PURE__ */ jsx(DropdownMenuCheckboxItemPrimitive, {
69
69
  checked: checkboxItem.checked,
70
70
  closeOnClick: checkboxItem.closeOnClick,
71
- danger: isDanger,
71
+ danger: isDanger$1,
72
72
  defaultChecked: checkboxItem.defaultChecked,
73
73
  disabled: checkboxItem.disabled,
74
74
  label: labelText$1,
@@ -80,11 +80,11 @@ const renderDropdownMenuItems = (items, keyPath = [], options) => {
80
80
  const switchItem = item;
81
81
  const label$1 = getItemLabel(switchItem);
82
82
  const labelText$1 = typeof label$1 === "string" ? label$1 : void 0;
83
- const isDanger = Boolean(switchItem.danger);
83
+ const isDanger$1 = Boolean(switchItem.danger);
84
84
  return /* @__PURE__ */ jsx(DropdownMenuSwitchItem, {
85
85
  checked: switchItem.checked,
86
86
  closeOnClick: switchItem.closeOnClick,
87
- danger: isDanger,
87
+ danger: isDanger$1,
88
88
  defaultChecked: switchItem.defaultChecked,
89
89
  disabled: switchItem.disabled,
90
90
  label: labelText$1,
@@ -118,8 +118,10 @@ const renderDropdownMenuItems = (items, keyPath = [], options) => {
118
118
  const menuItem = item;
119
119
  const label = getItemLabel(menuItem);
120
120
  const labelText = typeof label === "string" ? label : void 0;
121
+ const isDanger = "danger" in menuItem && Boolean(menuItem.danger);
121
122
  return /* @__PURE__ */ jsx(DropdownMenuItem, {
122
- danger: "danger" in menuItem && Boolean(menuItem.danger),
123
+ closeOnClick: menuItem.closeOnClick,
124
+ danger: isDanger,
123
125
  disabled: menuItem.disabled,
124
126
  label: labelText,
125
127
  onClick: (event) => invokeItemClick(menuItem, nextKeyPath, event),