@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.
Files changed (267) 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/ActionIconGroup/ActionIconGroup.mjs +1 -1
  5. package/es/ActionIconGroup/type.d.mts +1 -1
  6. package/es/Alert/Alert.d.mts +2 -2
  7. package/es/AutoComplete/Select.d.mts +2 -2
  8. package/es/Avatar/AvatarGroup/index.d.mts +2 -2
  9. package/es/Burger/Burger.d.mts +2 -2
  10. package/es/CodeDiff/CodeDiff.d.mts +2 -2
  11. package/es/CodeDiff/PatchDiff.d.mts +2 -2
  12. package/es/CodeEditor/CodeEditor.d.mts +2 -2
  13. package/es/Collapse/Collapse.d.mts +2 -2
  14. package/es/ConfigProvider/index.d.mts +2 -2
  15. package/es/ContextMenu/index.d.mts +6 -7
  16. package/es/ContextMenu/index.mjs +3 -3
  17. package/es/CopyButton/CopyButton.d.mts +2 -2
  18. package/es/DatePicker/DatePicker.d.mts +2 -2
  19. package/es/DraggablePanel/components/DraggablePanelBody.d.mts +2 -2
  20. package/es/DraggablePanel/components/DraggablePanelContainer.d.mts +2 -2
  21. package/es/DraggablePanel/components/DraggablePanelFooter.d.mts +2 -2
  22. package/es/DraggablePanel/components/DraggablePanelHeader.d.mts +2 -2
  23. package/es/DraggableSideNav/DraggableSideNav.d.mts +2 -2
  24. package/es/Drawer/Drawer.d.mts +2 -2
  25. package/es/Dropdown/Dropdown.d.mts +2 -2
  26. package/es/DropdownMenu/index.d.mts +6 -5
  27. package/es/DropdownMenu/index.mjs +4 -4
  28. package/es/EditableText/EditableText.d.mts +2 -2
  29. package/es/EditorSlashMenu/atoms.d.mts +13 -13
  30. package/es/EmojiPicker/EmojiPicker.d.mts +2 -2
  31. package/es/Flex/FlexBasic.d.mts +2 -2
  32. package/es/FontLoader/index.d.mts +2 -2
  33. package/es/Footer/Footer.d.mts +2 -2
  34. package/es/Form/components/FormGroup.d.mts +2 -2
  35. package/es/Form/components/FormItem.d.mts +2 -2
  36. package/es/Form/components/FormSubmitFooter.d.mts +2 -2
  37. package/es/FormModal/FormModal.d.mts +2 -2
  38. package/es/GuideCard/GuideCard.d.mts +2 -2
  39. package/es/Header/Header.d.mts +2 -2
  40. package/es/Highlighter/Highlighter.d.mts +2 -2
  41. package/es/Highlighter/SyntaxHighlighter/index.d.mts +2 -2
  42. package/es/Hotkey/Hotkey.d.mts +2 -2
  43. package/es/HotkeyInput/HotkeyInput.d.mts +2 -2
  44. package/es/Icon/Icon.d.mts +2 -2
  45. package/es/Icon/components/IconProvider.d.mts +3 -3
  46. package/es/ImageSelect/ImageSelect.d.mts +2 -2
  47. package/es/Input/Input.d.mts +2 -2
  48. package/es/Input/InputNumber.d.mts +2 -2
  49. package/es/Input/InputOPT.d.mts +2 -2
  50. package/es/Input/InputPassword.d.mts +2 -2
  51. package/es/Input/TextArea.d.mts +2 -2
  52. package/es/Layout/components/LayoutFooter.d.mts +2 -2
  53. package/es/Layout/components/LayoutHeader.d.mts +2 -2
  54. package/es/Layout/components/LayoutMain.d.mts +2 -2
  55. package/es/Layout/components/LayoutSidebar.d.mts +2 -2
  56. package/es/Layout/components/LayoutSidebarInner.d.mts +2 -2
  57. package/es/Layout/components/LayoutToc.d.mts +2 -2
  58. package/es/List/ListItem/index.d.mts +2 -2
  59. package/es/Markdown/Markdown.d.mts +2 -2
  60. package/es/Markdown/Typography.d.mts +2 -2
  61. package/es/Markdown/components/SearchResultCards/index.d.mts +2 -2
  62. package/es/MaskShadow/MaskShadow.d.mts +2 -2
  63. package/es/Menu/Menu.d.mts +2 -2
  64. package/es/Mermaid/Mermaid.d.mts +2 -2
  65. package/es/Mermaid/SyntaxMermaid/index.d.mts +2 -2
  66. package/es/Modal/Modal.d.mts +2 -2
  67. package/es/Modal/ModalProvider.d.mts +2 -2
  68. package/es/Modal/imperative.d.mts +2 -2
  69. package/es/MotionProvider/index.d.mts +2 -2
  70. package/es/Popover/ArrowIcon.d.mts +2 -2
  71. package/es/Popover/atoms.d.mts +9 -9
  72. package/es/Popover/context.d.mts +2 -2
  73. package/es/ScrollArea/index.d.mts +5 -4
  74. package/es/ScrollArea/index.mjs +2 -2
  75. package/es/SearchBar/SearchBar.d.mts +2 -2
  76. package/es/Segmented/Segmented.d.mts +2 -2
  77. package/es/Select/Select.d.mts +3 -3
  78. package/es/Select/Select.mjs +1 -1
  79. package/es/Select/Select.mjs.map +1 -1
  80. package/es/SideNav/SideNav.d.mts +2 -2
  81. package/es/SliderWithInput/SliderWithInput.d.mts +2 -2
  82. package/es/SortableList/components/DragHandle.d.mts +2 -2
  83. package/es/SortableList/components/SortableItem.d.mts +2 -2
  84. package/es/ThemeProvider/ThemeProvider.d.mts +2 -2
  85. package/es/ThemeSwitch/ThemeSwitch.mjs +1 -1
  86. package/es/Toast/index.d.mts +4 -3
  87. package/es/Toast/index.mjs +1 -1
  88. package/es/Toc/Toc.d.mts +2 -2
  89. package/es/Video/index.d.mts +2 -2
  90. package/es/awesome/AuroraBackground/AuroraBackground.d.mts +2 -2
  91. package/es/awesome/BottomGradientButton/BottomGradientButton.d.mts +2 -2
  92. package/es/awesome/Features/Features.d.mts +2 -2
  93. package/es/awesome/Giscus/Giscus.d.mts +2 -2
  94. package/es/awesome/GradientButton/GradientButton.d.mts +2 -2
  95. package/es/awesome/GridBackground/GridBackground.d.mts +2 -2
  96. package/es/awesome/GridBackground/GridShowcase.d.mts +2 -2
  97. package/es/awesome/Hero/Hero.d.mts +2 -2
  98. package/es/awesome/Spline/Spine.d.mts +2 -2
  99. package/es/awesome/Spotlight/Spotlight.d.mts +2 -2
  100. package/es/awesome/SpotlightCard/SpotlightCard.d.mts +2 -2
  101. package/es/awesome/TypewriterEffect/TypewriterEffect.d.mts +2 -2
  102. package/es/base-ui/ContextMenu/ContextMenuHost.d.mts +8 -0
  103. package/es/{ContextMenu → base-ui/ContextMenu}/ContextMenuHost.mjs +6 -6
  104. package/es/base-ui/ContextMenu/ContextMenuHost.mjs.map +1 -0
  105. package/es/{ContextMenu → base-ui/ContextMenu}/ContextMenuTrigger.d.mts +1 -1
  106. package/es/{ContextMenu → base-ui/ContextMenu}/ContextMenuTrigger.mjs +2 -2
  107. package/es/base-ui/ContextMenu/ContextMenuTrigger.mjs.map +1 -0
  108. package/es/base-ui/ContextMenu/index.d.mts +7 -0
  109. package/es/base-ui/ContextMenu/renderItems.d.mts +4 -0
  110. package/es/{ContextMenu → base-ui/ContextMenu}/renderItems.mjs +7 -7
  111. package/es/base-ui/ContextMenu/renderItems.mjs.map +1 -0
  112. package/es/{ContextMenu → base-ui/ContextMenu}/store.d.mts +3 -3
  113. package/es/{ContextMenu → base-ui/ContextMenu}/store.mjs +1 -1
  114. package/es/base-ui/ContextMenu/store.mjs.map +1 -0
  115. package/es/base-ui/ContextMenu/type.d.mts +12 -0
  116. package/es/base-ui/DropdownMenu/DropdownMenu.d.mts +8 -0
  117. package/es/{DropdownMenu → base-ui/DropdownMenu}/DropdownMenu.mjs +3 -3
  118. package/es/base-ui/DropdownMenu/DropdownMenu.mjs.map +1 -0
  119. package/es/{DropdownMenu → base-ui/DropdownMenu}/atoms.d.mts +19 -19
  120. package/es/{DropdownMenu → base-ui/DropdownMenu}/atoms.mjs +7 -7
  121. package/es/base-ui/DropdownMenu/atoms.mjs.map +1 -0
  122. package/es/base-ui/DropdownMenu/index.d.mts +5 -0
  123. package/es/{DropdownMenu → base-ui/DropdownMenu}/renderItems.d.mts +3 -3
  124. package/es/{DropdownMenu → base-ui/DropdownMenu}/renderItems.mjs +3 -3
  125. package/es/base-ui/DropdownMenu/renderItems.mjs.map +1 -0
  126. package/es/{DropdownMenu → base-ui/DropdownMenu}/type.d.mts +9 -9
  127. package/es/{ScrollArea → base-ui/ScrollArea}/ScrollArea.d.mts +1 -1
  128. package/es/{ScrollArea → base-ui/ScrollArea}/ScrollArea.mjs +1 -1
  129. package/es/base-ui/ScrollArea/ScrollArea.mjs.map +1 -0
  130. package/es/{ScrollArea → base-ui/ScrollArea}/atoms.d.mts +8 -8
  131. package/es/{ScrollArea → base-ui/ScrollArea}/atoms.mjs +1 -1
  132. package/es/base-ui/ScrollArea/atoms.mjs.map +1 -0
  133. package/es/{ScrollArea → base-ui/ScrollArea}/globalStyle.mjs +1 -1
  134. package/es/base-ui/ScrollArea/globalStyle.mjs.map +1 -0
  135. package/es/base-ui/ScrollArea/index.d.mts +3 -0
  136. package/es/{ScrollArea → base-ui/ScrollArea}/style.mjs +1 -1
  137. package/es/base-ui/ScrollArea/style.mjs.map +1 -0
  138. package/es/{ScrollArea → base-ui/ScrollArea}/type.d.mts +1 -1
  139. package/es/base-ui/Select/Select.d.mts +8 -0
  140. package/es/{LobeSelect/LobeSelect.mjs → base-ui/Select/Select.mjs} +9 -9
  141. package/es/base-ui/Select/Select.mjs.map +1 -0
  142. package/es/base-ui/Select/atoms.d.mts +155 -0
  143. package/es/{LobeSelect → base-ui/Select}/atoms.mjs +38 -38
  144. package/es/base-ui/Select/atoms.mjs.map +1 -0
  145. package/es/base-ui/Select/index.d.mts +3 -0
  146. package/es/{LobeSelect → base-ui/Select}/style.mjs +2 -2
  147. package/es/base-ui/Select/style.mjs.map +1 -0
  148. package/es/{LobeSelect → base-ui/Select}/type.d.mts +24 -24
  149. package/es/base-ui/Switch/Switch.d.mts +8 -0
  150. package/es/{LobeSwitch/LobeSwitch.mjs → base-ui/Switch/Switch.mjs} +12 -12
  151. package/es/base-ui/Switch/Switch.mjs.map +1 -0
  152. package/es/base-ui/Switch/atoms.d.mts +56 -0
  153. package/es/{LobeSwitch → base-ui/Switch}/atoms.mjs +16 -16
  154. package/es/base-ui/Switch/atoms.mjs.map +1 -0
  155. package/es/base-ui/Switch/index.d.mts +4 -0
  156. package/es/{LobeSwitch → base-ui/Switch}/style.d.mts +1 -1
  157. package/es/{LobeSwitch → base-ui/Switch}/style.mjs +4 -4
  158. package/es/base-ui/Switch/style.mjs.map +1 -0
  159. package/es/{LobeSwitch → base-ui/Switch}/type.d.mts +21 -21
  160. package/es/{Toast → base-ui/Toast}/Toast.mjs +2 -2
  161. package/es/base-ui/Toast/Toast.mjs.map +1 -0
  162. package/es/{Toast → base-ui/Toast}/context.mjs +1 -1
  163. package/es/base-ui/Toast/context.mjs.map +1 -0
  164. package/es/{Toast → base-ui/Toast}/imperative.d.mts +3 -3
  165. package/es/{Toast → base-ui/Toast}/imperative.mjs +3 -3
  166. package/es/base-ui/Toast/imperative.mjs.map +1 -0
  167. package/es/base-ui/Toast/index.d.mts +2 -0
  168. package/es/{Toast → base-ui/Toast}/style.mjs +1 -1
  169. package/es/base-ui/Toast/style.mjs.map +1 -0
  170. package/es/{Toast → base-ui/Toast}/type.d.mts +3 -3
  171. package/es/base-ui/index.d.mts +28 -0
  172. package/es/base-ui/index.mjs +16 -0
  173. package/es/brand/LobeChat/index.d.mts +2 -2
  174. package/es/brand/LobeHub/index.d.mts +2 -2
  175. package/es/brand/LogoThree/LogoSpline.d.mts +2 -2
  176. package/es/brand/LogoThree/index.d.mts +2 -2
  177. package/es/chat/BackBottom/BackBottom.d.mts +2 -2
  178. package/es/chat/ChatInputArea/components/ChatInputAreaInner.d.mts +2 -2
  179. package/es/chat/ChatItem/ChatItem.d.mts +2 -2
  180. package/es/chat/ChatList/ChatList.d.mts +2 -2
  181. package/es/chat/EditableMessage/EditableMessage.d.mts +2 -2
  182. package/es/chat/EditableMessageList/EditableMessageList.d.mts +2 -2
  183. package/es/chat/MessageInput/MessageInput.d.mts +2 -2
  184. package/es/chat/MessageModal/MessageModal.d.mts +2 -2
  185. package/es/color/ColorScales/index.d.mts +2 -2
  186. package/es/color/CssVar/index.d.mts +2 -2
  187. package/es/hooks/useNativeButton.mjs +2 -2
  188. package/es/hooks/useNativeButton.mjs.map +1 -1
  189. package/es/i18n/context.d.mts +2 -2
  190. package/es/icons/lucideExtra/BotPromptIcon.d.mts +2 -2
  191. package/es/icons/lucideExtra/CreateBotIcon.d.mts +2 -2
  192. package/es/icons/lucideExtra/DiscordIcon.d.mts +3 -3
  193. package/es/icons/lucideExtra/GlobeOffIcon.d.mts +2 -2
  194. package/es/icons/lucideExtra/GroupBotIcon.d.mts +2 -2
  195. package/es/icons/lucideExtra/GroupBotSquareIcon.d.mts +3 -3
  196. package/es/icons/lucideExtra/LeftClickIcon.d.mts +3 -3
  197. package/es/icons/lucideExtra/LeftDoubleClickIcon.d.mts +3 -3
  198. package/es/icons/lucideExtra/McpIcon.d.mts +3 -3
  199. package/es/icons/lucideExtra/ProviderIcon.d.mts +3 -3
  200. package/es/icons/lucideExtra/RightClickIcon.d.mts +3 -3
  201. package/es/icons/lucideExtra/RightDoubleClickIcon.d.mts +3 -3
  202. package/es/icons/lucideExtra/ShapesUploadIcon.d.mts +3 -3
  203. package/es/icons/lucideExtra/SkillsIcon.d.mts +3 -3
  204. package/es/icons/lucideExtra/TreeDownRightIcon.d.mts +3 -3
  205. package/es/icons/lucideExtra/TreeUpDownRightIcon.d.mts +3 -3
  206. package/es/index.d.mts +15 -24
  207. package/es/index.mjs +11 -16
  208. package/es/mdx/Mdx/index.d.mts +2 -2
  209. package/es/mobile/ChatHeader/ChatHeaderTitle.d.mts +2 -2
  210. package/es/mobile/ChatInputArea/components/ChatSendButton.d.mts +2 -2
  211. package/es/mobile/TabBar/TabBar.d.mts +2 -2
  212. package/es/storybook/StoryBook/index.d.mts +2 -2
  213. package/package.json +48 -33
  214. package/awesome.d.ts +0 -1
  215. package/awesome.js +0 -1
  216. package/brand.d.ts +0 -1
  217. package/brand.js +0 -1
  218. package/chat.d.ts +0 -1
  219. package/chat.js +0 -1
  220. package/color.d.ts +0 -1
  221. package/color.js +0 -1
  222. package/es/ContextMenu/ContextMenuHost.d.mts +0 -8
  223. package/es/ContextMenu/ContextMenuHost.mjs.map +0 -1
  224. package/es/ContextMenu/ContextMenuTrigger.mjs.map +0 -1
  225. package/es/ContextMenu/renderItems.d.mts +0 -4
  226. package/es/ContextMenu/renderItems.mjs.map +0 -1
  227. package/es/ContextMenu/store.mjs.map +0 -1
  228. package/es/ContextMenu/type.d.mts +0 -12
  229. package/es/DropdownMenu/DropdownMenu.d.mts +0 -8
  230. package/es/DropdownMenu/DropdownMenu.mjs.map +0 -1
  231. package/es/DropdownMenu/atoms.mjs.map +0 -1
  232. package/es/DropdownMenu/renderItems.mjs.map +0 -1
  233. package/es/LobeSelect/LobeSelect.d.mts +0 -8
  234. package/es/LobeSelect/LobeSelect.mjs.map +0 -1
  235. package/es/LobeSelect/atoms.d.mts +0 -155
  236. package/es/LobeSelect/atoms.mjs.map +0 -1
  237. package/es/LobeSelect/index.d.mts +0 -4
  238. package/es/LobeSelect/index.mjs +0 -4
  239. package/es/LobeSelect/style.mjs.map +0 -1
  240. package/es/LobeSwitch/LobeSwitch.d.mts +0 -8
  241. package/es/LobeSwitch/LobeSwitch.mjs.map +0 -1
  242. package/es/LobeSwitch/atoms.d.mts +0 -56
  243. package/es/LobeSwitch/atoms.mjs.map +0 -1
  244. package/es/LobeSwitch/index.d.mts +0 -5
  245. package/es/LobeSwitch/index.d.ts +0 -1
  246. package/es/LobeSwitch/index.js +0 -1
  247. package/es/LobeSwitch/index.mjs +0 -5
  248. package/es/LobeSwitch/style.mjs.map +0 -1
  249. package/es/ScrollArea/ScrollArea.mjs.map +0 -1
  250. package/es/ScrollArea/atoms.mjs.map +0 -1
  251. package/es/ScrollArea/globalStyle.mjs.map +0 -1
  252. package/es/ScrollArea/style.mjs.map +0 -1
  253. package/es/Toast/Toast.mjs.map +0 -1
  254. package/es/Toast/context.mjs.map +0 -1
  255. package/es/Toast/imperative.mjs.map +0 -1
  256. package/es/Toast/style.mjs.map +0 -1
  257. package/icons.d.ts +0 -1
  258. package/icons.js +0 -1
  259. package/mdx.d.ts +0 -1
  260. package/mdx.js +0 -1
  261. package/mobile.d.ts +0 -1
  262. package/mobile.js +0 -1
  263. package/storybook.d.ts +0 -1
  264. package/storybook.js +0 -1
  265. /package/es/{ContextMenu → base-ui/ContextMenu}/imperative.d.mts +0 -0
  266. /package/es/{LobeSelect → base-ui}/index.d.ts +0 -0
  267. /package/es/{LobeSelect → base-ui}/index.js +0 -0
