@lobehub/ui 4.4.2 → 4.4.4

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 (136) hide show
  1. package/es/Accordion/Accordion.d.mts +2 -2
  2. package/es/Accordion/AccordionItem.d.mts +2 -2
  3. package/es/ActionIcon/ActionIcon.d.mts +2 -2
  4. package/es/Alert/Alert.d.mts +2 -2
  5. package/es/AutoComplete/Select.d.mts +2 -2
  6. package/es/Avatar/AvatarGroup/index.d.mts +2 -2
  7. package/es/Avatar/AvatarGroup/style.mjs +1 -5
  8. package/es/Avatar/AvatarGroup/style.mjs.map +1 -1
  9. package/es/Burger/Burger.d.mts +2 -2
  10. package/es/CodeEditor/CodeEditor.d.mts +2 -2
  11. package/es/Collapse/Collapse.d.mts +2 -2
  12. package/es/ConfigProvider/index.d.mts +2 -2
  13. package/es/CopyButton/CopyButton.d.mts +2 -2
  14. package/es/DatePicker/DatePicker.d.mts +2 -2
  15. package/es/DraggablePanel/components/DraggablePanelBody.d.mts +2 -2
  16. package/es/DraggablePanel/components/DraggablePanelContainer.d.mts +2 -2
  17. package/es/DraggablePanel/components/DraggablePanelFooter.d.mts +2 -2
  18. package/es/DraggablePanel/components/DraggablePanelHeader.d.mts +2 -2
  19. package/es/DraggableSideNav/DraggableSideNav.d.mts +2 -2
  20. package/es/Drawer/Drawer.d.mts +2 -2
  21. package/es/Dropdown/Dropdown.d.mts +2 -2
  22. package/es/EditableText/EditableText.d.mts +2 -2
  23. package/es/EmojiPicker/EmojiPicker.d.mts +2 -2
  24. package/es/Flex/FlexBasic.d.mts +2 -2
  25. package/es/FontLoader/index.d.mts +2 -2
  26. package/es/Footer/Footer.d.mts +2 -2
  27. package/es/Form/components/FormGroup.d.mts +2 -2
  28. package/es/Form/components/FormItem.d.mts +2 -2
  29. package/es/Form/components/FormSubmitFooter.d.mts +2 -2
  30. package/es/FormModal/FormModal.d.mts +2 -2
  31. package/es/GuideCard/GuideCard.d.mts +2 -2
  32. package/es/Header/Header.d.mts +2 -2
  33. package/es/Highlighter/Highlighter.d.mts +2 -2
  34. package/es/Highlighter/SyntaxHighlighter/index.d.mts +2 -2
  35. package/es/Hotkey/Hotkey.d.mts +2 -2
  36. package/es/HotkeyInput/HotkeyInput.d.mts +2 -2
  37. package/es/Icon/Icon.d.mts +2 -2
  38. package/es/Icon/components/IconProvider.d.mts +3 -3
  39. package/es/Image/PreviewGroup.d.mts +2 -2
  40. package/es/ImageSelect/ImageSelect.d.mts +2 -2
  41. package/es/Input/Input.d.mts +2 -2
  42. package/es/Input/InputNumber.d.mts +2 -2
  43. package/es/Input/InputOPT.d.mts +2 -2
  44. package/es/Input/InputPassword.d.mts +2 -2
  45. package/es/Input/TextArea.d.mts +2 -2
  46. package/es/Layout/components/LayoutFooter.d.mts +2 -2
  47. package/es/Layout/components/LayoutHeader.d.mts +2 -2
  48. package/es/Layout/components/LayoutMain.d.mts +2 -2
  49. package/es/Layout/components/LayoutSidebar.d.mts +2 -2
  50. package/es/Layout/components/LayoutSidebarInner.d.mts +2 -2
  51. package/es/Layout/components/LayoutToc.d.mts +2 -2
  52. package/es/List/ListItem/index.d.mts +2 -2
  53. package/es/Markdown/Markdown.d.mts +2 -2
  54. package/es/Markdown/Typography.d.mts +2 -2
  55. package/es/Markdown/components/SearchResultCards/index.d.mts +2 -2
  56. package/es/MaskShadow/MaskShadow.d.mts +2 -2
  57. package/es/Menu/Menu.d.mts +2 -2
  58. package/es/Mermaid/Mermaid.d.mts +2 -2
  59. package/es/Mermaid/SyntaxMermaid/index.d.mts +2 -2
  60. package/es/Modal/Modal.d.mts +2 -2
  61. package/es/MotionProvider/index.d.mts +2 -2
  62. package/es/SearchBar/SearchBar.d.mts +2 -2
  63. package/es/Segmented/Segmented.d.mts +2 -2
  64. package/es/Select/Select.d.mts +2 -2
  65. package/es/SideNav/SideNav.d.mts +2 -2
  66. package/es/SliderWithInput/SliderWithInput.d.mts +2 -2
  67. package/es/SortableList/components/DragHandle.d.mts +2 -2
  68. package/es/SortableList/components/SortableItem.d.mts +2 -2
  69. package/es/ThemeProvider/ThemeProvider.d.mts +2 -2
  70. package/es/Toc/Toc.d.mts +2 -2
  71. package/es/Tooltip/Tooltip.mjs +5 -237
  72. package/es/Tooltip/Tooltip.mjs.map +1 -1
  73. package/es/Tooltip/TooltipGroup.mjs +2 -2
  74. package/es/Tooltip/TooltipInGroup.mjs +65 -0
  75. package/es/Tooltip/TooltipInGroup.mjs.map +1 -0
  76. package/es/Tooltip/TooltipStandalone.mjs +89 -0
  77. package/es/Tooltip/TooltipStandalone.mjs.map +1 -0
  78. package/es/Tooltip/style.mjs +3 -2
  79. package/es/Tooltip/style.mjs.map +1 -1
  80. package/es/Tooltip/useMergedTooltipProps.mjs +92 -0
  81. package/es/Tooltip/useMergedTooltipProps.mjs.map +1 -0
  82. package/es/Tooltip/useTooltipFloating.mjs +55 -0
  83. package/es/Tooltip/useTooltipFloating.mjs.map +1 -0
  84. package/es/Tooltip/useTooltipReference.mjs +55 -0
  85. package/es/Tooltip/useTooltipReference.mjs.map +1 -0
  86. package/es/Tooltip/useTooltipTrigger.mjs +18 -0
  87. package/es/Tooltip/useTooltipTrigger.mjs.map +1 -0
  88. package/es/Video/index.d.mts +2 -2
  89. package/es/awesome/AuroraBackground/AuroraBackground.d.mts +2 -2
  90. package/es/awesome/BottomGradientButton/BottomGradientButton.d.mts +2 -2
  91. package/es/awesome/Features/Features.d.mts +2 -2
  92. package/es/awesome/Giscus/Giscus.d.mts +2 -2
  93. package/es/awesome/GradientButton/GradientButton.d.mts +2 -2
  94. package/es/awesome/GridBackground/GridBackground.d.mts +2 -2
  95. package/es/awesome/GridBackground/GridShowcase.d.mts +2 -2
  96. package/es/awesome/Hero/Hero.d.mts +2 -2
  97. package/es/awesome/Spline/Spine.d.mts +2 -2
  98. package/es/awesome/Spotlight/Spotlight.d.mts +2 -2
  99. package/es/awesome/SpotlightCard/SpotlightCard.d.mts +2 -2
  100. package/es/awesome/TypewriterEffect/TypewriterEffect.d.mts +2 -2
  101. package/es/brand/LobeChat/index.d.mts +2 -2
  102. package/es/brand/LobeHub/index.d.mts +2 -2
  103. package/es/brand/LogoThree/LogoSpline.d.mts +2 -2
  104. package/es/brand/LogoThree/index.d.mts +2 -2
  105. package/es/chat/BackBottom/BackBottom.d.mts +2 -2
  106. package/es/chat/ChatInputArea/components/ChatInputAreaInner.d.mts +2 -2
  107. package/es/chat/ChatItem/ChatItem.d.mts +2 -2
  108. package/es/chat/ChatList/ChatList.d.mts +2 -2
  109. package/es/chat/EditableMessage/EditableMessage.d.mts +2 -2
  110. package/es/chat/EditableMessageList/EditableMessageList.d.mts +2 -2
  111. package/es/chat/MessageInput/MessageInput.d.mts +2 -2
  112. package/es/chat/MessageModal/MessageModal.d.mts +2 -2
  113. package/es/color/ColorScales/index.d.mts +2 -2
  114. package/es/color/CssVar/index.d.mts +2 -2
  115. package/es/i18n/context.d.mts +2 -2
  116. package/es/icons/lucideExtra/BotPromptIcon.d.mts +2 -2
  117. package/es/icons/lucideExtra/CreateBotIcon.d.mts +2 -2
  118. package/es/icons/lucideExtra/DiscordIcon.d.mts +2 -2
  119. package/es/icons/lucideExtra/GlobeOffIcon.d.mts +3 -3
  120. package/es/icons/lucideExtra/GroupBotIcon.d.mts +3 -3
  121. package/es/icons/lucideExtra/GroupBotSquareIcon.d.mts +3 -3
  122. package/es/icons/lucideExtra/LeftClickIcon.d.mts +2 -2
  123. package/es/icons/lucideExtra/LeftDoubleClickIcon.d.mts +3 -3
  124. package/es/icons/lucideExtra/McpIcon.d.mts +3 -3
  125. package/es/icons/lucideExtra/ProviderIcon.d.mts +3 -3
  126. package/es/icons/lucideExtra/RightClickIcon.d.mts +3 -3
  127. package/es/icons/lucideExtra/RightDoubleClickIcon.d.mts +3 -3
  128. package/es/icons/lucideExtra/ShapesUploadIcon.d.mts +3 -3
  129. package/es/icons/lucideExtra/TreeDownRightIcon.d.mts +3 -3
  130. package/es/icons/lucideExtra/TreeUpDownRightIcon.d.mts +3 -3
  131. package/es/mdx/Mdx/index.d.mts +2 -2
  132. package/es/mobile/ChatHeader/ChatHeaderTitle.d.mts +2 -2
  133. package/es/mobile/ChatInputArea/components/ChatSendButton.d.mts +2 -2
  134. package/es/mobile/TabBar/TabBar.d.mts +2 -2
  135. package/es/storybook/StoryBook/index.d.mts +2 -2
  136. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  import { LayoutTocProps } from "../type.mjs";
