@lobehub/ui 4.17.1 → 4.18.1
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/es/Accordion/Accordion.d.mts +2 -2
- package/es/Accordion/AccordionItem.d.mts +2 -2
- package/es/ActionIcon/ActionIcon.d.mts +2 -2
- package/es/Alert/Alert.d.mts +2 -2
- package/es/AutoComplete/Select.d.mts +2 -2
- package/es/Avatar/AvatarGroup/index.d.mts +2 -2
- package/es/Burger/Burger.d.mts +2 -2
- package/es/CodeDiff/CodeDiff.d.mts +8 -0
- package/es/CodeDiff/CodeDiff.mjs +122 -0
- package/es/CodeDiff/CodeDiff.mjs.map +1 -0
- package/es/CodeDiff/PatchDiff.d.mts +8 -0
- package/es/CodeDiff/PatchDiff.mjs +101 -0
- package/es/CodeDiff/PatchDiff.mjs.map +1 -0
- package/es/CodeDiff/index.d.mts +4 -0
- package/es/CodeDiff/index.d.ts +1 -0
- package/es/CodeDiff/index.js +1 -0
- package/es/CodeDiff/index.mjs +4 -0
- package/es/CodeDiff/style.mjs +122 -0
- package/es/CodeDiff/style.mjs.map +1 -0
- package/es/CodeDiff/type.d.mts +123 -0
- package/es/CodeEditor/CodeEditor.d.mts +2 -2
- package/es/Collapse/Collapse.d.mts +2 -2
- package/es/ConfigProvider/index.d.mts +2 -2
- package/es/ContextMenu/ContextMenuHost.d.mts +3 -3
- package/es/CopyButton/CopyButton.d.mts +2 -2
- package/es/DraggablePanel/components/DraggablePanelBody.d.mts +2 -2
- package/es/DraggablePanel/components/DraggablePanelFooter.d.mts +2 -2
- package/es/DraggablePanel/components/DraggablePanelHeader.d.mts +2 -2
- package/es/DraggableSideNav/DraggableSideNav.d.mts +2 -2
- package/es/Drawer/Drawer.d.mts +2 -2
- package/es/Dropdown/Dropdown.d.mts +2 -2
- package/es/DropdownMenu/DropdownMenu.d.mts +2 -2
- package/es/DropdownMenu/DropdownMenu.mjs +13 -42
- package/es/DropdownMenu/DropdownMenu.mjs.map +1 -1
- package/es/DropdownMenu/atoms.d.mts +145 -0
- package/es/DropdownMenu/atoms.mjs +163 -0
- package/es/DropdownMenu/atoms.mjs.map +1 -0
- package/es/DropdownMenu/index.d.mts +3 -1
- package/es/DropdownMenu/index.mjs +3 -1
- package/es/DropdownMenu/renderItems.d.mts +10 -0
- package/es/DropdownMenu/renderItems.mjs +22 -47
- package/es/DropdownMenu/renderItems.mjs.map +1 -1
- package/es/EditableText/EditableText.d.mts +2 -2
- package/es/EmojiPicker/EmojiPicker.d.mts +2 -2
- package/es/Flex/FlexBasic.d.mts +2 -2
- package/es/FontLoader/index.d.mts +2 -2
- package/es/Footer/Footer.d.mts +2 -2
- package/es/Form/components/FormGroup.d.mts +2 -2
- package/es/Form/components/FormItem.d.mts +2 -2
- package/es/Form/components/FormSubmitFooter.d.mts +2 -2
- package/es/FormModal/FormModal.d.mts +2 -2
- package/es/GuideCard/GuideCard.d.mts +2 -2
- package/es/Header/Header.d.mts +2 -2
- package/es/Highlighter/Highlighter.d.mts +2 -2
- package/es/Highlighter/SyntaxHighlighter/index.d.mts +2 -2
- package/es/Hotkey/Hotkey.d.mts +2 -2
- package/es/HotkeyInput/HotkeyInput.d.mts +2 -2
- package/es/Icon/components/IconProvider.d.mts +3 -3
- package/es/Image/PreviewGroup.d.mts +2 -2
- package/es/ImageSelect/ImageSelect.d.mts +2 -2
- package/es/Input/Input.d.mts +2 -2
- package/es/Input/InputNumber.d.mts +2 -2
- package/es/Input/InputOPT.d.mts +2 -2
- package/es/Input/InputPassword.d.mts +2 -2
- package/es/Input/TextArea.d.mts +2 -2
- package/es/Layout/components/LayoutFooter.d.mts +2 -2
- package/es/Layout/components/LayoutHeader.d.mts +2 -2
- package/es/Layout/components/LayoutMain.d.mts +2 -2
- package/es/Layout/components/LayoutSidebar.d.mts +2 -2
- package/es/Layout/components/LayoutSidebarInner.d.mts +2 -2
- package/es/Layout/components/LayoutToc.d.mts +2 -2
- package/es/List/ListItem/index.d.mts +2 -2
- package/es/Markdown/Markdown.d.mts +2 -2
- package/es/Markdown/Typography.d.mts +2 -2
- package/es/Markdown/components/SearchResultCards/index.d.mts +2 -2
- package/es/Markdown/type.d.mts +1 -2
- package/es/Menu/Menu.d.mts +2 -2
- package/es/Menu/sharedStyle.mjs +1 -1
- package/es/Menu/sharedStyle.mjs.map +1 -1
- package/es/Mermaid/Mermaid.d.mts +2 -2
- package/es/Mermaid/SyntaxMermaid/index.d.mts +2 -2
- package/es/Mermaid/type.d.mts +1 -1
- package/es/Modal/Modal.d.mts +2 -2
- package/es/Modal/ModalProvider.d.mts +2 -2
- package/es/Modal/imperative.d.mts +2 -2
- package/es/MotionProvider/index.d.mts +2 -2
- package/es/Popover/ArrowIcon.d.mts +7 -0
- package/es/Popover/PopoverGroup.mjs +14 -15
- package/es/Popover/PopoverGroup.mjs.map +1 -1
- package/es/Popover/PopoverPortal.d.mts +6 -0
- package/es/Popover/PopoverPortal.mjs +1 -1
- package/es/Popover/PopoverStandalone.mjs +20 -49
- package/es/Popover/PopoverStandalone.mjs.map +1 -1
- package/es/Popover/atoms.d.mts +77 -0
- package/es/Popover/atoms.mjs +104 -0
- package/es/Popover/atoms.mjs.map +1 -0
- package/es/Popover/context.d.mts +2 -2
- package/es/Popover/groupContext.d.mts +1 -0
- package/es/Popover/groupContext.mjs.map +1 -1
- package/es/Popover/index.d.mts +5 -2
- package/es/Popover/index.mjs +4 -1
- package/es/SearchBar/SearchBar.d.mts +2 -2
- package/es/Segmented/Segmented.d.mts +2 -2
- package/es/Select/Select.d.mts +2 -2
- package/es/SideNav/SideNav.d.mts +2 -2
- package/es/SliderWithInput/SliderWithInput.d.mts +2 -2
- package/es/SortableList/components/DragHandle.d.mts +2 -2
- package/es/SortableList/components/SortableItem.d.mts +2 -2
- package/es/ThemeProvider/ThemeProvider.d.mts +2 -2
- package/es/Toc/Toc.d.mts +2 -2
- package/es/Tooltip/groupContext.mjs.map +1 -1
- package/es/Video/index.d.mts +2 -2
- package/es/awesome/AuroraBackground/AuroraBackground.d.mts +2 -2
- package/es/awesome/BottomGradientButton/BottomGradientButton.d.mts +2 -2
- package/es/awesome/Features/Features.d.mts +2 -2
- package/es/awesome/Giscus/Giscus.d.mts +2 -2
- package/es/awesome/Giscus/type.d.mts +4 -4
- package/es/awesome/GradientButton/GradientButton.d.mts +2 -2
- package/es/awesome/GridBackground/GridBackground.d.mts +2 -2
- package/es/awesome/GridBackground/GridShowcase.d.mts +2 -2
- package/es/awesome/Hero/Hero.d.mts +2 -2
- package/es/awesome/Spline/Spine.d.mts +2 -2
- package/es/awesome/Spotlight/Spotlight.d.mts +2 -2
- package/es/awesome/SpotlightCard/SpotlightCard.d.mts +2 -2
- package/es/awesome/TypewriterEffect/TypewriterEffect.d.mts +2 -2
- package/es/brand/LobeChat/index.d.mts +2 -2
- package/es/brand/LobeHub/index.d.mts +2 -2
- package/es/brand/LogoThree/LogoSpline.d.mts +2 -2
- package/es/brand/LogoThree/index.d.mts +2 -2
- package/es/chat/BackBottom/BackBottom.d.mts +2 -2
- package/es/chat/ChatInputArea/components/ChatInputAreaInner.d.mts +2 -2
- package/es/chat/ChatItem/ChatItem.d.mts +2 -2
- package/es/chat/ChatList/ChatList.d.mts +2 -2
- package/es/chat/EditableMessage/EditableMessage.d.mts +2 -2
- package/es/chat/EditableMessageList/EditableMessageList.d.mts +2 -2
- package/es/chat/MessageInput/MessageInput.d.mts +2 -2
- package/es/chat/MessageModal/MessageModal.d.mts +2 -2
- package/es/color/ColorScales/index.d.mts +2 -2
- package/es/color/CssVar/index.d.mts +2 -2
- package/es/hooks/useMermaid.mjs.map +1 -1
- package/es/hooks/useStreamMermaid.mjs.map +1 -1
- package/es/i18n/context.d.mts +2 -2
- package/es/icons/lucideExtra/BotPromptIcon.d.mts +2 -2
- package/es/icons/lucideExtra/CreateBotIcon.d.mts +3 -3
- package/es/icons/lucideExtra/DiscordIcon.d.mts +3 -3
- package/es/icons/lucideExtra/GlobeOffIcon.d.mts +3 -3
- package/es/icons/lucideExtra/GroupBotIcon.d.mts +3 -3
- package/es/icons/lucideExtra/GroupBotSquareIcon.d.mts +3 -3
- package/es/icons/lucideExtra/LeftClickIcon.d.mts +3 -3
- package/es/icons/lucideExtra/LeftDoubleClickIcon.d.mts +3 -3
- package/es/icons/lucideExtra/McpIcon.d.mts +3 -3
- package/es/icons/lucideExtra/ProviderIcon.d.mts +3 -3
- package/es/icons/lucideExtra/RightClickIcon.d.mts +3 -3
- package/es/icons/lucideExtra/RightDoubleClickIcon.d.mts +3 -3
- package/es/icons/lucideExtra/ShapesUploadIcon.d.mts +3 -3
- package/es/icons/lucideExtra/TreeDownRightIcon.d.mts +3 -3
- package/es/icons/lucideExtra/TreeUpDownRightIcon.d.mts +3 -3
- package/es/index.d.mts +7 -2
- package/es/index.mjs +6 -1
- package/es/mdx/Mdx/index.d.mts +2 -2
- package/es/mobile/ChatHeader/ChatHeaderTitle.d.mts +2 -2
- package/es/mobile/ChatInputArea/components/ChatSendButton.d.mts +2 -2
- package/es/mobile/TabBar/TabBar.d.mts +2 -2
- package/es/storybook/StoryBook/index.d.mts +2 -2
- package/es/utils/placement.d.mts +7 -1
- package/es/utils/placement.mjs.map +1 -1
- package/package.json +2 -1
|
@@ -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
|
|
4
|
+
import * as react32 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:
|
|
22
|
+
declare const ConfigProvider: react32.NamedExoticComponent<ConfigProviderProps>;
|
|
23
23
|
type CdnFn = ({
|
|
24
24
|
pkg,
|
|
25
25
|
version,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import * as
|
|
1
|
+
import * as react119 from "react";
|
|
2
|
+
import * as react_jsx_runtime19 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/ContextMenu/ContextMenuHost.d.ts
|
|
5
|
-
declare const ContextMenuHost:
|
|
5
|
+
declare const ContextMenuHost: react119.MemoExoticComponent<() => react_jsx_runtime19.JSX.Element | null>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { ContextMenuHost };
|
|
8
8
|
//# sourceMappingURL=ContextMenuHost.d.mts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { CopyButtonProps } from "./type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react26 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/CopyButton/CopyButton.d.ts
|
|
5
|
-
declare const CopyButton:
|
|
5
|
+
declare const CopyButton: react26.NamedExoticComponent<CopyButtonProps>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { CopyButton };
|
|
8
8
|
//# sourceMappingURL=CopyButton.d.mts.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { DivProps } from "../../types/index.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react22 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/DraggablePanel/components/DraggablePanelBody.d.ts
|
|
5
5
|
type DraggablePanelBodyProps = DivProps;
|
|
6
|
-
declare const DraggablePanelBody:
|
|
6
|
+
declare const DraggablePanelBody: react22.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
|
|
2
|
+
import * as react23 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/DraggablePanel/components/DraggablePanelFooter.d.ts
|
|
5
5
|
type DraggablePanelFooterProps = DivProps;
|
|
6
|
-
declare const DraggablePanelFooter:
|
|
6
|
+
declare const DraggablePanelFooter: react23.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
|
|
2
|
+
import * as react24 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:
|
|
12
|
+
declare const DraggablePanelHeader: react24.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
|
|
2
|
+
import * as react19 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/DraggableSideNav/DraggableSideNav.d.ts
|
|
5
|
-
declare const DraggableSideNav:
|
|
5
|
+
declare const DraggableSideNav: react19.NamedExoticComponent<DraggableSideNavProps>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { DraggableSideNav };
|
|
8
8
|
//# sourceMappingURL=DraggableSideNav.d.mts.map
|
package/es/Drawer/Drawer.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { DrawerProps } from "./type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react20 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/Drawer/Drawer.d.ts
|
|
5
|
-
declare const Drawer:
|
|
5
|
+
declare const Drawer: react20.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
|
|
2
|
+
import * as react39 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/Dropdown/Dropdown.d.ts
|
|
5
5
|
|
|
@@ -9,7 +9,7 @@ import * as react18 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:
|
|
12
|
+
declare const Dropdown: react39.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
|
|
2
|
+
import * as react0 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/DropdownMenu/DropdownMenu.d.ts
|
|
5
|
-
declare const DropdownMenu:
|
|
5
|
+
declare const DropdownMenu: react0.NamedExoticComponent<DropdownMenuProps<unknown>>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { DropdownMenu };
|
|
8
8
|
//# sourceMappingURL=DropdownMenu.d.mts.map
|
|
@@ -1,20 +1,13 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { useNativeButton } from "../hooks/useNativeButton.mjs";
|
|
4
|
-
import {
|
|
5
|
-
import { CLASSNAMES } from "../styles/classNames.mjs";
|
|
6
|
-
import { styles } from "../Menu/sharedStyle.mjs";
|
|
7
|
-
import { usePortalContainer } from "../hooks/usePortalContainer.mjs";
|
|
4
|
+
import { DropdownMenuPopup, DropdownMenuPortal, DropdownMenuPositioner, DropdownMenuTrigger } from "./atoms.mjs";
|
|
8
5
|
import { renderDropdownMenuItems } from "./renderItems.mjs";
|
|
9
|
-
import {
|
|
6
|
+
import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
10
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
|
-
import { cx } from "antd-style";
|
|
12
|
-
import { mergeProps } from "@base-ui/react/merge-props";
|
|
13
8
|
import { Menu } from "@base-ui/react/menu";
|
|
14
|
-
import clsx from "clsx";
|
|
15
9
|
|
|
16
10
|
//#region src/DropdownMenu/DropdownMenu.tsx
|
|
17
|
-
const DROPDOWN_MENU_CONTAINER_ATTR = "data-lobe-ui-dropdown-menu-container";
|
|
18
11
|
const DropdownMenu = memo(({ children, defaultOpen, items, nativeButton, onOpenChange, onOpenChangeComplete, open, placement = "bottomLeft", popupProps, portalProps, positionerProps, triggerProps, ...rest }) => {
|
|
19
12
|
const [uncontrolledOpen, setUncontrolledOpen] = useState(Boolean(defaultOpen));
|
|
20
13
|
useEffect(() => {
|
|
@@ -39,55 +32,33 @@ const DropdownMenu = memo(({ children, defaultOpen, items, nativeButton, onOpenC
|
|
|
39
32
|
onOpenChangeComplete?.(nextOpen);
|
|
40
33
|
if (!nextOpen) menuItemsRef.current = null;
|
|
41
34
|
}, [onOpenChangeComplete]);
|
|
42
|
-
const portalContainer = usePortalContainer(DROPDOWN_MENU_CONTAINER_ATTR);
|
|
43
|
-
const placementConfig = placementMap[placement];
|
|
44
35
|
const hoverTrigger = Boolean(triggerProps?.openOnHover);
|
|
45
|
-
const {
|
|
36
|
+
const { container: portalContainer, ...restPortalProps } = portalProps ?? {};
|
|
37
|
+
const { resolvedNativeButton } = useNativeButton({
|
|
46
38
|
children,
|
|
47
39
|
nativeButton,
|
|
48
40
|
triggerNativeButton: triggerProps?.nativeButton
|
|
49
41
|
});
|
|
50
|
-
const
|
|
51
|
-
const resolvedProps = (() => {
|
|
52
|
-
if (isNativeButtonTriggerElement) return props;
|
|
53
|
-
const { type, ...restProps } = props;
|
|
54
|
-
return restProps;
|
|
55
|
-
})();
|
|
56
|
-
return cloneElement(children, mergeProps(children.props, resolvedProps));
|
|
57
|
-
}, [children, isNativeButtonTriggerElement]);
|
|
58
|
-
const trigger = isValidElement(children) ? /* @__PURE__ */ jsx(Menu.Trigger, {
|
|
42
|
+
const trigger = /* @__PURE__ */ jsx(DropdownMenuTrigger, {
|
|
59
43
|
...triggerProps,
|
|
60
|
-
className: clsx(CLASSNAMES.DropdownMenuTrigger, triggerProps?.className),
|
|
61
44
|
nativeButton: resolvedNativeButton,
|
|
62
|
-
render: renderer
|
|
63
|
-
}) : /* @__PURE__ */ jsx(Menu.Trigger, {
|
|
64
|
-
...triggerProps,
|
|
65
|
-
className: clsx(CLASSNAMES.DropdownMenuTrigger, triggerProps?.className),
|
|
66
45
|
children
|
|
67
46
|
});
|
|
68
|
-
const resolvedPositionerProps = {
|
|
69
|
-
...positionerProps,
|
|
70
|
-
align: positionerProps?.align ?? placementConfig?.align ?? "center",
|
|
71
|
-
side: positionerProps?.side ?? placementConfig?.side ?? "bottom",
|
|
72
|
-
sideOffset: positionerProps?.sideOffset ?? 6
|
|
73
|
-
};
|
|
74
47
|
return /* @__PURE__ */ jsxs(Menu.Root, {
|
|
75
48
|
...rest,
|
|
76
49
|
defaultOpen,
|
|
77
50
|
onOpenChange: handleOpenChange,
|
|
78
51
|
onOpenChangeComplete: handleOpenChangeComplete,
|
|
79
52
|
open,
|
|
80
|
-
children: [trigger, /* @__PURE__ */ jsx(
|
|
81
|
-
container:
|
|
82
|
-
...
|
|
83
|
-
children: /* @__PURE__ */ jsx(
|
|
84
|
-
...
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
children: /* @__PURE__ */ jsx(Menu.Popup, {
|
|
53
|
+
children: [trigger, /* @__PURE__ */ jsx(DropdownMenuPortal, {
|
|
54
|
+
container: portalContainer,
|
|
55
|
+
...restPortalProps,
|
|
56
|
+
children: /* @__PURE__ */ jsx(DropdownMenuPositioner, {
|
|
57
|
+
...positionerProps,
|
|
58
|
+
hoverTrigger,
|
|
59
|
+
placement,
|
|
60
|
+
children: /* @__PURE__ */ jsx(DropdownMenuPopup, {
|
|
89
61
|
...popupProps,
|
|
90
|
-
className: (state) => cx(styles.popup, typeof popupProps?.className === "function" ? popupProps.className(state) : popupProps?.className),
|
|
91
62
|
children: menuItems
|
|
92
63
|
})
|
|
93
64
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownMenu.mjs","names":[
|
|
1
|
+
{"version":3,"file":"DropdownMenu.mjs","names":[],"sources":["../../src/DropdownMenu/DropdownMenu.tsx"],"sourcesContent":["'use client';\n\nimport { Menu } from '@base-ui/react/menu';\nimport { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { useNativeButton } from '@/hooks/useNativeButton';\n\nimport {\n DropdownMenuPopup,\n DropdownMenuPortal,\n DropdownMenuPositioner,\n DropdownMenuTrigger,\n} from './atoms';\nimport { renderDropdownMenuItems } from './renderItems';\nimport type { DropdownMenuProps } from './type';\n\nconst DropdownMenu = memo<DropdownMenuProps>(\n ({\n children,\n defaultOpen,\n\n items,\n nativeButton,\n onOpenChange,\n onOpenChangeComplete,\n open,\n placement = 'bottomLeft',\n popupProps,\n portalProps,\n positionerProps,\n triggerProps,\n ...rest\n }) => {\n const [uncontrolledOpen, setUncontrolledOpen] = useState(Boolean(defaultOpen));\n\n useEffect(() => {\n if (open === undefined) return;\n setUncontrolledOpen(open);\n }, [open]);\n\n const handleOpenChange = useCallback(\n (nextOpen: boolean, details: Parameters<NonNullable<typeof onOpenChange>>[1]) => {\n onOpenChange?.(nextOpen, details);\n if (open === undefined) {\n setUncontrolledOpen(nextOpen);\n }\n },\n [onOpenChange, open],\n );\n\n const menuItemsRef = useRef<ReturnType<typeof renderDropdownMenuItems> | null>(null);\n const isOpen = open ?? uncontrolledOpen;\n const menuItems = useMemo(() => {\n if (isOpen) {\n const resolvedItems = typeof items === 'function' ? items() : items;\n const renderedItems = renderDropdownMenuItems(resolvedItems);\n menuItemsRef.current = renderedItems;\n return renderedItems;\n }\n return menuItemsRef.current;\n }, [isOpen, items]);\n const handleOpenChangeComplete = useCallback(\n (nextOpen: boolean) => {\n onOpenChangeComplete?.(nextOpen);\n if (!nextOpen) {\n menuItemsRef.current = null;\n }\n },\n [onOpenChangeComplete],\n );\n const hoverTrigger = Boolean((triggerProps as any)?.openOnHover);\n const { container: portalContainer, ...restPortalProps } = (portalProps ?? {}) as any;\n\n const { resolvedNativeButton } = useNativeButton({\n children,\n nativeButton,\n triggerNativeButton: triggerProps?.nativeButton,\n });\n\n const trigger = (\n <DropdownMenuTrigger {...triggerProps} nativeButton={resolvedNativeButton}>\n {children}\n </DropdownMenuTrigger>\n );\n\n return (\n <Menu.Root\n {...rest}\n defaultOpen={defaultOpen}\n onOpenChange={handleOpenChange}\n onOpenChangeComplete={handleOpenChangeComplete}\n open={open}\n >\n {trigger}\n <DropdownMenuPortal container={portalContainer} {...restPortalProps}>\n <DropdownMenuPositioner\n {...positionerProps}\n hoverTrigger={hoverTrigger}\n placement={placement}\n >\n <DropdownMenuPopup {...popupProps}>{menuItems}</DropdownMenuPopup>\n </DropdownMenuPositioner>\n </DropdownMenuPortal>\n </Menu.Root>\n );\n },\n);\n\nDropdownMenu.displayName = 'DropdownMenuV2';\n\nexport default DropdownMenu;\n"],"mappings":";;;;;;;;;;AAgBA,MAAM,eAAe,MAClB,EACC,UACA,aAEA,OACA,cACA,cACA,sBACA,MACA,YAAY,cACZ,YACA,aACA,iBACA,cACA,GAAG,WACC;CACJ,MAAM,CAAC,kBAAkB,uBAAuB,SAAS,QAAQ,YAAY,CAAC;AAE9E,iBAAgB;AACd,MAAI,SAAS,OAAW;AACxB,sBAAoB,KAAK;IACxB,CAAC,KAAK,CAAC;CAEV,MAAM,mBAAmB,aACtB,UAAmB,YAA6D;AAC/E,iBAAe,UAAU,QAAQ;AACjC,MAAI,SAAS,OACX,qBAAoB,SAAS;IAGjC,CAAC,cAAc,KAAK,CACrB;CAED,MAAM,eAAe,OAA0D,KAAK;CACpF,MAAM,SAAS,QAAQ;CACvB,MAAM,YAAY,cAAc;AAC9B,MAAI,QAAQ;GAEV,MAAM,gBAAgB,wBADA,OAAO,UAAU,aAAa,OAAO,GAAG,MACF;AAC5D,gBAAa,UAAU;AACvB,UAAO;;AAET,SAAO,aAAa;IACnB,CAAC,QAAQ,MAAM,CAAC;CACnB,MAAM,2BAA2B,aAC9B,aAAsB;AACrB,yBAAuB,SAAS;AAChC,MAAI,CAAC,SACH,cAAa,UAAU;IAG3B,CAAC,qBAAqB,CACvB;CACD,MAAM,eAAe,QAAS,cAAsB,YAAY;CAChE,MAAM,EAAE,WAAW,iBAAiB,GAAG,oBAAqB,eAAe,EAAE;CAE7E,MAAM,EAAE,yBAAyB,gBAAgB;EAC/C;EACA;EACA,qBAAqB,cAAc;EACpC,CAAC;CAEF,MAAM,UACJ,oBAAC;EAAoB,GAAI;EAAc,cAAc;EAClD;GACmB;AAGxB,QACE,qBAAC,KAAK;EACJ,GAAI;EACS;EACb,cAAc;EACd,sBAAsB;EAChB;aAEL,SACD,oBAAC;GAAmB,WAAW;GAAiB,GAAI;aAClD,oBAAC;IACC,GAAI;IACU;IACH;cAEX,oBAAC;KAAkB,GAAI;eAAa;MAA8B;KAC3C;IACN;GACX;EAGjB;AAED,aAAa,cAAc;AAE3B,2BAAe"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { DropdownMenuPlacement } from "./type.mjs";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
|
+
import * as _base_ui_react_menu0 from "@base-ui/react/menu";
|
|
5
|
+
import { Menu } from "@base-ui/react/menu";
|
|
6
|
+
|
|
7
|
+
//#region src/DropdownMenu/atoms.d.ts
|
|
8
|
+
declare const DROPDOWN_MENU_CONTAINER_ATTR = "data-lobe-ui-dropdown-menu-container";
|
|
9
|
+
declare const DropdownMenuRoot: typeof Menu.Root;
|
|
10
|
+
declare const DropdownMenuSubmenuRoot: typeof Menu.SubmenuRoot;
|
|
11
|
+
declare const DropdownMenuCheckboxItemIndicator: React.ForwardRefExoticComponent<_base_ui_react_menu0.MenuCheckboxItemIndicatorProps & React.RefAttributes<HTMLSpanElement>>;
|
|
12
|
+
type DropdownMenuTriggerProps = Omit<React.ComponentProps<typeof Menu.Trigger>, 'children' | 'render'> & {
|
|
13
|
+
children: React.ReactNode;
|
|
14
|
+
};
|
|
15
|
+
declare const DropdownMenuTrigger: React.ForwardRefExoticComponent<Omit<DropdownMenuTriggerProps, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
16
|
+
type DropdownMenuPortalProps = React.ComponentProps<typeof Menu.Portal> & {
|
|
17
|
+
/**
|
|
18
|
+
* When `container` is not provided, it uses a shared container created by `usePortalContainer`.
|
|
19
|
+
*/
|
|
20
|
+
container?: HTMLElement | null;
|
|
21
|
+
};
|
|
22
|
+
declare const DropdownMenuPortal: {
|
|
23
|
+
({
|
|
24
|
+
container,
|
|
25
|
+
...rest
|
|
26
|
+
}: DropdownMenuPortalProps): react_jsx_runtime0.JSX.Element;
|
|
27
|
+
displayName: string;
|
|
28
|
+
};
|
|
29
|
+
type DropdownMenuPositionerProps = React.ComponentProps<typeof Menu.Positioner> & {
|
|
30
|
+
hoverTrigger?: boolean;
|
|
31
|
+
placement?: DropdownMenuPlacement;
|
|
32
|
+
};
|
|
33
|
+
declare const DropdownMenuPositioner: {
|
|
34
|
+
({
|
|
35
|
+
className,
|
|
36
|
+
placement,
|
|
37
|
+
hoverTrigger,
|
|
38
|
+
align,
|
|
39
|
+
side,
|
|
40
|
+
sideOffset,
|
|
41
|
+
...rest
|
|
42
|
+
}: DropdownMenuPositionerProps): react_jsx_runtime0.JSX.Element;
|
|
43
|
+
displayName: string;
|
|
44
|
+
};
|
|
45
|
+
type DropdownMenuPopupProps = React.ComponentProps<typeof Menu.Popup>;
|
|
46
|
+
declare const DropdownMenuPopup: {
|
|
47
|
+
({
|
|
48
|
+
className,
|
|
49
|
+
...rest
|
|
50
|
+
}: DropdownMenuPopupProps): react_jsx_runtime0.JSX.Element;
|
|
51
|
+
displayName: string;
|
|
52
|
+
};
|
|
53
|
+
type DropdownMenuItemProps = React.ComponentProps<typeof Menu.Item> & {
|
|
54
|
+
danger?: boolean;
|
|
55
|
+
};
|
|
56
|
+
declare const DropdownMenuItem: {
|
|
57
|
+
({
|
|
58
|
+
className,
|
|
59
|
+
danger,
|
|
60
|
+
...rest
|
|
61
|
+
}: DropdownMenuItemProps): react_jsx_runtime0.JSX.Element;
|
|
62
|
+
displayName: string;
|
|
63
|
+
};
|
|
64
|
+
type DropdownMenuCheckboxItemProps = React.ComponentProps<typeof Menu.CheckboxItem> & {
|
|
65
|
+
danger?: boolean;
|
|
66
|
+
};
|
|
67
|
+
declare const DropdownMenuCheckboxItemPrimitive: {
|
|
68
|
+
({
|
|
69
|
+
className,
|
|
70
|
+
danger,
|
|
71
|
+
...rest
|
|
72
|
+
}: DropdownMenuCheckboxItemProps): react_jsx_runtime0.JSX.Element;
|
|
73
|
+
displayName: string;
|
|
74
|
+
};
|
|
75
|
+
type DropdownMenuSeparatorProps = React.ComponentProps<typeof Menu.Separator>;
|
|
76
|
+
declare const DropdownMenuSeparator: {
|
|
77
|
+
({
|
|
78
|
+
className,
|
|
79
|
+
...rest
|
|
80
|
+
}: DropdownMenuSeparatorProps): react_jsx_runtime0.JSX.Element;
|
|
81
|
+
displayName: string;
|
|
82
|
+
};
|
|
83
|
+
declare const DropdownMenuGroup: React.ForwardRefExoticComponent<_base_ui_react_menu0.MenuGroupProps & React.RefAttributes<Element>>;
|
|
84
|
+
type DropdownMenuGroupLabelProps = React.ComponentProps<typeof Menu.GroupLabel>;
|
|
85
|
+
declare const DropdownMenuGroupLabel: {
|
|
86
|
+
({
|
|
87
|
+
className,
|
|
88
|
+
...rest
|
|
89
|
+
}: DropdownMenuGroupLabelProps): react_jsx_runtime0.JSX.Element;
|
|
90
|
+
displayName: string;
|
|
91
|
+
};
|
|
92
|
+
type DropdownMenuSubmenuTriggerProps = React.ComponentProps<typeof Menu.SubmenuTrigger> & {
|
|
93
|
+
danger?: boolean;
|
|
94
|
+
};
|
|
95
|
+
declare const DropdownMenuSubmenuTrigger: {
|
|
96
|
+
({
|
|
97
|
+
className,
|
|
98
|
+
danger,
|
|
99
|
+
...rest
|
|
100
|
+
}: DropdownMenuSubmenuTriggerProps): react_jsx_runtime0.JSX.Element;
|
|
101
|
+
displayName: string;
|
|
102
|
+
};
|
|
103
|
+
type DropdownMenuItemContentProps = React.HTMLAttributes<HTMLDivElement>;
|
|
104
|
+
declare const DropdownMenuItemContent: {
|
|
105
|
+
({
|
|
106
|
+
className,
|
|
107
|
+
...rest
|
|
108
|
+
}: DropdownMenuItemContentProps): react_jsx_runtime0.JSX.Element;
|
|
109
|
+
displayName: string;
|
|
110
|
+
};
|
|
111
|
+
type DropdownMenuItemIconProps = React.HTMLAttributes<HTMLSpanElement>;
|
|
112
|
+
declare const DropdownMenuItemIcon: {
|
|
113
|
+
({
|
|
114
|
+
className,
|
|
115
|
+
...rest
|
|
116
|
+
}: DropdownMenuItemIconProps): react_jsx_runtime0.JSX.Element;
|
|
117
|
+
displayName: string;
|
|
118
|
+
};
|
|
119
|
+
type DropdownMenuItemLabelProps = React.HTMLAttributes<HTMLSpanElement>;
|
|
120
|
+
declare const DropdownMenuItemLabel: {
|
|
121
|
+
({
|
|
122
|
+
className,
|
|
123
|
+
...rest
|
|
124
|
+
}: DropdownMenuItemLabelProps): react_jsx_runtime0.JSX.Element;
|
|
125
|
+
displayName: string;
|
|
126
|
+
};
|
|
127
|
+
type DropdownMenuItemExtraProps = React.HTMLAttributes<HTMLSpanElement>;
|
|
128
|
+
declare const DropdownMenuItemExtra: {
|
|
129
|
+
({
|
|
130
|
+
className,
|
|
131
|
+
...rest
|
|
132
|
+
}: DropdownMenuItemExtraProps): react_jsx_runtime0.JSX.Element;
|
|
133
|
+
displayName: string;
|
|
134
|
+
};
|
|
135
|
+
type DropdownMenuSubmenuArrowProps = React.HTMLAttributes<HTMLSpanElement>;
|
|
136
|
+
declare const DropdownMenuSubmenuArrow: {
|
|
137
|
+
({
|
|
138
|
+
className,
|
|
139
|
+
...rest
|
|
140
|
+
}: DropdownMenuSubmenuArrowProps): react_jsx_runtime0.JSX.Element;
|
|
141
|
+
displayName: string;
|
|
142
|
+
};
|
|
143
|
+
//#endregion
|
|
144
|
+
export { DROPDOWN_MENU_CONTAINER_ATTR, DropdownMenuCheckboxItemIndicator, DropdownMenuCheckboxItemPrimitive, DropdownMenuCheckboxItemProps, DropdownMenuGroup, DropdownMenuGroupLabel, DropdownMenuGroupLabelProps, DropdownMenuItem, DropdownMenuItemContent, DropdownMenuItemContentProps, DropdownMenuItemExtra, DropdownMenuItemExtraProps, DropdownMenuItemIcon, DropdownMenuItemIconProps, DropdownMenuItemLabel, DropdownMenuItemLabelProps, DropdownMenuItemProps, DropdownMenuPopup, DropdownMenuPopupProps, DropdownMenuPortal, DropdownMenuPortalProps, DropdownMenuPositioner, DropdownMenuPositionerProps, DropdownMenuRoot, DropdownMenuSeparator, DropdownMenuSeparatorProps, DropdownMenuSubmenuArrow, DropdownMenuSubmenuArrowProps, DropdownMenuSubmenuRoot, DropdownMenuSubmenuTrigger, DropdownMenuSubmenuTriggerProps, DropdownMenuTrigger, DropdownMenuTriggerProps };
|
|
145
|
+
//# sourceMappingURL=atoms.d.mts.map
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { useNativeButton } from "../hooks/useNativeButton.mjs";
|
|
4
|
+
import { placementMap } from "../utils/placement.mjs";
|
|
5
|
+
import { CLASSNAMES } from "../styles/classNames.mjs";
|
|
6
|
+
import { styles } from "../Menu/sharedStyle.mjs";
|
|
7
|
+
import { usePortalContainer } from "../hooks/usePortalContainer.mjs";
|
|
8
|
+
import { cloneElement, forwardRef, isValidElement } from "react";
|
|
9
|
+
import { jsx } from "react/jsx-runtime";
|
|
10
|
+
import { cx } from "antd-style";
|
|
11
|
+
import { mergeProps } from "@base-ui/react/merge-props";
|
|
12
|
+
import { mergeRefs } from "react-merge-refs";
|
|
13
|
+
import { Menu } from "@base-ui/react/menu";
|
|
14
|
+
import clsx from "clsx";
|
|
15
|
+
|
|
16
|
+
//#region src/DropdownMenu/atoms.tsx
|
|
17
|
+
const DROPDOWN_MENU_CONTAINER_ATTR = "data-lobe-ui-dropdown-menu-container";
|
|
18
|
+
const DropdownMenuRoot = Menu.Root;
|
|
19
|
+
const DropdownMenuSubmenuRoot = Menu.SubmenuRoot;
|
|
20
|
+
const DropdownMenuCheckboxItemIndicator = Menu.CheckboxItemIndicator;
|
|
21
|
+
const mergeStateClassName = (base, className) => {
|
|
22
|
+
if (typeof className === "function") return (state) => cx(base, className(state));
|
|
23
|
+
return cx(base, className);
|
|
24
|
+
};
|
|
25
|
+
const DropdownMenuTrigger = forwardRef(({ children, className, nativeButton, ...rest }, ref) => {
|
|
26
|
+
const { isNativeButtonTriggerElement, resolvedNativeButton } = useNativeButton({
|
|
27
|
+
children,
|
|
28
|
+
nativeButton
|
|
29
|
+
});
|
|
30
|
+
const renderer = (props) => {
|
|
31
|
+
const resolvedProps = (() => {
|
|
32
|
+
if (isNativeButtonTriggerElement) return props;
|
|
33
|
+
const { type, ...restProps } = props;
|
|
34
|
+
return restProps;
|
|
35
|
+
})();
|
|
36
|
+
const mergedProps = mergeProps(children.props, resolvedProps);
|
|
37
|
+
return cloneElement(children, {
|
|
38
|
+
...mergedProps,
|
|
39
|
+
className: clsx(CLASSNAMES.DropdownMenuTrigger, className, mergedProps.className),
|
|
40
|
+
ref: mergeRefs([
|
|
41
|
+
children.ref,
|
|
42
|
+
props.ref,
|
|
43
|
+
ref
|
|
44
|
+
])
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
if (isValidElement(children)) return /* @__PURE__ */ jsx(Menu.Trigger, {
|
|
48
|
+
...rest,
|
|
49
|
+
nativeButton: resolvedNativeButton,
|
|
50
|
+
render: renderer
|
|
51
|
+
});
|
|
52
|
+
return /* @__PURE__ */ jsx(Menu.Trigger, {
|
|
53
|
+
...rest,
|
|
54
|
+
className: clsx(CLASSNAMES.DropdownMenuTrigger, className),
|
|
55
|
+
nativeButton: resolvedNativeButton,
|
|
56
|
+
ref,
|
|
57
|
+
children
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
DropdownMenuTrigger.displayName = "DropdownMenuTrigger";
|
|
61
|
+
const DropdownMenuPortal = ({ container, ...rest }) => {
|
|
62
|
+
const defaultContainer = usePortalContainer(DROPDOWN_MENU_CONTAINER_ATTR);
|
|
63
|
+
return /* @__PURE__ */ jsx(Menu.Portal, {
|
|
64
|
+
container: container ?? defaultContainer,
|
|
65
|
+
...rest
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
DropdownMenuPortal.displayName = "DropdownMenuPortal";
|
|
69
|
+
const DropdownMenuPositioner = ({ className, placement, hoverTrigger, align, side, sideOffset, ...rest }) => {
|
|
70
|
+
const placementConfig = placement ? placementMap[placement] : void 0;
|
|
71
|
+
return /* @__PURE__ */ jsx(Menu.Positioner, {
|
|
72
|
+
...rest,
|
|
73
|
+
align: align ?? placementConfig?.align,
|
|
74
|
+
className: mergeStateClassName(styles.positioner, className),
|
|
75
|
+
"data-hover-trigger": hoverTrigger || void 0,
|
|
76
|
+
"data-placement": placement,
|
|
77
|
+
side: side ?? placementConfig?.side,
|
|
78
|
+
sideOffset: sideOffset ?? (placementConfig ? 6 : void 0)
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
DropdownMenuPositioner.displayName = "DropdownMenuPositioner";
|
|
82
|
+
const DropdownMenuPopup = ({ className, ...rest }) => {
|
|
83
|
+
return /* @__PURE__ */ jsx(Menu.Popup, {
|
|
84
|
+
...rest,
|
|
85
|
+
className: mergeStateClassName(styles.popup, className)
|
|
86
|
+
});
|
|
87
|
+
};
|
|
88
|
+
DropdownMenuPopup.displayName = "DropdownMenuPopup";
|
|
89
|
+
const DropdownMenuItem = ({ className, danger, ...rest }) => {
|
|
90
|
+
return /* @__PURE__ */ jsx(Menu.Item, {
|
|
91
|
+
...rest,
|
|
92
|
+
className: (state) => cx(styles.item, danger && styles.danger, typeof className === "function" ? className(state) : className)
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
DropdownMenuItem.displayName = "DropdownMenuItem";
|
|
96
|
+
const DropdownMenuCheckboxItemPrimitive = ({ className, danger, ...rest }) => {
|
|
97
|
+
return /* @__PURE__ */ jsx(Menu.CheckboxItem, {
|
|
98
|
+
...rest,
|
|
99
|
+
className: (state) => cx(styles.item, danger && styles.danger, typeof className === "function" ? className(state) : className)
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
DropdownMenuCheckboxItemPrimitive.displayName = "DropdownMenuCheckboxItemPrimitive";
|
|
103
|
+
const DropdownMenuSeparator = ({ className, ...rest }) => {
|
|
104
|
+
return /* @__PURE__ */ jsx(Menu.Separator, {
|
|
105
|
+
...rest,
|
|
106
|
+
className: (state) => cx(styles.separator, typeof className === "function" ? className(state) : className)
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
DropdownMenuSeparator.displayName = "DropdownMenuSeparator";
|
|
110
|
+
const DropdownMenuGroup = Menu.Group;
|
|
111
|
+
const DropdownMenuGroupLabel = ({ className, ...rest }) => {
|
|
112
|
+
return /* @__PURE__ */ jsx(Menu.GroupLabel, {
|
|
113
|
+
...rest,
|
|
114
|
+
className: (state) => cx(styles.groupLabel, typeof className === "function" ? className(state) : className)
|
|
115
|
+
});
|
|
116
|
+
};
|
|
117
|
+
DropdownMenuGroupLabel.displayName = "DropdownMenuGroupLabel";
|
|
118
|
+
const DropdownMenuSubmenuTrigger = ({ className, danger, ...rest }) => {
|
|
119
|
+
return /* @__PURE__ */ jsx(Menu.SubmenuTrigger, {
|
|
120
|
+
...rest,
|
|
121
|
+
className: (state) => cx(styles.item, danger && styles.danger, typeof className === "function" ? className(state) : className)
|
|
122
|
+
});
|
|
123
|
+
};
|
|
124
|
+
DropdownMenuSubmenuTrigger.displayName = "DropdownMenuSubmenuTrigger";
|
|
125
|
+
const DropdownMenuItemContent = ({ className, ...rest }) => {
|
|
126
|
+
return /* @__PURE__ */ jsx("div", {
|
|
127
|
+
...rest,
|
|
128
|
+
className: cx(styles.itemContent, className)
|
|
129
|
+
});
|
|
130
|
+
};
|
|
131
|
+
DropdownMenuItemContent.displayName = "DropdownMenuItemContent";
|
|
132
|
+
const DropdownMenuItemIcon = ({ className, ...rest }) => {
|
|
133
|
+
return /* @__PURE__ */ jsx("span", {
|
|
134
|
+
...rest,
|
|
135
|
+
className: cx(styles.icon, className)
|
|
136
|
+
});
|
|
137
|
+
};
|
|
138
|
+
DropdownMenuItemIcon.displayName = "DropdownMenuItemIcon";
|
|
139
|
+
const DropdownMenuItemLabel = ({ className, ...rest }) => {
|
|
140
|
+
return /* @__PURE__ */ jsx("span", {
|
|
141
|
+
...rest,
|
|
142
|
+
className: cx(styles.label, className)
|
|
143
|
+
});
|
|
144
|
+
};
|
|
145
|
+
DropdownMenuItemLabel.displayName = "DropdownMenuItemLabel";
|
|
146
|
+
const DropdownMenuItemExtra = ({ className, ...rest }) => {
|
|
147
|
+
return /* @__PURE__ */ jsx("span", {
|
|
148
|
+
...rest,
|
|
149
|
+
className: cx(styles.extra, className)
|
|
150
|
+
});
|
|
151
|
+
};
|
|
152
|
+
DropdownMenuItemExtra.displayName = "DropdownMenuItemExtra";
|
|
153
|
+
const DropdownMenuSubmenuArrow = ({ className, ...rest }) => {
|
|
154
|
+
return /* @__PURE__ */ jsx("span", {
|
|
155
|
+
...rest,
|
|
156
|
+
className: cx(styles.submenuArrow, className)
|
|
157
|
+
});
|
|
158
|
+
};
|
|
159
|
+
DropdownMenuSubmenuArrow.displayName = "DropdownMenuSubmenuArrow";
|
|
160
|
+
|
|
161
|
+
//#endregion
|
|
162
|
+
export { DROPDOWN_MENU_CONTAINER_ATTR, DropdownMenuCheckboxItemIndicator, DropdownMenuCheckboxItemPrimitive, DropdownMenuGroup, DropdownMenuGroupLabel, DropdownMenuItem, DropdownMenuItemContent, DropdownMenuItemExtra, DropdownMenuItemIcon, DropdownMenuItemLabel, DropdownMenuPopup, DropdownMenuPortal, DropdownMenuPositioner, DropdownMenuRoot, DropdownMenuSeparator, DropdownMenuSubmenuArrow, DropdownMenuSubmenuRoot, DropdownMenuSubmenuTrigger, DropdownMenuTrigger };
|
|
163
|
+
//# sourceMappingURL=atoms.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atoms.mjs","names":[],"sources":["../../src/DropdownMenu/atoms.tsx"],"sourcesContent":["'use client';\n\nimport { Menu } from '@base-ui/react/menu';\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport { cx } from 'antd-style';\nimport clsx from 'clsx';\nimport type React from 'react';\nimport { cloneElement, forwardRef, isValidElement } from 'react';\nimport { mergeRefs } from 'react-merge-refs';\n\nimport { styles } from '@/Menu/sharedStyle';\nimport { useNativeButton } from '@/hooks/useNativeButton';\nimport { usePortalContainer } from '@/hooks/usePortalContainer';\nimport { CLASSNAMES } from '@/styles/classNames';\nimport { placementMap } from '@/utils/placement';\n\nimport type { DropdownMenuPlacement } from './type';\n\nexport const DROPDOWN_MENU_CONTAINER_ATTR = 'data-lobe-ui-dropdown-menu-container';\n\nexport const DropdownMenuRoot = Menu.Root;\nexport const DropdownMenuSubmenuRoot = Menu.SubmenuRoot;\nexport const DropdownMenuCheckboxItemIndicator = Menu.CheckboxItemIndicator;\n\nconst mergeStateClassName = <TState,>(\n base: string,\n className: string | ((state: TState) => string | undefined) | undefined,\n) => {\n if (typeof className === 'function') return (state: TState) => cx(base, className(state));\n return cx(base, className);\n};\n\nexport type DropdownMenuTriggerProps = Omit<\n React.ComponentProps<typeof Menu.Trigger>,\n 'children' | 'render'\n> & {\n children: React.ReactNode;\n};\n\nexport const DropdownMenuTrigger = forwardRef<HTMLElement, DropdownMenuTriggerProps>(\n ({ children, className, nativeButton, ...rest }, ref) => {\n const { isNativeButtonTriggerElement, resolvedNativeButton } = useNativeButton({\n children,\n nativeButton,\n });\n\n const renderer = (props: any) => {\n // Base UI's trigger props include `type=\"button\"` by default.\n // If we render into a non-<button> element, that prop is invalid and can warn.\n const resolvedProps = (() => {\n if (isNativeButtonTriggerElement) return props as any;\n // eslint-disable-next-line unused-imports/no-unused-vars, @typescript-eslint/no-unused-vars\n const { type, ...restProps } = props as any;\n return restProps;\n })();\n\n const mergedProps = mergeProps((children as any).props, resolvedProps);\n return cloneElement(children as any, {\n ...mergedProps,\n className: clsx(CLASSNAMES.DropdownMenuTrigger, className, mergedProps.className),\n ref: mergeRefs([(children as any).ref, (props as any).ref, ref]),\n });\n };\n\n if (isValidElement(children)) {\n return (\n <Menu.Trigger {...rest} nativeButton={resolvedNativeButton} render={renderer as any} />\n );\n }\n\n return (\n <Menu.Trigger\n {...rest}\n className={clsx(CLASSNAMES.DropdownMenuTrigger, className)}\n nativeButton={resolvedNativeButton}\n ref={ref as any}\n >\n {children}\n </Menu.Trigger>\n );\n },\n);\n\nDropdownMenuTrigger.displayName = 'DropdownMenuTrigger';\n\nexport type DropdownMenuPortalProps = React.ComponentProps<typeof Menu.Portal> & {\n /**\n * When `container` is not provided, it uses a shared container created by `usePortalContainer`.\n */\n container?: HTMLElement | null;\n};\n\nexport const DropdownMenuPortal = ({ container, ...rest }: DropdownMenuPortalProps) => {\n const defaultContainer = usePortalContainer(DROPDOWN_MENU_CONTAINER_ATTR);\n return <Menu.Portal container={container ?? defaultContainer} {...rest} />;\n};\n\nDropdownMenuPortal.displayName = 'DropdownMenuPortal';\n\nexport type DropdownMenuPositionerProps = React.ComponentProps<typeof Menu.Positioner> & {\n hoverTrigger?: boolean;\n placement?: DropdownMenuPlacement;\n};\n\nexport const DropdownMenuPositioner = ({\n className,\n placement,\n hoverTrigger,\n align,\n side,\n sideOffset,\n ...rest\n}: DropdownMenuPositionerProps) => {\n const placementConfig = placement ? placementMap[placement] : undefined;\n\n return (\n <Menu.Positioner\n {...rest}\n align={align ?? placementConfig?.align}\n className={mergeStateClassName(styles.positioner, className as any) as any}\n data-hover-trigger={hoverTrigger || undefined}\n data-placement={placement}\n side={side ?? placementConfig?.side}\n sideOffset={sideOffset ?? (placementConfig ? 6 : undefined)}\n />\n );\n};\n\nDropdownMenuPositioner.displayName = 'DropdownMenuPositioner';\n\nexport type DropdownMenuPopupProps = React.ComponentProps<typeof Menu.Popup>;\n\nexport const DropdownMenuPopup = ({ className, ...rest }: DropdownMenuPopupProps) => {\n return (\n <Menu.Popup {...rest} className={mergeStateClassName(styles.popup, className as any) as any} />\n );\n};\n\nDropdownMenuPopup.displayName = 'DropdownMenuPopup';\n\nexport type DropdownMenuItemProps = React.ComponentProps<typeof Menu.Item> & { danger?: boolean };\n\nexport const DropdownMenuItem = ({ className, danger, ...rest }: DropdownMenuItemProps) => {\n return (\n <Menu.Item\n {...rest}\n className={(state) =>\n cx(\n styles.item,\n danger && styles.danger,\n typeof className === 'function' ? className(state) : className,\n )\n }\n />\n );\n};\n\nDropdownMenuItem.displayName = 'DropdownMenuItem';\n\nexport type DropdownMenuCheckboxItemProps = React.ComponentProps<typeof Menu.CheckboxItem> & {\n danger?: boolean;\n};\n\nexport const DropdownMenuCheckboxItemPrimitive = ({\n className,\n danger,\n ...rest\n}: DropdownMenuCheckboxItemProps) => {\n return (\n <Menu.CheckboxItem\n {...rest}\n className={(state) =>\n cx(\n styles.item,\n danger && styles.danger,\n typeof className === 'function' ? className(state) : className,\n )\n }\n />\n );\n};\n\nDropdownMenuCheckboxItemPrimitive.displayName = 'DropdownMenuCheckboxItemPrimitive';\n\nexport type DropdownMenuSeparatorProps = React.ComponentProps<typeof Menu.Separator>;\n\nexport const DropdownMenuSeparator = ({ className, ...rest }: DropdownMenuSeparatorProps) => {\n return (\n <Menu.Separator\n {...rest}\n className={(state) =>\n cx(styles.separator, typeof className === 'function' ? className(state) : className)\n }\n />\n );\n};\n\nDropdownMenuSeparator.displayName = 'DropdownMenuSeparator';\n\nexport const DropdownMenuGroup = Menu.Group;\n\nexport type DropdownMenuGroupLabelProps = React.ComponentProps<typeof Menu.GroupLabel>;\n\nexport const DropdownMenuGroupLabel = ({ className, ...rest }: DropdownMenuGroupLabelProps) => {\n return (\n <Menu.GroupLabel\n {...rest}\n className={(state) =>\n cx(styles.groupLabel, typeof className === 'function' ? className(state) : className)\n }\n />\n );\n};\n\nDropdownMenuGroupLabel.displayName = 'DropdownMenuGroupLabel';\n\nexport type DropdownMenuSubmenuTriggerProps = React.ComponentProps<typeof Menu.SubmenuTrigger> & {\n danger?: boolean;\n};\n\nexport const DropdownMenuSubmenuTrigger = ({\n className,\n danger,\n ...rest\n}: DropdownMenuSubmenuTriggerProps) => {\n return (\n <Menu.SubmenuTrigger\n {...rest}\n className={(state) =>\n cx(\n styles.item,\n danger && styles.danger,\n typeof className === 'function' ? className(state) : className,\n )\n }\n />\n );\n};\n\nDropdownMenuSubmenuTrigger.displayName = 'DropdownMenuSubmenuTrigger';\n\nexport type DropdownMenuItemContentProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const DropdownMenuItemContent = ({ className, ...rest }: DropdownMenuItemContentProps) => {\n return <div {...rest} className={cx(styles.itemContent, className)} />;\n};\n\nDropdownMenuItemContent.displayName = 'DropdownMenuItemContent';\n\nexport type DropdownMenuItemIconProps = React.HTMLAttributes<HTMLSpanElement>;\n\nexport const DropdownMenuItemIcon = ({ className, ...rest }: DropdownMenuItemIconProps) => {\n return <span {...rest} className={cx(styles.icon, className)} />;\n};\n\nDropdownMenuItemIcon.displayName = 'DropdownMenuItemIcon';\n\nexport type DropdownMenuItemLabelProps = React.HTMLAttributes<HTMLSpanElement>;\n\nexport const DropdownMenuItemLabel = ({ className, ...rest }: DropdownMenuItemLabelProps) => {\n return <span {...rest} className={cx(styles.label, className)} />;\n};\n\nDropdownMenuItemLabel.displayName = 'DropdownMenuItemLabel';\n\nexport type DropdownMenuItemExtraProps = React.HTMLAttributes<HTMLSpanElement>;\n\nexport const DropdownMenuItemExtra = ({ className, ...rest }: DropdownMenuItemExtraProps) => {\n return <span {...rest} className={cx(styles.extra, className)} />;\n};\n\nDropdownMenuItemExtra.displayName = 'DropdownMenuItemExtra';\n\nexport type DropdownMenuSubmenuArrowProps = React.HTMLAttributes<HTMLSpanElement>;\n\nexport const DropdownMenuSubmenuArrow = ({ className, ...rest }: DropdownMenuSubmenuArrowProps) => {\n return <span {...rest} className={cx(styles.submenuArrow, className)} />;\n};\n\nDropdownMenuSubmenuArrow.displayName = 'DropdownMenuSubmenuArrow';\n"],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import { DropdownItem, DropdownMenuCheckboxItem, DropdownMenuPlacement, DropdownMenuProps } from "./type.mjs";
|
|
2
|
+
import { DROPDOWN_MENU_CONTAINER_ATTR, DropdownMenuCheckboxItemIndicator, DropdownMenuCheckboxItemPrimitive, DropdownMenuCheckboxItemProps, DropdownMenuGroup, DropdownMenuGroupLabel, DropdownMenuGroupLabelProps, DropdownMenuItem, DropdownMenuItemContent, DropdownMenuItemContentProps, DropdownMenuItemExtra, DropdownMenuItemExtraProps, DropdownMenuItemIcon, DropdownMenuItemIconProps, DropdownMenuItemLabel, DropdownMenuItemLabelProps, DropdownMenuItemProps, DropdownMenuPopup, DropdownMenuPopupProps, DropdownMenuPortal, DropdownMenuPortalProps, DropdownMenuPositioner, DropdownMenuPositionerProps, DropdownMenuRoot, DropdownMenuSeparator, DropdownMenuSeparatorProps, DropdownMenuSubmenuArrow, DropdownMenuSubmenuArrowProps, DropdownMenuSubmenuRoot, DropdownMenuSubmenuTrigger, DropdownMenuSubmenuTriggerProps, DropdownMenuTrigger, DropdownMenuTriggerProps } from "./atoms.mjs";
|
|
2
3
|
import { DropdownMenu } from "./DropdownMenu.mjs";
|
|
3
|
-
|
|
4
|
+
import { renderDropdownMenuItems } from "./renderItems.mjs";
|
|
5
|
+
export { DROPDOWN_MENU_CONTAINER_ATTR, type DropdownItem, type DropdownMenuCheckboxItem, DropdownMenuCheckboxItemIndicator, DropdownMenuCheckboxItemPrimitive, type DropdownMenuCheckboxItemProps, DropdownMenuGroup, DropdownMenuGroupLabel, type DropdownMenuGroupLabelProps, DropdownMenuItem, DropdownMenuItemContent, type DropdownMenuItemContentProps, DropdownMenuItemExtra, type DropdownMenuItemExtraProps, DropdownMenuItemIcon, type DropdownMenuItemIconProps, DropdownMenuItemLabel, type DropdownMenuItemLabelProps, type DropdownMenuItemProps, type DropdownMenuPlacement, DropdownMenuPopup, type DropdownMenuPopupProps, DropdownMenuPortal, type DropdownMenuPortalProps, DropdownMenuPositioner, type DropdownMenuPositionerProps, type DropdownMenuProps, DropdownMenuRoot, DropdownMenuSeparator, type DropdownMenuSeparatorProps, DropdownMenuSubmenuArrow, type DropdownMenuSubmenuArrowProps, DropdownMenuSubmenuRoot, DropdownMenuSubmenuTrigger, type DropdownMenuSubmenuTriggerProps, DropdownMenuTrigger, type DropdownMenuTriggerProps, DropdownMenu as default, renderDropdownMenuItems };
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { DROPDOWN_MENU_CONTAINER_ATTR, DropdownMenuCheckboxItemIndicator, DropdownMenuCheckboxItemPrimitive, DropdownMenuGroup, DropdownMenuGroupLabel, DropdownMenuItem, DropdownMenuItemContent, DropdownMenuItemExtra, DropdownMenuItemIcon, DropdownMenuItemLabel, DropdownMenuPopup, DropdownMenuPortal, DropdownMenuPositioner, DropdownMenuRoot, DropdownMenuSeparator, DropdownMenuSubmenuArrow, DropdownMenuSubmenuRoot, DropdownMenuSubmenuTrigger, DropdownMenuTrigger } from "./atoms.mjs";
|
|
2
|
+
import { renderDropdownMenuItems } from "./renderItems.mjs";
|
|
1
3
|
import DropdownMenu_default from "./DropdownMenu.mjs";
|
|
2
4
|
|
|
3
|
-
export { DropdownMenu_default as default };
|
|
5
|
+
export { DROPDOWN_MENU_CONTAINER_ATTR, DropdownMenuCheckboxItemIndicator, DropdownMenuCheckboxItemPrimitive, DropdownMenuGroup, DropdownMenuGroupLabel, DropdownMenuItem, DropdownMenuItemContent, DropdownMenuItemExtra, DropdownMenuItemIcon, DropdownMenuItemLabel, DropdownMenuPopup, DropdownMenuPortal, DropdownMenuPositioner, DropdownMenuRoot, DropdownMenuSeparator, DropdownMenuSubmenuArrow, DropdownMenuSubmenuRoot, DropdownMenuSubmenuTrigger, DropdownMenuTrigger, DropdownMenu_default as default, renderDropdownMenuItems };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DropdownItem } from "./type.mjs";
|
|
2
|
+
import { ReactNode } from "react";
|
|
3
|
+
|
|
4
|
+
//#region src/DropdownMenu/renderItems.d.ts
|
|
5
|
+
declare const renderDropdownMenuItems: (items: DropdownItem[], keyPath?: string[], options?: {
|
|
6
|
+
reserveIconSpace?: boolean;
|
|
7
|
+
}) => ReactNode[];
|
|
8
|
+
//#endregion
|
|
9
|
+
export { renderDropdownMenuItems };
|
|
10
|
+
//# sourceMappingURL=renderItems.d.mts.map
|