@@ -1,3 +1,3 @@
1
- import { ToastHost, toast, useToast } from "./imperative.mjs";
1
+ import { ToastHost, toast, useToast } from "../base-ui/Toast/imperative.mjs";
2
2
 
3
3
  export { ToastHost, toast, useToast };
package/es/Toc/Toc.d.mts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { TocProps } from "./type.mjs";
2
- import * as react15 from "react";
2
+ import * as react1 from "react";
3
3
 
4
4
  //#region src/Toc/Toc.d.ts
5
- declare const Toc: react15.NamedExoticComponent<TocProps>;
5
+ declare const Toc: react1.NamedExoticComponent<TocProps>;
6
6
  //#endregion
7
7
  export { Toc };
8
8
  //# sourceMappingURL=Toc.d.mts.map
@@ -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 react84 from "react";
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: react84.NamedExoticComponent<VideoProps>;
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 react140 from "react";
2
+ import * as react122 from "react";
3
3
 
4
4
  //#region src/awesome/AuroraBackground/AuroraBackground.d.ts
5
- declare const AuroraBackground: react140.NamedExoticComponent<AuroraBackgroundProps>;
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 react141 from "react";
3
+ import * as react120 from "react";
4
4
 
5
5
  //#region src/awesome/BottomGradientButton/BottomGradientButton.d.ts