2
- import * as react14 from "react";
2
+ import * as react68 from "react";
3
3
 
4
4
  //#region src/Layout/components/LayoutToc.d.ts
5
- declare const LayoutToc: react14.NamedExoticComponent<LayoutTocProps>;
5
+ declare const LayoutToc: react68.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 react7 from "react";
2
+ import * as react64 from "react";
3
3
 
4
4
  //#region src/List/ListItem/index.d.ts
5
- declare const ListItem: react7.NamedExoticComponent<ListItemProps>;
5
+ declare const ListItem: react64.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 react58 from "react";
2
+ import * as react8 from "react";
3
3
 
4
4
  //#region src/Markdown/Markdown.d.ts
5
- declare const Markdown: react58.NamedExoticComponent<MarkdownProps>;
5
+ declare const Markdown: react8.NamedExoticComponent<MarkdownProps>;
6
6
  //#endregion
7
7
  export { Markdown };
8
8
  //# sourceMappingURL=Markdown.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { TypographyProps } from "./type.mjs";
2
- import * as react57 from "react";
2
+ import * as react7 from "react";
3
3
 
4
4
  //#region src/Markdown/Typography.d.ts
5
- declare const Typography: react57.NamedExoticComponent<TypographyProps>;
5
+ declare const Typography: react7.NamedExoticComponent<TypographyProps>;
6
6
  //#endregion
7
7
  export { Typography };
8
8
  //# sourceMappingURL=Typography.d.mts.map
@@ -1,6 +1,6 @@
1
1
  import { FlexboxProps } from "../../../Flex/type.mjs";
2
2
  import "../../../Flex/index.mjs";
3
- import * as react68 from "react";
3
+ import * as react43 from "react";
4
4
  import { Ref } from "react";
5
5
 
6
6
  //#region src/Markdown/components/SearchResultCards/index.d.ts
@@ -14,7 +14,7 @@ interface SearchResultCardsProps extends FlexboxProps {
14
14
  dataSource: string[] | SearchResultItem[];
15
15
  ref?: Ref<HTMLDivElement>;
16
16
  }
17
- declare const SearchResultCards: react68.NamedExoticComponent<SearchResultCardsProps>;
17
+ declare const SearchResultCards: react43.NamedExoticComponent<SearchResultCardsProps>;
18
18
  //#endregion
19
19
  export { SearchResultCards, SearchResultCardsProps };
20
20
  //# sourceMappingURL=index.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { MaskShadowProps } from "./type.mjs";
2
- import * as react38 from "react";
2
+ import * as react6 from "react";
3
3
 
4
4
  //#region src/MaskShadow/MaskShadow.d.ts
5
- declare const MaskShadow: react38.NamedExoticComponent<MaskShadowProps>;
5
+ declare const MaskShadow: react6.NamedExoticComponent<MaskShadowProps>;
6
6
  //#endregion
7
7
  export { MaskShadow };
8
8
  //# sourceMappingURL=MaskShadow.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { MenuProps } from "./type.mjs";
2
- import * as react35 from "react";
2
+ import * as react2 from "react";
3
3
 
