@lobehub/ui 4.9.2 → 4.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/es/Accordion/Accordion.d.mts +2 -2
  2. package/es/Accordion/AccordionItem.d.mts +2 -2
  3. package/es/ActionIcon/ActionIcon.d.mts +2 -2
  4. package/es/Alert/Alert.d.mts +2 -2
  5. package/es/AutoComplete/Select.d.mts +2 -2
  6. package/es/Avatar/Avatar.mjs +41 -31
  7. package/es/Avatar/Avatar.mjs.map +1 -1
  8. package/es/Avatar/AvatarGroup/index.d.mts +2 -2
  9. package/es/Avatar/utils.mjs +50 -0
  10. package/es/Avatar/utils.mjs.map +1 -0
  11. package/es/Burger/Burger.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/ColorSwatches/ColorSwatches.mjs +3 -2
  15. package/es/ColorSwatches/ColorSwatches.mjs.map +1 -1
  16. package/es/ConfigProvider/index.d.mts +2 -2
  17. package/es/ContextMenu/ContextMenuHost.d.mts +2 -2
  18. package/es/CopyButton/CopyButton.d.mts +2 -2
  19. package/es/DatePicker/DatePicker.d.mts +2 -2
  20. package/es/DraggablePanel/components/DraggablePanelBody.d.mts +2 -2
  21. package/es/DraggablePanel/components/DraggablePanelContainer.d.mts +2 -2
  22. package/es/DraggablePanel/components/DraggablePanelFooter.d.mts +2 -2
  23. package/es/DraggablePanel/components/DraggablePanelHeader.d.mts +2 -2
  24. package/es/DraggablePanel/style.mjs +1 -1
  25. package/es/DraggablePanel/style.mjs.map +1 -1
  26. package/es/DraggableSideNav/DraggableSideNav.d.mts +2 -2
  27. package/es/Drawer/Drawer.d.mts +2 -2
  28. package/es/Dropdown/Dropdown.d.mts +9 -2
  29. package/es/Dropdown/Dropdown.mjs +6 -0
  30. package/es/Dropdown/Dropdown.mjs.map +1 -1
  31. package/es/DropdownMenu/DropdownMenu.d.mts +2 -2
  32. package/es/DropdownMenu/DropdownMenu.mjs +20 -36
  33. package/es/DropdownMenu/DropdownMenu.mjs.map +1 -1
  34. package/es/DropdownMenu/type.d.mts +2 -1
  35. package/es/EditableText/EditableText.d.mts +2 -2
  36. package/es/EmojiPicker/EmojiPicker.d.mts +2 -2
  37. package/es/Flex/FlexBasic.d.mts +2 -2
  38. package/es/FontLoader/index.d.mts +2 -2
  39. package/es/Footer/Footer.d.mts +2 -2
  40. package/es/Form/components/FormGroup.d.mts +2 -2
  41. package/es/Form/components/FormItem.d.mts +2 -2
  42. package/es/Form/components/FormSubmitFooter.d.mts +2 -2
  43. package/es/FormModal/FormModal.d.mts +2 -2
  44. package/es/GuideCard/GuideCard.d.mts +2 -2
  45. package/es/Header/Header.d.mts +2 -2
  46. package/es/Highlighter/Highlighter.d.mts +2 -2
  47. package/es/Highlighter/SyntaxHighlighter/index.d.mts +2 -2
  48. package/es/Hotkey/Hotkey.d.mts +2 -2
  49. package/es/HotkeyInput/HotkeyInput.d.mts +2 -2
  50. package/es/Icon/Icon.d.mts +2 -2
  51. package/es/Icon/components/IconProvider.d.mts +3 -3
  52. package/es/Image/PreviewGroup.d.mts +2 -2
  53. package/es/ImageSelect/ImageSelect.d.mts +2 -2
  54. package/es/Input/Input.d.mts +2 -2
  55. package/es/Input/InputNumber.d.mts +2 -2
  56. package/es/Input/InputOPT.d.mts +2 -2
  57. package/es/Input/InputPassword.d.mts +2 -2
  58. package/es/Input/TextArea.d.mts +2 -2
  59. package/es/Layout/components/LayoutFooter.d.mts +2 -2
  60. package/es/Layout/components/LayoutHeader.d.mts +2 -2
  61. package/es/Layout/components/LayoutMain.d.mts +2 -2
  62. package/es/Layout/components/LayoutSidebar.d.mts +2 -2
  63. package/es/Layout/components/LayoutSidebarInner.d.mts +2 -2
  64. package/es/Layout/components/LayoutToc.d.mts +2 -2
  65. package/es/List/ListItem/index.d.mts +2 -2
  66. package/es/Markdown/Markdown.d.mts +2 -2
  67. package/es/Markdown/Typography.d.mts +2 -2
  68. package/es/Markdown/components/SearchResultCards/index.d.mts +2 -2
  69. package/es/MaskShadow/MaskShadow.d.mts +2 -2
  70. package/es/Menu/Menu.d.mts +2 -2
  71. package/es/Menu/sharedStyle.mjs +56 -10
  72. package/es/Menu/sharedStyle.mjs.map +1 -1
  73. package/es/Mermaid/Mermaid.d.mts +2 -2
  74. package/es/Mermaid/SyntaxMermaid/index.d.mts +2 -2
  75. package/es/Modal/Modal.d.mts +2 -2
  76. package/es/Modal/ModalProvider.d.mts +2 -2
  77. package/es/MotionProvider/index.d.mts +2 -2
  78. package/es/Popover/ArrowIcon.mjs +22 -0
  79. package/es/Popover/ArrowIcon.mjs.map +1 -0
  80. package/es/Popover/Popover.d.mts +9 -0
  81. package/es/Popover/Popover.mjs +20 -0
  82. package/es/Popover/Popover.mjs.map +1 -0
  83. package/es/Popover/PopoverGroup.d.mts +11 -0
  84. package/es/Popover/PopoverGroup.mjs +96 -0
  85. package/es/Popover/PopoverGroup.mjs.map +1 -0
  86. package/es/Popover/PopoverInGroup.mjs +55 -0
  87. package/es/Popover/PopoverInGroup.mjs.map +1 -0
  88. package/es/Popover/PopoverPortal.mjs +45 -0
  89. package/es/Popover/PopoverPortal.mjs.map +1 -0
  90. package/es/Popover/PopoverStandalone.mjs +166 -0
  91. package/es/Popover/PopoverStandalone.mjs.map +1 -0
  92. package/es/Popover/groupContext.d.mts +14 -0
  93. package/es/Popover/groupContext.mjs +11 -0
  94. package/es/Popover/groupContext.mjs.map +1 -0
  95. package/es/Popover/index.d.mts +5 -0
  96. package/es/Popover/index.d.ts +1 -0
  97. package/es/Popover/index.js +1 -0
  98. package/es/Popover/index.mjs +5 -0
  99. package/es/Popover/parseTrigger.d.mts +14 -0
  100. package/es/Popover/parseTrigger.mjs +18 -0
  101. package/es/Popover/parseTrigger.mjs.map +1 -0
  102. package/es/Popover/style.mjs +218 -0
  103. package/es/Popover/style.mjs.map +1 -0
  104. package/es/Popover/type.d.mts +112 -0
  105. package/es/Popover/useMergedPopoverProps.mjs +88 -0
  106. package/es/Popover/useMergedPopoverProps.mjs.map +1 -0
  107. package/es/SearchBar/SearchBar.d.mts +2 -2
  108. package/es/Segmented/Segmented.d.mts +2 -2
  109. package/es/Select/Select.d.mts +2 -2
  110. package/es/SideNav/SideNav.d.mts +2 -2
  111. package/es/SliderWithInput/SliderWithInput.d.mts +2 -2
  112. package/es/SortableList/components/DragHandle.d.mts +2 -2
  113. package/es/SortableList/components/SortableItem.d.mts +2 -2
  114. package/es/ThemeProvider/GlobalStyle/antdOverride.mjs +4 -3
  115. package/es/ThemeProvider/GlobalStyle/antdOverride.mjs.map +1 -1
  116. package/es/ThemeProvider/ThemeProvider.d.mts +2 -2
  117. package/es/Toc/Toc.d.mts +2 -2
  118. package/es/Tooltip/TooltipGroup.mjs +2 -2
  119. package/es/Tooltip/TooltipGroup.mjs.map +1 -1
  120. package/es/Tooltip/type.d.mts +2 -2
  121. package/es/Tooltip/useTooltipFloating.mjs +2 -2
  122. package/es/Tooltip/useTooltipFloating.mjs.map +1 -1
  123. package/es/Video/index.d.mts +2 -2
  124. package/es/awesome/AuroraBackground/AuroraBackground.d.mts +2 -2
  125. package/es/awesome/BottomGradientButton/BottomGradientButton.d.mts +2 -2
  126. package/es/awesome/Features/Features.d.mts +2 -2
  127. package/es/awesome/Giscus/style.mjs +4 -3
  128. package/es/awesome/Giscus/style.mjs.map +1 -1
  129. package/es/awesome/GradientButton/GradientButton.d.mts +2 -2
  130. package/es/awesome/GridBackground/GridBackground.d.mts +2 -2
  131. package/es/awesome/GridBackground/GridShowcase.d.mts +2 -2
  132. package/es/awesome/Hero/Hero.d.mts +2 -2
  133. package/es/awesome/Spotlight/Spotlight.d.mts +2 -2
  134. package/es/awesome/SpotlightCard/SpotlightCard.d.mts +2 -2
  135. package/es/awesome/TypewriterEffect/TypewriterEffect.d.mts +2 -2
  136. package/es/brand/LobeChat/index.d.mts +2 -2
  137. package/es/brand/LobeHub/index.d.mts +2 -2
  138. package/es/brand/LogoThree/LogoSpline.d.mts +2 -2
  139. package/es/brand/LogoThree/index.d.mts +2 -2
  140. package/es/chat/BackBottom/BackBottom.d.mts +2 -2
  141. package/es/chat/ChatInputArea/components/ChatInputAreaInner.d.mts +2 -2
  142. package/es/chat/ChatItem/ChatItem.d.mts +2 -2
  143. package/es/chat/ChatList/ChatList.d.mts +2 -2
  144. package/es/chat/EditableMessage/EditableMessage.d.mts +2 -2
  145. package/es/chat/EditableMessageList/EditableMessageList.d.mts +2 -2
  146. package/es/chat/MessageInput/MessageInput.d.mts +2 -2
  147. package/es/chat/MessageModal/MessageModal.d.mts +2 -2
  148. package/es/color/ColorScales/index.d.mts +2 -2
  149. package/es/color/CssVar/index.d.mts +2 -2
  150. package/es/i18n/context.d.mts +2 -2
  151. package/es/icons/lucideExtra/BotPromptIcon.d.mts +2 -2
  152. package/es/icons/lucideExtra/CreateBotIcon.d.mts +3 -3
  153. package/es/icons/lucideExtra/DiscordIcon.d.mts +3 -3
  154. package/es/icons/lucideExtra/GlobeOffIcon.d.mts +2 -2
  155. package/es/icons/lucideExtra/GroupBotIcon.d.mts +3 -3
  156. package/es/icons/lucideExtra/GroupBotSquareIcon.d.mts +3 -3
  157. package/es/icons/lucideExtra/LeftClickIcon.d.mts +3 -3
  158. package/es/icons/lucideExtra/LeftDoubleClickIcon.d.mts +3 -3
  159. package/es/icons/lucideExtra/McpIcon.d.mts +3 -3
  160. package/es/icons/lucideExtra/ProviderIcon.d.mts +3 -3
  161. package/es/icons/lucideExtra/RightClickIcon.d.mts +3 -3
  162. package/es/icons/lucideExtra/RightDoubleClickIcon.d.mts +3 -3
  163. package/es/icons/lucideExtra/ShapesUploadIcon.d.mts +3 -3
  164. package/es/icons/lucideExtra/TreeDownRightIcon.d.mts +3 -3
  165. package/es/icons/lucideExtra/TreeUpDownRightIcon.d.mts +3 -3
  166. package/es/index.d.mts +6 -1
  167. package/es/index.mjs +4 -1
  168. package/es/mdx/Mdx/index.d.mts +2 -2
  169. package/es/mobile/ChatHeader/ChatHeaderTitle.d.mts +2 -2
  170. package/es/mobile/ChatInputArea/components/ChatSendButton.d.mts +2 -2
  171. package/es/mobile/TabBar/TabBar.d.mts +2 -2
  172. package/es/storybook/StoryBook/index.d.mts +2 -2
  173. package/es/utils/placement.d.mts +31 -0
  174. package/es/utils/placement.mjs +100 -0
  175. package/es/utils/placement.mjs.map +1 -0
  176. package/es/utils/safeReadableColor.mjs +15 -0
  177. package/es/utils/safeReadableColor.mjs.map +1 -0
  178. package/package.json +1 -1
  179. package/es/Tooltip/antdPlacementToFloating.mjs +0 -27
  180. package/es/Tooltip/antdPlacementToFloating.mjs.map +0 -1