6
- declare const BottomGradientButton: react141.NamedExoticComponent<ButtonProps>;
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 react142 from "react";
2
+ import * as react121 from "react";
3
3
 
4
4
  //#region src/awesome/Features/Features.d.ts
5
- declare const Features: react142.NamedExoticComponent<FeaturesProps>;
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 react139 from "react";
2
+ import * as react123 from "react";
3
3
 
4
4
  //#region src/awesome/Giscus/Giscus.d.ts
5
- declare const Giscus: react139.NamedExoticComponent<GiscusProps>;
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 react144 from "react";
2
+ import * as react124 from "react";
3
3
 
4
4
  //#region src/awesome/GradientButton/GradientButton.d.ts
5
- declare const GradientButton: react144.NamedExoticComponent<GradientButtonProps>;
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 react145 from "react";
2
+ import * as react125 from "react";
3
3
 
4
4
  //#region src/awesome/GridBackground/GridBackground.d.ts
5
- declare const GridBackground: react145.NamedExoticComponent<GridBackgroundProps>;
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 react146 from "react";
2
+ import * as react126 from "react";
3
3
 
4
4
  //#region src/awesome/GridBackground/GridShowcase.d.ts
5
- declare const GridShowcase: react146.NamedExoticComponent<GridShowcaseProps>;
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 react143 from "react";
2
+ import * as react128 from "react";
3
3
 