4
4
  //#region src/Menu/Menu.d.ts
5
- declare const Menu: react35.NamedExoticComponent<MenuProps<unknown>>;
5
+ declare const Menu: react2.NamedExoticComponent<MenuProps<unknown>>;
6
6
  //#endregion
7
7
  export { Menu };
8
8
  //# sourceMappingURL=Menu.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { MermaidProps } from "./type.mjs";
2
- import * as react28 from "react";
2
+ import * as react52 from "react";
3
3
 
4
4
  //#region src/Mermaid/Mermaid.d.ts
5
- declare const Mermaid: react28.NamedExoticComponent<MermaidProps>;
5
+ declare const Mermaid: react52.NamedExoticComponent<MermaidProps>;
6
6
  //#endregion
7
7
  export { Mermaid };
8
8
  //# sourceMappingURL=Mermaid.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { SyntaxMermaidProps } from "../type.mjs";
2
- import * as react29 from "react";
2
+ import * as react53 from "react";
3
3
 
4
4
  //#region src/Mermaid/SyntaxMermaid/index.d.ts
5
- declare const SyntaxMermaid: react29.NamedExoticComponent<SyntaxMermaidProps>;
5
+ declare const SyntaxMermaid: react53.NamedExoticComponent<SyntaxMermaidProps>;
6
6
  //#endregion
7
7
  export { SyntaxMermaid };
8
8
  //# sourceMappingURL=index.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { ModalProps } from "./type.mjs";
2
- import * as react27 from "react";
2
+ import * as react25 from "react";
3
3
 
4
4
  //#region src/Modal/Modal.d.ts
5
- declare const Modal: react27.NamedExoticComponent<ModalProps>;
5
+ declare const Modal: react25.NamedExoticComponent<ModalProps>;
6
6
  //#endregion
7
7
  export { Modal };
8
8
  //# sourceMappingURL=Modal.d.mts.map
@@ -1,4 +1,4 @@
1
- import * as react69 from "react";
1
+ import * as react44 from "react";
2
2
  import { Context, ReactNode } from "react";
3
3
  import * as motion_react0 from "motion/react";
4
4
  import * as m from "motion/react-m";
@@ -6,7 +6,7 @@ import * as m from "motion/react-m";
6
6
  //#region src/MotionProvider/index.d.ts
7
7
  type MotionComponentType = typeof motion_react0.motion | typeof m;
8
8
  declare const MotionComponent: Context<MotionComponentType>;
