@lobehub/ui 4.17.0 → 4.18.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 (175) 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 +8 -0
  9. package/es/CodeDiff/CodeDiff.mjs +122 -0
  10. package/es/CodeDiff/CodeDiff.mjs.map +1 -0
  11. package/es/CodeDiff/PatchDiff.d.mts +8 -0
  12. package/es/CodeDiff/PatchDiff.mjs +101 -0
  13. package/es/CodeDiff/PatchDiff.mjs.map +1 -0
  14. package/es/CodeDiff/index.d.mts +4 -0
  15. package/es/CodeDiff/index.d.ts +1 -0
  16. package/es/CodeDiff/index.js +1 -0
  17. package/es/CodeDiff/index.mjs +4 -0
  18. package/es/CodeDiff/style.mjs +122 -0
  19. package/es/CodeDiff/style.mjs.map +1 -0
  20. package/es/CodeDiff/type.d.mts +123 -0
  21. package/es/CodeEditor/CodeEditor.d.mts +2 -2
  22. package/es/Collapse/Collapse.d.mts +2 -2
  23. package/es/ConfigProvider/index.d.mts +2 -2
  24. package/es/ContextMenu/ContextMenuHost.d.mts +3 -3
  25. package/es/CopyButton/CopyButton.d.mts +2 -2
  26. package/es/DatePicker/DatePicker.d.mts +2 -2
  27. package/es/DraggablePanel/components/DraggablePanelBody.d.mts +2 -2
  28. package/es/DraggablePanel/components/DraggablePanelContainer.d.mts +2 -2
  29. package/es/DraggablePanel/components/DraggablePanelFooter.d.mts +2 -2
  30. package/es/DraggablePanel/components/DraggablePanelHeader.d.mts +2 -2
  31. package/es/DraggableSideNav/DraggableSideNav.d.mts +2 -2
  32. package/es/Drawer/Drawer.d.mts +2 -2
  33. package/es/Dropdown/Dropdown.d.mts +2 -2
  34. package/es/DropdownMenu/DropdownMenu.d.mts +2 -2
  35. package/es/DropdownMenu/DropdownMenu.mjs +13 -42
  36. package/es/DropdownMenu/DropdownMenu.mjs.map +1 -1
  37. package/es/DropdownMenu/atoms.d.mts +145 -0
  38. package/es/DropdownMenu/atoms.mjs +163 -0
  39. package/es/DropdownMenu/atoms.mjs.map +1 -0
  40. package/es/DropdownMenu/index.d.mts +3 -1
  41. package/es/DropdownMenu/index.mjs +3 -1
  42. package/es/DropdownMenu/renderItems.d.mts +10 -0
  43. package/es/DropdownMenu/renderItems.mjs +22 -47
  44. package/es/DropdownMenu/renderItems.mjs.map +1 -1
  45. package/es/EditableText/EditableText.d.mts +2 -2
  46. package/es/EmojiPicker/EmojiPicker.d.mts +2 -2
  47. package/es/Flex/FlexBasic.d.mts +2 -2
  48. package/es/FontLoader/index.d.mts +2 -2
  49. package/es/Footer/Footer.d.mts +2 -2
  50. package/es/Form/components/FormGroup.d.mts +2 -2
  51. package/es/Form/components/FormItem.d.mts +2 -2
  52. package/es/Form/components/FormSubmitFooter.d.mts +2 -2
  53. package/es/FormModal/FormModal.d.mts +2 -2
  54. package/es/GuideCard/GuideCard.d.mts +2 -2
  55. package/es/Header/Header.d.mts +2 -2
  56. package/es/Highlighter/FullFeatured.mjs +1 -1
  57. package/es/Highlighter/Highlighter.d.mts +2 -2
  58. package/es/Highlighter/SyntaxHighlighter/index.d.mts +2 -2
  59. package/es/Hotkey/Hotkey.d.mts +2 -2
  60. package/es/HotkeyInput/HotkeyInput.d.mts +2 -2
  61. package/es/Icon/Icon.d.mts +2 -2
  62. package/es/Icon/components/IconProvider.d.mts +3 -3
  63. package/es/Image/PreviewGroup.d.mts +2 -2
  64. package/es/ImageSelect/ImageSelect.d.mts +2 -2
  65. package/es/Input/Input.d.mts +2 -2
  66. package/es/Input/InputNumber.d.mts +2 -2
  67. package/es/Input/InputOPT.d.mts +2 -2
  68. package/es/Input/InputPassword.d.mts +2 -2
  69. package/es/Input/TextArea.d.mts +2 -2
  70. package/es/Layout/components/LayoutFooter.d.mts +2 -2
  71. package/es/Layout/components/LayoutHeader.d.mts +2 -2
  72. package/es/Layout/components/LayoutMain.d.mts +2 -2
  73. package/es/Layout/components/LayoutSidebar.d.mts +2 -2
  74. package/es/Layout/components/LayoutSidebarInner.d.mts +2 -2
  75. package/es/Layout/components/LayoutToc.d.mts +2 -2
  76. package/es/List/ListItem/index.d.mts +2 -2
  77. package/es/Markdown/Markdown.d.mts +2 -2
  78. package/es/Markdown/Typography.d.mts +2 -2
  79. package/es/Markdown/components/SearchResultCards/index.d.mts +2 -2
  80. package/es/Markdown/markdown.style.mjs +0 -16
  81. package/es/Markdown/markdown.style.mjs.map +1 -1
  82. package/es/Markdown/type.d.mts +1 -2
  83. package/es/MaskShadow/MaskShadow.d.mts +2 -2
  84. package/es/Menu/Menu.d.mts +2 -2
  85. package/es/Menu/sharedStyle.mjs +1 -1
  86. package/es/Menu/sharedStyle.mjs.map +1 -1
  87. package/es/Mermaid/FullFeatured.mjs +1 -1
  88. package/es/Mermaid/Mermaid.d.mts +2 -2
  89. package/es/Mermaid/SyntaxMermaid/index.d.mts +2 -2
  90. package/es/Mermaid/type.d.mts +1 -1
  91. package/es/Modal/Modal.d.mts +2 -2
  92. package/es/Modal/ModalProvider.d.mts +2 -2
  93. package/es/Modal/imperative.d.mts +2 -2
  94. package/es/MotionProvider/index.d.mts +2 -2
  95. package/es/Popover/ArrowIcon.d.mts +7 -0
  96. package/es/Popover/PopoverGroup.mjs +14 -15
  97. package/es/Popover/PopoverGroup.mjs.map +1 -1
  98. package/es/Popover/PopoverPortal.d.mts +6 -0
  99. package/es/Popover/PopoverPortal.mjs +1 -1
  100. package/es/Popover/PopoverStandalone.mjs +20 -49
  101. package/es/Popover/PopoverStandalone.mjs.map +1 -1
  102. package/es/Popover/atoms.d.mts +77 -0
  103. package/es/Popover/atoms.mjs +104 -0
  104. package/es/Popover/atoms.mjs.map +1 -0
  105. package/es/Popover/context.d.mts +2 -2
  106. package/es/Popover/groupContext.d.mts +1 -0
  107. package/es/Popover/groupContext.mjs.map +1 -1
  108. package/es/Popover/index.d.mts +5 -2
  109. package/es/Popover/index.mjs +4 -1
  110. package/es/SearchBar/SearchBar.d.mts +2 -2
  111. package/es/Segmented/Segmented.d.mts +2 -2
  112. package/es/Select/Select.d.mts +2 -2
  113. package/es/SideNav/SideNav.d.mts +2 -2
  114. package/es/SliderWithInput/SliderWithInput.d.mts +2 -2
  115. package/es/SortableList/components/DragHandle.d.mts +2 -2
  116. package/es/SortableList/components/SortableItem.d.mts +2 -2
  117. package/es/ThemeProvider/ThemeProvider.d.mts +2 -2
  118. package/es/Toc/Toc.d.mts +2 -2
  119. package/es/Tooltip/groupContext.mjs.map +1 -1
  120. package/es/Video/index.d.mts +2 -2
  121. package/es/awesome/AuroraBackground/AuroraBackground.d.mts +2 -2
  122. package/es/awesome/BottomGradientButton/BottomGradientButton.d.mts +2 -2
  123. package/es/awesome/Features/Features.d.mts +2 -2
  124. package/es/awesome/Giscus/Giscus.d.mts +2 -2
  125. package/es/awesome/Giscus/type.d.mts +4 -4
  126. package/es/awesome/GradientButton/GradientButton.d.mts +2 -2
  127. package/es/awesome/GridBackground/GridBackground.d.mts +2 -2
  128. package/es/awesome/GridBackground/GridShowcase.d.mts +2 -2
  129. package/es/awesome/Hero/Hero.d.mts +2 -2
  130. package/es/awesome/Spline/Spine.d.mts +2 -2
  131. package/es/awesome/Spotlight/Spotlight.d.mts +2 -2
  132. package/es/awesome/SpotlightCard/SpotlightCard.d.mts +2 -2
  133. package/es/awesome/TypewriterEffect/TypewriterEffect.d.mts +2 -2
  134. package/es/brand/LobeChat/index.d.mts +2 -2
  135. package/es/brand/LobeHub/index.d.mts +2 -2
  136. package/es/brand/LogoThree/LogoSpline.d.mts +2 -2
  137. package/es/brand/LogoThree/index.d.mts +2 -2
  138. package/es/chat/BackBottom/BackBottom.d.mts +2 -2
  139. package/es/chat/ChatInputArea/components/ChatInputAreaInner.d.mts +2 -2
  140. package/es/chat/ChatItem/ChatItem.d.mts +2 -2
  141. package/es/chat/ChatList/ChatList.d.mts +2 -2
  142. package/es/chat/EditableMessage/EditableMessage.d.mts +2 -2
  143. package/es/chat/EditableMessageList/EditableMessageList.d.mts +2 -2
  144. package/es/chat/MessageInput/MessageInput.d.mts +2 -2
  145. package/es/chat/MessageModal/MessageModal.d.mts +2 -2
  146. package/es/color/ColorScales/index.d.mts +2 -2
  147. package/es/color/CssVar/index.d.mts +2 -2
  148. package/es/hooks/useMermaid.mjs.map +1 -1
  149. package/es/hooks/useStreamMermaid.mjs.map +1 -1
  150. package/es/i18n/context.d.mts +2 -2
  151. package/es/icons/lucideExtra/BotPromptIcon.d.mts +2 -2
  152. package/es/icons/lucideExtra/CreateBotIcon.d.mts +3 -3
  153. package/es/icons/lucideExtra/DiscordIcon.d.mts +2 -2
  154. package/es/icons/lucideExtra/GlobeOffIcon.d.mts +3 -3
  155. package/es/icons/lucideExtra/GroupBotIcon.d.mts +3 -3
  156. package/es/icons/lucideExtra/GroupBotSquareIcon.d.mts +3 -3
  157. package/es/icons/lucideExtra/LeftClickIcon.d.mts +3 -3
  158. package/es/icons/lucideExtra/LeftDoubleClickIcon.d.mts +3 -3
  159. package/es/icons/lucideExtra/McpIcon.d.mts +2 -2
  160. package/es/icons/lucideExtra/ProviderIcon.d.mts +3 -3
  161. package/es/icons/lucideExtra/RightClickIcon.d.mts +3 -3
  162. package/es/icons/lucideExtra/RightDoubleClickIcon.d.mts +3 -3
  163. package/es/icons/lucideExtra/ShapesUploadIcon.d.mts +3 -3
  164. package/es/icons/lucideExtra/TreeDownRightIcon.d.mts +3 -3
  165. package/es/icons/lucideExtra/TreeUpDownRightIcon.d.mts +3 -3
  166. package/es/index.d.mts +11 -2
  167. package/es/index.mjs +10 -3
  168. package/es/mdx/Mdx/index.d.mts +2 -2
  169. package/es/mobile/ChatHeader/ChatHeaderTitle.d.mts +2 -2
  170. package/es/mobile/ChatInputArea/components/ChatSendButton.d.mts +2 -2
  171. package/es/mobile/TabBar/TabBar.d.mts +2 -2
  172. package/es/storybook/StoryBook/index.d.mts +2 -2
  173. package/es/utils/placement.d.mts +7 -1
  174. package/es/utils/placement.mjs.map +1 -1
  175. 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 react0 from "react";
