@lobehub/ui 4.38.4 → 5.0.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/ActionIconGroup/ActionIconGroup.mjs +1 -1
- package/es/ActionIconGroup/type.d.mts +1 -1
- 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 +2 -2
- package/es/CodeDiff/PatchDiff.d.mts +2 -2
- 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/index.d.mts +6 -7
- package/es/ContextMenu/index.mjs +3 -3
- package/es/CopyButton/CopyButton.d.mts +2 -2
- package/es/DatePicker/DatePicker.d.mts +2 -2
- package/es/DraggablePanel/components/DraggablePanelBody.d.mts +2 -2
- package/es/DraggablePanel/components/DraggablePanelContainer.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/index.d.mts +6 -5
- package/es/DropdownMenu/index.mjs +4 -4
- package/es/EditableText/EditableText.d.mts +2 -2
- package/es/EditorSlashMenu/atoms.d.mts +13 -13
- 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/Icon.d.mts +2 -2
- package/es/Icon/components/IconProvider.d.mts +3 -3
- 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/MaskShadow/MaskShadow.d.mts +2 -2
- package/es/Menu/Menu.d.mts +2 -2
- package/es/Mermaid/Mermaid.d.mts +2 -2
- package/es/Mermaid/SyntaxMermaid/index.d.mts +2 -2
- 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 +2 -2
- package/es/Popover/atoms.d.mts +9 -9
- package/es/Popover/context.d.mts +2 -2
- package/es/ScrollArea/index.d.mts +5 -4
- package/es/ScrollArea/index.mjs +2 -2
- package/es/SearchBar/SearchBar.d.mts +2 -2
- package/es/Segmented/Segmented.d.mts +2 -2
- package/es/Select/Select.d.mts +3 -3
- package/es/Select/Select.mjs +1 -1
- package/es/Select/Select.mjs.map +1 -1
- 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/ThemeSwitch/ThemeSwitch.mjs +1 -1
- package/es/Toast/index.d.mts +4 -3
- package/es/Toast/index.mjs +1 -1
- package/es/Toc/Toc.d.mts +2 -2
- 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/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/base-ui/ContextMenu/ContextMenuHost.d.mts +8 -0
- package/es/{ContextMenu → base-ui/ContextMenu}/ContextMenuHost.mjs +6 -6
- package/es/base-ui/ContextMenu/ContextMenuHost.mjs.map +1 -0
- package/es/{ContextMenu → base-ui/ContextMenu}/ContextMenuTrigger.d.mts +1 -1
- package/es/{ContextMenu → base-ui/ContextMenu}/ContextMenuTrigger.mjs +2 -2
- package/es/base-ui/ContextMenu/ContextMenuTrigger.mjs.map +1 -0
- package/es/base-ui/ContextMenu/index.d.mts +7 -0
- package/es/base-ui/ContextMenu/renderItems.d.mts +4 -0
- package/es/{ContextMenu → base-ui/ContextMenu}/renderItems.mjs +7 -7
- package/es/base-ui/ContextMenu/renderItems.mjs.map +1 -0
- package/es/{ContextMenu → base-ui/ContextMenu}/store.d.mts +3 -3
- package/es/{ContextMenu → base-ui/ContextMenu}/store.mjs +1 -1
- package/es/base-ui/ContextMenu/store.mjs.map +1 -0
- package/es/base-ui/ContextMenu/type.d.mts +12 -0
- package/es/base-ui/DropdownMenu/DropdownMenu.d.mts +8 -0
- package/es/{DropdownMenu → base-ui/DropdownMenu}/DropdownMenu.mjs +3 -3
- package/es/base-ui/DropdownMenu/DropdownMenu.mjs.map +1 -0
- package/es/{DropdownMenu → base-ui/DropdownMenu}/atoms.d.mts +19 -19
- package/es/{DropdownMenu → base-ui/DropdownMenu}/atoms.mjs +7 -7
- package/es/base-ui/DropdownMenu/atoms.mjs.map +1 -0
- package/es/base-ui/DropdownMenu/index.d.mts +5 -0
- package/es/{DropdownMenu → base-ui/DropdownMenu}/renderItems.d.mts +3 -3
- package/es/{DropdownMenu → base-ui/DropdownMenu}/renderItems.mjs +3 -3
- package/es/base-ui/DropdownMenu/renderItems.mjs.map +1 -0
- package/es/{DropdownMenu → base-ui/DropdownMenu}/type.d.mts +9 -9
- package/es/{ScrollArea → base-ui/ScrollArea}/ScrollArea.d.mts +1 -1
- package/es/{ScrollArea → base-ui/ScrollArea}/ScrollArea.mjs +1 -1
- package/es/base-ui/ScrollArea/ScrollArea.mjs.map +1 -0
- package/es/{ScrollArea → base-ui/ScrollArea}/atoms.d.mts +8 -8
- package/es/{ScrollArea → base-ui/ScrollArea}/atoms.mjs +1 -1
- package/es/base-ui/ScrollArea/atoms.mjs.map +1 -0
- package/es/{ScrollArea → base-ui/ScrollArea}/globalStyle.mjs +1 -1
- package/es/base-ui/ScrollArea/globalStyle.mjs.map +1 -0
- package/es/base-ui/ScrollArea/index.d.mts +3 -0
- package/es/{ScrollArea → base-ui/ScrollArea}/style.mjs +1 -1
- package/es/base-ui/ScrollArea/style.mjs.map +1 -0
- package/es/{ScrollArea → base-ui/ScrollArea}/type.d.mts +1 -1
- package/es/base-ui/Select/Select.d.mts +8 -0
- package/es/{LobeSelect/LobeSelect.mjs → base-ui/Select/Select.mjs} +9 -9
- package/es/base-ui/Select/Select.mjs.map +1 -0
- package/es/base-ui/Select/atoms.d.mts +155 -0
- package/es/{LobeSelect → base-ui/Select}/atoms.mjs +38 -38
- package/es/base-ui/Select/atoms.mjs.map +1 -0
- package/es/base-ui/Select/index.d.mts +3 -0
- package/es/{LobeSelect → base-ui/Select}/style.mjs +2 -2
- package/es/base-ui/Select/style.mjs.map +1 -0
- package/es/{LobeSelect → base-ui/Select}/type.d.mts +24 -24
- package/es/base-ui/Switch/Switch.d.mts +8 -0
- package/es/{LobeSwitch/LobeSwitch.mjs → base-ui/Switch/Switch.mjs} +12 -12
- package/es/base-ui/Switch/Switch.mjs.map +1 -0
- package/es/base-ui/Switch/atoms.d.mts +56 -0
- package/es/{LobeSwitch → base-ui/Switch}/atoms.mjs +16 -16
- package/es/base-ui/Switch/atoms.mjs.map +1 -0
- package/es/base-ui/Switch/index.d.mts +4 -0
- package/es/{LobeSwitch → base-ui/Switch}/style.d.mts +1 -1
- package/es/{LobeSwitch → base-ui/Switch}/style.mjs +4 -4
- package/es/base-ui/Switch/style.mjs.map +1 -0
- package/es/{LobeSwitch → base-ui/Switch}/type.d.mts +21 -21
- package/es/{Toast → base-ui/Toast}/Toast.mjs +2 -2
- package/es/base-ui/Toast/Toast.mjs.map +1 -0
- package/es/{Toast → base-ui/Toast}/context.mjs +1 -1
- package/es/base-ui/Toast/context.mjs.map +1 -0
- package/es/{Toast → base-ui/Toast}/imperative.d.mts +3 -3
- package/es/{Toast → base-ui/Toast}/imperative.mjs +3 -3
- package/es/base-ui/Toast/imperative.mjs.map +1 -0
- package/es/base-ui/Toast/index.d.mts +2 -0
- package/es/{Toast → base-ui/Toast}/style.mjs +1 -1
- package/es/base-ui/Toast/style.mjs.map +1 -0
- package/es/{Toast → base-ui/Toast}/type.d.mts +3 -3
- package/es/base-ui/index.d.mts +28 -0
- package/es/base-ui/index.mjs +16 -0
- 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/useNativeButton.mjs +2 -2
- package/es/hooks/useNativeButton.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 +2 -2
- package/es/icons/lucideExtra/DiscordIcon.d.mts +3 -3
- package/es/icons/lucideExtra/GlobeOffIcon.d.mts +2 -2
- package/es/icons/lucideExtra/GroupBotIcon.d.mts +2 -2
- 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/SkillsIcon.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 +15 -24
- package/es/index.mjs +11 -16
- 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/package.json +48 -33
- package/awesome.d.ts +0 -1
- package/awesome.js +0 -1
- package/brand.d.ts +0 -1
- package/brand.js +0 -1
- package/chat.d.ts +0 -1
- package/chat.js +0 -1
- package/color.d.ts +0 -1
- package/color.js +0 -1
- package/es/ContextMenu/ContextMenuHost.d.mts +0 -8
- package/es/ContextMenu/ContextMenuHost.mjs.map +0 -1
- package/es/ContextMenu/ContextMenuTrigger.mjs.map +0 -1
- package/es/ContextMenu/renderItems.d.mts +0 -4
- package/es/ContextMenu/renderItems.mjs.map +0 -1
- package/es/ContextMenu/store.mjs.map +0 -1
- package/es/ContextMenu/type.d.mts +0 -12
- package/es/DropdownMenu/DropdownMenu.d.mts +0 -8
- package/es/DropdownMenu/DropdownMenu.mjs.map +0 -1
- package/es/DropdownMenu/atoms.mjs.map +0 -1
- package/es/DropdownMenu/renderItems.mjs.map +0 -1
- package/es/LobeSelect/LobeSelect.d.mts +0 -8
- package/es/LobeSelect/LobeSelect.mjs.map +0 -1
- package/es/LobeSelect/atoms.d.mts +0 -155
- package/es/LobeSelect/atoms.mjs.map +0 -1
- package/es/LobeSelect/index.d.mts +0 -4
- package/es/LobeSelect/index.mjs +0 -4
- package/es/LobeSelect/style.mjs.map +0 -1
- package/es/LobeSwitch/LobeSwitch.d.mts +0 -8
- package/es/LobeSwitch/LobeSwitch.mjs.map +0 -1
- package/es/LobeSwitch/atoms.d.mts +0 -56
- package/es/LobeSwitch/atoms.mjs.map +0 -1
- package/es/LobeSwitch/index.d.mts +0 -5
- package/es/LobeSwitch/index.d.ts +0 -1
- package/es/LobeSwitch/index.js +0 -1
- package/es/LobeSwitch/index.mjs +0 -5
- package/es/LobeSwitch/style.mjs.map +0 -1
- package/es/ScrollArea/ScrollArea.mjs.map +0 -1
- package/es/ScrollArea/atoms.mjs.map +0 -1
- package/es/ScrollArea/globalStyle.mjs.map +0 -1
- package/es/ScrollArea/style.mjs.map +0 -1
- package/es/Toast/Toast.mjs.map +0 -1
- package/es/Toast/context.mjs.map +0 -1
- package/es/Toast/imperative.mjs.map +0 -1
- package/es/Toast/style.mjs.map +0 -1
- package/icons.d.ts +0 -1
- package/icons.js +0 -1
- package/mdx.d.ts +0 -1
- package/mdx.js +0 -1
- package/mobile.d.ts +0 -1
- package/mobile.js +0 -1
- package/storybook.d.ts +0 -1
- package/storybook.js +0 -1
- /package/es/{ContextMenu → base-ui/ContextMenu}/imperative.d.mts +0 -0
- /package/es/{LobeSelect → base-ui}/index.d.ts +0 -0
- /package/es/{LobeSelect → base-ui}/index.js +0 -0
package/es/Toast/index.mjs
CHANGED
package/es/Toc/Toc.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { TocProps } from "./type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react1 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/Toc/Toc.d.ts
|
|
5
|
-
declare const Toc:
|
|
5
|
+
declare const Toc: react1.NamedExoticComponent<TocProps>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { Toc };
|
|
8
8
|
//# sourceMappingURL=Toc.d.mts.map
|
package/es/Video/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FlexboxProps } from "../Flex/type.mjs";
|
|
2
2
|
import "../Flex/index.mjs";
|
|
3
3
|
import { VideoProps as VideoProps$1 } from "../types/index.mjs";
|
|
4
|
-
import * as
|
|
4
|
+
import * as react42 from "react";
|
|
5
5
|
import { CSSProperties, Ref } from "react";
|
|
6
6
|
|
|
7
7
|
//#region src/Video/index.d.ts
|
|
@@ -39,7 +39,7 @@ interface VideoProps extends VideoProps$1, Pick<FlexboxProps, 'width' | 'height'
|
|
|
39
39
|
};
|
|
40
40
|
variant?: 'borderless' | 'filled' | 'outlined';
|
|
41
41
|
}
|
|
42
|
-
declare const Video:
|
|
42
|
+
declare const Video: react42.NamedExoticComponent<VideoProps>;
|
|
43
43
|
//#endregion
|
|
44
44
|
export { Video, VideoProps };
|
|
45
45
|
//# sourceMappingURL=index.d.mts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { AuroraBackgroundProps } from "./type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react122 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/awesome/AuroraBackground/AuroraBackground.d.ts
|
|
5
|
-
declare const AuroraBackground:
|
|
5
|
+
declare const AuroraBackground: react122.NamedExoticComponent<AuroraBackgroundProps>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { AuroraBackground };
|
|
8
8
|
//# sourceMappingURL=AuroraBackground.d.mts.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ButtonProps } from "../../Button/type.mjs";
|
|
2
2
|
import "../../Button/index.mjs";
|
|
3
|
-
import * as
|
|
3
|
+
import * as react120 from "react";
|
|
4
4
|
|
|
5
5
|
//#region src/awesome/BottomGradientButton/BottomGradientButton.d.ts
|
|
6
|
-
declare const BottomGradientButton:
|
|
6
|
+
declare const BottomGradientButton: react120.NamedExoticComponent<ButtonProps>;
|
|
7
7
|
//#endregion
|
|
8
8
|
export { BottomGradientButton };
|
|
9
9
|
//# sourceMappingURL=BottomGradientButton.d.mts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { FeaturesProps } from "./type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react121 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/awesome/Features/Features.d.ts
|
|
5
|
-
declare const Features:
|
|
5
|
+
declare const Features: react121.NamedExoticComponent<FeaturesProps>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { Features };
|
|
8
8
|
//# sourceMappingURL=Features.d.mts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { GiscusProps } from "./type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react123 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/awesome/Giscus/Giscus.d.ts
|
|
5
|
-
declare const Giscus:
|
|
5
|
+
declare const Giscus: react123.NamedExoticComponent<GiscusProps>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { Giscus };
|
|
8
8
|
//# sourceMappingURL=Giscus.d.mts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { GradientButtonProps } from "./type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react124 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/awesome/GradientButton/GradientButton.d.ts
|
|
5
|
-
declare const GradientButton:
|
|
5
|
+
declare const GradientButton: react124.NamedExoticComponent<GradientButtonProps>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { GradientButton };
|
|
8
8
|
//# sourceMappingURL=GradientButton.d.mts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { GridBackgroundProps } from "./type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react125 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/awesome/GridBackground/GridBackground.d.ts
|
|
5
|
-
declare const GridBackground:
|
|
5
|
+
declare const GridBackground: react125.NamedExoticComponent<GridBackgroundProps>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { GridBackground };
|
|
8
8
|
//# sourceMappingURL=GridBackground.d.mts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { GridShowcaseProps } from "./type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react126 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/awesome/GridBackground/GridShowcase.d.ts
|
|
5
|
-
declare const GridShowcase:
|
|
5
|
+
declare const GridShowcase: react126.NamedExoticComponent<GridShowcaseProps>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { GridShowcase };
|
|
8
8
|
//# sourceMappingURL=GridShowcase.d.mts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { HeroProps } from "./type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react128 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/awesome/Hero/Hero.d.ts
|
|
5
|
-
declare const Hero:
|
|
5
|
+
declare const Hero: react128.NamedExoticComponent<HeroProps>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { Hero };
|
|
8
8
|
//# sourceMappingURL=Hero.d.mts.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { SplineProps } from "./type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react127 from "react";
|
|
3
3
|
import "@splinetool/runtime";
|
|
4
4
|
|
|
5
5
|
//#region src/awesome/Spline/Spine.d.ts
|
|
6
|
-
declare const Spline:
|
|
6
|
+
declare const Spline: react127.NamedExoticComponent<SplineProps>;
|
|
7
7
|
//#endregion
|
|
8
8
|
export { Spline };
|
|
9
9
|
//# sourceMappingURL=Spine.d.mts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { SpotlightProps } from "./type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react129 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/awesome/Spotlight/Spotlight.d.ts
|
|
5
|
-
declare const Spotlight:
|
|
5
|
+
declare const Spotlight: react129.NamedExoticComponent<SpotlightProps>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { Spotlight };
|
|
8
8
|
//# sourceMappingURL=Spotlight.d.mts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { SpotlightCardProps } from "./type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react130 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/awesome/SpotlightCard/SpotlightCard.d.ts
|
|
5
|
-
declare const SpotlightCard:
|
|
5
|
+
declare const SpotlightCard: react130.NamedExoticComponent<SpotlightCardProps<any>>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { SpotlightCard };
|
|
8
8
|
//# sourceMappingURL=SpotlightCard.d.mts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { TypewriterEffectProps } from "./type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react119 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/awesome/TypewriterEffect/TypewriterEffect.d.ts
|
|
5
|
-
declare const TypewriterEffect:
|
|
5
|
+
declare const TypewriterEffect: react119.NamedExoticComponent<TypewriterEffectProps>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { TypewriterEffect };
|
|
8
8
|
//# sourceMappingURL=TypewriterEffect.d.mts.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as react156 from "react";
|
|
2
|
+
import * as react_jsx_runtime61 from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region src/base-ui/ContextMenu/ContextMenuHost.d.ts
|
|
5
|
+
declare const ContextMenuHost: react156.MemoExoticComponent<() => react_jsx_runtime61.JSX.Element | null>;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { ContextMenuHost };
|
|
8
|
+
//# sourceMappingURL=ContextMenuHost.d.mts.map
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { useIsClient } from "
|
|
4
|
-
import { useAppElement } from "
|
|
5
|
-
import { preventDefaultAndStopPropagation } from "
|
|
6
|
-
import { styles } from "
|
|
7
|
-
import { registerDevSingleton } from "
|
|
3
|
+
import { useIsClient } from "../../hooks/useIsClient.mjs";
|
|
4
|
+
import { useAppElement } from "../../ThemeProvider/AppElementContext.mjs";
|
|
5
|
+
import { preventDefaultAndStopPropagation } from "../../utils/dom.mjs";
|
|
6
|
+
import { styles } from "../../Menu/sharedStyle.mjs";
|
|
7
|
+
import { registerDevSingleton } from "../../utils/devSingleton.mjs";
|
|
8
8
|
import { renderContextMenuItems } from "./renderItems.mjs";
|
|
9
9
|
import { closeContextMenu, getServerSnapshot, getSnapshot, setContextMenuState, subscribe, updateLastPointer } from "./store.mjs";
|
|
10
10
|
import { memo, useEffect, useMemo, useSyncExternalStore } from "react";
|
|
11
11
|
import { jsx } from "react/jsx-runtime";
|
|
12
12
|
import { ContextMenu } from "@base-ui/react/context-menu";
|
|
13
13
|
|
|
14
|
-
//#region src/ContextMenu/ContextMenuHost.tsx
|
|
14
|
+
//#region src/base-ui/ContextMenu/ContextMenuHost.tsx
|
|
15
15
|
const ContextMenuHost = memo(() => {
|
|
16
16
|
const isClient = useIsClient();
|
|
17
17
|
const appElement = useAppElement();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextMenuHost.mjs","names":[],"sources":["../../../src/base-ui/ContextMenu/ContextMenuHost.tsx"],"sourcesContent":["'use client';\n\nimport { ContextMenu } from '@base-ui/react/context-menu';\nimport { memo, useEffect, useMemo, useSyncExternalStore } from 'react';\n\nimport { useIsClient } from '@/hooks/useIsClient';\nimport { useAppElement } from '@/ThemeProvider';\nimport { registerDevSingleton } from '@/utils/devSingleton';\nimport { preventDefaultAndStopPropagation } from '@/utils/dom';\n\nimport { renderContextMenuItems } from './renderItems';\nimport {\n closeContextMenu,\n getServerSnapshot,\n getSnapshot,\n setContextMenuState,\n subscribe,\n updateLastPointer,\n} from './store';\nimport { styles } from './style';\n\nexport const ContextMenuHost = memo(() => {\n const isClient = useIsClient();\n const appElement = useAppElement();\n const state = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n\n useEffect(() => {\n const DEV = process.env.NODE_ENV === 'development';\n if (!isClient || !DEV) return;\n return registerDevSingleton('ContextMenuHost', document.body);\n }, [isClient]);\n\n useEffect(() => {\n const handler = (event: MouseEvent | PointerEvent) => updateLastPointer(event);\n window.addEventListener('pointerdown', handler, true);\n window.addEventListener('contextmenu', handler, true);\n return () => {\n window.removeEventListener('pointerdown', handler, true);\n window.removeEventListener('contextmenu', handler, true);\n };\n }, []);\n\n const menuItems = useMemo(\n () =>\n renderContextMenuItems(state.items, [], {\n iconAlign: state.iconAlign,\n iconSpaceMode: state.iconSpaceMode,\n }),\n [state.items, state.iconAlign, state.iconSpaceMode],\n );\n if (!isClient) return null;\n if (!state.open && state.items.length === 0) return null;\n\n return (\n <ContextMenu.Root\n open={state.open}\n onOpenChange={(open) => {\n if (open) {\n setContextMenuState({ open });\n return;\n }\n closeContextMenu();\n }}\n >\n <ContextMenu.Portal container={appElement}>\n <ContextMenu.Positioner\n anchor={state.anchor ?? undefined}\n className={styles.positioner}\n sideOffset={6}\n >\n <ContextMenu.Popup\n className={styles.popup}\n onContextMenu={preventDefaultAndStopPropagation}\n >\n {menuItems}\n </ContextMenu.Popup>\n </ContextMenu.Positioner>\n </ContextMenu.Portal>\n </ContextMenu.Root>\n );\n});\n\nContextMenuHost.displayName = 'ContextMenuHost';\n"],"mappings":";;;;;;;;;;;;;;AAqBA,MAAa,kBAAkB,WAAW;CACxC,MAAM,WAAW,aAAa;CAC9B,MAAM,aAAa,eAAe;CAClC,MAAM,QAAQ,qBAAqB,WAAW,aAAa,kBAAkB;AAE7E,iBAAgB;EACd,MAAM,MAAM,QAAQ,IAAI,aAAa;AACrC,MAAI,CAAC,YAAY,CAAC,IAAK;AACvB,SAAO,qBAAqB,mBAAmB,SAAS,KAAK;IAC5D,CAAC,SAAS,CAAC;AAEd,iBAAgB;EACd,MAAM,WAAW,UAAqC,kBAAkB,MAAM;AAC9E,SAAO,iBAAiB,eAAe,SAAS,KAAK;AACrD,SAAO,iBAAiB,eAAe,SAAS,KAAK;AACrD,eAAa;AACX,UAAO,oBAAoB,eAAe,SAAS,KAAK;AACxD,UAAO,oBAAoB,eAAe,SAAS,KAAK;;IAEzD,EAAE,CAAC;CAEN,MAAM,YAAY,cAEd,uBAAuB,MAAM,OAAO,EAAE,EAAE;EACtC,WAAW,MAAM;EACjB,eAAe,MAAM;EACtB,CAAC,EACJ;EAAC,MAAM;EAAO,MAAM;EAAW,MAAM;EAAc,CACpD;AACD,KAAI,CAAC,SAAU,QAAO;AACtB,KAAI,CAAC,MAAM,QAAQ,MAAM,MAAM,WAAW,EAAG,QAAO;AAEpD,QACE,oBAAC,YAAY;EACX,MAAM,MAAM;EACZ,eAAe,SAAS;AACtB,OAAI,MAAM;AACR,wBAAoB,EAAE,MAAM,CAAC;AAC7B;;AAEF,qBAAkB;;YAGpB,oBAAC,YAAY;GAAO,WAAW;aAC7B,oBAAC,YAAY;IACX,QAAQ,MAAM,UAAU;IACxB,WAAW,OAAO;IAClB,YAAY;cAEZ,oBAAC,YAAY;KACX,WAAW,OAAO;KAClB,eAAe;eAEd;MACiB;KACG;IACN;GACJ;EAErB;AAEF,gBAAgB,cAAc"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ContextMenuItem } from "./type.mjs";
|
|
2
2
|
import React, { HTMLAttributes, MouseEvent, ReactNode } from "react";
|
|
3
3
|
|
|
4
|
-
//#region src/ContextMenu/ContextMenuTrigger.d.ts
|
|
4
|
+
//#region src/base-ui/ContextMenu/ContextMenuTrigger.d.ts
|
|
5
5
|
type ContextMenuTriggerProps = {
|
|
6
6
|
children: ReactNode;
|
|
7
7
|
/**
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { CLASSNAMES } from "
|
|
3
|
+
import { CLASSNAMES } from "../../styles/classNames.mjs";
|
|
4
4
|
import { getServerSnapshot, getSnapshot, showContextMenu, subscribe } from "./store.mjs";
|
|
5
5
|
import React, { cloneElement, isValidElement, memo, useCallback, useId, useSyncExternalStore } from "react";
|
|
6
6
|
import { jsx } from "react/jsx-runtime";
|
|
7
7
|
import { mergeProps } from "@base-ui/react/merge-props";
|
|
8
8
|
import clsx from "clsx";
|
|
9
9
|
|
|
10
|
-
//#region src/ContextMenu/ContextMenuTrigger.tsx
|
|
10
|
+
//#region src/base-ui/ContextMenu/ContextMenuTrigger.tsx
|
|
11
11
|
const styles = { trigger: { display: "contents" } };
|
|
12
12
|
const ContextMenuTrigger = memo(({ children, items, onContextMenu, ...rest }) => {
|
|
13
13
|
const triggerId = useId();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextMenuTrigger.mjs","names":[],"sources":["../../../src/base-ui/ContextMenu/ContextMenuTrigger.tsx"],"sourcesContent":["'use client';\n\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport clsx from 'clsx';\nimport React, {\n cloneElement,\n type HTMLAttributes,\n isValidElement,\n memo,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useId,\n useSyncExternalStore,\n} from 'react';\n\nimport { CLASSNAMES } from '@/styles/classNames';\n\nimport { getServerSnapshot, getSnapshot, showContextMenu, subscribe } from './store';\nimport { type ContextMenuItem } from './type';\n\nexport type ContextMenuTriggerProps = {\n children: ReactNode;\n /**\n * Menu items to display. Supports lazy rendering via function.\n * When provided, context menu will be automatically shown on right-click.\n */\n items?: ContextMenuItem[] | (() => ContextMenuItem[]);\n /**\n * Custom context menu handler. If `items` is provided, this is optional.\n */\n onContextMenu?: (event: MouseEvent<HTMLElement>) => void;\n} & Omit<HTMLAttributes<HTMLElement>, 'onContextMenu' | 'children'>;\n\nconst styles = {\n trigger: {\n display: 'contents',\n },\n};\n\nexport const ContextMenuTrigger = memo<ContextMenuTriggerProps>(\n ({ children, items, onContextMenu, ...rest }) => {\n const triggerId = useId();\n const state = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n const open = state.open && state.triggerId === triggerId;\n\n const handleContextMenu = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n if (items) {\n event.preventDefault();\n const resolvedItems = typeof items === 'function' ? items() : items;\n showContextMenu(resolvedItems);\n }\n onContextMenu?.(event);\n },\n [items, onContextMenu],\n );\n\n const triggerProps = {\n ...rest,\n 'aria-expanded': open || undefined,\n 'className': clsx(CLASSNAMES.ContextTrigger, rest.className),\n 'data-contextmenu-trigger': triggerId,\n 'data-popup-open': open ? '' : undefined,\n 'data-state': open ? 'open' : undefined,\n 'onContextMenu': handleContextMenu,\n };\n\n if (isValidElement(children) && React.Children.only(children)) {\n return cloneElement(children, mergeProps(children.props as any, triggerProps));\n }\n\n return (\n <span style={styles.trigger} {...triggerProps}>\n {children}\n </span>\n );\n },\n);\n\nContextMenuTrigger.displayName = 'ContextMenuTrigger';\n"],"mappings":";;;;;;;;;;AAkCA,MAAM,SAAS,EACb,SAAS,EACP,SAAS,YACV,EACF;AAED,MAAa,qBAAqB,MAC/B,EAAE,UAAU,OAAO,eAAe,GAAG,WAAW;CAC/C,MAAM,YAAY,OAAO;CACzB,MAAM,QAAQ,qBAAqB,WAAW,aAAa,kBAAkB;CAC7E,MAAM,OAAO,MAAM,QAAQ,MAAM,cAAc;CAE/C,MAAM,oBAAoB,aACvB,UAAmC;AAClC,MAAI,OAAO;AACT,SAAM,gBAAgB;AAEtB,mBADsB,OAAO,UAAU,aAAa,OAAO,GAAG,MAChC;;AAEhC,kBAAgB,MAAM;IAExB,CAAC,OAAO,cAAc,CACvB;CAED,MAAM,eAAe;EACnB,GAAG;EACH,iBAAiB,QAAQ;EACzB,aAAa,KAAK,WAAW,gBAAgB,KAAK,UAAU;EAC5D,4BAA4B;EAC5B,mBAAmB,OAAO,KAAK;EAC/B,cAAc,OAAO,SAAS;EAC9B,iBAAiB;EAClB;AAED,KAAI,eAAe,SAAS,IAAI,MAAM,SAAS,KAAK,SAAS,CAC3D,QAAO,aAAa,UAAU,WAAW,SAAS,OAAc,aAAa,CAAC;AAGhF,QACE,oBAAC;EAAK,OAAO,OAAO;EAAS,GAAI;EAC9B;GACI;EAGZ;AAED,mBAAmB,cAAc"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IconSpaceMode } from "../../Menu/renderUtils.mjs";
|
|
2
|
+
import { ContextMenuCheckboxItem, ContextMenuItem, ContextMenuSwitchItem } from "./type.mjs";
|
|
3
|
+
import { ContextMenuTrigger, ContextMenuTriggerProps } from "./ContextMenuTrigger.mjs";
|
|
4
|
+
import { ContextMenuHost } from "./ContextMenuHost.mjs";
|
|
5
|
+
import "./renderItems.mjs";
|
|
6
|
+
import { ShowContextMenuOptions, closeContextMenu, showContextMenu, updateContextMenuItems } from "./store.mjs";
|
|
7
|
+
import "./imperative.mjs";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import Icon_default from "
|
|
2
|
-
import { preventDefaultAndStopPropagation } from "
|
|
3
|
-
import { styles } from "
|
|
4
|
-
import { getItemKey, getItemLabel, hasAnyIcon, hasCheckboxAndIcon, renderIcon } from "
|
|
5
|
-
import common_default from "
|
|
6
|
-
import { useTranslation } from "
|
|
1
|
+
import Icon_default from "../../Icon/Icon.mjs";
|
|
2
|
+
import { preventDefaultAndStopPropagation } from "../../utils/dom.mjs";
|
|
3
|
+
import { styles } from "../../Menu/sharedStyle.mjs";
|
|
4
|
+
import { getItemKey, getItemLabel, hasAnyIcon, hasCheckboxAndIcon, renderIcon } from "../../Menu/renderUtils.mjs";
|
|
5
|
+
import common_default from "../../i18n/resources/en/common.mjs";
|
|
6
|
+
import { useTranslation } from "../../i18n/useTranslation.mjs";
|
|
7
7
|
import { memo, useCallback, useState } from "react";
|
|
8
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
import { Switch } from "antd";
|
|
@@ -11,7 +11,7 @@ import { cx } from "antd-style";
|
|
|
11
11
|
import { Check, ChevronRight } from "lucide-react";
|
|
12
12
|
import { ContextMenu } from "@base-ui/react/context-menu";
|
|
13
13
|
|
|
14
|
-
//#region src/ContextMenu/renderItems.tsx
|
|
14
|
+
//#region src/base-ui/ContextMenu/renderItems.tsx
|
|
15
15
|
const EmptyMenuItem = memo(() => {
|
|
16
16
|
const { t } = useTranslation(common_default);
|
|
17
17
|
return /* @__PURE__ */ jsx(ContextMenu.Item, {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderItems.mjs","names":["common","info: MenuInfo","label","labelText","isDanger","Icon"],"sources":["../../../src/base-ui/ContextMenu/renderItems.tsx"],"sourcesContent":["import { ContextMenu } from '@base-ui/react/context-menu';\nimport { Switch } from 'antd';\nimport { cx } from 'antd-style';\nimport { Check, ChevronRight } from 'lucide-react';\nimport { type MenuInfo } from 'rc-menu/es/interface';\nimport {\n type KeyboardEvent as ReactKeyboardEvent,\n type MouseEvent as ReactMouseEvent,\n type ReactNode,\n} from 'react';\nimport { memo, useCallback, useState } from 'react';\n\nimport common from '@/i18n/resources/en/common';\nimport { useTranslation } from '@/i18n/useTranslation';\nimport Icon from '@/Icon';\nimport {\n getItemKey,\n getItemLabel,\n hasAnyIcon,\n hasCheckboxAndIcon,\n type MenuDividerType,\n type MenuItemGroupType,\n type MenuItemType,\n renderIcon,\n type RenderItemContentOptions,\n type RenderOptions,\n type SubMenuType,\n} from '@/Menu';\nimport { preventDefaultAndStopPropagation } from '@/utils/dom';\n\nimport { styles } from './style';\nimport {\n type ContextMenuCheckboxItem,\n type ContextMenuItem,\n type ContextMenuSwitchItem,\n} from './type';\n\nexport type { IconAlign, IconSpaceMode } from '@/Menu';\n\nconst EmptyMenuItem = memo(() => {\n const { t } = useTranslation(common);\n return (\n <ContextMenu.Item disabled className={cx(styles.item, styles.empty)}>\n <div className={styles.itemContent}>\n <span className={styles.label}>{t('common.empty')}</span>\n </div>\n </ContextMenu.Item>\n );\n});\n\nEmptyMenuItem.displayName = 'EmptyMenuItem';\n\ninterface ContextMenuSwitchItemInternalProps {\n checked?: boolean;\n children: ReactNode;\n closeOnClick?: boolean;\n danger?: boolean;\n defaultChecked?: boolean;\n disabled?: boolean;\n label?: string;\n onCheckedChange?: (checked: boolean) => void;\n}\n\nconst ContextMenuSwitchItemInternal = ({\n checked: checkedProp,\n children,\n closeOnClick = false,\n danger,\n defaultChecked,\n disabled,\n label,\n onCheckedChange,\n}: ContextMenuSwitchItemInternalProps) => {\n const [internalChecked, setInternalChecked] = useState(defaultChecked ?? false);\n const isControlled = checkedProp !== undefined;\n const checked = isControlled ? checkedProp : internalChecked;\n\n const handleCheckedChange = useCallback(\n (newChecked: boolean) => {\n if (!isControlled) {\n setInternalChecked(newChecked);\n }\n onCheckedChange?.(newChecked);\n },\n [isControlled, onCheckedChange],\n );\n\n return (\n <ContextMenu.Item\n className={cx(styles.item, danger && styles.danger)}\n closeOnClick={closeOnClick}\n disabled={disabled}\n label={label}\n onClick={(e) => {\n e.preventDefault();\n if (!disabled) {\n handleCheckedChange(!checked);\n }\n }}\n >\n {children}\n <Switch\n checked={checked}\n disabled={disabled}\n size=\"small\"\n style={{ marginInlineStart: 16 }}\n onChange={handleCheckedChange}\n onClick={(_, e) => e.stopPropagation()}\n />\n </ContextMenu.Item>\n );\n};\n\nconst renderItemContent = (\n item: MenuItemType | SubMenuType | ContextMenuCheckboxItem | ContextMenuSwitchItem,\n options?: RenderItemContentOptions,\n iconNode?: ReactNode,\n) => {\n const label = getItemLabel(item);\n const desc = 'desc' in item ? item.desc : undefined;\n const extra = 'extra' in item ? item.extra : undefined;\n const indicatorOnRight = options?.indicatorOnRight;\n const alignStart = Boolean(desc) && options?.iconAlign === 'start';\n const hasCustomIcon = iconNode !== undefined && !indicatorOnRight;\n const hasIcon = hasCustomIcon ? Boolean(iconNode) : Boolean(item.icon);\n const shouldRenderIcon = hasCustomIcon\n ? Boolean(options?.reserveIconSpace || iconNode)\n : Boolean(hasIcon || options?.reserveIconSpace);\n\n const labelNode = desc ? (\n <div className={styles.labelGroup}>\n <span className={styles.label}>{label}</span>\n <span className={styles.desc}>{desc}</span>\n </div>\n ) : (\n <span className={styles.label}>{label}</span>\n );\n\n return (\n <div className={cx(styles.itemContent, alignStart && styles.itemContentAlignStart)}>\n {shouldRenderIcon ? (\n <span\n aria-hidden={!hasIcon}\n className={cx(styles.icon, alignStart && styles.iconAlignStart)}\n >\n {hasCustomIcon ? iconNode : hasIcon ? renderIcon(item.icon, 'small') : null}\n </span>\n ) : null}\n {labelNode}\n {extra ? <span className={styles.extra}>{extra}</span> : null}\n {indicatorOnRight && iconNode ? iconNode : null}\n {options?.submenu ? (\n <span className={styles.submenuArrow}>\n <ChevronRight size={16} />\n </span>\n ) : null}\n </div>\n );\n};\n\nconst invokeItemClick = (\n item: MenuItemType,\n keyPath: string[],\n event: ReactMouseEvent<HTMLElement> | ReactKeyboardEvent<HTMLElement>,\n) => {\n if (!item.onClick) return;\n const key = item.key ?? keyPath.at(-1) ?? '';\n const info: MenuInfo = {\n domEvent: event,\n item: event.currentTarget as MenuInfo['item'],\n key: String(key),\n keyPath,\n };\n item.onClick(info);\n};\n\nexport const renderContextMenuItems = (\n items: ContextMenuItem[],\n keyPath: string[] = [],\n options?: RenderOptions,\n): ReactNode[] => {\n const iconAlign = options?.iconAlign;\n const iconSpaceMode = options?.iconSpaceMode ?? 'global';\n const reserveIconSpace =\n options?.reserveIconSpace ?? hasAnyIcon(items, iconSpaceMode === 'global');\n const indicatorOnRight = options?.indicatorOnRight ?? hasCheckboxAndIcon(items);\n\n return items.map((item, index) => {\n if (!item) return null;\n\n const fallbackKey = `${keyPath.join('-') || 'root'}-${index}`;\n const itemKey = getItemKey(item, fallbackKey);\n const nextKeyPath = [...keyPath, String(itemKey)];\n\n if ((item as ContextMenuCheckboxItem).type === 'checkbox') {\n const checkboxItem = item as ContextMenuCheckboxItem;\n const label = getItemLabel(checkboxItem);\n const labelText = typeof label === 'string' ? label : undefined;\n const isDanger = Boolean(checkboxItem.danger);\n const indicator = (\n <ContextMenu.CheckboxItemIndicator>\n <Icon icon={Check} size={'small'} />\n </ContextMenu.CheckboxItemIndicator>\n );\n\n return (\n <ContextMenu.CheckboxItem\n checked={checkboxItem.checked}\n className={cx(styles.item, isDanger && styles.danger)}\n closeOnClick={checkboxItem.closeOnClick}\n defaultChecked={checkboxItem.defaultChecked}\n disabled={checkboxItem.disabled}\n key={itemKey}\n label={labelText}\n onCheckedChange={(checked) => checkboxItem.onCheckedChange?.(checked)}\n >\n {renderItemContent(\n checkboxItem,\n { iconAlign, indicatorOnRight, reserveIconSpace },\n indicator,\n )}\n </ContextMenu.CheckboxItem>\n );\n }\n\n if ((item as ContextMenuSwitchItem).type === 'switch') {\n const switchItem = item as ContextMenuSwitchItem;\n const label = getItemLabel(switchItem);\n const labelText = typeof label === 'string' ? label : undefined;\n const isDanger = Boolean(switchItem.danger);\n\n return (\n <ContextMenuSwitchItemInternal\n checked={switchItem.checked}\n closeOnClick={switchItem.closeOnClick}\n danger={isDanger}\n defaultChecked={switchItem.defaultChecked}\n disabled={switchItem.disabled}\n key={itemKey}\n label={labelText}\n onCheckedChange={switchItem.onCheckedChange}\n >\n {renderItemContent(switchItem, { iconAlign, reserveIconSpace })}\n </ContextMenuSwitchItemInternal>\n );\n }\n\n if ((item as MenuDividerType).type === 'divider') {\n return <ContextMenu.Separator className={styles.separator} key={itemKey} />;\n }\n\n if ((item as MenuItemGroupType).type === 'group') {\n const group = item as MenuItemGroupType;\n const groupReserveIconSpace =\n iconSpaceMode === 'group'\n ? group.children\n ? hasAnyIcon(group.children)\n : false\n : reserveIconSpace;\n const groupIndicatorOnRight = group.children ? hasCheckboxAndIcon(group.children) : false;\n return (\n <ContextMenu.Group key={itemKey}>\n {group.label ? (\n <ContextMenu.GroupLabel className={styles.groupLabel}>\n {group.label}\n </ContextMenu.GroupLabel>\n ) : null}\n {group.children\n ? renderContextMenuItems(group.children, nextKeyPath, {\n iconAlign,\n iconSpaceMode,\n indicatorOnRight: groupIndicatorOnRight,\n reserveIconSpace: groupReserveIconSpace,\n })\n : null}\n </ContextMenu.Group>\n );\n }\n\n if (\n (item as SubMenuType).type === 'submenu' ||\n ('children' in item && (item as SubMenuType).children)\n ) {\n const submenu = item as SubMenuType;\n const label = getItemLabel(submenu);\n const labelText = typeof label === 'string' ? label : undefined;\n const isDanger = 'danger' in submenu && Boolean(submenu.danger);\n\n return (\n <ContextMenu.SubmenuRoot key={itemKey}>\n <ContextMenu.SubmenuTrigger\n className={cx(styles.item, isDanger && styles.danger)}\n disabled={submenu.disabled}\n label={labelText}\n >\n {renderItemContent(submenu, {\n iconAlign,\n reserveIconSpace,\n submenu: true,\n })}\n </ContextMenu.SubmenuTrigger>\n <ContextMenu.Portal>\n <ContextMenu.Positioner\n alignOffset={-4}\n className={styles.positioner}\n data-submenu=\"\"\n sideOffset={-1}\n onContextMenu={preventDefaultAndStopPropagation}\n >\n <ContextMenu.Popup className={styles.popup}>\n {submenu.children && submenu.children.length > 0 ? (\n renderContextMenuItems(submenu.children, nextKeyPath, {\n iconAlign,\n iconSpaceMode,\n })\n ) : (\n <EmptyMenuItem />\n )}\n </ContextMenu.Popup>\n </ContextMenu.Positioner>\n </ContextMenu.Portal>\n </ContextMenu.SubmenuRoot>\n );\n }\n\n const menuItem = item as MenuItemType;\n const label = getItemLabel(menuItem);\n const labelText = typeof label === 'string' ? label : undefined;\n const isDanger = 'danger' in menuItem && Boolean(menuItem.danger);\n\n return (\n <ContextMenu.Item\n className={cx(styles.item, isDanger && styles.danger)}\n closeOnClick={menuItem.closeOnClick}\n disabled={menuItem.disabled}\n key={itemKey}\n label={labelText}\n onClick={(event) => invokeItemClick(menuItem, nextKeyPath, event)}\n >\n {renderItemContent(menuItem, { iconAlign, reserveIconSpace })}\n </ContextMenu.Item>\n );\n });\n};\n"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { IconAlign, IconSpaceMode } from "
|
|
2
|
-
import "
|
|
1
|
+
import { IconAlign, IconSpaceMode } from "../../Menu/renderUtils.mjs";
|
|
2
|
+
import "../../Menu/index.mjs";
|
|
3
3
|
import { ContextMenuItem } from "./type.mjs";
|
|
4
4
|
import "./renderItems.mjs";
|
|
5
5
|
import "@floating-ui/react";
|
|
6
6
|
|
|
7
|
-
//#region src/ContextMenu/store.d.ts
|
|
7
|
+
//#region src/base-ui/ContextMenu/store.d.ts
|
|
8
8
|
|
|
9
9
|
interface ShowContextMenuOptions {
|
|
10
10
|
iconAlign?: IconAlign;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.mjs","names":["emptyState: ContextMenuState","contextMenuState: ContextMenuState"],"sources":["../../../src/base-ui/ContextMenu/store.ts"],"sourcesContent":["import type { VirtualElement } from '@floating-ui/react';\n\nimport type { IconAlign } from '@/Menu';\n\nimport type { IconSpaceMode } from './renderItems';\nimport type { ContextMenuItem } from './type';\n\nexport type ContextMenuState = {\n anchor: VirtualElement | null;\n iconAlign?: IconAlign;\n iconSpaceMode: IconSpaceMode;\n items: ContextMenuItem[];\n open: boolean;\n triggerId: string | null;\n};\n\nconst emptyState: ContextMenuState = {\n anchor: null,\n iconSpaceMode: 'global',\n items: [],\n open: false,\n triggerId: null,\n};\n\nlet contextMenuState: ContextMenuState = emptyState;\nconst listeners = new Set<() => void>();\nconst lastPointer = { ready: false, triggerId: null as string | null, x: 0, y: 0 };\n\nconst notify = () => {\n listeners.forEach((listener) => listener());\n};\n\nexport const subscribe = (listener: () => void) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n};\n\nexport const getSnapshot = () => contextMenuState;\nexport const getServerSnapshot = () => emptyState;\n\nexport const updateLastPointer = (event: MouseEvent | PointerEvent) => {\n lastPointer.x = event.clientX;\n lastPointer.y = event.clientY;\n lastPointer.ready = true;\n if (event.target instanceof Element) {\n const trigger = event.target.closest<HTMLElement>('[data-contextmenu-trigger]');\n lastPointer.triggerId = trigger?.dataset.contextmenuTrigger ?? null;\n } else {\n lastPointer.triggerId = null;\n }\n};\n\nconst createVirtualElement = (point: { x: number; y: number }): VirtualElement => ({\n contextElement: typeof document === 'undefined' ? undefined : document.body,\n getBoundingClientRect: () =>\n ({\n bottom: point.y,\n height: 0,\n left: point.x,\n right: point.x,\n toJSON: () => undefined,\n top: point.y,\n width: 0,\n x: point.x,\n y: point.y,\n }) as DOMRect,\n});\n\nexport const setContextMenuState = (next: Partial<ContextMenuState>) => {\n contextMenuState = { ...contextMenuState, ...next };\n notify();\n};\n\nexport interface ShowContextMenuOptions {\n iconAlign?: IconAlign;\n iconSpaceMode?: IconSpaceMode;\n}\n\nexport const showContextMenu = (items: ContextMenuItem[], options?: ShowContextMenuOptions) => {\n if (typeof window === 'undefined') return;\n\n const fallbackPoint = { x: window.innerWidth / 2, y: window.innerHeight / 2 };\n const point = lastPointer.ready ? { x: lastPointer.x, y: lastPointer.y } : fallbackPoint;\n\n setContextMenuState({\n anchor: createVirtualElement(point),\n iconAlign: options?.iconAlign,\n iconSpaceMode: options?.iconSpaceMode ?? 'global',\n items,\n open: true,\n triggerId: lastPointer.triggerId ?? null,\n });\n};\n\n/**\n * Update menu items while keeping current anchor/position.\n * Useful for interactive menu items (e.g. checkbox) to avoid re-positioning.\n */\nexport const updateContextMenuItems = (items: ContextMenuItem[]) => {\n if (typeof window === 'undefined') return;\n setContextMenuState({ items });\n};\n\nexport const closeContextMenu = () => {\n setContextMenuState({\n anchor: null,\n iconSpaceMode: 'global',\n items: [],\n open: false,\n triggerId: null,\n });\n};\n"],"mappings":";AAgBA,MAAMA,aAA+B;CACnC,QAAQ;CACR,eAAe;CACf,OAAO,EAAE;CACT,MAAM;CACN,WAAW;CACZ;AAED,IAAIC,mBAAqC;AACzC,MAAM,4BAAY,IAAI,KAAiB;AACvC,MAAM,cAAc;CAAE,OAAO;CAAO,WAAW;CAAuB,GAAG;CAAG,GAAG;CAAG;AAElF,MAAM,eAAe;AACnB,WAAU,SAAS,aAAa,UAAU,CAAC;;AAG7C,MAAa,aAAa,aAAyB;AACjD,WAAU,IAAI,SAAS;AACvB,cAAa,UAAU,OAAO,SAAS;;AAGzC,MAAa,oBAAoB;AACjC,MAAa,0BAA0B;AAEvC,MAAa,qBAAqB,UAAqC;AACrE,aAAY,IAAI,MAAM;AACtB,aAAY,IAAI,MAAM;AACtB,aAAY,QAAQ;AACpB,KAAI,MAAM,kBAAkB,QAE1B,aAAY,YADI,MAAM,OAAO,QAAqB,6BAA6B,EAC9C,QAAQ,sBAAsB;KAE/D,aAAY,YAAY;;AAI5B,MAAM,wBAAwB,WAAqD;CACjF,gBAAgB,OAAO,aAAa,cAAc,SAAY,SAAS;CACvE,8BACG;EACC,QAAQ,MAAM;EACd,QAAQ;EACR,MAAM,MAAM;EACZ,OAAO,MAAM;EACb,cAAc;EACd,KAAK,MAAM;EACX,OAAO;EACP,GAAG,MAAM;EACT,GAAG,MAAM;EACV;CACJ;AAED,MAAa,uBAAuB,SAAoC;AACtE,oBAAmB;EAAE,GAAG;EAAkB,GAAG;EAAM;AACnD,SAAQ;;AAQV,MAAa,mBAAmB,OAA0B,YAAqC;AAC7F,KAAI,OAAO,WAAW,YAAa;CAEnC,MAAM,gBAAgB;EAAE,GAAG,OAAO,aAAa;EAAG,GAAG,OAAO,cAAc;EAAG;AAG7E,qBAAoB;EAClB,QAAQ,qBAHI,YAAY,QAAQ;GAAE,GAAG,YAAY;GAAG,GAAG,YAAY;GAAG,GAAG,cAGtC;EACnC,WAAW,SAAS;EACpB,eAAe,SAAS,iBAAiB;EACzC;EACA,MAAM;EACN,WAAW,YAAY,aAAa;EACrC,CAAC;;;;;;AAOJ,MAAa,0BAA0B,UAA6B;AAClE,KAAI,OAAO,WAAW,YAAa;AACnC,qBAAoB,EAAE,OAAO,CAAC;;AAGhC,MAAa,yBAAyB;AACpC,qBAAoB;EAClB,QAAQ;EACR,eAAe;EACf,OAAO,EAAE;EACT,MAAM;EACN,WAAW;EACZ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { MenuCheckboxItemType } from "../../Menu/checkboxItem.mjs";
|
|
2
|
+
import { MenuSwitchItemType } from "../../Menu/switchItem.mjs";
|
|
3
|
+
import { BaseMenuItemType } from "../../Menu/baseItem.mjs";
|
|
4
|
+
import "../../Menu/index.mjs";
|
|
5
|
+
|
|
6
|
+
//#region src/base-ui/ContextMenu/type.d.ts
|
|
7
|
+
type ContextMenuCheckboxItem = MenuCheckboxItemType;
|
|
8
|
+
type ContextMenuSwitchItem = MenuSwitchItemType;
|
|
9
|
+
type ContextMenuItem = BaseMenuItemType;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { ContextMenuCheckboxItem, ContextMenuItem, ContextMenuSwitchItem };
|
|
12
|
+
//# sourceMappingURL=type.d.mts.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DropdownMenuProps } from "./type.mjs";
|
|
2
|
+
import * as react149 from "react";
|
|
3
|
+
|
|
4
|
+
//#region src/base-ui/DropdownMenu/DropdownMenu.d.ts
|
|
5
|
+
declare const DropdownMenu: react149.NamedExoticComponent<DropdownMenuProps<unknown>>;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { DropdownMenu };
|
|
8
|
+
//# sourceMappingURL=DropdownMenu.d.mts.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { useNativeButton } from "
|
|
3
|
+
import { useNativeButton } from "../../hooks/useNativeButton.mjs";
|
|
4
4
|
import { DropdownMenuPopup, DropdownMenuPortal, DropdownMenuPositioner, DropdownMenuTrigger } from "./atoms.mjs";
|
|
5
|
-
import { parseTrigger } from "
|
|
5
|
+
import { parseTrigger } from "../../utils/parseTrigger.mjs";
|
|
6
6
|
import { renderDropdownMenuItems } from "./renderItems.mjs";
|
|
7
7
|
import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
8
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
import { Menu } from "@base-ui/react/menu";
|
|
10
10
|
|
|
11
|
-
//#region src/DropdownMenu/DropdownMenu.tsx
|
|
11
|
+
//#region src/base-ui/DropdownMenu/DropdownMenu.tsx
|
|
12
12
|
const DropdownMenu = memo(({ children, defaultOpen, iconAlign, iconSpaceMode, items, nativeButton, onOpenChange, onOpenChangeComplete, open, placement = "bottomLeft", popupProps, portalProps, positionerProps, trigger = "click", triggerProps, ...rest }) => {
|
|
13
13
|
const [uncontrolledOpen, setUncontrolledOpen] = useState(Boolean(defaultOpen));
|
|
14
14
|
const { openOnHover } = useMemo(() => parseTrigger(trigger), [trigger]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropdownMenu.mjs","names":[],"sources":["../../../src/base-ui/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';\nimport { parseTrigger } from '@/utils/parseTrigger';\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 iconAlign,\n iconSpaceMode,\n items,\n nativeButton,\n onOpenChange,\n onOpenChangeComplete,\n open,\n placement = 'bottomLeft',\n popupProps,\n portalProps,\n positionerProps,\n trigger = 'click',\n triggerProps,\n ...rest\n }) => {\n const [uncontrolledOpen, setUncontrolledOpen] = useState(Boolean(defaultOpen));\n\n const { openOnHover } = useMemo(() => parseTrigger(trigger), [trigger]);\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 iconAlign,\n iconSpaceMode,\n });\n menuItemsRef.current = renderedItems;\n return renderedItems;\n }\n return menuItemsRef.current;\n }, [isOpen, items, iconAlign, iconSpaceMode]);\n const handleOpenChangeComplete = useCallback(\n (nextOpen: boolean) => {\n onOpenChangeComplete?.(nextOpen);\n if (!nextOpen) {\n menuItemsRef.current = null;\n }\n },\n [onOpenChangeComplete],\n );\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 triggerElement = (\n <DropdownMenuTrigger\n {...triggerProps}\n nativeButton={resolvedNativeButton}\n openOnHover={openOnHover}\n >\n {children}\n </DropdownMenuTrigger>\n );\n\n return (\n <Menu.Root\n {...rest}\n defaultOpen={defaultOpen}\n modal={false}\n open={open}\n onOpenChange={handleOpenChange}\n onOpenChangeComplete={handleOpenChangeComplete}\n >\n {triggerElement}\n <DropdownMenuPortal container={portalContainer} {...restPortalProps}>\n <DropdownMenuPositioner\n {...positionerProps}\n hoverTrigger={openOnHover}\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":";;;;;;;;;;;AAiBA,MAAM,eAAe,MAClB,EACC,UACA,aACA,WACA,eACA,OACA,cACA,cACA,sBACA,MACA,YAAY,cACZ,YACA,aACA,iBACA,UAAU,SACV,cACA,GAAG,WACC;CACJ,MAAM,CAAC,kBAAkB,uBAAuB,SAAS,QAAQ,YAAY,CAAC;CAE9E,MAAM,EAAE,gBAAgB,cAAc,aAAa,QAAQ,EAAE,CAAC,QAAQ,CAAC;AAEvE,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,OACD,EAAE,EAAE;IAC/D;IACA;IACD,CAAC;AACF,gBAAa,UAAU;AACvB,UAAO;;AAET,SAAO,aAAa;IACnB;EAAC;EAAQ;EAAO;EAAW;EAAc,CAAC;CAC7C,MAAM,2BAA2B,aAC9B,aAAsB;AACrB,yBAAuB,SAAS;AAChC,MAAI,CAAC,SACH,cAAa,UAAU;IAG3B,CAAC,qBAAqB,CACvB;CACD,MAAM,EAAE,WAAW,iBAAiB,GAAG,oBAAqB,eAAe,EAAE;CAE7E,MAAM,EAAE,yBAAyB,gBAAgB;EAC/C;EACA;EACA,qBAAqB,cAAc;EACpC,CAAC;CAEF,MAAM,iBACJ,oBAAC;EACC,GAAI;EACJ,cAAc;EACD;EAEZ;GACmB;AAGxB,QACE,qBAAC,KAAK;EACJ,GAAI;EACS;EACb,OAAO;EACD;EACN,cAAc;EACd,sBAAsB;aAErB,gBACD,oBAAC;GAAmB,WAAW;GAAiB,GAAI;aAClD,oBAAC;IACC,GAAI;IACJ,cAAc;IACH;cAEX,oBAAC;KAAkB,GAAI;eAAa;MAA8B;KAC3C;IACN;GACX;EAGjB;AAED,aAAa,cAAc;AAE3B,2BAAe"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { DropdownMenuPlacement } from "./type.mjs";
|
|
2
2
|
import React from "react";
|
|
3
|
-
import * as
|
|
3
|
+
import * as react_jsx_runtime26 from "react/jsx-runtime";
|
|
4
4
|
import * as _base_ui_react_menu0 from "@base-ui/react/menu";
|
|
5
5
|
import { Menu } from "@base-ui/react/menu";
|
|
6
6
|
|
|
7
|
-
//#region src/DropdownMenu/atoms.d.ts
|
|
7
|
+
//#region src/base-ui/DropdownMenu/atoms.d.ts
|
|
8
8
|
declare const DropdownMenuRoot: typeof Menu.Root;
|
|
9
9
|
declare const DropdownMenuSubmenuRoot: typeof Menu.SubmenuRoot;
|
|
10
10
|
declare const DropdownMenuCheckboxItemIndicator: React.ForwardRefExoticComponent<_base_ui_react_menu0.MenuCheckboxItemIndicatorProps & React.RefAttributes<HTMLSpanElement>>;
|
|
@@ -18,7 +18,7 @@ declare const DropdownMenuTrigger: {
|
|
|
18
18
|
nativeButton,
|
|
19
19
|
ref: refProp,
|
|
20
20
|
...rest
|
|
21
|
-
}: DropdownMenuTriggerProps):
|
|
21
|
+
}: DropdownMenuTriggerProps): react_jsx_runtime26.JSX.Element;
|
|
22
22
|
displayName: string;
|
|
23
23
|
};
|
|
24
24
|
type DropdownMenuPortalProps = React.ComponentProps<typeof Menu.Portal> & {
|
|
@@ -31,7 +31,7 @@ declare const DropdownMenuPortal: {
|
|
|
31
31
|
({
|
|
32
32
|
container,
|
|
33
33
|
...rest
|
|
34
|
-
}: DropdownMenuPortalProps):
|
|
34
|
+
}: DropdownMenuPortalProps): react_jsx_runtime26.JSX.Element;
|
|
35
35
|
displayName: string;
|
|
36
36
|
};
|
|
37
37
|
type DropdownMenuPositionerProps = React.ComponentProps<typeof Menu.Positioner> & {
|
|
@@ -48,7 +48,7 @@ declare const DropdownMenuPositioner: {
|
|
|
48
48
|
sideOffset,
|
|
49
49
|
children,
|
|
50
50
|
...rest
|
|
51
|
-
}: DropdownMenuPositionerProps):
|
|
51
|
+
}: DropdownMenuPositionerProps): react_jsx_runtime26.JSX.Element;
|
|
52
52
|
displayName: string;
|
|
53
53
|
};
|
|
54
54
|
type DropdownMenuPopupProps = React.ComponentProps<typeof Menu.Popup>;
|
|
@@ -56,7 +56,7 @@ declare const DropdownMenuPopup: {
|
|
|
56
56
|
({
|
|
57
57
|
className,
|
|
58
58
|
...rest
|
|
59
|
-
}: DropdownMenuPopupProps):
|
|
59
|
+
}: DropdownMenuPopupProps): react_jsx_runtime26.JSX.Element;
|
|
60
60
|
displayName: string;
|
|
61
61
|
};
|
|
62
62
|
type DropdownMenuItemProps = React.ComponentProps<typeof Menu.Item> & {
|
|
@@ -67,7 +67,7 @@ declare const DropdownMenuItem: {
|
|
|
67
67
|
className,
|
|
68
68
|
danger,
|
|
69
69
|
...rest
|
|
70
|
-
}: DropdownMenuItemProps):
|
|
70
|
+
}: DropdownMenuItemProps): react_jsx_runtime26.JSX.Element;
|
|
71
71
|
displayName: string;
|
|
72
72
|
};
|
|
73
73
|
type DropdownMenuCheckboxItemProps = React.ComponentProps<typeof Menu.CheckboxItem> & {
|
|
@@ -78,7 +78,7 @@ declare const DropdownMenuCheckboxItemPrimitive: {
|
|
|
78
78
|
className,
|
|
79
79
|
danger,
|
|
80
80
|
...rest
|
|
81
|
-
}: DropdownMenuCheckboxItemProps):
|
|
81
|
+
}: DropdownMenuCheckboxItemProps): react_jsx_runtime26.JSX.Element;
|
|
82
82
|
displayName: string;
|
|
83
83
|
};
|
|
84
84
|
type DropdownMenuSeparatorProps = React.ComponentProps<typeof Menu.Separator>;
|
|
@@ -86,7 +86,7 @@ declare const DropdownMenuSeparator: {
|
|
|
86
86
|
({
|
|
87
87
|
className,
|
|
88
88
|
...rest
|
|
89
|
-
}: DropdownMenuSeparatorProps):
|
|
89
|
+
}: DropdownMenuSeparatorProps): react_jsx_runtime26.JSX.Element;
|
|
90
90
|
displayName: string;
|
|
91
91
|
};
|
|
92
92
|
declare const DropdownMenuGroup: React.ForwardRefExoticComponent<_base_ui_react_menu0.MenuGroupProps & React.RefAttributes<Element>>;
|
|
@@ -95,7 +95,7 @@ declare const DropdownMenuGroupLabel: {
|
|
|
95
95
|
({
|
|
96
96
|
className,
|
|
97
97
|
...rest
|
|
98
|
-
}: DropdownMenuGroupLabelProps):
|
|
98
|
+
}: DropdownMenuGroupLabelProps): react_jsx_runtime26.JSX.Element;
|
|
99
99
|
displayName: string;
|
|
100
100
|
};
|
|
101
101
|
type DropdownMenuSubmenuTriggerProps = React.ComponentProps<typeof Menu.SubmenuTrigger> & {
|
|
@@ -106,7 +106,7 @@ declare const DropdownMenuSubmenuTrigger: {
|
|
|
106
106
|
className,
|
|
107
107
|
danger,
|
|
108
108
|
...rest
|
|
109
|
-
}: DropdownMenuSubmenuTriggerProps):
|
|
109
|
+
}: DropdownMenuSubmenuTriggerProps): react_jsx_runtime26.JSX.Element;
|
|
110
110
|
displayName: string;
|
|
111
111
|
};
|
|
112
112
|
type DropdownMenuItemContentProps = React.HTMLAttributes<HTMLDivElement>;
|
|
@@ -114,7 +114,7 @@ declare const DropdownMenuItemContent: {
|
|
|
114
114
|
({
|
|
115
115
|
className,
|
|
116
116
|
...rest
|
|
117
|
-
}: DropdownMenuItemContentProps):
|
|
117
|
+
}: DropdownMenuItemContentProps): react_jsx_runtime26.JSX.Element;
|
|
118
118
|
displayName: string;
|
|
119
119
|
};
|
|
120
120
|
type DropdownMenuItemIconProps = React.HTMLAttributes<HTMLSpanElement>;
|
|
@@ -122,7 +122,7 @@ declare const DropdownMenuItemIcon: {
|
|
|
122
122
|
({
|
|
123
123
|
className,
|
|
124
124
|
...rest
|
|
125
|
-
}: DropdownMenuItemIconProps):
|
|
125
|
+
}: DropdownMenuItemIconProps): react_jsx_runtime26.JSX.Element;
|
|
126
126
|
displayName: string;
|
|
127
127
|
};
|
|
128
128
|
type DropdownMenuItemLabelGroupProps = React.HTMLAttributes<HTMLDivElement>;
|
|
@@ -130,7 +130,7 @@ declare const DropdownMenuItemLabelGroup: {
|
|
|
130
130
|
({
|
|
131
131
|
className,
|
|
132
132
|
...rest
|
|
133
|
-
}: DropdownMenuItemLabelGroupProps):
|
|
133
|
+
}: DropdownMenuItemLabelGroupProps): react_jsx_runtime26.JSX.Element;
|
|
134
134
|
displayName: string;
|
|
135
135
|
};
|
|
136
136
|
type DropdownMenuItemLabelProps = React.HTMLAttributes<HTMLSpanElement>;
|
|
@@ -138,7 +138,7 @@ declare const DropdownMenuItemLabel: {
|
|
|
138
138
|
({
|
|
139
139
|
className,
|
|
140
140
|
...rest
|
|
141
|
-
}: DropdownMenuItemLabelProps):
|
|
141
|
+
}: DropdownMenuItemLabelProps): react_jsx_runtime26.JSX.Element;
|
|
142
142
|
displayName: string;
|
|
143
143
|
};
|
|
144
144
|
type DropdownMenuItemDescProps = React.HTMLAttributes<HTMLSpanElement>;
|
|
@@ -146,7 +146,7 @@ declare const DropdownMenuItemDesc: {
|
|
|
146
146
|
({
|
|
147
147
|
className,
|
|
148
148
|
...rest
|
|
149
|
-
}: DropdownMenuItemDescProps):
|
|
149
|
+
}: DropdownMenuItemDescProps): react_jsx_runtime26.JSX.Element;
|
|
150
150
|
displayName: string;
|
|
151
151
|
};
|
|
152
152
|
type DropdownMenuItemExtraProps = React.HTMLAttributes<HTMLSpanElement>;
|
|
@@ -154,7 +154,7 @@ declare const DropdownMenuItemExtra: {
|
|
|
154
154
|
({
|
|
155
155
|
className,
|
|
156
156
|
...rest
|
|
157
|
-
}: DropdownMenuItemExtraProps):
|
|
157
|
+
}: DropdownMenuItemExtraProps): react_jsx_runtime26.JSX.Element;
|
|
158
158
|
displayName: string;
|
|
159
159
|
};
|
|
160
160
|
type DropdownMenuSubmenuArrowProps = React.HTMLAttributes<HTMLSpanElement>;
|
|
@@ -162,7 +162,7 @@ declare const DropdownMenuSubmenuArrow: {
|
|
|
162
162
|
({
|
|
163
163
|
className,
|
|
164
164
|
...rest
|
|
165
|
-
}: DropdownMenuSubmenuArrowProps):
|
|
165
|
+
}: DropdownMenuSubmenuArrowProps): react_jsx_runtime26.JSX.Element;
|
|
166
166
|
displayName: string;
|
|
167
167
|
};
|
|
168
168
|
type DropdownMenuSwitchItemProps = Omit<React.ComponentProps<typeof Menu.Item>, 'onClick'> & {
|
|
@@ -183,7 +183,7 @@ declare const DropdownMenuSwitchItem: {
|
|
|
183
183
|
onCheckedChange,
|
|
184
184
|
children,
|
|
185
185
|
...rest
|
|
186
|
-
}: DropdownMenuSwitchItemProps):
|
|
186
|
+
}: DropdownMenuSwitchItemProps): react_jsx_runtime26.JSX.Element;
|
|
187
187
|
displayName: string;
|
|
188
188
|
};
|
|
189
189
|
//#endregion
|