@@ -1,8 +1,15 @@
1
1
  import { DropdownProps } from "./type.mjs";
2
- import * as react58 from "react";
2
+ import * as react14 from "react";
3
3
 
4
4
  //#region src/Dropdown/Dropdown.d.ts
5
- declare const Dropdown: react58.NamedExoticComponent<DropdownProps>;
5
+
6
+ /**
7
+ * @deprecated
8
+ * Use `DropdownMenu` or `ContextMenu` instead
9
+ * @see https://ui.lobehub.com/components/context-menu
10
+ * @see https://ui.lobehub.com/components/dropdown-menu
11
+ */
12
+ declare const Dropdown: react14.NamedExoticComponent<DropdownProps>;
6
13
  //#endregion
7
14
  export { Dropdown };
8
15
  //# sourceMappingURL=Dropdown.d.mts.map
@@ -7,6 +7,12 @@ import { jsx } from "react/jsx-runtime";
7
7
  import { Dropdown } from "antd";
8
8
 
9
9
  //#region src/Dropdown/Dropdown.tsx
10
+ /**
11
+ * @deprecated
12
+ * Use `DropdownMenu` or `ContextMenu` instead
13
+ * @see https://ui.lobehub.com/components/context-menu
14
+ * @see https://ui.lobehub.com/components/dropdown-menu
15
+ */
10
16
  const Dropdown$1 = memo(({ children, iconProps, menu, ...rest }) => {
11
17
  const { items, ...menuProps } = menu;
12
18
  const antdItems = useMemo(() => items.map((item) => mapItems(item)), [items]);
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.mjs","names":["Dropdown","AntdDropdown"],"sources":["../../src/Dropdown/Dropdown.tsx"],"sourcesContent":["'use client';\n\nimport { Dropdown as AntdDropdown } from 'antd';\nimport { memo, useMemo } from 'react';\n\nimport { IconProvider } from '@/Icon';\nimport { mapItems } from '@/Menu';\n\nimport type { DropdownProps } from './type';\n\nconst Dropdown = memo<DropdownProps>(({ children, iconProps, menu, ...rest }) => {\n const { items, ...menuProps } = menu;\n\n const antdItems = useMemo(() => items.map((item) => mapItems(item)), [items]);\n\n return (\n <IconProvider\n config={{\n size: 'small',\n ...iconProps,\n }}\n >\n <AntdDropdown\n menu={{\n ...menuProps,\n items: antdItems,\n }}\n {...rest}\n >\n {children}\n </AntdDropdown>\n </IconProvider>\n );\n});\n\nDropdown.displayName = 'Dropdown';\n\nexport default Dropdown;\n"],"mappings":";;;;;;;;;AAUA,MAAMA,aAAW,MAAqB,EAAE,UAAU,WAAW,MAAM,GAAG,WAAW;CAC/E,MAAM,EAAE,OAAO,GAAG,cAAc;CAEhC,MAAM,YAAY,cAAc,MAAM,KAAK,SAAS,SAAS,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC;AAE7E,QACE,oBAAC;EACC,QAAQ;GACN,MAAM;GACN,GAAG;GACJ;YAED,oBAACC;GACC,MAAM;IACJ,GAAG;IACH,OAAO;IACR;GACD,GAAI;GAEH;IACY;GACF;EAEjB;AAEF,WAAS,cAAc;AAEvB,uBAAeD"}
1
+ {"version":3,"file":"Dropdown.mjs","names":["Dropdown","AntdDropdown"],"sources":["../../src/Dropdown/Dropdown.tsx"],"sourcesContent":["'use client';\n\nimport { Dropdown as AntdDropdown } from 'antd';\nimport { memo, useMemo } from 'react';\n\nimport { IconProvider } from '@/Icon';\nimport { mapItems } from '@/Menu';\n\nimport type { DropdownProps } from './type';\n\n/**\n * @deprecated\n * Use `DropdownMenu` or `ContextMenu` instead\n * @see https://ui.lobehub.com/components/context-menu\n * @see https://ui.lobehub.com/components/dropdown-menu\n */\nconst Dropdown = memo<DropdownProps>(({ children, iconProps, menu, ...rest }) => {\n const { items, ...menuProps } = menu;\n\n const antdItems = useMemo(() => items.map((item) => mapItems(item)), [items]);\n\n return (\n <IconProvider\n config={{\n size: 'small',\n ...iconProps,\n }}\n >\n <AntdDropdown\n menu={{\n ...menuProps,\n items: antdItems,\n }}\n {...rest}\n >\n {children}\n </AntdDropdown>\n </IconProvider>\n );\n});\n\nDropdown.displayName = 'Dropdown';\n\nexport default Dropdown;\n"],"mappings":";;;;;;;;;;;;;;;AAgBA,MAAMA,aAAW,MAAqB,EAAE,UAAU,WAAW,MAAM,GAAG,WAAW;CAC/E,MAAM,EAAE,OAAO,GAAG,cAAc;CAEhC,MAAM,YAAY,cAAc,MAAM,KAAK,SAAS,SAAS,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC;AAE7E,QACE,oBAAC;EACC,QAAQ;GACN,MAAM;GACN,GAAG;GACJ;YAED,oBAACC;GACC,MAAM;IACJ,GAAG;IACH,OAAO;IACR;GACD,GAAI;GAEH;IACY;GACF;EAEjB;AAEF,WAAS,cAAc;AAEvB,uBAAeD"}
@@ -1,8 +1,8 @@
1
1
  import { DropdownMenuProps } from "./type.mjs";
2
- import * as react56 from "react";
2
+ import * as react15 from "react";
3
3
 
4
4
  //#region src/DropdownMenu/DropdownMenu.d.ts
5
- declare const DropdownMenu: react56.NamedExoticComponent<DropdownMenuProps<unknown>>;
5
+ declare const DropdownMenu: react15.NamedExoticComponent<DropdownMenuProps<unknown>>;
6
6
  //#endregion
7
7
  export { DropdownMenu };
8
8
  //# sourceMappingURL=DropdownMenu.d.mts.map
@@ -3,10 +3,11 @@
3
3
  import { LOBE_THEME_APP_ID } from "../ThemeProvider/constants.mjs";
4
4
  import { CLASSNAMES } from "../styles/classNames.mjs";
5
5
  import { TOOLTIP_CONTAINER_ATTR } from "../Tooltip/TooltipPortal.mjs";
6
+ import { placementMap } from "../utils/placement.mjs";
6
7
  import { styles } from "../Menu/sharedStyle.mjs";
7
8
  import { useIsClient } from "../hooks/useIsClient.mjs";
8
9
  import { renderDropdownMenuItems } from "./renderItems.mjs";
9
- import { cloneElement, isValidElement, memo, useCallback, useEffect, useMemo, useState } from "react";
10
+ import { cloneElement, isValidElement, memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
10
11
  import { jsx, jsxs } from "react/jsx-runtime";
11
12
  import { cx } from "antd-style";
12
13
  import { Menu } from "@base-ui/react/menu";
@@ -14,37 +15,7 @@ import { mergeProps } from "@base-ui/react/merge-props";
14
15
  import clsx from "clsx";
15
16
 
16
17
  //#region src/DropdownMenu/DropdownMenu.tsx
17
- const topCenter = {
18
- align: "center",
19
- side: "top"
20
- };
21
- const bottomCenter = {
22
- align: "center",
23
- side: "bottom"
24
- };
25
- const placementMap = {
26
- bottom: bottomCenter,
27
- bottomCenter,
28
- bottomLeft: {
29
- align: "start",
30
- side: "bottom"
31
- },
32
- bottomRight: {
33
- align: "end",
34
- side: "bottom"
35
- },
36
- top: topCenter,
37
- topCenter,
38
- topLeft: {
39
- align: "start",
40
- side: "top"
41
- },
42
- topRight: {
43
- align: "end",
44
- side: "top"
45
- }
46
- };
47
- const DropdownMenu = memo(({ children, defaultOpen, items, nativeButton, onOpenChange, open, placement = "bottomLeft", popupProps, portalProps, positionerProps, triggerProps, ...rest }) => {
18
+ const DropdownMenu = memo(({ children, defaultOpen, items, nativeButton, onOpenChange, onOpenChangeComplete, open, placement = "bottomLeft", popupProps, portalProps, positionerProps, triggerProps, ...rest }) => {
48
19
  const isClient = useIsClient();
49
20
  const [uncontrolledOpen, setUncontrolledOpen] = useState(Boolean(defaultOpen));
50
21
  useEffect(() => {
@@ -55,11 +26,20 @@ const DropdownMenu = memo(({ children, defaultOpen, items, nativeButton, onOpenC
55
26
  onOpenChange?.(nextOpen, details);
56
27
  if (open === void 0) setUncontrolledOpen(nextOpen);
57
28
  }, [onOpenChange, open]);
58
- const shouldRenderItems = open ?? uncontrolledOpen;
29
+ const menuItemsRef = useRef(null);
30
+ const isOpen = open ?? uncontrolledOpen;
59
31
  const menuItems = useMemo(() => {
60
- if (!shouldRenderItems) return null;
61
- return renderDropdownMenuItems(typeof items === "function" ? items() : items);
62
- }, [items, shouldRenderItems]);
32
+ if (isOpen) {
33
+ const renderedItems = renderDropdownMenuItems(typeof items === "function" ? items() : items);
34
+ menuItemsRef.current = renderedItems;
35
+ return renderedItems;
36
+ }
37
+ return menuItemsRef.current;
38
+ }, [isOpen, items]);
39
+ const handleOpenChangeComplete = useCallback((nextOpen) => {
40
+ onOpenChangeComplete?.(nextOpen);
41
+ if (!nextOpen) menuItemsRef.current = null;
42
+ }, [onOpenChangeComplete]);
63
43
  const portalContainer = useMemo(() => {
64
44
  if (!isClient) return null;
65
45
  const themeApp = document.querySelector(`#${LOBE_THEME_APP_ID}`);
@@ -69,6 +49,7 @@ const DropdownMenu = memo(({ children, defaultOpen, items, nativeButton, onOpenC
69
49
  return document.body;
70
50
  }, [isClient]);
71
51
  const placementConfig = placementMap[placement];
52
+ const hoverTrigger = Boolean(triggerProps?.openOnHover);
72
53
  const isNativeButtonTriggerElement = useMemo(() => {
73
54
  if (!isValidElement(children)) return false;
74
55
  return typeof children.type === "string" && children.type === "button";
@@ -113,6 +94,7 @@ const DropdownMenu = memo(({ children, defaultOpen, items, nativeButton, onOpenC
113
94
  ...rest,
114
95
  defaultOpen,
115
96
  onOpenChange: handleOpenChange,
97
+ onOpenChangeComplete: handleOpenChangeComplete,
116
98
  open,
117
99
  children: [trigger, /* @__PURE__ */ jsx(Menu.Portal, {
118
100
  container: portalProps?.container ?? portalContainer,
@@ -120,6 +102,8 @@ const DropdownMenu = memo(({ children, defaultOpen, items, nativeButton, onOpenC
120
102
  children: /* @__PURE__ */ jsx(Menu.Positioner, {
121
103
  ...resolvedPositionerProps,
122
104
  className: (state) => cx(styles.positioner, typeof positionerProps?.className === "function" ? positionerProps.className(state) : positionerProps?.className),
105
+ "data-hover-trigger": hoverTrigger || void 0,
106
+ "data-placement": placement,
123
107
  children: /* @__PURE__ */ jsx(Menu.Popup, {
124
108
  ...popupProps,
125
109
  className: (state) => cx(styles.popup, typeof popupProps?.className === "function" ? popupProps.className(state) : popupProps?.className),
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMenu.mjs","names":["topCenter: PlacementConfig","bottomCenter: PlacementConfig","placementMap: Record<DropdownMenuPlacement, PlacementConfig>","renderer: ComponentRenderFn<HTMLProps<any>, MenuTriggerState>"],"sources":["../../src/DropdownMenu/DropdownMenu.tsx"],"sourcesContent":["'use client';\n\nimport { Menu, type MenuTriggerState } from '@base-ui/react/menu';\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport type { ComponentRenderFn, HTMLProps } from '@base-ui/react/utils/types';\nimport type { Align, Side } from '@base-ui/react/utils/useAnchorPositioning';\nimport { cx } from 'antd-style';\nimport clsx from 'clsx';\nimport {\n cloneElement,\n isValidElement,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react';\n\nimport { styles } from '@/Menu/sharedStyle';\nimport { LOBE_THEME_APP_ID } from '@/ThemeProvider';\nimport { TOOLTIP_CONTAINER_ATTR } from '@/Tooltip/TooltipPortal';\nimport { useIsClient } from '@/hooks/useIsClient';\nimport { CLASSNAMES } from '@/styles/classNames';\n\nimport { renderDropdownMenuItems } from './renderItems';\nimport type { DropdownMenuPlacement, DropdownMenuProps } from './type';\n\ntype PlacementConfig = {\n align: Align;\n side: Side;\n};\nconst topCenter: PlacementConfig = { align: 'center', side: 'top' };\nconst bottomCenter: PlacementConfig = { align: 'center', side: 'bottom' };\nconst topLeft: PlacementConfig = { align: 'start', side: 'top' };\nconst bottomLeft: PlacementConfig = { align: 'start', side: 'bottom' };\nconst topRight: PlacementConfig = { align: 'end', side: 'top' };\nconst bottomRight: PlacementConfig = { align: 'end', side: 'bottom' };\nconst placementMap: Record<DropdownMenuPlacement, PlacementConfig> = {\n bottom: bottomCenter,\n bottomCenter,\n bottomLeft,\n bottomRight,\n top: topCenter,\n topCenter,\n topLeft,\n topRight,\n};\n\nconst DropdownMenu = memo<DropdownMenuProps>(\n ({\n children,\n defaultOpen,\n\n items,\n nativeButton,\n onOpenChange,\n open,\n placement = 'bottomLeft',\n popupProps,\n portalProps,\n positionerProps,\n triggerProps,\n ...rest\n }) => {\n const isClient = useIsClient();\n const [uncontrolledOpen, setUncontrolledOpen] = useState(Boolean(defaultOpen));\n\n useEffect(() => {\n if (open === undefined) return;\n setUncontrolledOpen(open);\n }, [open]);\n\n const handleOpenChange = useCallback(\n (nextOpen: boolean, details: Parameters<NonNullable<typeof onOpenChange>>[1]) => {\n onOpenChange?.(nextOpen, details);\n if (open === undefined) {\n setUncontrolledOpen(nextOpen);\n }\n },\n [onOpenChange, open],\n );\n\n const shouldRenderItems = open ?? uncontrolledOpen;\n const menuItems = useMemo(() => {\n if (!shouldRenderItems) return null;\n const resolvedItems = typeof items === 'function' ? items() : items;\n return renderDropdownMenuItems(resolvedItems);\n }, [items, shouldRenderItems]);\n const portalContainer = useMemo(() => {\n if (!isClient) return null;\n\n const themeApp = document.querySelector<HTMLElement>(`#${LOBE_THEME_APP_ID}`);\n if (themeApp) return themeApp;\n\n const tooltipContainer = document.querySelector<HTMLElement>(\n `[${TOOLTIP_CONTAINER_ATTR}=\"true\"]`,\n );\n if (tooltipContainer) return tooltipContainer;\n\n return document.body;\n }, [isClient]);\n const placementConfig = placementMap[placement];\n\n const isNativeButtonTriggerElement = useMemo(() => {\n if (!isValidElement(children)) return false;\n return typeof children.type === 'string' && children.type === 'button';\n }, [children]);\n\n const renderer: ComponentRenderFn<HTMLProps<any>, MenuTriggerState> = useCallback(\n (props) => {\n // Base UI's trigger props include `type=\"button\"` by default.\n // If we render into a non-<button> element, that prop is invalid and can warn.\n const resolvedProps = (() => {\n if (isNativeButtonTriggerElement) return props as any;\n // eslint-disable-next-line unused-imports/no-unused-vars, @typescript-eslint/no-unused-vars\n const { type, ...restProps } = props as any;\n return restProps;\n })();\n\n return cloneElement(children as any, mergeProps((children as any).props, resolvedProps));\n },\n [children, isNativeButtonTriggerElement],\n );\n\n // When we use `render`, Base UI expects the rendered element to be a native <button> by default.\n // If we can infer it's not, opt out to avoid warnings (users can still override via `nativeButton`).\n const resolvedNativeButton = useMemo(() => {\n if (nativeButton !== undefined) return nativeButton;\n if (triggerProps?.nativeButton !== undefined) return triggerProps.nativeButton;\n if (isNativeButtonTriggerElement) return true;\n if (!isValidElement(children)) return undefined;\n if (typeof children.type === 'string') return false;\n return undefined;\n }, [children, isNativeButtonTriggerElement, nativeButton, triggerProps?.nativeButton]);\n\n const trigger = isValidElement(children) ? (\n <Menu.Trigger\n {...triggerProps}\n className={clsx(CLASSNAMES.DropdownMenuTrigger, triggerProps?.className)}\n nativeButton={resolvedNativeButton}\n render={renderer}\n />\n ) : (\n <Menu.Trigger\n {...triggerProps}\n className={clsx(CLASSNAMES.DropdownMenuTrigger, triggerProps?.className)}\n >\n {children}\n </Menu.Trigger>\n );\n\n const resolvedPositionerProps = {\n ...positionerProps,\n align: positionerProps?.align ?? placementConfig?.align ?? 'center',\n side: positionerProps?.side ?? placementConfig?.side ?? 'bottom',\n sideOffset: positionerProps?.sideOffset ?? 6,\n };\n return (\n <Menu.Root {...rest} defaultOpen={defaultOpen} onOpenChange={handleOpenChange} open={open}>\n {trigger}\n <Menu.Portal container={portalProps?.container ?? portalContainer} {...portalProps}>\n <Menu.Positioner\n {...resolvedPositionerProps}\n className={(state) =>\n cx(\n styles.positioner,\n typeof positionerProps?.className === 'function'\n ? positionerProps.className(state)\n : positionerProps?.className,\n )\n }\n >\n <Menu.Popup\n {...popupProps}\n className={(state) =>\n cx(\n styles.popup,\n typeof popupProps?.className === 'function'\n ? popupProps.className(state)\n : popupProps?.className,\n )\n }\n >\n {menuItems}\n </Menu.Popup>\n </Menu.Positioner>\n </Menu.Portal>\n </Menu.Root>\n );\n },\n);\n\nDropdownMenu.displayName = 'DropdownMenuV2';\n\nexport default DropdownMenu;\n"],"mappings":"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"}
1
+ {"version":3,"file":"DropdownMenu.mjs","names":["renderer: ComponentRenderFn<HTMLProps<any>, MenuTriggerState>"],"sources":["../../src/DropdownMenu/DropdownMenu.tsx"],"sourcesContent":["'use client';\n\nimport { Menu, type MenuTriggerState } from '@base-ui/react/menu';\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport type { ComponentRenderFn, HTMLProps } from '@base-ui/react/utils/types';\nimport { cx } from 'antd-style';\nimport clsx from 'clsx';\nimport {\n cloneElement,\n isValidElement,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { styles } from '@/Menu/sharedStyle';\nimport { LOBE_THEME_APP_ID } from '@/ThemeProvider';\nimport { TOOLTIP_CONTAINER_ATTR } from '@/Tooltip/TooltipPortal';\nimport { useIsClient } from '@/hooks/useIsClient';\nimport { CLASSNAMES } from '@/styles/classNames';\nimport { placementMap } from '@/utils/placement';\n\nimport { renderDropdownMenuItems } from './renderItems';\nimport type { DropdownMenuProps } from './type';\n\nconst DropdownMenu = memo<DropdownMenuProps>(\n ({\n children,\n defaultOpen,\n\n items,\n nativeButton,\n onOpenChange,\n onOpenChangeComplete,\n open,\n placement = 'bottomLeft',\n popupProps,\n portalProps,\n positionerProps,\n triggerProps,\n ...rest\n }) => {\n const isClient = useIsClient();\n const [uncontrolledOpen, setUncontrolledOpen] = useState(Boolean(defaultOpen));\n\n useEffect(() => {\n if (open === undefined) return;\n setUncontrolledOpen(open);\n }, [open]);\n\n const handleOpenChange = useCallback(\n (nextOpen: boolean, details: Parameters<NonNullable<typeof onOpenChange>>[1]) => {\n onOpenChange?.(nextOpen, details);\n if (open === undefined) {\n setUncontrolledOpen(nextOpen);\n }\n },\n [onOpenChange, open],\n );\n\n const menuItemsRef = useRef<ReturnType<typeof renderDropdownMenuItems> | null>(null);\n const isOpen = open ?? uncontrolledOpen;\n const menuItems = useMemo(() => {\n if (isOpen) {\n const resolvedItems = typeof items === 'function' ? items() : items;\n const renderedItems = renderDropdownMenuItems(resolvedItems);\n menuItemsRef.current = renderedItems;\n return renderedItems;\n }\n return menuItemsRef.current;\n }, [isOpen, items]);\n const handleOpenChangeComplete = useCallback(\n (nextOpen: boolean) => {\n onOpenChangeComplete?.(nextOpen);\n if (!nextOpen) {\n menuItemsRef.current = null;\n }\n },\n [onOpenChangeComplete],\n );\n const portalContainer = useMemo(() => {\n if (!isClient) return null;\n\n const themeApp = document.querySelector<HTMLElement>(`#${LOBE_THEME_APP_ID}`);\n if (themeApp) return themeApp;\n\n const tooltipContainer = document.querySelector<HTMLElement>(\n `[${TOOLTIP_CONTAINER_ATTR}=\"true\"]`,\n );\n if (tooltipContainer) return tooltipContainer;\n\n return document.body;\n }, [isClient]);\n const placementConfig = placementMap[placement];\n const hoverTrigger = Boolean((triggerProps as any)?.openOnHover);\n\n const isNativeButtonTriggerElement = useMemo(() => {\n if (!isValidElement(children)) return false;\n return typeof children.type === 'string' && children.type === 'button';\n }, [children]);\n\n const renderer: ComponentRenderFn<HTMLProps<any>, MenuTriggerState> = useCallback(\n (props) => {\n // Base UI's trigger props include `type=\"button\"` by default.\n // If we render into a non-<button> element, that prop is invalid and can warn.\n const resolvedProps = (() => {\n if (isNativeButtonTriggerElement) return props as any;\n // eslint-disable-next-line unused-imports/no-unused-vars, @typescript-eslint/no-unused-vars\n const { type, ...restProps } = props as any;\n return restProps;\n })();\n\n return cloneElement(children as any, mergeProps((children as any).props, resolvedProps));\n },\n [children, isNativeButtonTriggerElement],\n );\n\n // When we use `render`, Base UI expects the rendered element to be a native <button> by default.\n // If we can infer it's not, opt out to avoid warnings (users can still override via `nativeButton`).\n const resolvedNativeButton = useMemo(() => {\n if (nativeButton !== undefined) return nativeButton;\n if (triggerProps?.nativeButton !== undefined) return triggerProps.nativeButton;\n if (isNativeButtonTriggerElement) return true;\n if (!isValidElement(children)) return undefined;\n if (typeof children.type === 'string') return false;\n return undefined;\n }, [children, isNativeButtonTriggerElement, nativeButton, triggerProps?.nativeButton]);\n\n const trigger = isValidElement(children) ? (\n <Menu.Trigger\n {...triggerProps}\n className={clsx(CLASSNAMES.DropdownMenuTrigger, triggerProps?.className)}\n nativeButton={resolvedNativeButton}\n render={renderer}\n />\n ) : (\n <Menu.Trigger\n {...triggerProps}\n className={clsx(CLASSNAMES.DropdownMenuTrigger, triggerProps?.className)}\n >\n {children}\n </Menu.Trigger>\n );\n\n const resolvedPositionerProps = {\n ...positionerProps,\n align: positionerProps?.align ?? placementConfig?.align ?? 'center',\n side: positionerProps?.side ?? placementConfig?.side ?? 'bottom',\n sideOffset: positionerProps?.sideOffset ?? 6,\n };\n return (\n <Menu.Root\n {...rest}\n defaultOpen={defaultOpen}\n onOpenChange={handleOpenChange}\n onOpenChangeComplete={handleOpenChangeComplete}\n open={open}\n >\n {trigger}\n <Menu.Portal container={portalProps?.container ?? portalContainer} {...portalProps}>\n <Menu.Positioner\n {...resolvedPositionerProps}\n className={(state) =>\n cx(\n styles.positioner,\n typeof positionerProps?.className === 'function'\n ? positionerProps.className(state)\n : positionerProps?.className,\n )\n }\n data-hover-trigger={hoverTrigger || undefined}\n data-placement={placement}\n >\n <Menu.Popup\n {...popupProps}\n className={(state) =>\n cx(\n styles.popup,\n typeof popupProps?.className === 'function'\n ? popupProps.className(state)\n : popupProps?.className,\n )\n }\n >\n {menuItems}\n </Menu.Popup>\n </Menu.Positioner>\n </Menu.Portal>\n </Menu.Root>\n );\n },\n);\n\nDropdownMenu.displayName = 'DropdownMenuV2';\n\nexport default DropdownMenu;\n"],"mappings":";;;;;;;;;;;;;;;;;AA4BA,MAAM,eAAe,MAClB,EACC,UACA,aAEA,OACA,cACA,cACA,sBACA,MACA,YAAY,cACZ,YACA,aACA,iBACA,cACA,GAAG,WACC;CACJ,MAAM,WAAW,aAAa;CAC9B,MAAM,CAAC,kBAAkB,uBAAuB,SAAS,QAAQ,YAAY,CAAC;AAE9E,iBAAgB;AACd,MAAI,SAAS,OAAW;AACxB,sBAAoB,KAAK;IACxB,CAAC,KAAK,CAAC;CAEV,MAAM,mBAAmB,aACtB,UAAmB,YAA6D;AAC/E,iBAAe,UAAU,QAAQ;AACjC,MAAI,SAAS,OACX,qBAAoB,SAAS;IAGjC,CAAC,cAAc,KAAK,CACrB;CAED,MAAM,eAAe,OAA0D,KAAK;CACpF,MAAM,SAAS,QAAQ;CACvB,MAAM,YAAY,cAAc;AAC9B,MAAI,QAAQ;GAEV,MAAM,gBAAgB,wBADA,OAAO,UAAU,aAAa,OAAO,GAAG,MACF;AAC5D,gBAAa,UAAU;AACvB,UAAO;;AAET,SAAO,aAAa;IACnB,CAAC,QAAQ,MAAM,CAAC;CACnB,MAAM,2BAA2B,aAC9B,aAAsB;AACrB,yBAAuB,SAAS;AAChC,MAAI,CAAC,SACH,cAAa,UAAU;IAG3B,CAAC,qBAAqB,CACvB;CACD,MAAM,kBAAkB,cAAc;AACpC,MAAI,CAAC,SAAU,QAAO;EAEtB,MAAM,WAAW,SAAS,cAA2B,IAAI,oBAAoB;AAC7E,MAAI,SAAU,QAAO;EAErB,MAAM,mBAAmB,SAAS,cAChC,IAAI,uBAAuB,UAC5B;AACD,MAAI,iBAAkB,QAAO;AAE7B,SAAO,SAAS;IACf,CAAC,SAAS,CAAC;CACd,MAAM,kBAAkB,aAAa;CACrC,MAAM,eAAe,QAAS,cAAsB,YAAY;CAEhE,MAAM,+BAA+B,cAAc;AACjD,MAAI,CAAC,eAAe,SAAS,CAAE,QAAO;AACtC,SAAO,OAAO,SAAS,SAAS,YAAY,SAAS,SAAS;IAC7D,CAAC,SAAS,CAAC;CAEd,MAAMA,WAAgE,aACnE,UAAU;EAGT,MAAM,uBAAuB;AAC3B,OAAI,6BAA8B,QAAO;GAEzC,MAAM,EAAE,MAAM,GAAG,cAAc;AAC/B,UAAO;MACL;AAEJ,SAAO,aAAa,UAAiB,WAAY,SAAiB,OAAO,cAAc,CAAC;IAE1F,CAAC,UAAU,6BAA6B,CACzC;CAID,MAAM,uBAAuB,cAAc;AACzC,MAAI,iBAAiB,OAAW,QAAO;AACvC,MAAI,cAAc,iBAAiB,OAAW,QAAO,aAAa;AAClE,MAAI,6BAA8B,QAAO;AACzC,MAAI,CAAC,eAAe,SAAS,CAAE,QAAO;AACtC,MAAI,OAAO,SAAS,SAAS,SAAU,QAAO;IAE7C;EAAC;EAAU;EAA8B;EAAc,cAAc;EAAa,CAAC;CAEtF,MAAM,UAAU,eAAe,SAAS,GACtC,oBAAC,KAAK;EACJ,GAAI;EACJ,WAAW,KAAK,WAAW,qBAAqB,cAAc,UAAU;EACxE,cAAc;EACd,QAAQ;GACR,GAEF,oBAAC,KAAK;EACJ,GAAI;EACJ,WAAW,KAAK,WAAW,qBAAqB,cAAc,UAAU;EAEvE;GACY;CAGjB,MAAM,0BAA0B;EAC9B,GAAG;EACH,OAAO,iBAAiB,SAAS,iBAAiB,SAAS;EAC3D,MAAM,iBAAiB,QAAQ,iBAAiB,QAAQ;EACxD,YAAY,iBAAiB,cAAc;EAC5C;AACD,QACE,qBAAC,KAAK;EACJ,GAAI;EACS;EACb,cAAc;EACd,sBAAsB;EAChB;aAEL,SACD,oBAAC,KAAK;GAAO,WAAW,aAAa,aAAa;GAAiB,GAAI;aACrE,oBAAC,KAAK;IACJ,GAAI;IACJ,YAAY,UACV,GACE,OAAO,YACP,OAAO,iBAAiB,cAAc,aAClC,gBAAgB,UAAU,MAAM,GAChC,iBAAiB,UACtB;IAEH,sBAAoB,gBAAgB;IACpC,kBAAgB;cAEhB,oBAAC,KAAK;KACJ,GAAI;KACJ,YAAY,UACV,GACE,OAAO,OACP,OAAO,YAAY,cAAc,aAC7B,WAAW,UAAU,MAAM,GAC3B,YAAY,UACjB;eAGF;MACU;KACG;IACN;GACJ;EAGjB;AAED,aAAa,cAAc;AAE3B,2BAAe"}
@@ -1,3 +1,4 @@
1
+ import { Placement } from "../utils/placement.mjs";
1
2
  import { MenuCheckboxItemType } from "../Menu/checkboxItem.mjs";
2
3
  import { BaseMenuItemType } from "../Menu/baseItem.mjs";
3
4
  import "../Menu/index.mjs";
@@ -5,7 +6,7 @@ import { ReactNode } from "react";
5
6
  import { MenuPopupProps, MenuPortalProps, MenuPositionerProps, MenuRootProps, MenuTriggerProps } from "@base-ui/react/menu";
6
7
 
7
8
  //#region src/DropdownMenu/type.d.ts
8
- type DropdownMenuPlacement = 'bottomLeft' | 'bottomCenter' | 'bottomRight' | 'topLeft' | 'topCenter' | 'topRight' | 'top' | 'bottom';
9
+ type DropdownMenuPlacement = Placement;
9
10
  type DropdownMenuCheckboxItem = MenuCheckboxItemType;
10
11
  type DropdownItem = BaseMenuItemType;
11
12
  interface DropdownMenuProps<Payload = unknown> extends Omit<MenuRootProps<Payload>, 'children'> {
@@ -1,8 +1,8 @@
1
1
  import { EditableTextProps } from "./type.mjs";
2
- import * as react55 from "react";
2
+ import * as react7 from "react";
3
3
 
4
4
  //#region src/EditableText/EditableText.d.ts
5
- declare const EditableText: react55.NamedExoticComponent<EditableTextProps>;
5
+ declare const EditableText: react7.NamedExoticComponent<EditableTextProps>;
6
6
  //#endregion
7
7
  export { EditableText };
8
8
  //# sourceMappingURL=EditableText.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { EmojiPickerProps } from "./type.mjs";
2
- import * as react52 from "react";
2
+ import * as react8 from "react";
3
3
 
4
4
  //#region src/EmojiPicker/EmojiPicker.d.ts
5
- declare const EmojiPicker: react52.NamedExoticComponent<EmojiPickerProps>;
5
+ declare const EmojiPicker: react8.NamedExoticComponent<EmojiPickerProps>;
6
6
  //#endregion
7
7
  export { EmojiPicker };
8
8
  //# sourceMappingURL=EmojiPicker.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { FlexBasicProps } from "./type.mjs";
2
- import * as react54 from "react";
2
+ import * as react6 from "react";
3
3
 
4
4
  //#region src/Flex/FlexBasic.d.ts
5
- declare const _default: react54.NamedExoticComponent<FlexBasicProps>;
5
+ declare const _default: react6.NamedExoticComponent<FlexBasicProps>;
6
6
  //#endregion
7
7
  export { _default };
8
8
  //# sourceMappingURL=FlexBasic.d.mts.map
@@ -1,10 +1,10 @@
1
- import * as react69 from "react";
1
+ import * as react0 from "react";
2
2
 
3
3
  //#region src/FontLoader/index.d.ts
4
4
  interface FontLoaderProps {
5
5
  url: string;
6
6
  }
7
- declare const FontLoader: react69.NamedExoticComponent<FontLoaderProps>;
7
+ declare const FontLoader: react0.NamedExoticComponent<FontLoaderProps>;
8
8
  //#endregion
9
9
  export { FontLoader, FontLoaderProps };
10
10
  //# sourceMappingURL=index.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { FooterProps } from "./type.mjs";
2
- import * as react10 from "react";
2
+ import * as react13 from "react";
3
3
 
4
4
  //#region src/Footer/Footer.d.ts
5
- declare const Footer: react10.NamedExoticComponent<FooterProps>;
5
+ declare const Footer: react13.NamedExoticComponent<FooterProps>;
6
6
  //#endregion
7
7
  export { Footer };
8
8
  //# sourceMappingURL=Footer.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { FormGroupProps } from "../type.mjs";
2
- import * as react18 from "react";
2
+ import * as react9 from "react";
3
3
 
4
4
  //#region src/Form/components/FormGroup.d.ts
5
- declare const FormGroup: react18.NamedExoticComponent<FormGroupProps>;
5
+ declare const FormGroup: react9.NamedExoticComponent<FormGroupProps>;
6
6
  //#endregion
7
7
  export { FormGroup };
8
8
  //# sourceMappingURL=FormGroup.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { FormItemProps } from "../type.mjs";
2
- import * as react19 from "react";
2
+ import * as react10 from "react";
3
3
 
4
4
  //#region src/Form/components/FormItem.d.ts
5
- declare const FormItem: react19.NamedExoticComponent<FormItemProps>;
5
+ declare const FormItem: react10.NamedExoticComponent<FormItemProps>;
6
6
  //#endregion
7
7
  export { FormItem };
8
8
  //# sourceMappingURL=FormItem.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { FormSubmitFooterProps } from "../type.mjs";
2
- import * as react20 from "react";
2
+ import * as react11 from "react";
3
3
 
4
4
  //#region src/Form/components/FormSubmitFooter.d.ts
5
- declare const FormSubmitFooter: react20.NamedExoticComponent<FormSubmitFooterProps>;
5
+ declare const FormSubmitFooter: react11.NamedExoticComponent<FormSubmitFooterProps>;
6
6
  //#endregion
7
7
  export { FormSubmitFooter };
8
8
  //# sourceMappingURL=FormSubmitFooter.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { FormModalProps } from "./type.mjs";
2
- import * as react57 from "react";
2
+ import * as react12 from "react";
3
3
 
4
4
  //#region src/FormModal/FormModal.d.ts
5
- declare const FormModal: react57.NamedExoticComponent<FormModalProps>;
5
+ declare const FormModal: react12.NamedExoticComponent<FormModalProps>;
6
6
  //#endregion
7
7
  export { FormModal };
8
8
  //# sourceMappingURL=FormModal.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { GuideCardProps } from "./type.mjs";
2
- import * as react130 from "react";
2
+ import * as react112 from "react";
3
3
 
4
4
  //#region src/GuideCard/GuideCard.d.ts
5
- declare const GuideCard: react130.NamedExoticComponent<GuideCardProps>;
5
+ declare const GuideCard: react112.NamedExoticComponent<GuideCardProps>;
6
6
  //#endregion
7
7
  export { GuideCard };
8
8
  //# sourceMappingURL=GuideCard.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { HeaderProps } from "./type.mjs";
2
- import * as react51 from "react";
2
+ import * as react68 from "react";
3
3
 
4
4
  //#region src/Header/Header.d.ts
5
- declare const Header: react51.NamedExoticComponent<HeaderProps>;
5
+ declare const Header: react68.NamedExoticComponent<HeaderProps>;
6
6
  //#endregion
7
7
  export { Header };
8
8
  //# sourceMappingURL=Header.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { HighlighterProps } from "./type.mjs";
2
- import * as react46 from "react";
2
+ import * as react64 from "react";
3
3
 
4
4
  //#region src/Highlighter/Highlighter.d.ts
5
- declare const Highlighter: react46.NamedExoticComponent<HighlighterProps>;
5
+ declare const Highlighter: react64.NamedExoticComponent<HighlighterProps>;
6
6
  //#endregion
7
7
  export { Highlighter };
8
8
  //# sourceMappingURL=Highlighter.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { SyntaxHighlighterProps } from "../type.mjs";
2
- import * as react47 from "react";
2
+ import * as react65 from "react";
3
3
 
4
4
  //#region src/Highlighter/SyntaxHighlighter/index.d.ts
5
- declare const SyntaxHighlighter: react47.NamedExoticComponent<SyntaxHighlighterProps>;
5
+ declare const SyntaxHighlighter: react65.NamedExoticComponent<SyntaxHighlighterProps>;
6
6
  //#endregion
7
7
  export { SyntaxHighlighter };
8
8
  //# sourceMappingURL=index.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { HotkeyProps } from "./type.mjs";
2
- import * as react45 from "react";
2
+ import * as react66 from "react";
3
3
 
4
4
  //#region src/Hotkey/Hotkey.d.ts
5
- declare const Hotkey: react45.NamedExoticComponent<HotkeyProps>;
5
+ declare const Hotkey: react66.NamedExoticComponent<HotkeyProps>;
6
6
  //#endregion
7
7
  export { Hotkey };
8
8
  //# sourceMappingURL=Hotkey.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { HotkeyInputProps } from "./type.mjs";
2
- import * as react38 from "react";
2
+ import * as react63 from "react";
3
3
 
4
4
  //#region src/HotkeyInput/HotkeyInput.d.ts
5
- declare const HotkeyInput: react38.NamedExoticComponent<HotkeyInputProps>;
5
+ declare const HotkeyInput: react63.NamedExoticComponent<HotkeyInputProps>;
6
6
  //#endregion
7
7
  export { HotkeyInput };
8
8
  //# sourceMappingURL=HotkeyInput.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { IconProps } from "./type.mjs";
2
- import * as react50 from "react";
2
+ import * as react61 from "react";
3
3
 
4
4
  //#region src/Icon/Icon.d.ts
5
- declare const Icon: react50.NamedExoticComponent<IconProps>;
5
+ declare const Icon: react61.NamedExoticComponent<IconProps>;
6
6
  //#endregion
7
7
  export { Icon };
8
8
  //# sourceMappingURL=Icon.d.mts.map
@@ -1,11 +1,11 @@
1
1
  import { IconProps } from "../type.mjs";
2
- import * as react48 from "react";
2
+ import * as react59 from "react";
3
3
  import { ReactNode } from "react";
4
4
 
5
5
  //#region src/Icon/components/IconProvider.d.ts
6
6
  type IconContentConfig = Omit<IconProps, 'icon' | 'ref'>;
7
- declare const IconContext: react48.Context<IconContentConfig>;
8
- declare const IconProvider: react48.NamedExoticComponent<{
7
+ declare const IconContext: react59.Context<IconContentConfig>;
8
+ declare const IconProvider: react59.NamedExoticComponent<{
9
9
  children: ReactNode;
10
10
  config?: IconContentConfig;
11
11
  }>;
@@ -1,8 +1,8 @@
1
1
  import { PreviewGroupProps } from "./type.mjs";
2
- import * as react37 from "react";
2
+ import * as react62 from "react";
3
3
 
4
4
  //#region src/Image/PreviewGroup.d.ts
5
- declare const PreviewGroup: react37.NamedExoticComponent<PreviewGroupProps>;
5
+ declare const PreviewGroup: react62.NamedExoticComponent<PreviewGroupProps>;
6
6
  //#endregion
7
7
  export { PreviewGroup };
8
8
  //# sourceMappingURL=PreviewGroup.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { ImageSelectProps } from "./type.mjs";
2
- import * as react109 from "react";
2
+ import * as react74 from "react";
3
3
 
4
4
  //#region src/ImageSelect/ImageSelect.d.ts
5
- declare const ImageSelect: react109.NamedExoticComponent<ImageSelectProps>;
5
+ declare const ImageSelect: react74.NamedExoticComponent<ImageSelectProps>;
6
6
  //#endregion
7
7
  export { ImageSelect };
8
8
  //# sourceMappingURL=ImageSelect.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { InputProps } from "./type.mjs";
2
- import * as react136 from "react";
2
+ import * as react113 from "react";
3
3
 
4
4
  //#region src/Input/Input.d.ts
5
- declare const Input: react136.NamedExoticComponent<InputProps>;
5
+ declare const Input: react113.NamedExoticComponent<InputProps>;
6
6
  //#endregion
7
7
  export { Input };
8
8
  //# sourceMappingURL=Input.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { InputNumberProps } from "./type.mjs";
2
- import * as react134 from "react";
2
+ import * as react114 from "react";
3
3
 
4
4
  //#region src/Input/InputNumber.d.ts
5
- declare const InputNumber: react134.NamedExoticComponent<InputNumberProps>;
5
+ declare const InputNumber: react114.NamedExoticComponent<InputNumberProps>;
6
6
  //#endregion
7
7
  export { InputNumber };
8
8
  //# sourceMappingURL=InputNumber.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { InputOPTProps } from "./type.mjs";
2
- import * as react138 from "react";
2
+ import * as react115 from "react";
3
3
 
4
4
  //#region src/Input/InputOPT.d.ts
5
- declare const InputOPT: react138.NamedExoticComponent<InputOPTProps>;
5
+ declare const InputOPT: react115.NamedExoticComponent<InputOPTProps>;
6
6
  //#endregion
7
7
  export { InputOPT };
8
8
  //# sourceMappingURL=InputOPT.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { InputPasswordProps } from "./type.mjs";
2
- import * as react137 from "react";
2
+ import * as react116 from "react";
3
3
 
4
4
  //#region src/Input/InputPassword.d.ts
5
- declare const InputPassword: react137.NamedExoticComponent<InputPasswordProps>;
5
+ declare const InputPassword: react116.NamedExoticComponent<InputPasswordProps>;
6
6
  //#endregion
7
7
  export { InputPassword };
8
8
  //# sourceMappingURL=InputPassword.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { TextAreaProps } from "./type.mjs";
2
- import * as react135 from "react";
2
+ import * as react117 from "react";
3
3
 
4
4
  //#region src/Input/TextArea.d.ts
5
- declare const TextArea: react135.NamedExoticComponent<TextAreaProps>;
5
+ declare const TextArea: react117.NamedExoticComponent<TextAreaProps>;
6
6
  //#endregion
7
7
  export { TextArea };
8
8
  //# sourceMappingURL=TextArea.d.mts.map
@@ -1,9 +1,9 @@
1
1
  import { DivProps } from "../../types/index.mjs";
2
2
  import "../../index.mjs";
3
- import * as react39 from "react";
3
+ import * as react53 from "react";
4
4
 
5
5
  //#region src/Layout/components/LayoutFooter.d.ts
6
- declare const LayoutFooter: react39.NamedExoticComponent<DivProps>;
6
+ declare const LayoutFooter: react53.NamedExoticComponent<DivProps>;
7
7
  //#endregion
8
8
  export { LayoutFooter };
9
9
  //# sourceMappingURL=LayoutFooter.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { LayoutHeaderProps } from "../type.mjs";
2
- import * as react40 from "react";
2
+ import * as react54 from "react";
3
3
 
4
4
  //#region src/Layout/components/LayoutHeader.d.ts
5
- declare const LayoutHeader: react40.NamedExoticComponent<LayoutHeaderProps>;
5
+ declare const LayoutHeader: react54.NamedExoticComponent<LayoutHeaderProps>;
6
6
  //#endregion
7
7
  export { LayoutHeader };
8
8
  //# sourceMappingURL=LayoutHeader.d.mts.map
@@ -1,9 +1,9 @@
1
1
  import { DivProps } from "../../types/index.mjs";
2
2
  import "../../index.mjs";
3
- import * as react41 from "react";
3
+ import * as react55 from "react";
4
4
 
5
5
  //#region src/Layout/components/LayoutMain.d.ts
6
- declare const LayoutMain: react41.NamedExoticComponent<DivProps>;
6
+ declare const LayoutMain: react55.NamedExoticComponent<DivProps>;
7
7
  //#endregion
8
8
  export { LayoutMain };
9
9
  //# sourceMappingURL=LayoutMain.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { LayoutSidebarProps } from "../type.mjs";
2
- import * as react42 from "react";
2
+ import * as react56 from "react";
3
3
 
4
4
  //#region src/Layout/components/LayoutSidebar.d.ts
5
- declare const LayoutSidebar: react42.NamedExoticComponent<LayoutSidebarProps>;
5
+ declare const LayoutSidebar: react56.NamedExoticComponent<LayoutSidebarProps>;
6
6
  //#endregion
7
7
  export { LayoutSidebar };
8
8
  //# sourceMappingURL=LayoutSidebar.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { LayoutSidebarInnerProps } from "../type.mjs";
2
- import * as react43 from "react";
2
+ import * as react57 from "react";
3
3
 
4
4
  //#region src/Layout/components/LayoutSidebarInner.d.ts
5
- declare const LayoutSidebarInner: react43.NamedExoticComponent<LayoutSidebarInnerProps>;
5
+ declare const LayoutSidebarInner: react57.NamedExoticComponent<LayoutSidebarInnerProps>;
6
6
  //#endregion
7
7
  export { LayoutSidebarInner };
8
8
  //# sourceMappingURL=LayoutSidebarInner.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { LayoutTocProps } from "../type.mjs";
2
- import * as react44 from "react";
2
+ import * as react58 from "react";
3
3
 
4
4
  //#region src/Layout/components/LayoutToc.d.ts
5
- declare const LayoutToc: react44.NamedExoticComponent<LayoutTocProps>;
5
+ declare const LayoutToc: react58.NamedExoticComponent<LayoutTocProps>;
6
6
  //#endregion
7
7
  export { LayoutToc };
8
8
  //# sourceMappingURL=LayoutToc.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { ListItemProps } from "../type.mjs";
2
- import * as react35 from "react";
2
+ import * as react50 from "react";
3
3
 
4
4
  //#region src/List/ListItem/index.d.ts
5
- declare const ListItem: react35.NamedExoticComponent<ListItemProps>;
5
+ declare const ListItem: react50.NamedExoticComponent<ListItemProps>;
6
6
  //#endregion
7
7
  export { ListItem };
8
8
  //# sourceMappingURL=index.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { MarkdownProps } from "./type.mjs";
2
- import * as react34 from "react";
2
+ import * as react52 from "react";
3
3
 
4
4
  //#region src/Markdown/Markdown.d.ts
5
- declare const Markdown: react34.NamedExoticComponent<MarkdownProps>;
5
+ declare const Markdown: react52.NamedExoticComponent<MarkdownProps>;
6
6
  //#endregion
7
7
  export { Markdown };
8
8
  //# sourceMappingURL=Markdown.d.mts.map