4
+ import * as react73 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: react0.NamedExoticComponent<ConfigProviderProps>;
22
+ declare const ConfigProvider: react73.NamedExoticComponent<ConfigProviderProps>;
23
23
  type CdnFn = ({
24
24
  pkg,
25
25
  version,
@@ -1,8 +1,8 @@
1
- import * as react119 from "react";
2
- import * as react_jsx_runtime0 from "react/jsx-runtime";
1
+ import * as react118 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: react119.MemoExoticComponent<() => react_jsx_runtime0.JSX.Element | null>;
5
+ declare const ContextMenuHost: react118.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 react43 from "react";
2
+ import * as react28 from "react";
3
3
 
4
4
  //#region src/CopyButton/CopyButton.d.ts
5
- declare const CopyButton: react43.NamedExoticComponent<CopyButtonProps>;
5
+ declare const CopyButton: react28.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 react37 from "react";
2
+ import * as react27 from "react";
3
3
 
4
4
  //#region src/DatePicker/DatePicker.d.ts
5
- declare const DatePicker: react37.NamedExoticComponent<DatePickerProps>;
5
+ declare const DatePicker: react27.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 react54 from "react";
2
+ import * as react26 from "react";
3
3
 
4
4
  //#region src/DraggablePanel/components/DraggablePanelBody.d.ts
5
5
  type DraggablePanelBodyProps = DivProps;
6
- declare const DraggablePanelBody: react54.NamedExoticComponent<DivProps>;
6
+ declare const DraggablePanelBody: react26.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 react55 from "react";
2
+ import * as react23 from "react";
3
3
 
4
4
  //#region src/DraggablePanel/components/DraggablePanelContainer.d.ts
5
5
  type DraggablePanelContainerProps = DivProps;
6
- declare const DraggablePanelContainer: react55.NamedExoticComponent<DivProps>;
6
+ declare const DraggablePanelContainer: react23.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 react56 from "react";
2
+ import * as react25 from "react";
3
3
 
4
4
  //#region src/DraggablePanel/components/DraggablePanelFooter.d.ts
5
5
  type DraggablePanelFooterProps = DivProps;
6
- declare const DraggablePanelFooter: react56.NamedExoticComponent<DivProps>;
6
+ declare const DraggablePanelFooter: react25.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 react57 from "react";
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: react57.NamedExoticComponent<DraggablePanelHeaderProps>;
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 react53 from "react";
2
+ import * as react22 from "react";
3
3
 
4
4
  //#region src/DraggableSideNav/DraggableSideNav.d.ts
5
- declare const DraggableSideNav: react53.NamedExoticComponent<DraggableSideNavProps>;
5
+ declare const DraggableSideNav: react22.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 react60 from "react";
2
+ import * as react33 from "react";
3
3
 
4
4
  //#region src/Drawer/Drawer.d.ts
5
- declare const Drawer: react60.NamedExoticComponent<DrawerProps>;
5
+ declare const Drawer: react33.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 react49 from "react";
2
+ import * as react21 from "react";
3
3
 
4
4
  //#region src/Dropdown/Dropdown.d.ts
5
5
 
@@ -9,7 +9,7 @@ import * as react49 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: react49.NamedExoticComponent<DropdownProps>;
12
+ declare const Dropdown: react21.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 react59 from "react";
2
+ import * as react66 from "react";
3
3
 
4
4
  //#region src/DropdownMenu/DropdownMenu.d.ts
5
- declare const DropdownMenu: react59.NamedExoticComponent<DropdownMenuProps<unknown>>;
5
+ declare const DropdownMenu: react66.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 { 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";
4
+ import { DropdownMenuPopup, DropdownMenuPortal, DropdownMenuPositioner, DropdownMenuTrigger } from "./atoms.mjs";
8
5
  import { renderDropdownMenuItems } from "./renderItems.mjs";
9
- import { cloneElement, isValidElement, memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
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 { isNativeButtonTriggerElement, resolvedNativeButton } = useNativeButton({
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 renderer = useCallback((props) => {
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(Menu.Portal, {
81
- container: portalProps?.container ?? portalContainer,
82
- ...portalProps,
83
- children: /* @__PURE__ */ jsx(Menu.Positioner, {
84
- ...resolvedPositionerProps,
85
- className: (state) => cx(styles.positioner, typeof positionerProps?.className === "function" ? positionerProps.className(state) : positionerProps?.className),
86
- "data-hover-trigger": hoverTrigger || void 0,
87
- "data-placement": placement,
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":["renderer: ComponentRenderFn<HTMLProps<any>, MenuTriggerState>"],"sources":["../../src/DropdownMenu/DropdownMenu.tsx"],"sourcesContent":["'use client';\n\nimport { Menu, type MenuTriggerState } from '@base-ui/react/menu';\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport type { ComponentRenderFn, HTMLProps } from '@base-ui/react/utils/types';\nimport { cx } from 'antd-style';\nimport clsx from 'clsx';\nimport {\n cloneElement,\n isValidElement,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\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 { renderDropdownMenuItems } from './renderItems';\nimport type { DropdownMenuProps } from './type';\n\nconst DROPDOWN_MENU_CONTAINER_ATTR = 'data-lobe-ui-dropdown-menu-container';\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 portalContainer = usePortalContainer(DROPDOWN_MENU_CONTAINER_ATTR);\n const placementConfig = placementMap[placement];\n const hoverTrigger = Boolean((triggerProps as any)?.openOnHover);\n\n const { isNativeButtonTriggerElement, resolvedNativeButton } = useNativeButton({\n children,\n nativeButton,\n triggerNativeButton: triggerProps?.nativeButton,\n });\n\n const renderer: ComponentRenderFn<HTMLProps<any>, MenuTriggerState> = useCallback(\n (props) => {\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 return cloneElement(children as any, mergeProps((children as any).props, resolvedProps));\n },\n [children, isNativeButtonTriggerElement],\n );\n\n const trigger = isValidElement(children) ? (\n <Menu.Trigger\n {...triggerProps}\n className={clsx(CLASSNAMES.DropdownMenuTrigger, triggerProps?.className)}\n nativeButton={resolvedNativeButton}\n render={renderer}\n />\n ) : (\n <Menu.Trigger\n {...triggerProps}\n className={clsx(CLASSNAMES.DropdownMenuTrigger, triggerProps?.className)}\n >\n {children}\n </Menu.Trigger>\n );\n\n const resolvedPositionerProps = {\n ...positionerProps,\n align: positionerProps?.align ?? placementConfig?.align ?? 'center',\n side: positionerProps?.side ?? placementConfig?.side ?? 'bottom',\n sideOffset: positionerProps?.sideOffset ?? 6,\n };\n return (\n <Menu.Root\n {...rest}\n defaultOpen={defaultOpen}\n onOpenChange={handleOpenChange}\n onOpenChangeComplete={handleOpenChangeComplete}\n open={open}\n >\n {trigger}\n <Menu.Portal container={portalProps?.container ?? portalContainer} {...portalProps}>\n <Menu.Positioner\n {...resolvedPositionerProps}\n className={(state) =>\n cx(\n styles.positioner,\n typeof positionerProps?.className === 'function'\n ? positionerProps.className(state)\n : positionerProps?.className,\n )\n }\n data-hover-trigger={hoverTrigger || undefined}\n data-placement={placement}\n >\n <Menu.Popup\n {...popupProps}\n className={(state) =>\n cx(\n styles.popup,\n typeof popupProps?.className === 'function'\n ? popupProps.className(state)\n : popupProps?.className,\n )\n }\n >\n {menuItems}\n </Menu.Popup>\n </Menu.Positioner>\n </Menu.Portal>\n </Menu.Root>\n );\n },\n);\n\nDropdownMenu.displayName = 'DropdownMenuV2';\n\nexport default DropdownMenu;\n"],"mappings":";;;;;;;;;;;;;;;;AA2BA,MAAM,+BAA+B;AAErC,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,kBAAkB,mBAAmB,6BAA6B;CACxE,MAAM,kBAAkB,aAAa;CACrC,MAAM,eAAe,QAAS,cAAsB,YAAY;CAEhE,MAAM,EAAE,8BAA8B,yBAAyB,gBAAgB;EAC7E;EACA;EACA,qBAAqB,cAAc;EACpC,CAAC;CAEF,MAAMA,WAAgE,aACnE,UAAU;EAGT,MAAM,uBAAuB;AAC3B,OAAI,6BAA8B,QAAO;GAEzC,MAAM,EAAE,MAAM,GAAG,cAAc;AAC/B,UAAO;MACL;AAEJ,SAAO,aAAa,UAAiB,WAAY,SAAiB,OAAO,cAAc,CAAC;IAE1F,CAAC,UAAU,6BAA6B,CACzC;CAED,MAAM,UAAU,eAAe,SAAS,GACtC,oBAAC,KAAK;EACJ,GAAI;EACJ,WAAW,KAAK,WAAW,qBAAqB,cAAc,UAAU;EACxE,cAAc;EACd,QAAQ;GACR,GAEF,oBAAC,KAAK;EACJ,GAAI;EACJ,WAAW,KAAK,WAAW,qBAAqB,cAAc,UAAU;EAEvE;GACY;CAGjB,MAAM,0BAA0B;EAC9B,GAAG;EACH,OAAO,iBAAiB,SAAS,iBAAiB,SAAS;EAC3D,MAAM,iBAAiB,QAAQ,iBAAiB,QAAQ;EACxD,YAAY,iBAAiB,cAAc;EAC5C;AACD,QACE,qBAAC,KAAK;EACJ,GAAI;EACS;EACb,cAAc;EACd,sBAAsB;EAChB;aAEL,SACD,oBAAC,KAAK;GAAO,WAAW,aAAa,aAAa;GAAiB,GAAI;aACrE,oBAAC,KAAK;IACJ,GAAI;IACJ,YAAY,UACV,GACE,OAAO,YACP,OAAO,iBAAiB,cAAc,aAClC,gBAAgB,UAAU,MAAM,GAChC,iBAAiB,UACtB;IAEH,sBAAoB,gBAAgB;IACpC,kBAAgB;cAEhB,oBAAC,KAAK;KACJ,GAAI;KACJ,YAAY,UACV,GACE,OAAO,OACP,OAAO,YAAY,cAAc,aAC7B,WAAW,UAAU,MAAM,GAC3B,YAAY,UACjB;eAGF;MACU;KACG;IACN;GACJ;EAGjB;AAED,aAAa,cAAc;AAE3B,2BAAe"}
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_runtime6 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_runtime6.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_runtime6.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_runtime6.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_runtime6.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_runtime6.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_runtime6.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_runtime6.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_runtime6.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_runtime6.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_runtime6.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_runtime6.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_runtime6.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_runtime6.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
- export { type DropdownItem, type DropdownMenuCheckboxItem, type DropdownMenuPlacement, type DropdownMenuProps, DropdownMenu as default };
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 };