9
- declare const MotionProvider: react69.NamedExoticComponent<{
9
+ declare const MotionProvider: react44.NamedExoticComponent<{
10
10
  children: ReactNode;
11
11
  motion: MotionComponentType;
12
12
  }>;
@@ -1,8 +1,8 @@
1
1
  import { SearchBarProps } from "./type.mjs";
2
- import * as react34 from "react";
2
+ import * as react23 from "react";
3
3
 
4
4
  //#region src/SearchBar/SearchBar.d.ts
5
- declare const SearchBar: react34.NamedExoticComponent<SearchBarProps>;
5
+ declare const SearchBar: react23.NamedExoticComponent<SearchBarProps>;
6
6
  //#endregion
7
7
  export { SearchBar };
8
8
  //# sourceMappingURL=SearchBar.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { SegmentedProps } from "./type.mjs";
2
- import * as react33 from "react";
2
+ import * as react24 from "react";
3
3
 
4
4
  //#region src/Segmented/Segmented.d.ts
5
- declare const Segmented: react33.NamedExoticComponent<SegmentedProps>;
5
+ declare const Segmented: react24.NamedExoticComponent<SegmentedProps>;
6
6
  //#endregion
7
7
  export { Segmented };
8
8
  //# sourceMappingURL=Segmented.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { SelectProps } from "./type.mjs";
2
- import * as react31 from "react";
2
+ import * as react22 from "react";
3
3
 
4
4
  //#region src/Select/Select.d.ts
5
- declare const Input: react31.NamedExoticComponent<SelectProps>;
5
+ declare const Input: react22.NamedExoticComponent<SelectProps>;
6
6
  //#endregion
7
7
  export { Input };
8
8
  //# sourceMappingURL=Select.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { SideNavProps } from "./type.mjs";
2
- import * as react32 from "react";
2
+ import * as react21 from "react";
3
3
 
4
4
  //#region src/SideNav/SideNav.d.ts
5
- declare const SideNav: react32.NamedExoticComponent<SideNavProps>;
5
+ declare const SideNav: react21.NamedExoticComponent<SideNavProps>;
6
6
  //#endregion
7
7
  export { SideNav };
8
8
  //# sourceMappingURL=SideNav.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { SliderWithInputProps } from "./type.mjs";
2
- import * as react30 from "react";
2
+ import * as react20 from "react";
3
3
 
4
4
  //#region src/SliderWithInput/SliderWithInput.d.ts
5
- declare const SliderWithInput: react30.NamedExoticComponent<SliderWithInputProps>;
5
+ declare const SliderWithInput: react20.NamedExoticComponent<SliderWithInputProps>;
6
6
  //#endregion
7
7
  export { SliderWithInput };
8
8
  //# sourceMappingURL=SliderWithInput.d.mts.map
@@ -1,9 +1,9 @@
1
1
  import { ActionIconProps } from "../../ActionIcon/type.mjs";
2
2
  import "../../ActionIcon/index.mjs";
3
- import * as react103 from "react";
3
+ import * as react73 from "react";
4
4
 
5
5
  //#region src/SortableList/components/DragHandle.d.ts
6
- declare const DragHandle: react103.NamedExoticComponent<ActionIconProps>;
6
+ declare const DragHandle: react73.NamedExoticComponent<ActionIconProps>;
7
7
  //#endregion
8
8
  export { DragHandle };
9
9
  //# sourceMappingURL=DragHandle.d.mts.map
@@ -1,6 +1,6 @@
1
1
  import { FlexboxProps } from "../../Flex/type.mjs";
2
2
  import "../../Flex/index.mjs";
3
- import * as react101 from "react";
3
+ import * as react71 from "react";
4
4
  import "@dnd-kit/core";
5
5
 
6
6
  //#region src/SortableList/components/SortableItem.d.ts
@@ -9,7 +9,7 @@ interface SortableItemProps extends Omit<FlexboxProps, 'id'> {
9
9
  id: string | number;
10
10
  variant?: 'borderless' | 'filled' | 'outlined';
11
11
  }
12
- declare const SortableItem: react101.NamedExoticComponent<SortableItemProps>;
12
+ declare const SortableItem: react71.NamedExoticComponent<SortableItemProps>;
13
13
  //#endregion
14
14
  export { SortableItem };
15
15
  //# sourceMappingURL=SortableItem.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { ThemeProviderProps } from "./type.mjs";
2
- import * as react8 from "react";
2
+ import * as react15 from "react";
3
3
 
4
4
  //#region src/ThemeProvider/ThemeProvider.d.ts
5
- declare const ThemeProvider: react8.NamedExoticComponent<ThemeProviderProps>;
5
+ declare const ThemeProvider: react15.NamedExoticComponent<ThemeProviderProps>;
6
6
  //#endregion
7
7
  export { ThemeProvider };
8
8
  //# sourceMappingURL=ThemeProvider.d.mts.map
package/es/Toc/Toc.d.mts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { TocProps } from "./type.mjs";
2
- import * as react5 from "react";
2
+ import * as react9 from "react";
3
3
 
4
4
  //#region src/Toc/Toc.d.ts
5
- declare const Toc: react5.NamedExoticComponent<TocProps>;
5
+ declare const Toc: react9.NamedExoticComponent<TocProps>;
6
6
  //#endregion
7
7
  export { Toc };
8
8
  //# sourceMappingURL=Toc.d.mts.map
@@ -1,244 +1,12 @@
1
1
  'use client';
2
2
 
3
- import { antdPlacementToFloating } from "./antdPlacementToFloating.mjs";
4
- import { composeEventHandlers } from "../utils/composeEventHandlers.mjs";
5
- import TooltipFloating_default from "./TooltipFloating.mjs";
6
- import TooltipPortal_default from "./TooltipPortal.mjs";
7
- import { TooltipGroupApiContext, TooltipGroupPropsContext } from "./groupContext.mjs";
8
- import { cloneElement, isValidElement, useContext, useEffect, useMemo, useRef, useState } from "react";
9
- import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
10
- import { arrow, autoUpdate, flip, offset, shift, useDismiss, useFloating, useFocus, useHover, useInteractions, useRole } from "@floating-ui/react";
11
- import { mergeRefs } from "react-merge-refs";
3
+ import { TooltipGroupApiContext } from "./groupContext.mjs";
4
+ import { TooltipInGroup } from "./TooltipInGroup.mjs";
5
+ import { TooltipStandalone } from "./TooltipStandalone.mjs";
6
+ import { useContext } from "react";
7
+ import { jsx } from "react/jsx-runtime";
12
8
 
13
9
  //#region src/Tooltip/Tooltip.tsx
14
- const TooltipInGroup = ({ ref, hotkey, className, arrow: arrow$1, title, hotkeyProps, children, placement, openDelay, closeDelay, mouseEnterDelay, mouseLeaveDelay, onOpenChange, disabled, classNames, styles: styleProps, zIndex, portalled, getPopupContainer }) => {
15
- const group = useContext(TooltipGroupApiContext);
16
- const sharedProps = useContext(TooltipGroupPropsContext);
17
- const triggerElRef = useRef(null);
18
- const mergedClassName = useMemo(() => {
19
- if (!sharedProps?.className && !className) return void 0;
20
- return [sharedProps?.className, className].filter(Boolean).join(" ");
21
- }, [className, sharedProps?.className]);
22
- const mergedClassNames = useMemo(() => {
23
- if (!sharedProps?.classNames && !classNames) return void 0;
24
- return {
25
- ...sharedProps?.classNames,
26
- ...classNames
27
- };
28
- }, [classNames, sharedProps?.classNames]);
29
- const mergedStyles = useMemo(() => {
30
- if (!sharedProps?.styles && !styleProps) return void 0;
31
- return {
32
- ...sharedProps?.styles,
33
- ...styleProps
34
- };
35
- }, [sharedProps?.styles, styleProps]);
36
- const mergedHotkeyProps = useMemo(() => {
37
- if (!sharedProps?.hotkeyProps && !hotkeyProps) return void 0;
38
- return {
39
- ...sharedProps?.hotkeyProps,
40
- ...hotkeyProps
41
- };
42
- }, [hotkeyProps, sharedProps?.hotkeyProps]);
43
- const mergedOnOpenChange = useMemo(() => {
44
- if (!sharedProps?.onOpenChange && !onOpenChange) return void 0;
45
- return (open) => {
46
- sharedProps?.onOpenChange?.(open);
47
- onOpenChange?.(open);
48
- };
49
- }, [onOpenChange, sharedProps?.onOpenChange]);
50
- const item = useMemo(() => ({
51
- arrow: arrow$1 ?? sharedProps?.arrow ?? false,
52
- className: mergedClassName,
53
- classNames: mergedClassNames,
54
- closeDelay: closeDelay ?? sharedProps?.closeDelay,
55
- disabled: disabled ?? sharedProps?.disabled,
56
- getPopupContainer: getPopupContainer ?? sharedProps?.getPopupContainer,
57
- hotkey: hotkey ?? sharedProps?.hotkey,
58
- hotkeyProps: mergedHotkeyProps,
59
- mouseEnterDelay: mouseEnterDelay ?? sharedProps?.mouseEnterDelay,
60
- mouseLeaveDelay: mouseLeaveDelay ?? sharedProps?.mouseLeaveDelay,
61
- onOpenChange: mergedOnOpenChange,
62
- openDelay: openDelay ?? sharedProps?.openDelay,
63
- placement: placement ?? sharedProps?.placement ?? "top",
64
- portalled: portalled ?? sharedProps?.portalled,
65
- styles: mergedStyles,
66
- title,
67
- zIndex: zIndex ?? sharedProps?.zIndex
68
- }), [
69
- arrow$1,
70
- closeDelay,
71
- disabled,
72
- getPopupContainer,
73
- hotkey,
74
- mergedClassName,
75
- mergedClassNames,
76
- mergedHotkeyProps,
77
- mergedOnOpenChange,
78
- mergedStyles,
79
- mouseEnterDelay,
80
- mouseLeaveDelay,
81
- openDelay,
82
- placement,
83
- portalled,
84
- sharedProps?.arrow,
85
- sharedProps?.closeDelay,
86
- sharedProps?.disabled,
87
- sharedProps?.getPopupContainer,
88
- sharedProps?.hotkey,
89
- sharedProps?.mouseEnterDelay,
90
- sharedProps?.mouseLeaveDelay,
91
- sharedProps?.openDelay,
92
- sharedProps?.placement,
93
- sharedProps?.portalled,
94
- sharedProps?.zIndex,
95
- title,
96
- zIndex
97
- ]);
98
- const trigger = useMemo(() => {
99
- if (!isValidElement(children)) return /* @__PURE__ */ jsx("span", { children });
100
- if (typeof children.type === "string" && Boolean(children.props?.disabled)) return /* @__PURE__ */ jsx("span", {
101
- style: { display: "inline-flex" },
102
- children
103
- });
104
- return children;
105
- }, [children]);
106
- const referenceNode = useMemo(() => {
107
- if (!isValidElement(trigger)) return trigger;
108
- const originalRef = trigger.props?.ref;
109
- const triggerProps = trigger.props || {};
110
- const setTriggerEl = (node) => {
111
- triggerElRef.current = node instanceof HTMLElement ? node : null;
112
- };
113
- return cloneElement(trigger, {
114
- ...triggerProps,
115
- onBlur: composeEventHandlers(triggerProps.onBlur, (e) => {
116
- group?.closeFromTrigger(e.currentTarget, item);
117
- }),
118
- onFocus: composeEventHandlers(triggerProps.onFocus, (e) => {
119
- group?.openFromTrigger(e.currentTarget, item);
120
- }),
121
- onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (e) => {
122
- if (e?.key === "Escape") group?.closeImmediately();
123
- }),
124
- onPointerEnter: composeEventHandlers(triggerProps.onPointerEnter, (e) => {
125
- group?.openFromTrigger(e.currentTarget, item);
126
- }),
127
- onPointerLeave: composeEventHandlers(triggerProps.onPointerLeave, (e) => {
128
- group?.closeFromTrigger(e.currentTarget, item);
129
- }),
130
- ref: mergeRefs([
131
- originalRef,
132
- setTriggerEl,
133
- ref
134
- ])
135
- });
136
- }, [
137
- group,
138
- item,
139
- ref,
140
- trigger
141
- ]);
142
- useEffect(() => {
143
- return () => {
144
- if (!group) return;
145
- const el = triggerElRef.current;
146
- if (el && group.isActiveTrigger(el)) group.closeImmediately();
147
- };
148
- }, [group]);
149
- return referenceNode;
150
- };
151
- TooltipInGroup.displayName = "TooltipInGroup";
152
- const TooltipStandalone = ({ ref, hotkey, className, arrow: arrow$1 = false, title, hotkeyProps, children, placement = "top", openDelay, closeDelay, mouseEnterDelay, mouseLeaveDelay, open, defaultOpen, onOpenChange, disabled, classNames, styles: styleProps, zIndex, portalled = true, getPopupContainer }) => {
153
- const arrowRef = useRef(null);
154
- const [uncontrolledOpen, setUncontrolledOpen] = useState(Boolean(defaultOpen));
155
- const mergedOpen = open ?? uncontrolledOpen;
156
- const setOpen = (next) => {
157
- if (open === void 0) setUncontrolledOpen(next);
158
- onOpenChange?.(next);
159
- };
160
- const floatingPlacement = useMemo(() => antdPlacementToFloating(placement), [placement]);
161
- const { context, floatingStyles, refs } = useFloating({
162
- middleware: useMemo(() => {
163
- const base = [
164
- offset(8),
165
- flip(),
166
- shift({ padding: 8 })
167
- ];
168
- if (arrow$1) base.push(arrow({ element: arrowRef }));
169
- return base;
170
- }, [arrow$1]),
171
- onOpenChange: setOpen,
172
- open: disabled ? false : mergedOpen,
173
- placement: floatingPlacement,
174
- whileElementsMounted: autoUpdate
175
- });
176
- const { getFloatingProps, getReferenceProps } = useInteractions([
177
- useHover(context, {
178
- delay: useMemo(() => ({
179
- close: closeDelay ?? (mouseLeaveDelay !== void 0 ? mouseLeaveDelay * 1e3 : 100),
180
- open: openDelay ?? (mouseEnterDelay !== void 0 ? mouseEnterDelay * 1e3 : 400)
181
- }), [
182
- closeDelay,
183
- mouseEnterDelay,
184
- mouseLeaveDelay,
185
- openDelay
186
- ]),
187
- enabled: !disabled,
188
- move: false
189
- }),
190
- useFocus(context, { enabled: !disabled }),
191
- useDismiss(context, { enabled: !disabled }),
192
- useRole(context, { role: "tooltip" })
193
- ]);
194
- const trigger = useMemo(() => {
195
- if (!isValidElement(children)) return /* @__PURE__ */ jsx("span", { children });
196
- if (typeof children.type === "string" && Boolean(children.props?.disabled)) return /* @__PURE__ */ jsx("span", {
197
- style: { display: "inline-flex" },
198
- children
199
- });
200
- return children;
201
- }, [children]);
202
- const referenceNode = useMemo(() => {
203
- if (!isValidElement(trigger)) return trigger;
204
- const originalRef = trigger.props?.ref;
205
- return cloneElement(trigger, getReferenceProps({
206
- ...trigger.props,
207
- ref: mergeRefs([
208
- originalRef,
209
- refs.setReference,
210
- ref
211
- ])
212
- }));
213
- }, [
214
- getReferenceProps,
215
- ref,
216
- refs.setReference,
217
- trigger
218
- ]);
219
- const portalRoot = getPopupContainer && refs.reference.current ? getPopupContainer(refs.reference.current) : void 0;
220
- const floatingNode = /* @__PURE__ */ jsx(TooltipFloating_default, {
221
- arrow: arrow$1,
222
- arrowRef,
223
- className,
224
- classNames,
225
- context,
226
- floatingProps: getFloatingProps(),
227
- floatingStyles,
228
- hotkey,
229
- hotkeyProps,
230
- open: mergedOpen,
231
- placement: floatingPlacement,
232
- setFloating: refs.setFloating,
233
- styles: styleProps,
234
- title,
235
- zIndex
236
- });
237
- return /* @__PURE__ */ jsxs(Fragment$1, { children: [referenceNode, !disabled && title && (portalled ? /* @__PURE__ */ jsx(TooltipPortal_default, {
238
- root: portalRoot,
239
- children: floatingNode
240
- }) : floatingNode)] });
241
- };
242
10
  const Tooltip = (props) => {
243
11
  const group = useContext(TooltipGroupApiContext);
244
12
  return Boolean(group) && props.open === void 0 && props.defaultOpen === void 0 ? /* @__PURE__ */ jsx(TooltipInGroup, { ...props }) : /* @__PURE__ */ jsx(TooltipStandalone, { ...props });
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.mjs","names":["TooltipInGroup: FC<TooltipProps>","item: TooltipGroupItem","arrow","triggerProps: any","TooltipStandalone: FC<TooltipProps>","arrowMiddleware","TooltipFloating","TooltipPortal","Tooltip: FC<TooltipProps>"],"sources":["../../src/Tooltip/Tooltip.tsx"],"sourcesContent":["'use client';\n\nimport {\n arrow as arrowMiddleware,\n autoUpdate,\n flip,\n offset,\n shift,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport {\n type FC,\n cloneElement,\n isValidElement,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { mergeRefs } from 'react-merge-refs';\n\nimport { antdPlacementToFloating } from '@/Tooltip/antdPlacementToFloating';\nimport { composeEventHandlers } from '@/utils/composeEventHandlers';\n\nimport TooltipFloating from './TooltipFloating';\nimport TooltipPortal from './TooltipPortal';\nimport {\n TooltipGroupApiContext,\n type TooltipGroupItem,\n TooltipGroupPropsContext,\n} from './groupContext';\nimport type { TooltipProps } from './type';\n\nconst TooltipInGroup: FC<TooltipProps> = ({\n ref,\n hotkey,\n className,\n arrow,\n title,\n hotkeyProps,\n children,\n placement,\n openDelay,\n closeDelay,\n mouseEnterDelay,\n mouseLeaveDelay,\n onOpenChange,\n disabled,\n classNames,\n styles: styleProps,\n zIndex,\n portalled,\n getPopupContainer,\n}) => {\n const group = useContext(TooltipGroupApiContext);\n const sharedProps = useContext(TooltipGroupPropsContext);\n const triggerElRef = useRef<HTMLElement | null>(null);\n\n const mergedClassName = useMemo(() => {\n if (!sharedProps?.className && !className) return undefined;\n return [sharedProps?.className, className].filter(Boolean).join(' ');\n }, [className, sharedProps?.className]);\n\n const mergedClassNames = useMemo(() => {\n if (!sharedProps?.classNames && !classNames) return undefined;\n return { ...sharedProps?.classNames, ...classNames };\n }, [classNames, sharedProps?.classNames]);\n\n const mergedStyles = useMemo(() => {\n if (!sharedProps?.styles && !styleProps) return undefined;\n return { ...sharedProps?.styles, ...styleProps };\n }, [sharedProps?.styles, styleProps]);\n\n const mergedHotkeyProps = useMemo(() => {\n if (!sharedProps?.hotkeyProps && !hotkeyProps) return undefined;\n return { ...sharedProps?.hotkeyProps, ...hotkeyProps };\n }, [hotkeyProps, sharedProps?.hotkeyProps]);\n\n const mergedOnOpenChange = useMemo(() => {\n if (!sharedProps?.onOpenChange && !onOpenChange) return undefined;\n return (open: boolean) => {\n sharedProps?.onOpenChange?.(open);\n onOpenChange?.(open);\n };\n }, [onOpenChange, sharedProps?.onOpenChange]);\n\n const item: TooltipGroupItem = useMemo(\n () => ({\n arrow: arrow ?? sharedProps?.arrow ?? false,\n className: mergedClassName,\n classNames: mergedClassNames,\n closeDelay: closeDelay ?? sharedProps?.closeDelay,\n disabled: disabled ?? sharedProps?.disabled,\n getPopupContainer: getPopupContainer ?? sharedProps?.getPopupContainer,\n hotkey: hotkey ?? sharedProps?.hotkey,\n hotkeyProps: mergedHotkeyProps,\n mouseEnterDelay: mouseEnterDelay ?? sharedProps?.mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay ?? sharedProps?.mouseLeaveDelay,\n onOpenChange: mergedOnOpenChange,\n openDelay: openDelay ?? sharedProps?.openDelay,\n placement: placement ?? sharedProps?.placement ?? 'top',\n portalled: portalled ?? sharedProps?.portalled,\n styles: mergedStyles,\n title,\n zIndex: zIndex ?? sharedProps?.zIndex,\n }),\n [\n arrow,\n closeDelay,\n disabled,\n getPopupContainer,\n hotkey,\n mergedClassName,\n mergedClassNames,\n mergedHotkeyProps,\n mergedOnOpenChange,\n mergedStyles,\n mouseEnterDelay,\n mouseLeaveDelay,\n openDelay,\n placement,\n portalled,\n sharedProps?.arrow,\n sharedProps?.closeDelay,\n sharedProps?.disabled,\n sharedProps?.getPopupContainer,\n sharedProps?.hotkey,\n sharedProps?.mouseEnterDelay,\n sharedProps?.mouseLeaveDelay,\n sharedProps?.openDelay,\n sharedProps?.placement,\n sharedProps?.portalled,\n sharedProps?.zIndex,\n title,\n zIndex,\n ],\n );\n\n const trigger = useMemo(() => {\n if (!isValidElement(children)) return <span>{children}</span>;\n\n const needsWrapper =\n typeof children.type === 'string' && Boolean((children.props as any)?.disabled);\n\n if (needsWrapper) return <span style={{ display: 'inline-flex' }}>{children}</span>;\n\n return children;\n }, [children]);\n\n const referenceNode = useMemo(() => {\n if (!isValidElement(trigger)) return trigger;\n\n const originalRef = (trigger.props as any)?.ref;\n const triggerProps: any = trigger.props || {};\n\n const setTriggerEl = (node: any) => {\n triggerElRef.current = node instanceof HTMLElement ? node : null;\n };\n\n return cloneElement(trigger as any, {\n ...triggerProps,\n onBlur: composeEventHandlers(triggerProps.onBlur, (e: any) => {\n group?.closeFromTrigger(e.currentTarget as HTMLElement, item);\n }),\n onFocus: composeEventHandlers(triggerProps.onFocus, (e: any) => {\n group?.openFromTrigger(e.currentTarget as HTMLElement, item);\n }),\n onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (e: any) => {\n if (e?.key === 'Escape') group?.closeImmediately();\n }),\n onPointerEnter: composeEventHandlers(triggerProps.onPointerEnter, (e: any) => {\n group?.openFromTrigger(e.currentTarget as HTMLElement, item);\n }),\n onPointerLeave: composeEventHandlers(triggerProps.onPointerLeave, (e: any) => {\n group?.closeFromTrigger(e.currentTarget as HTMLElement, item);\n }),\n ref: mergeRefs([originalRef, setTriggerEl, ref]),\n });\n }, [group, item, ref, trigger]);\n\n useEffect(() => {\n return () => {\n if (!group) return;\n const el = triggerElRef.current;\n if (el && group.isActiveTrigger(el)) group.closeImmediately();\n };\n }, [group]);\n\n return referenceNode as any;\n};\n\nTooltipInGroup.displayName = 'TooltipInGroup';\n\nconst TooltipStandalone: FC<TooltipProps> = ({\n ref,\n hotkey,\n className,\n arrow = false,\n title,\n hotkeyProps,\n children,\n placement = 'top',\n openDelay,\n closeDelay,\n mouseEnterDelay,\n mouseLeaveDelay,\n open,\n defaultOpen,\n onOpenChange,\n disabled,\n classNames,\n styles: styleProps,\n zIndex,\n portalled = true,\n getPopupContainer,\n}) => {\n const arrowRef = useRef<SVGSVGElement | null>(null);\n const [uncontrolledOpen, setUncontrolledOpen] = useState(Boolean(defaultOpen));\n\n const mergedOpen = open ?? uncontrolledOpen;\n const setOpen = (next: boolean) => {\n if (open === undefined) setUncontrolledOpen(next);\n onOpenChange?.(next);\n };\n\n const floatingPlacement = useMemo(() => antdPlacementToFloating(placement), [placement]);\n\n const middleware = useMemo(() => {\n const base = [offset(8), flip(), shift({ padding: 8 })];\n if (arrow) base.push(arrowMiddleware({ element: arrowRef }));\n return base;\n }, [arrow]);\n\n const { context, floatingStyles, refs } = useFloating({\n middleware,\n onOpenChange: setOpen,\n open: disabled ? false : mergedOpen,\n placement: floatingPlacement,\n whileElementsMounted: autoUpdate,\n });\n\n const resolvedDelay = useMemo(\n () => ({\n close: closeDelay ?? (mouseLeaveDelay !== undefined ? mouseLeaveDelay * 1000 : 100),\n open: openDelay ?? (mouseEnterDelay !== undefined ? mouseEnterDelay * 1000 : 400),\n }),\n [closeDelay, mouseEnterDelay, mouseLeaveDelay, openDelay],\n );\n\n const hover = useHover(context, {\n delay: resolvedDelay,\n enabled: !disabled,\n move: false,\n });\n const focus = useFocus(context, { enabled: !disabled });\n const dismiss = useDismiss(context, { enabled: !disabled });\n const role = useRole(context, { role: 'tooltip' });\n\n const { getFloatingProps, getReferenceProps } = useInteractions([hover, focus, dismiss, role]);\n\n const trigger = useMemo(() => {\n if (!isValidElement(children)) return <span>{children}</span>;\n\n const needsWrapper =\n typeof children.type === 'string' && Boolean((children.props as any)?.disabled);\n\n if (needsWrapper) return <span style={{ display: 'inline-flex' }}>{children}</span>;\n\n return children;\n }, [children]);\n\n const referenceNode = useMemo(() => {\n if (!isValidElement(trigger)) return trigger;\n\n const originalRef = (trigger.props as any)?.ref;\n\n return cloneElement(\n trigger as any,\n getReferenceProps({\n ...(trigger.props as any),\n ref: mergeRefs([originalRef, refs.setReference, ref]),\n }),\n );\n }, [getReferenceProps, ref, refs.setReference, trigger]);\n\n const portalRoot =\n getPopupContainer && refs.reference.current\n ? getPopupContainer(refs.reference.current as any)\n : undefined;\n\n const floatingNode = (\n <TooltipFloating\n arrow={arrow}\n arrowRef={arrowRef}\n className={className}\n classNames={classNames}\n context={context}\n floatingProps={getFloatingProps()}\n floatingStyles={floatingStyles}\n hotkey={hotkey}\n hotkeyProps={hotkeyProps}\n open={mergedOpen}\n placement={floatingPlacement}\n setFloating={refs.setFloating}\n styles={styleProps}\n title={title}\n zIndex={zIndex}\n />\n );\n\n return (\n <>\n {referenceNode}\n {!disabled &&\n title &&\n (portalled ? (\n <TooltipPortal root={portalRoot}>{floatingNode}</TooltipPortal>\n ) : (\n floatingNode\n ))}\n </>\n );\n};\n\nexport const Tooltip: FC<TooltipProps> = (props) => {\n const group = useContext(TooltipGroupApiContext);\n\n // Group mode is intentionally hover/focus driven; keep standalone behavior for controlled cases.\n const canUseGroup = Boolean(group) && props.open === undefined && props.defaultOpen === undefined;\n\n return canUseGroup ? <TooltipInGroup {...props} /> : <TooltipStandalone {...props} />;\n};\n\nexport default Tooltip;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Tooltip.mjs","names":["Tooltip: FC<TooltipProps>"],"sources":["../../src/Tooltip/Tooltip.tsx"],"sourcesContent":["'use client';\n\nimport { type FC, useContext } from 'react';\n\nimport { TooltipInGroup } from './TooltipInGroup';\nimport { TooltipStandalone } from './TooltipStandalone';\nimport { TooltipGroupApiContext } from './groupContext';\nimport type { TooltipProps } from './type';\n\nexport const Tooltip: FC<TooltipProps> = (props) => {\n const group = useContext(TooltipGroupApiContext);\n\n // Group mode is intentionally hover/focus driven; keep standalone behavior for controlled cases.\n const canUseGroup = Boolean(group) && props.open === undefined && props.defaultOpen === undefined;\n\n return canUseGroup ? <TooltipInGroup {...props} /> : <TooltipStandalone {...props} />;\n};\n\nexport default Tooltip;\n"],"mappings":";;;;;;;;;AASA,MAAaA,WAA6B,UAAU;CAClD,MAAM,QAAQ,WAAW,uBAAuB;AAKhD,QAFoB,QAAQ,MAAM,IAAI,MAAM,SAAS,UAAa,MAAM,gBAAgB,SAEnE,oBAAC,kBAAe,GAAI,QAAS,GAAG,oBAAC,qBAAkB,GAAI,QAAS;;AAGvF,sBAAe"}
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
 
3
- import { antdPlacementToFloating } from "./antdPlacementToFloating.mjs";
3
+ import { TooltipGroupApiContext, TooltipGroupPropsContext } from "./groupContext.mjs";
4
4
  import TooltipFloating_default from "./TooltipFloating.mjs";
5
5
  import TooltipPortal_default from "./TooltipPortal.mjs";
6
- import { TooltipGroupApiContext, TooltipGroupPropsContext } from "./groupContext.mjs";
6
+ import { antdPlacementToFloating } from "./antdPlacementToFloating.mjs";
7
7
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
9
  import { arrow, autoUpdate, flip, offset, shift, useFloating } from "@floating-ui/react";
@@ -0,0 +1,65 @@
1
+ 'use client';
2
+
3
+ import { composeEventHandlers } from "../utils/composeEventHandlers.mjs";
4
+ import { TooltipGroupApiContext } from "./groupContext.mjs";
5
+ import { useMergedTooltipProps } from "./useMergedTooltipProps.mjs";
6
+ import { useTooltipTrigger } from "./useTooltipTrigger.mjs";
7
+ import { cloneElement, isValidElement, useContext, useEffect, useMemo, useRef } from "react";
8
+ import { mergeRefs } from "react-merge-refs";
9
+
10
+ //#region src/Tooltip/TooltipInGroup.tsx
11
+ const TooltipInGroup = ({ ref, children, ...props }) => {
12
+ const group = useContext(TooltipGroupApiContext);
13
+ const triggerElRef = useRef(null);
14
+ const item = useMergedTooltipProps(props);
15
+ const trigger = useTooltipTrigger(children);
16
+ const referenceNode = useMemo(() => {
17
+ if (!isValidElement(trigger)) return trigger;
18
+ const originalRef = trigger.ref;
19
+ const triggerProps = trigger.props || {};
20
+ const setTriggerEl = (node) => {
21
+ triggerElRef.current = node instanceof HTMLElement ? node : null;
22
+ };
23
+ return cloneElement(trigger, {
24
+ ...triggerProps,
25
+ onBlur: composeEventHandlers(triggerProps.onBlur, (e) => {
26
+ group?.closeFromTrigger(e.currentTarget, item);
27
+ }),
28
+ onFocus: composeEventHandlers(triggerProps.onFocus, (e) => {
29
+ group?.openFromTrigger(e.currentTarget, item);
30
+ }),
31
+ onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (e) => {
32
+ if (e?.key === "Escape") group?.closeImmediately();
33
+ }),
34
+ onPointerEnter: composeEventHandlers(triggerProps.onPointerEnter, (e) => {
35
+ group?.openFromTrigger(e.currentTarget, item);
36
+ }),
37
+ onPointerLeave: composeEventHandlers(triggerProps.onPointerLeave, (e) => {
38
+ group?.closeFromTrigger(e.currentTarget, item);
39
+ }),
40
+ ref: mergeRefs([
41
+ originalRef,
42
+ setTriggerEl,
43
+ ref
44
+ ])
45
+ });
46
+ }, [
47
+ group,
48
+ item,
49
+ ref,
50
+ trigger
51
+ ]);
52
+ useEffect(() => {
53
+ return () => {
54
+ if (!group) return;
55
+ const el = triggerElRef.current;
56
+ if (el && group.isActiveTrigger(el)) group.closeImmediately();
57
+ };
58
+ }, [group]);
59
+ return referenceNode;
60
+ };
61
+ TooltipInGroup.displayName = "TooltipInGroup";
62
+
63
+ //#endregion
64
+ export { TooltipInGroup };
65
+ //# sourceMappingURL=TooltipInGroup.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TooltipInGroup.mjs","names":["TooltipInGroup: FC<TooltipProps>","triggerProps: any"],"sources":["../../src/Tooltip/TooltipInGroup.tsx"],"sourcesContent":["'use client';\n\nimport {\n type FC,\n type ReactNode,\n cloneElement,\n isValidElement,\n useContext,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport { mergeRefs } from 'react-merge-refs';\n\nimport { composeEventHandlers } from '@/utils/composeEventHandlers';\n\nimport { TooltipGroupApiContext } from './groupContext';\nimport type { TooltipProps } from './type';\nimport { useMergedTooltipProps } from './useMergedTooltipProps';\nimport { useTooltipTrigger } from './useTooltipTrigger';\n\nexport const TooltipInGroup: FC<TooltipProps> = ({ ref, children, ...props }) => {\n const group = useContext(TooltipGroupApiContext);\n const triggerElRef = useRef<HTMLElement | null>(null);\n const item = useMergedTooltipProps(props);\n const trigger = useTooltipTrigger(children);\n\n const referenceNode = useMemo(() => {\n if (!isValidElement(trigger)) return trigger;\n\n const originalRef = (trigger as any).ref;\n const triggerProps: any = trigger.props || {};\n\n const setTriggerEl = (node: any) => {\n triggerElRef.current = node instanceof HTMLElement ? node : null;\n };\n\n return cloneElement(trigger as any, {\n ...triggerProps,\n onBlur: composeEventHandlers(triggerProps.onBlur, (e: any) => {\n group?.closeFromTrigger(e.currentTarget as HTMLElement, item);\n }),\n onFocus: composeEventHandlers(triggerProps.onFocus, (e: any) => {\n group?.openFromTrigger(e.currentTarget as HTMLElement, item);\n }),\n onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (e: any) => {\n if (e?.key === 'Escape') group?.closeImmediately();\n }),\n onPointerEnter: composeEventHandlers(triggerProps.onPointerEnter, (e: any) => {\n group?.openFromTrigger(e.currentTarget as HTMLElement, item);\n }),\n onPointerLeave: composeEventHandlers(triggerProps.onPointerLeave, (e: any) => {\n group?.closeFromTrigger(e.currentTarget as HTMLElement, item);\n }),\n ref: mergeRefs([originalRef, setTriggerEl, ref]),\n });\n }, [group, item, ref, trigger]);\n\n // Close when the trigger is swapped out or disconnected.\n useEffect(() => {\n return () => {\n if (!group) return;\n const el = triggerElRef.current;\n if (el && group.isActiveTrigger(el)) group.closeImmediately();\n };\n }, [group]);\n\n return referenceNode as ReactNode;\n};\n\nTooltipInGroup.displayName = 'TooltipInGroup';\n"],"mappings":";;;;;;;;;;AAqBA,MAAaA,kBAAoC,EAAE,KAAK,UAAU,GAAG,YAAY;CAC/E,MAAM,QAAQ,WAAW,uBAAuB;CAChD,MAAM,eAAe,OAA2B,KAAK;CACrD,MAAM,OAAO,sBAAsB,MAAM;CACzC,MAAM,UAAU,kBAAkB,SAAS;CAE3C,MAAM,gBAAgB,cAAc;AAClC,MAAI,CAAC,eAAe,QAAQ,CAAE,QAAO;EAErC,MAAM,cAAe,QAAgB;EACrC,MAAMC,eAAoB,QAAQ,SAAS,EAAE;EAE7C,MAAM,gBAAgB,SAAc;AAClC,gBAAa,UAAU,gBAAgB,cAAc,OAAO;;AAG9D,SAAO,aAAa,SAAgB;GAClC,GAAG;GACH,QAAQ,qBAAqB,aAAa,SAAS,MAAW;AAC5D,WAAO,iBAAiB,EAAE,eAA8B,KAAK;KAC7D;GACF,SAAS,qBAAqB,aAAa,UAAU,MAAW;AAC9D,WAAO,gBAAgB,EAAE,eAA8B,KAAK;KAC5D;GACF,WAAW,qBAAqB,aAAa,YAAY,MAAW;AAClE,QAAI,GAAG,QAAQ,SAAU,QAAO,kBAAkB;KAClD;GACF,gBAAgB,qBAAqB,aAAa,iBAAiB,MAAW;AAC5E,WAAO,gBAAgB,EAAE,eAA8B,KAAK;KAC5D;GACF,gBAAgB,qBAAqB,aAAa,iBAAiB,MAAW;AAC5E,WAAO,iBAAiB,EAAE,eAA8B,KAAK;KAC7D;GACF,KAAK,UAAU;IAAC;IAAa;IAAc;IAAI,CAAC;GACjD,CAAC;IACD;EAAC;EAAO;EAAM;EAAK;EAAQ,CAAC;AAG/B,iBAAgB;AACd,eAAa;AACX,OAAI,CAAC,MAAO;GACZ,MAAM,KAAK,aAAa;AACxB,OAAI,MAAM,MAAM,gBAAgB,GAAG,CAAE,OAAM,kBAAkB;;IAE9D,CAAC,MAAM,CAAC;AAEX,QAAO;;AAGT,eAAe,cAAc"}