4
4
  //#region src/awesome/Hero/Hero.d.ts
5
- declare const Hero: react143.NamedExoticComponent<HeroProps>;
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 react147 from "react";
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: react147.NamedExoticComponent<SplineProps>;
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 react148 from "react";
2
+ import * as react129 from "react";
3
3
 
4
4
  //#region src/awesome/Spotlight/Spotlight.d.ts
5
- declare const Spotlight: react148.NamedExoticComponent<SpotlightProps>;
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 react149 from "react";
2
+ import * as react130 from "react";
3
3
 
4
4
  //#region src/awesome/SpotlightCard/SpotlightCard.d.ts
5
- declare const SpotlightCard: react149.NamedExoticComponent<SpotlightCardProps<any>>;
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 react150 from "react";
2
+ import * as react119 from "react";
3
3
 
4
4
  //#region src/awesome/TypewriterEffect/TypewriterEffect.d.ts
5
- declare const TypewriterEffect: react150.NamedExoticComponent<TypewriterEffectProps>;
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 "../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";
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 "../styles/classNames.mjs";
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";
@@ -0,0 +1,4 @@
1
+ import { IconAlign, IconSpaceMode } from "../../Menu/renderUtils.mjs";
2
+ import "../../Menu/index.mjs";
3
+ import "./type.mjs";
4
+ import { ReactNode } from "react";
@@ -1,9 +1,9 @@
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";
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 "../Menu/renderUtils.mjs";
2
- import "../Menu/index.mjs";
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;
@@ -1,4 +1,4 @@
1
- //#region src/ContextMenu/store.ts
1
+ //#region src/base-ui/ContextMenu/store.ts
2
2
  const emptyState = {
3
3
  anchor: null,
4
4
  iconSpaceMode: "global",
@@ -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 "../hooks/useNativeButton.mjs";
3
+ import { useNativeButton } from "../../hooks/useNativeButton.mjs";
4
4
  import { DropdownMenuPopup, DropdownMenuPortal, DropdownMenuPositioner, DropdownMenuTrigger } from "./atoms.mjs";
5
- import { parseTrigger } from "../utils/parseTrigger.mjs";
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 react_jsx_runtime44 from "react/jsx-runtime";
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): react_jsx_runtime44.JSX.Element;
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): react_jsx_runtime44.JSX.Element;
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): react_jsx_runtime44.JSX.Element;
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): react_jsx_runtime44.JSX.Element;
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): react_jsx_runtime44.JSX.Element;
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): react_jsx_runtime44.JSX.Element;
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): react_jsx_runtime44.JSX.Element;
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): react_jsx_runtime44.JSX.Element;
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): react_jsx_runtime44.JSX.Element;
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): react_jsx_runtime44.JSX.Element;
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): react_jsx_runtime44.JSX.Element;
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): react_jsx_runtime44.JSX.Element;
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): react_jsx_runtime44.JSX.Element;
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): react_jsx_runtime44.JSX.Element;
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): react_jsx_runtime44.JSX.Element;
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): react_jsx_runtime44.JSX.Element;
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): react_jsx_runtime44.JSX.Element;
186
+ }: DropdownMenuSwitchItemProps): react_jsx_runtime26.JSX.Element;
187
187
  displayName: string;
188
188
  };
189
189
  //#endregion