@lobehub/ui 4.18.0 → 4.19.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 (197) hide show
  1. package/es/Accordion/Accordion.d.mts +2 -2
  2. package/es/Accordion/Accordion.mjs +2 -2
  3. package/es/Accordion/Accordion.mjs.map +1 -1
  4. package/es/Accordion/AccordionItem.d.mts +2 -2
  5. package/es/Accordion/AccordionItem.mjs +2 -2
  6. package/es/Accordion/AccordionItem.mjs.map +1 -1
  7. package/es/ActionIcon/ActionIcon.d.mts +2 -2
  8. package/es/Alert/Alert.d.mts +2 -2
  9. package/es/AutoComplete/Select.d.mts +2 -2
  10. package/es/Avatar/AvatarGroup/index.d.mts +2 -2
  11. package/es/Burger/Burger.d.mts +2 -2
  12. package/es/Checkbox/Checkbox.mjs +2 -2
  13. package/es/Checkbox/Checkbox.mjs.map +1 -1
  14. package/es/Checkbox/CheckboxGroup.mjs +2 -2
  15. package/es/Checkbox/CheckboxGroup.mjs.map +1 -1
  16. package/es/CodeDiff/CodeDiff.d.mts +2 -2
  17. package/es/CodeDiff/PatchDiff.d.mts +2 -2
  18. package/es/CodeDiff/index.d.mts +1 -1
  19. package/es/CodeDiff/index.mjs +1 -1
  20. package/es/CodeEditor/CodeEditor.d.mts +2 -2
  21. package/es/CodeEditor/CodeEditor.mjs +2 -2
  22. package/es/CodeEditor/CodeEditor.mjs.map +1 -1
  23. package/es/Collapse/Collapse.d.mts +2 -2
  24. package/es/ColorSwatches/ColorSwatches.mjs +2 -2
  25. package/es/ColorSwatches/ColorSwatches.mjs.map +1 -1
  26. package/es/ConfigProvider/index.d.mts +2 -2
  27. package/es/ContextMenu/ContextMenuHost.d.mts +3 -3
  28. package/es/ContextMenu/index.d.mts +2 -2
  29. package/es/ContextMenu/renderItems.mjs +53 -28
  30. package/es/ContextMenu/renderItems.mjs.map +1 -1
  31. package/es/ContextMenu/type.d.mts +3 -1
  32. package/es/CopyButton/CopyButton.d.mts +2 -2
  33. package/es/DatePicker/DatePicker.d.mts +2 -2
  34. package/es/DraggablePanel/DraggablePanel.mjs +2 -2
  35. package/es/DraggablePanel/DraggablePanel.mjs.map +1 -1
  36. package/es/DraggablePanel/components/DraggablePanelBody.d.mts +2 -2
  37. package/es/DraggablePanel/components/DraggablePanelContainer.d.mts +2 -2
  38. package/es/DraggablePanel/components/DraggablePanelFooter.d.mts +2 -2
  39. package/es/DraggablePanel/components/DraggablePanelHeader.d.mts +2 -2
  40. package/es/DraggablePanel/components/DraggablePanelHeader.mjs +2 -2
  41. package/es/DraggablePanel/components/DraggablePanelHeader.mjs.map +1 -1
  42. package/es/DraggableSideNav/DraggableSideNav.d.mts +2 -2
  43. package/es/DraggableSideNav/DraggableSideNav.mjs +2 -2
  44. package/es/DraggableSideNav/DraggableSideNav.mjs.map +1 -1
  45. package/es/Drawer/Drawer.d.mts +2 -2
  46. package/es/Dropdown/Dropdown.d.mts +2 -2
  47. package/es/DropdownMenu/DropdownMenu.d.mts +2 -2
  48. package/es/DropdownMenu/atoms.d.mts +22 -1
  49. package/es/DropdownMenu/atoms.mjs +47 -18
  50. package/es/DropdownMenu/atoms.mjs.map +1 -1
  51. package/es/DropdownMenu/index.d.mts +3 -3
  52. package/es/DropdownMenu/index.mjs +2 -2
  53. package/es/DropdownMenu/renderItems.mjs +25 -28
  54. package/es/DropdownMenu/renderItems.mjs.map +1 -1
  55. package/es/DropdownMenu/type.d.mts +3 -1
  56. package/es/EditableText/EditableText.d.mts +2 -2
  57. package/es/EditableText/EditableText.mjs +2 -2
  58. package/es/EditableText/EditableText.mjs.map +1 -1
  59. package/es/EmojiPicker/EmojiPicker.d.mts +2 -2
  60. package/es/EmojiPicker/EmojiPicker.mjs +3 -3
  61. package/es/EmojiPicker/EmojiPicker.mjs.map +1 -1
  62. package/es/Flex/FlexBasic.d.mts +2 -2
  63. package/es/FontLoader/index.d.mts +2 -2
  64. package/es/Footer/Footer.d.mts +2 -2
  65. package/es/Form/components/FormGroup.d.mts +2 -2
  66. package/es/Form/components/FormItem.d.mts +2 -2
  67. package/es/Form/components/FormSubmitFooter.d.mts +2 -2
  68. package/es/FormModal/FormModal.d.mts +2 -2
  69. package/es/GuideCard/GuideCard.d.mts +2 -2
  70. package/es/Header/Header.d.mts +2 -2
  71. package/es/Highlighter/FullFeatured.mjs +1 -1
  72. package/es/Highlighter/Highlighter.d.mts +2 -2
  73. package/es/Highlighter/SyntaxHighlighter/index.d.mts +2 -2
  74. package/es/Hotkey/Hotkey.d.mts +2 -2
  75. package/es/HotkeyInput/HotkeyInput.d.mts +2 -2
  76. package/es/HotkeyInput/HotkeyInput.mjs +2 -2
  77. package/es/HotkeyInput/HotkeyInput.mjs.map +1 -1
  78. package/es/Icon/Icon.d.mts +2 -2
  79. package/es/Icon/components/IconProvider.d.mts +3 -3
  80. package/es/Image/PreviewGroup.d.mts +2 -2
  81. package/es/ImageSelect/ImageSelect.d.mts +2 -2
  82. package/es/ImageSelect/ImageSelect.mjs +2 -2
  83. package/es/ImageSelect/ImageSelect.mjs.map +1 -1
  84. package/es/Input/Input.d.mts +2 -2
  85. package/es/Input/InputNumber.d.mts +2 -2
  86. package/es/Input/InputOPT.d.mts +2 -2
  87. package/es/Input/InputPassword.d.mts +2 -2
  88. package/es/Input/TextArea.d.mts +2 -2
  89. package/es/Layout/components/LayoutFooter.d.mts +2 -2
  90. package/es/Layout/components/LayoutHeader.d.mts +2 -2
  91. package/es/Layout/components/LayoutMain.d.mts +2 -2
  92. package/es/Layout/components/LayoutSidebar.d.mts +2 -2
  93. package/es/Layout/components/LayoutSidebarInner.d.mts +2 -2
  94. package/es/Layout/components/LayoutToc.d.mts +2 -2
  95. package/es/List/ListItem/index.d.mts +2 -2
  96. package/es/Markdown/Markdown.d.mts +2 -2
  97. package/es/Markdown/Typography.d.mts +2 -2
  98. package/es/Markdown/components/SearchResultCards/index.d.mts +2 -2
  99. package/es/MaskShadow/MaskShadow.d.mts +2 -2
  100. package/es/Menu/Menu.d.mts +2 -2
  101. package/es/Menu/baseItem.d.mts +2 -1
  102. package/es/Menu/index.d.mts +2 -1
  103. package/es/Menu/switchItem.d.mts +27 -0
  104. package/es/Mermaid/FullFeatured.mjs +1 -1
  105. package/es/Mermaid/Mermaid.d.mts +2 -2
  106. package/es/Mermaid/SyntaxMermaid/index.d.mts +2 -2
  107. package/es/Modal/Modal.d.mts +2 -2
  108. package/es/Modal/ModalProvider.d.mts +2 -2
  109. package/es/MotionProvider/index.d.mts +2 -2
  110. package/es/Popover/PopoverGroup.mjs +2 -0
  111. package/es/Popover/PopoverGroup.mjs.map +1 -1
  112. package/es/Popover/atoms.d.mts +4 -3
  113. package/es/Popover/atoms.mjs +10 -3
  114. package/es/Popover/atoms.mjs.map +1 -1
  115. package/es/Popover/context.d.mts +2 -2
  116. package/es/Popover/style.mjs +20 -10
  117. package/es/Popover/style.mjs.map +1 -1
  118. package/es/SearchBar/SearchBar.d.mts +2 -2
  119. package/es/SearchBar/SearchBar.mjs +2 -2
  120. package/es/SearchBar/SearchBar.mjs.map +1 -1
  121. package/es/Segmented/Segmented.d.mts +2 -2
  122. package/es/Select/Select.d.mts +2 -2
  123. package/es/SideNav/SideNav.d.mts +2 -2
  124. package/es/SliderWithInput/SliderWithInput.d.mts +2 -2
  125. package/es/ThemeProvider/GlobalStyle/global.mjs +5 -0
  126. package/es/ThemeProvider/GlobalStyle/global.mjs.map +1 -1
  127. package/es/ThemeProvider/ThemeProvider.d.mts +2 -2
  128. package/es/Toc/Toc.d.mts +2 -2
  129. package/es/Toc/TocMobile.mjs +2 -2
  130. package/es/Toc/TocMobile.mjs.map +1 -1
  131. package/es/Tooltip/TooltipContent.mjs +0 -1
  132. package/es/Tooltip/TooltipContent.mjs.map +1 -1
  133. package/es/Tooltip/TooltipGroup.mjs +6 -2
  134. package/es/Tooltip/TooltipGroup.mjs.map +1 -1
  135. package/es/Tooltip/TooltipStandalone.mjs +4 -2
  136. package/es/Tooltip/TooltipStandalone.mjs.map +1 -1
  137. package/es/Tooltip/style.mjs +36 -16
  138. package/es/Tooltip/style.mjs.map +1 -1
  139. package/es/Video/index.d.mts +2 -2
  140. package/es/awesome/AuroraBackground/AuroraBackground.d.mts +2 -2
  141. package/es/awesome/BottomGradientButton/BottomGradientButton.d.mts +2 -2
  142. package/es/awesome/Features/Features.d.mts +2 -2
  143. package/es/awesome/Giscus/Giscus.d.mts +2 -2
  144. package/es/awesome/GradientButton/GradientButton.d.mts +2 -2
  145. package/es/awesome/GridBackground/GridBackground.d.mts +2 -2
  146. package/es/awesome/GridBackground/GridShowcase.d.mts +2 -2
  147. package/es/awesome/Hero/Hero.d.mts +2 -2
  148. package/es/awesome/Spline/Spine.d.mts +2 -2
  149. package/es/awesome/Spotlight/Spotlight.d.mts +2 -2
  150. package/es/awesome/SpotlightCard/SpotlightCard.d.mts +2 -2
  151. package/es/awesome/TypewriterEffect/TypewriterEffect.d.mts +2 -2
  152. package/es/brand/LobeChat/index.d.mts +2 -2
  153. package/es/brand/LobeHub/index.d.mts +2 -2
  154. package/es/brand/LogoThree/LogoSpline.d.mts +2 -2
  155. package/es/brand/LogoThree/index.d.mts +2 -2
  156. package/es/chat/BackBottom/BackBottom.d.mts +2 -2
  157. package/es/chat/ChatInputArea/components/ChatInputAreaInner.d.mts +2 -2
  158. package/es/chat/ChatItem/ChatItem.d.mts +2 -2
  159. package/es/chat/ChatList/ChatList.d.mts +2 -2
  160. package/es/chat/EditableMessage/EditableMessage.d.mts +2 -2
  161. package/es/chat/EditableMessage/EditableMessage.mjs +3 -3
  162. package/es/chat/EditableMessage/EditableMessage.mjs.map +1 -1
  163. package/es/chat/EditableMessageList/EditableMessageList.d.mts +2 -2
  164. package/es/chat/MessageInput/MessageInput.d.mts +2 -2
  165. package/es/chat/MessageModal/MessageModal.d.mts +2 -2
  166. package/es/chat/MessageModal/MessageModal.mjs +3 -3
  167. package/es/chat/MessageModal/MessageModal.mjs.map +1 -1
  168. package/es/color/ColorScales/index.d.mts +2 -2
  169. package/es/color/CssVar/index.d.mts +2 -2
  170. package/es/hooks/useFloatingLayer.mjs +27 -0
  171. package/es/hooks/useFloatingLayer.mjs.map +1 -0
  172. package/es/i18n/context.d.mts +2 -2
  173. package/es/icons/lucideExtra/BotPromptIcon.d.mts +2 -2
  174. package/es/icons/lucideExtra/CreateBotIcon.d.mts +2 -2
  175. package/es/icons/lucideExtra/DiscordIcon.d.mts +3 -3
  176. package/es/icons/lucideExtra/GlobeOffIcon.d.mts +2 -2
  177. package/es/icons/lucideExtra/GroupBotIcon.d.mts +2 -2
  178. package/es/icons/lucideExtra/GroupBotSquareIcon.d.mts +2 -2
  179. package/es/icons/lucideExtra/LeftClickIcon.d.mts +2 -2
  180. package/es/icons/lucideExtra/LeftDoubleClickIcon.d.mts +3 -3
  181. package/es/icons/lucideExtra/McpIcon.d.mts +2 -2
  182. package/es/icons/lucideExtra/ProviderIcon.d.mts +2 -2
  183. package/es/icons/lucideExtra/RightClickIcon.d.mts +3 -3
  184. package/es/icons/lucideExtra/RightDoubleClickIcon.d.mts +2 -2
  185. package/es/icons/lucideExtra/ShapesUploadIcon.d.mts +3 -3
  186. package/es/icons/lucideExtra/TreeDownRightIcon.d.mts +2 -2
  187. package/es/icons/lucideExtra/TreeUpDownRightIcon.d.mts +3 -3
  188. package/es/index.d.mts +1 -5
  189. package/es/index.mjs +3 -5
  190. package/es/mdx/Mdx/index.d.mts +2 -2
  191. package/es/mobile/ChatHeader/ChatHeaderTitle.d.mts +2 -2
  192. package/es/mobile/ChatInputArea/components/ChatSendButton.d.mts +2 -2
  193. package/es/mobile/TabBar/TabBar.d.mts +2 -2
  194. package/es/mobile/TabBar/TabBar.mjs +2 -2
  195. package/es/mobile/TabBar/TabBar.mjs.map +1 -1
  196. package/es/storybook/StoryBook/index.d.mts +2 -2
  197. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipGroup.mjs","names":["TooltipGroup: FC<TooltipGroupProps>","BaseTooltip","key","TooltipContent"],"sources":["../../src/Tooltip/TooltipGroup.tsx"],"sourcesContent":["'use client';\n\nimport { Tooltip as BaseTooltip } from '@base-ui/react/tooltip';\nimport { cx } from 'antd-style';\nimport { type FC, useCallback, useRef, useState } from 'react';\n\nimport {\n useDestroyOnInvalidActiveTriggerElement,\n useHidePopupWhenPositionerAtOrigin,\n} from '@/utils/destroyOnInvalidActiveTriggerElement';\nimport { placementMap } from '@/utils/placement';\n\nimport { TooltipArrowIcon } from './ArrowIcon';\nimport TooltipContent from './TooltipContent';\nimport { useTooltipPortalContainer } from './TooltipPortal';\nimport {\n TooltipGroupHandleContext,\n type TooltipGroupItem,\n TooltipGroupPropsContext,\n} from './groupContext';\nimport { styles } from './style';\nimport type { TooltipGroupProps } from './type';\n\nconst TooltipGroup: FC<TooltipGroupProps> = ({\n children,\n disableDestroyOnInvalidTrigger = false,\n disableZeroOriginGuard = false,\n layoutAnimation = false,\n ...sharedProps\n}) => {\n const [{ handle, key }, setHandleState] = useState(() => ({\n handle: BaseTooltip.createHandle<TooltipGroupItem>(),\n key: 0,\n }));\n const activeItemRef = useRef<TooltipGroupItem | null>(null);\n\n const destroy = useCallback(() => {\n activeItemRef.current = null;\n setHandleState(({ key }) => ({\n handle: BaseTooltip.createHandle<TooltipGroupItem>(),\n key: key + 1,\n }));\n }, []);\n\n const handleOpenChange = useCallback((open: boolean) => {\n activeItemRef.current?.onOpenChange?.(open);\n }, []);\n\n const portalContainer = useTooltipPortalContainer();\n\n useDestroyOnInvalidActiveTriggerElement(handle.store, destroy, {\n enabled: !disableDestroyOnInvalidTrigger,\n });\n useHidePopupWhenPositionerAtOrigin(handle.store, { enabled: !disableZeroOriginGuard });\n\n return (\n <TooltipGroupHandleContext.Provider value={handle}>\n <TooltipGroupPropsContext.Provider value={sharedProps}>\n {children}\n\n <BaseTooltip.Root handle={handle} key={key} onOpenChange={handleOpenChange}>\n {({ payload }) => {\n const item = (payload as TooltipGroupItem | null) ?? null;\n activeItemRef.current = item;\n\n // eslint-disable-next-line eqeqeq\n if (!item || (item.title == null && !item.hotkey)) return null;\n\n const arrow = item.arrow ?? false;\n const placement = item.placement ?? 'top';\n const placementConfig = placementMap[placement] ?? placementMap.top;\n const baseSideOffset = arrow ? 8 : 6;\n\n const resolvedClassNames = {\n arrow: cx(styles.arrow, item.classNames?.arrow),\n popup: cx(\n styles.popup,\n item.className,\n item.classNames?.root,\n item.classNames?.container,\n ),\n positioner: styles.positioner,\n viewport: cx(styles.viewport, item.classNames?.content),\n };\n\n const resolvedStyleProps = (() => {\n if (typeof item.styles === 'function') return undefined;\n return item.styles;\n })();\n\n const resolvedStyles = {\n arrow: resolvedStyleProps?.arrow,\n popup: {\n ...resolvedStyleProps?.root,\n ...resolvedStyleProps?.container,\n },\n positioner: {\n zIndex: item.zIndex ?? 1100,\n },\n viewport: resolvedStyleProps?.content,\n };\n\n const body = layoutAnimation ? (\n <BaseTooltip.Viewport\n className={resolvedClassNames.viewport}\n style={resolvedStyles.viewport}\n >\n <TooltipContent\n hotkey={item.hotkey}\n hotkeyProps={item.hotkeyProps}\n title={item.title}\n />\n </BaseTooltip.Viewport>\n ) : (\n <div className={resolvedClassNames.viewport} style={resolvedStyles.viewport}>\n <TooltipContent\n hotkey={item.hotkey}\n hotkeyProps={item.hotkeyProps}\n title={item.title}\n />\n </div>\n );\n\n const popup = (\n <BaseTooltip.Positioner\n align={placementConfig.align}\n className={resolvedClassNames.positioner}\n data-placement={placement}\n side={placementConfig.side}\n sideOffset={baseSideOffset}\n style={resolvedStyles.positioner}\n {...item.positionerProps}\n >\n <BaseTooltip.Popup\n className={resolvedClassNames.popup}\n style={resolvedStyles.popup}\n {...item.popupProps}\n >\n {arrow && (\n <BaseTooltip.Arrow\n className={resolvedClassNames.arrow}\n style={resolvedStyles.arrow}\n >\n {TooltipArrowIcon}\n </BaseTooltip.Arrow>\n )}\n {body}\n </BaseTooltip.Popup>\n </BaseTooltip.Positioner>\n );\n\n return portalContainer ? (\n <BaseTooltip.Portal container={portalContainer}>{popup}</BaseTooltip.Portal>\n ) : null;\n }}\n </BaseTooltip.Root>\n </TooltipGroupPropsContext.Provider>\n </TooltipGroupHandleContext.Provider>\n );\n};\n\nTooltipGroup.displayName = 'TooltipGroup';\n\nexport default TooltipGroup;\n"],"mappings":";;;;;;;;;;;;;;;AAuBA,MAAMA,gBAAuC,EAC3C,UACA,iCAAiC,OACjC,yBAAyB,OACzB,kBAAkB,OAClB,GAAG,kBACC;CACJ,MAAM,CAAC,EAAE,QAAQ,OAAO,kBAAkB,gBAAgB;EACxD,QAAQC,QAAY,cAAgC;EACpD,KAAK;EACN,EAAE;CACH,MAAM,gBAAgB,OAAgC,KAAK;CAE3D,MAAM,UAAU,kBAAkB;AAChC,gBAAc,UAAU;AACxB,kBAAgB,EAAE,kBAAW;GAC3B,QAAQA,QAAY,cAAgC;GACpD,KAAKC,QAAM;GACZ,EAAE;IACF,EAAE,CAAC;CAEN,MAAM,mBAAmB,aAAa,SAAkB;AACtD,gBAAc,SAAS,eAAe,KAAK;IAC1C,EAAE,CAAC;CAEN,MAAM,kBAAkB,2BAA2B;AAEnD,yCAAwC,OAAO,OAAO,SAAS,EAC7D,SAAS,CAAC,gCACX,CAAC;AACF,oCAAmC,OAAO,OAAO,EAAE,SAAS,CAAC,wBAAwB,CAAC;AAEtF,QACE,oBAAC,0BAA0B;EAAS,OAAO;YACzC,qBAAC,yBAAyB;GAAS,OAAO;cACvC,UAED,oBAACD,QAAY;IAAa;IAAkB,cAAc;eACtD,EAAE,cAAc;KAChB,MAAM,OAAQ,WAAuC;AACrD,mBAAc,UAAU;AAGxB,SAAI,CAAC,QAAS,KAAK,SAAS,QAAQ,CAAC,KAAK,OAAS,QAAO;KAE1D,MAAM,QAAQ,KAAK,SAAS;KAC5B,MAAM,YAAY,KAAK,aAAa;KACpC,MAAM,kBAAkB,aAAa,cAAc,aAAa;KAChE,MAAM,iBAAiB,QAAQ,IAAI;KAEnC,MAAM,qBAAqB;MACzB,OAAO,GAAG,OAAO,OAAO,KAAK,YAAY,MAAM;MAC/C,OAAO,GACL,OAAO,OACP,KAAK,WACL,KAAK,YAAY,MACjB,KAAK,YAAY,UAClB;MACD,YAAY,OAAO;MACnB,UAAU,GAAG,OAAO,UAAU,KAAK,YAAY,QAAQ;MACxD;KAED,MAAM,4BAA4B;AAChC,UAAI,OAAO,KAAK,WAAW,WAAY,QAAO;AAC9C,aAAO,KAAK;SACV;KAEJ,MAAM,iBAAiB;MACrB,OAAO,oBAAoB;MAC3B,OAAO;OACL,GAAG,oBAAoB;OACvB,GAAG,oBAAoB;OACxB;MACD,YAAY,EACV,QAAQ,KAAK,UAAU,MACxB;MACD,UAAU,oBAAoB;MAC/B;KAED,MAAM,OAAO,kBACX,oBAACA,QAAY;MACX,WAAW,mBAAmB;MAC9B,OAAO,eAAe;gBAEtB,oBAACE;OACC,QAAQ,KAAK;OACb,aAAa,KAAK;OAClB,OAAO,KAAK;QACZ;OACmB,GAEvB,oBAAC;MAAI,WAAW,mBAAmB;MAAU,OAAO,eAAe;gBACjE,oBAACA;OACC,QAAQ,KAAK;OACb,aAAa,KAAK;OAClB,OAAO,KAAK;QACZ;OACE;KAGR,MAAM,QACJ,oBAACF,QAAY;MACX,OAAO,gBAAgB;MACvB,WAAW,mBAAmB;MAC9B,kBAAgB;MAChB,MAAM,gBAAgB;MACtB,YAAY;MACZ,OAAO,eAAe;MACtB,GAAI,KAAK;gBAET,qBAACA,QAAY;OACX,WAAW,mBAAmB;OAC9B,OAAO,eAAe;OACtB,GAAI,KAAK;kBAER,SACC,oBAACA,QAAY;QACX,WAAW,mBAAmB;QAC9B,OAAO,eAAe;kBAErB;SACiB,EAErB;QACiB;OACG;AAG3B,YAAO,kBACL,oBAACA,QAAY;MAAO,WAAW;gBAAkB;OAA2B,GAC1E;;MA7F+B,IA+FpB;IACe;GACD;;AAIzC,aAAa,cAAc;AAE3B,2BAAe"}
1
+ {"version":3,"file":"TooltipGroup.mjs","names":["TooltipGroup: FC<TooltipGroupProps>","BaseTooltip","key","TooltipContent"],"sources":["../../src/Tooltip/TooltipGroup.tsx"],"sourcesContent":["'use client';\n\nimport { Tooltip as BaseTooltip } from '@base-ui/react/tooltip';\nimport { cx } from 'antd-style';\nimport { type FC, useCallback, useRef, useState } from 'react';\n\nimport { useFloatingLayer } from '@/hooks/useFloatingLayer';\nimport {\n useDestroyOnInvalidActiveTriggerElement,\n useHidePopupWhenPositionerAtOrigin,\n} from '@/utils/destroyOnInvalidActiveTriggerElement';\nimport { placementMap } from '@/utils/placement';\n\nimport { TooltipArrowIcon } from './ArrowIcon';\nimport TooltipContent from './TooltipContent';\nimport { useTooltipPortalContainer } from './TooltipPortal';\nimport {\n TooltipGroupHandleContext,\n type TooltipGroupItem,\n TooltipGroupPropsContext,\n} from './groupContext';\nimport { styles } from './style';\nimport type { TooltipGroupProps } from './type';\n\nconst TooltipGroup: FC<TooltipGroupProps> = ({\n children,\n disableDestroyOnInvalidTrigger = false,\n disableZeroOriginGuard = false,\n layoutAnimation = false,\n ...sharedProps\n}) => {\n const [{ handle, key }, setHandleState] = useState(() => ({\n handle: BaseTooltip.createHandle<TooltipGroupItem>(),\n key: 0,\n }));\n const activeItemRef = useRef<TooltipGroupItem | null>(null);\n\n const destroy = useCallback(() => {\n activeItemRef.current = null;\n setHandleState(({ key }) => ({\n handle: BaseTooltip.createHandle<TooltipGroupItem>(),\n key: key + 1,\n }));\n }, []);\n\n const handleOpenChange = useCallback((open: boolean) => {\n activeItemRef.current?.onOpenChange?.(open);\n }, []);\n\n const defaultPortalContainer = useTooltipPortalContainer();\n const floatingLayerContainer = useFloatingLayer();\n const portalContainer = floatingLayerContainer ?? defaultPortalContainer;\n\n useDestroyOnInvalidActiveTriggerElement(handle.store, destroy, {\n enabled: !disableDestroyOnInvalidTrigger,\n });\n useHidePopupWhenPositionerAtOrigin(handle.store, { enabled: !disableZeroOriginGuard });\n\n return (\n <TooltipGroupHandleContext.Provider value={handle}>\n <TooltipGroupPropsContext.Provider value={sharedProps}>\n {children}\n\n <BaseTooltip.Root handle={handle} key={key} onOpenChange={handleOpenChange}>\n {({ payload }) => {\n const item = (payload as TooltipGroupItem | null) ?? null;\n activeItemRef.current = item;\n\n // eslint-disable-next-line eqeqeq\n if (!item || (item.title == null && !item.hotkey)) return null;\n\n const arrow = item.arrow ?? false;\n const placement = item.placement ?? 'top';\n const placementConfig = placementMap[placement] ?? placementMap.top;\n const baseSideOffset = arrow ? 8 : 6;\n\n const resolvedClassNames = {\n arrow: cx(styles.arrow, item.classNames?.arrow),\n popup: cx(\n styles.popup,\n item.className,\n item.classNames?.root,\n item.classNames?.container,\n ),\n positioner: styles.positioner,\n viewport: cx(styles.viewport, item.classNames?.content),\n };\n\n const resolvedStyleProps = (() => {\n if (typeof item.styles === 'function') return undefined;\n return item.styles;\n })();\n\n const resolvedStyles = {\n arrow: resolvedStyleProps?.arrow,\n popup: {\n ...resolvedStyleProps?.root,\n ...resolvedStyleProps?.container,\n },\n positioner: {\n zIndex: item.zIndex ?? 114_514,\n },\n viewport: resolvedStyleProps?.content,\n };\n\n const body = layoutAnimation ? (\n <BaseTooltip.Viewport\n className={resolvedClassNames.viewport}\n style={resolvedStyles.viewport}\n >\n <TooltipContent\n hotkey={item.hotkey}\n hotkeyProps={item.hotkeyProps}\n title={item.title}\n />\n </BaseTooltip.Viewport>\n ) : (\n <div className={resolvedClassNames.viewport} style={resolvedStyles.viewport}>\n <TooltipContent\n hotkey={item.hotkey}\n hotkeyProps={item.hotkeyProps}\n title={item.title}\n />\n </div>\n );\n\n const popup = (\n <BaseTooltip.Positioner\n align={placementConfig.align}\n className={resolvedClassNames.positioner}\n data-layout-animation={layoutAnimation || undefined}\n data-placement={placement}\n side={placementConfig.side}\n sideOffset={baseSideOffset}\n style={resolvedStyles.positioner}\n {...item.positionerProps}\n >\n <BaseTooltip.Popup\n className={resolvedClassNames.popup}\n data-layout-animation={layoutAnimation || undefined}\n style={resolvedStyles.popup}\n {...item.popupProps}\n >\n {arrow && (\n <BaseTooltip.Arrow\n className={resolvedClassNames.arrow}\n style={resolvedStyles.arrow}\n >\n {TooltipArrowIcon}\n </BaseTooltip.Arrow>\n )}\n {body}\n </BaseTooltip.Popup>\n </BaseTooltip.Positioner>\n );\n\n return portalContainer ? (\n <BaseTooltip.Portal container={portalContainer}>{popup}</BaseTooltip.Portal>\n ) : null;\n }}\n </BaseTooltip.Root>\n </TooltipGroupPropsContext.Provider>\n </TooltipGroupHandleContext.Provider>\n );\n};\n\nTooltipGroup.displayName = 'TooltipGroup';\n\nexport default TooltipGroup;\n"],"mappings":";;;;;;;;;;;;;;;;AAwBA,MAAMA,gBAAuC,EAC3C,UACA,iCAAiC,OACjC,yBAAyB,OACzB,kBAAkB,OAClB,GAAG,kBACC;CACJ,MAAM,CAAC,EAAE,QAAQ,OAAO,kBAAkB,gBAAgB;EACxD,QAAQC,QAAY,cAAgC;EACpD,KAAK;EACN,EAAE;CACH,MAAM,gBAAgB,OAAgC,KAAK;CAE3D,MAAM,UAAU,kBAAkB;AAChC,gBAAc,UAAU;AACxB,kBAAgB,EAAE,kBAAW;GAC3B,QAAQA,QAAY,cAAgC;GACpD,KAAKC,QAAM;GACZ,EAAE;IACF,EAAE,CAAC;CAEN,MAAM,mBAAmB,aAAa,SAAkB;AACtD,gBAAc,SAAS,eAAe,KAAK;IAC1C,EAAE,CAAC;CAEN,MAAM,yBAAyB,2BAA2B;CAE1D,MAAM,kBADyB,kBAAkB,IACC;AAElD,yCAAwC,OAAO,OAAO,SAAS,EAC7D,SAAS,CAAC,gCACX,CAAC;AACF,oCAAmC,OAAO,OAAO,EAAE,SAAS,CAAC,wBAAwB,CAAC;AAEtF,QACE,oBAAC,0BAA0B;EAAS,OAAO;YACzC,qBAAC,yBAAyB;GAAS,OAAO;cACvC,UAED,oBAACD,QAAY;IAAa;IAAkB,cAAc;eACtD,EAAE,cAAc;KAChB,MAAM,OAAQ,WAAuC;AACrD,mBAAc,UAAU;AAGxB,SAAI,CAAC,QAAS,KAAK,SAAS,QAAQ,CAAC,KAAK,OAAS,QAAO;KAE1D,MAAM,QAAQ,KAAK,SAAS;KAC5B,MAAM,YAAY,KAAK,aAAa;KACpC,MAAM,kBAAkB,aAAa,cAAc,aAAa;KAChE,MAAM,iBAAiB,QAAQ,IAAI;KAEnC,MAAM,qBAAqB;MACzB,OAAO,GAAG,OAAO,OAAO,KAAK,YAAY,MAAM;MAC/C,OAAO,GACL,OAAO,OACP,KAAK,WACL,KAAK,YAAY,MACjB,KAAK,YAAY,UAClB;MACD,YAAY,OAAO;MACnB,UAAU,GAAG,OAAO,UAAU,KAAK,YAAY,QAAQ;MACxD;KAED,MAAM,4BAA4B;AAChC,UAAI,OAAO,KAAK,WAAW,WAAY,QAAO;AAC9C,aAAO,KAAK;SACV;KAEJ,MAAM,iBAAiB;MACrB,OAAO,oBAAoB;MAC3B,OAAO;OACL,GAAG,oBAAoB;OACvB,GAAG,oBAAoB;OACxB;MACD,YAAY,EACV,QAAQ,KAAK,UAAU,QACxB;MACD,UAAU,oBAAoB;MAC/B;KAED,MAAM,OAAO,kBACX,oBAACA,QAAY;MACX,WAAW,mBAAmB;MAC9B,OAAO,eAAe;gBAEtB,oBAACE;OACC,QAAQ,KAAK;OACb,aAAa,KAAK;OAClB,OAAO,KAAK;QACZ;OACmB,GAEvB,oBAAC;MAAI,WAAW,mBAAmB;MAAU,OAAO,eAAe;gBACjE,oBAACA;OACC,QAAQ,KAAK;OACb,aAAa,KAAK;OAClB,OAAO,KAAK;QACZ;OACE;KAGR,MAAM,QACJ,oBAACF,QAAY;MACX,OAAO,gBAAgB;MACvB,WAAW,mBAAmB;MAC9B,yBAAuB,mBAAmB;MAC1C,kBAAgB;MAChB,MAAM,gBAAgB;MACtB,YAAY;MACZ,OAAO,eAAe;MACtB,GAAI,KAAK;gBAET,qBAACA,QAAY;OACX,WAAW,mBAAmB;OAC9B,yBAAuB,mBAAmB;OAC1C,OAAO,eAAe;OACtB,GAAI,KAAK;kBAER,SACC,oBAACA,QAAY;QACX,WAAW,mBAAmB;QAC9B,OAAO,eAAe;kBAErB;SACiB,EAErB;QACiB;OACG;AAG3B,YAAO,kBACL,oBAACA,QAAY;MAAO,WAAW;gBAAkB;OAA2B,GAC1E;;MA/F+B,IAiGpB;IACe;GACD;;AAIzC,aAAa,cAAc;AAE3B,2BAAe"}
@@ -1,6 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  import { useNativeButton } from "../hooks/useNativeButton.mjs";
4
+ import { useFloatingLayer } from "../hooks/useFloatingLayer.mjs";
4
5
  import { useIsClient } from "../hooks/useIsClient.mjs";
5
6
  import { placementMap } from "../utils/placement.mjs";
6
7
  import { TooltipArrowIcon } from "./ArrowIcon.mjs";
@@ -46,7 +47,8 @@ const TooltipStandalone = memo(({ children, title, arrow = false, className, cla
46
47
  }, [closeDelay, mouseLeaveDelay]);
47
48
  const placementConfig = placementMap[placement] ?? placementMap.top;
48
49
  const baseSideOffset = arrow ? 8 : 6;
49
- const portalContainer = useTooltipPortalContainer();
50
+ const defaultPortalContainer = useTooltipPortalContainer();
51
+ const portalContainer = useFloatingLayer() ?? defaultPortalContainer;
50
52
  const { isNativeButtonTriggerElement } = useNativeButton({ children });
51
53
  const resolvedClassNames = useMemo(() => ({
52
54
  arrow: cx(styles.arrow, classNames?.arrow),
@@ -70,7 +72,7 @@ const TooltipStandalone = memo(({ children, title, arrow = false, className, cla
70
72
  ...resolvedStyleProps?.root,
71
73
  ...resolvedStyleProps?.container
72
74
  },
73
- positioner: { zIndex: zIndex ?? 1100 },
75
+ positioner: { zIndex: zIndex ?? 114514 },
74
76
  viewport: resolvedStyleProps?.content
75
77
  }), [resolvedStyleProps, zIndex]);
76
78
  const triggerElement = useMemo(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipStandalone.mjs","names":["BaseTooltip","TooltipContent"],"sources":["../../src/Tooltip/TooltipStandalone.tsx"],"sourcesContent":["'use client';\n\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport { Tooltip as BaseTooltip } from '@base-ui/react/tooltip';\nimport { cx } from 'antd-style';\nimport { cloneElement, isValidElement, memo, useCallback, useMemo, useState } from 'react';\nimport { mergeRefs } from 'react-merge-refs';\n\nimport { useIsClient } from '@/hooks/useIsClient';\nimport { useNativeButton } from '@/hooks/useNativeButton';\nimport { placementMap } from '@/utils/placement';\n\nimport { TooltipArrowIcon } from './ArrowIcon';\nimport TooltipContent from './TooltipContent';\nimport { useTooltipPortalContainer } from './TooltipPortal';\nimport { styles } from './style';\nimport type { TooltipProps } from './type';\n\nconst DEFAULT_OPEN_DELAY = 400;\nconst DEFAULT_CLOSE_DELAY = 100;\n\n/**\n * Tooltip component - displays small contextual hints on hover/focus\n * Compatible with Ant Design Tooltip-like API (subset)\n */\nexport const TooltipStandalone = memo<TooltipProps>(\n ({\n children,\n title,\n arrow = false,\n className,\n classNames,\n closeDelay,\n defaultOpen = false,\n disabled = false,\n getPopupContainer,\n hotkey,\n hotkeyProps,\n mouseEnterDelay,\n mouseLeaveDelay,\n onOpenChange,\n open,\n openDelay,\n placement = 'top',\n styles: styleProps,\n zIndex,\n ref: refProp,\n positionerProps,\n triggerProps,\n popupProps,\n portalProps,\n }) => {\n const isClient = useIsClient();\n const [uncontrolledOpen, setUncontrolledOpen] = useState(Boolean(defaultOpen));\n\n const mergedOpen = open ?? uncontrolledOpen;\n const resolvedOpen = disabled ? false : mergedOpen;\n\n const handleOpenChange = useCallback(\n (nextOpen: boolean) => {\n if (disabled && nextOpen) return;\n onOpenChange?.(nextOpen);\n if (open === undefined) {\n setUncontrolledOpen(nextOpen);\n }\n },\n [disabled, onOpenChange, open],\n );\n\n const resolvedOpenDelay = useMemo(() => {\n if (openDelay !== undefined) return openDelay;\n if (mouseEnterDelay !== undefined) return mouseEnterDelay * 1000;\n return DEFAULT_OPEN_DELAY;\n }, [mouseEnterDelay, openDelay]);\n\n const resolvedCloseDelay = useMemo(() => {\n if (closeDelay !== undefined) return closeDelay;\n if (mouseLeaveDelay !== undefined) return mouseLeaveDelay * 1000;\n return DEFAULT_CLOSE_DELAY;\n }, [closeDelay, mouseLeaveDelay]);\n\n const placementConfig = placementMap[placement] ?? placementMap.top;\n const baseSideOffset = arrow ? 8 : 6;\n\n const portalContainer = useTooltipPortalContainer();\n\n const { isNativeButtonTriggerElement } = useNativeButton({\n children,\n });\n\n const resolvedClassNames = useMemo(\n () => ({\n arrow: cx(styles.arrow, classNames?.arrow),\n popup: cx(styles.popup, className, classNames?.root, classNames?.container),\n positioner: styles.positioner,\n viewport: cx(styles.viewport, classNames?.content),\n }),\n [className, classNames?.arrow, classNames?.container, classNames?.content, classNames?.root],\n );\n\n const resolvedStyleProps = useMemo(() => {\n if (typeof styleProps === 'function') return undefined;\n return styleProps;\n }, [styleProps]);\n\n const resolvedStyles = useMemo(\n () => ({\n arrow: resolvedStyleProps?.arrow,\n popup: {\n ...resolvedStyleProps?.root,\n ...resolvedStyleProps?.container,\n },\n positioner: {\n zIndex: zIndex ?? 1100,\n },\n viewport: resolvedStyleProps?.content,\n }),\n [resolvedStyleProps, zIndex],\n );\n\n const triggerElement = useMemo(() => {\n const baseTriggerProps = {\n closeDelay: resolvedCloseDelay,\n delay: resolvedOpenDelay,\n disabled,\n ...triggerProps,\n };\n\n if (isValidElement(children)) {\n return (\n <BaseTooltip.Trigger\n {...baseTriggerProps}\n render={(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, ref: triggerRef, ...restProps } = props as any;\n return restProps;\n })();\n\n const mergedProps = mergeProps((children as any).props, resolvedProps);\n return cloneElement(children as any, {\n ...mergedProps,\n ref: mergeRefs([(children as any).ref, (props as any).ref, refProp]),\n });\n }}\n />\n );\n }\n\n return (\n <BaseTooltip.Trigger {...baseTriggerProps} ref={refProp}>\n {children}\n </BaseTooltip.Trigger>\n );\n }, [\n children,\n disabled,\n isNativeButtonTriggerElement,\n refProp,\n resolvedCloseDelay,\n resolvedOpenDelay,\n triggerProps,\n ]);\n\n const customContainer = useMemo(() => {\n if (!getPopupContainer || !isClient) return undefined;\n return undefined;\n }, [getPopupContainer, isClient]);\n\n const popup = useMemo(\n () => (\n <BaseTooltip.Positioner\n align={placementConfig.align}\n className={resolvedClassNames.positioner}\n data-placement={placement}\n side={placementConfig.side}\n sideOffset={baseSideOffset}\n style={resolvedStyles.positioner}\n {...positionerProps}\n >\n <BaseTooltip.Popup\n className={resolvedClassNames.popup}\n style={resolvedStyles.popup}\n {...popupProps}\n >\n {arrow && (\n <BaseTooltip.Arrow className={resolvedClassNames.arrow} style={resolvedStyles.arrow}>\n {TooltipArrowIcon}\n </BaseTooltip.Arrow>\n )}\n <div className={resolvedClassNames.viewport} style={resolvedStyles.viewport}>\n <TooltipContent hotkey={hotkey} hotkeyProps={hotkeyProps} title={title} />\n </div>\n </BaseTooltip.Popup>\n </BaseTooltip.Positioner>\n ),\n [\n arrow,\n baseSideOffset,\n hotkey,\n hotkeyProps,\n placement,\n placementConfig.align,\n placementConfig.side,\n popupProps,\n positionerProps,\n resolvedClassNames,\n resolvedStyles,\n title,\n ],\n );\n\n // eslint-disable-next-line eqeqeq\n if (title == null && !hotkey) {\n return children;\n }\n\n const resolvedPortalContainer = customContainer ?? portalContainer;\n\n return (\n <BaseTooltip.Root\n defaultOpen={defaultOpen}\n disabled={disabled}\n onOpenChange={handleOpenChange}\n open={resolvedOpen}\n >\n {triggerElement}\n {resolvedPortalContainer ? (\n <BaseTooltip.Portal container={resolvedPortalContainer} {...portalProps}>\n {popup}\n </BaseTooltip.Portal>\n ) : null}\n </BaseTooltip.Root>\n );\n },\n);\n\nTooltipStandalone.displayName = 'TooltipStandalone';\n"],"mappings":"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"}
1
+ {"version":3,"file":"TooltipStandalone.mjs","names":["BaseTooltip","TooltipContent"],"sources":["../../src/Tooltip/TooltipStandalone.tsx"],"sourcesContent":["'use client';\n\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport { Tooltip as BaseTooltip } from '@base-ui/react/tooltip';\nimport { cx } from 'antd-style';\nimport { cloneElement, isValidElement, memo, useCallback, useMemo, useState } from 'react';\nimport { mergeRefs } from 'react-merge-refs';\n\nimport { useFloatingLayer } from '@/hooks/useFloatingLayer';\nimport { useIsClient } from '@/hooks/useIsClient';\nimport { useNativeButton } from '@/hooks/useNativeButton';\nimport { placementMap } from '@/utils/placement';\n\nimport { TooltipArrowIcon } from './ArrowIcon';\nimport TooltipContent from './TooltipContent';\nimport { useTooltipPortalContainer } from './TooltipPortal';\nimport { styles } from './style';\nimport type { TooltipProps } from './type';\n\nconst DEFAULT_OPEN_DELAY = 400;\nconst DEFAULT_CLOSE_DELAY = 100;\n\n/**\n * Tooltip component - displays small contextual hints on hover/focus\n * Compatible with Ant Design Tooltip-like API (subset)\n */\nexport const TooltipStandalone = memo<TooltipProps>(\n ({\n children,\n title,\n arrow = false,\n className,\n classNames,\n closeDelay,\n defaultOpen = false,\n disabled = false,\n getPopupContainer,\n hotkey,\n hotkeyProps,\n mouseEnterDelay,\n mouseLeaveDelay,\n onOpenChange,\n open,\n openDelay,\n placement = 'top',\n styles: styleProps,\n zIndex,\n ref: refProp,\n positionerProps,\n triggerProps,\n popupProps,\n portalProps,\n }) => {\n const isClient = useIsClient();\n const [uncontrolledOpen, setUncontrolledOpen] = useState(Boolean(defaultOpen));\n\n const mergedOpen = open ?? uncontrolledOpen;\n const resolvedOpen = disabled ? false : mergedOpen;\n\n const handleOpenChange = useCallback(\n (nextOpen: boolean) => {\n if (disabled && nextOpen) return;\n onOpenChange?.(nextOpen);\n if (open === undefined) {\n setUncontrolledOpen(nextOpen);\n }\n },\n [disabled, onOpenChange, open],\n );\n\n const resolvedOpenDelay = useMemo(() => {\n if (openDelay !== undefined) return openDelay;\n if (mouseEnterDelay !== undefined) return mouseEnterDelay * 1000;\n return DEFAULT_OPEN_DELAY;\n }, [mouseEnterDelay, openDelay]);\n\n const resolvedCloseDelay = useMemo(() => {\n if (closeDelay !== undefined) return closeDelay;\n if (mouseLeaveDelay !== undefined) return mouseLeaveDelay * 1000;\n return DEFAULT_CLOSE_DELAY;\n }, [closeDelay, mouseLeaveDelay]);\n\n const placementConfig = placementMap[placement] ?? placementMap.top;\n const baseSideOffset = arrow ? 8 : 6;\n\n const defaultPortalContainer = useTooltipPortalContainer();\n const floatingLayerContainer = useFloatingLayer();\n const portalContainer = floatingLayerContainer ?? defaultPortalContainer;\n\n const { isNativeButtonTriggerElement } = useNativeButton({\n children,\n });\n\n const resolvedClassNames = useMemo(\n () => ({\n arrow: cx(styles.arrow, classNames?.arrow),\n popup: cx(styles.popup, className, classNames?.root, classNames?.container),\n positioner: styles.positioner,\n viewport: cx(styles.viewport, classNames?.content),\n }),\n [className, classNames?.arrow, classNames?.container, classNames?.content, classNames?.root],\n );\n\n const resolvedStyleProps = useMemo(() => {\n if (typeof styleProps === 'function') return undefined;\n return styleProps;\n }, [styleProps]);\n\n const resolvedStyles = useMemo(\n () => ({\n arrow: resolvedStyleProps?.arrow,\n popup: {\n ...resolvedStyleProps?.root,\n ...resolvedStyleProps?.container,\n },\n positioner: {\n zIndex: zIndex ?? 114_514,\n },\n viewport: resolvedStyleProps?.content,\n }),\n [resolvedStyleProps, zIndex],\n );\n\n const triggerElement = useMemo(() => {\n const baseTriggerProps = {\n closeDelay: resolvedCloseDelay,\n delay: resolvedOpenDelay,\n disabled,\n ...triggerProps,\n };\n\n if (isValidElement(children)) {\n return (\n <BaseTooltip.Trigger\n {...baseTriggerProps}\n render={(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, ref: triggerRef, ...restProps } = props as any;\n return restProps;\n })();\n\n const mergedProps = mergeProps((children as any).props, resolvedProps);\n return cloneElement(children as any, {\n ...mergedProps,\n ref: mergeRefs([(children as any).ref, (props as any).ref, refProp]),\n });\n }}\n />\n );\n }\n\n return (\n <BaseTooltip.Trigger {...baseTriggerProps} ref={refProp}>\n {children}\n </BaseTooltip.Trigger>\n );\n }, [\n children,\n disabled,\n isNativeButtonTriggerElement,\n refProp,\n resolvedCloseDelay,\n resolvedOpenDelay,\n triggerProps,\n ]);\n\n const customContainer = useMemo(() => {\n if (!getPopupContainer || !isClient) return undefined;\n return undefined;\n }, [getPopupContainer, isClient]);\n\n const popup = useMemo(\n () => (\n <BaseTooltip.Positioner\n align={placementConfig.align}\n className={resolvedClassNames.positioner}\n data-placement={placement}\n side={placementConfig.side}\n sideOffset={baseSideOffset}\n style={resolvedStyles.positioner}\n {...positionerProps}\n >\n <BaseTooltip.Popup\n className={resolvedClassNames.popup}\n style={resolvedStyles.popup}\n {...popupProps}\n >\n {arrow && (\n <BaseTooltip.Arrow className={resolvedClassNames.arrow} style={resolvedStyles.arrow}>\n {TooltipArrowIcon}\n </BaseTooltip.Arrow>\n )}\n <div className={resolvedClassNames.viewport} style={resolvedStyles.viewport}>\n <TooltipContent hotkey={hotkey} hotkeyProps={hotkeyProps} title={title} />\n </div>\n </BaseTooltip.Popup>\n </BaseTooltip.Positioner>\n ),\n [\n arrow,\n baseSideOffset,\n hotkey,\n hotkeyProps,\n placement,\n placementConfig.align,\n placementConfig.side,\n popupProps,\n positionerProps,\n resolvedClassNames,\n resolvedStyles,\n title,\n ],\n );\n\n // eslint-disable-next-line eqeqeq\n if (title == null && !hotkey) {\n return children;\n }\n\n const resolvedPortalContainer = customContainer ?? portalContainer;\n\n return (\n <BaseTooltip.Root\n defaultOpen={defaultOpen}\n disabled={disabled}\n onOpenChange={handleOpenChange}\n open={resolvedOpen}\n >\n {triggerElement}\n {resolvedPortalContainer ? (\n <BaseTooltip.Portal container={resolvedPortalContainer} {...portalProps}>\n {popup}\n </BaseTooltip.Portal>\n ) : null}\n </BaseTooltip.Root>\n );\n },\n);\n\nTooltipStandalone.displayName = 'TooltipStandalone';\n"],"mappings":"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"}
@@ -20,11 +20,11 @@ const styles = createStaticStyles(({ css: css$1, cssVar: cssVar$1 }) => ({
20
20
  display: block;
21
21
  width: 100%;
22
22
  height: 100%;
23
- fill: ${cssVar$1.colorText};
23
+ fill: ${cssVar$1.colorBgElevated};
24
24
  }
25
25
 
26
26
  & [data-role='stroke'] {
27
- stroke: none;
27
+ stroke: ${cssVar$1.colorBorderSecondary};
28
28
  }
29
29
 
30
30
  &[data-side='top'] {
@@ -53,17 +53,26 @@ const styles = createStaticStyles(({ css: css$1, cssVar: cssVar$1 }) => ({
53
53
  transform-origin: var(--transform-origin);
54
54
 
55
55
  max-width: min(320px, var(--available-width));
56
+ border: 1px solid ${cssVar$1.colorBorderSecondary};
56
57
  border-radius: ${cssVar$1.borderRadiusSM};
57
58
 
58
- font-size: 12px;
59
+ font-size: ${cssVar$1.fontSizeSM};
59
60
  line-height: 1.2;
60
- color: ${cssVar$1.colorBgLayout};
61
+ color: ${cssVar$1.colorTextSecondary};
61
62
 
62
- background: ${cssVar$1.colorText};
63
+ background: ${cssVar$1.colorBgElevated};
64
+ box-shadow:
65
+ 0 1px 2px 0 rgba(0, 0, 0, 3%),
66
+ 0 1px 6px -1px rgba(0, 0, 0, 2%),
67
+ 0 2px 4px 0 rgba(0, 0, 0, 2%);
63
68
 
64
69
  transition-timing-function: var(--lobe-tooltip-animation-ease-out);
65
70
  transition-duration: var(--lobe-tooltip-animation-duration);
66
- transition-property: opacity, transform;
71
+ transition-property: opacity;
72
+
73
+ &[data-layout-animation] {
74
+ transition-property: opacity, transform, width, height;
75
+ }
67
76
 
68
77
  &[data-starting-style],
69
78
  &[data-ending-style] {
@@ -82,25 +91,30 @@ const styles = createStaticStyles(({ css: css$1, cssVar: cssVar$1 }) => ({
82
91
  }
83
92
  `,
84
93
  positioner: css$1`
85
- --lobe-tooltip-animation-duration: 120ms;
86
- --lobe-tooltip-animation-duration-exit: 80ms;
87
- --lobe-tooltip-animation-translate: 4px;
88
- --lobe-tooltip-animation-scale: 0.96;
94
+ --lobe-tooltip-animation-duration: 100ms;
95
+ --lobe-tooltip-animation-duration-exit: 60ms;
96
+ --lobe-tooltip-animation-translate: 2px;
97
+ --lobe-tooltip-animation-scale: 0.98;
89
98
  --lobe-tooltip-animation-ease-in: ease-in;
90
99
  --lobe-tooltip-animation-ease-out: ${cssVar$1.motionEaseOut};
91
100
  --lobe-tooltip-translate-x: 0;
92
101
  --lobe-tooltip-translate-y: calc(var(--lobe-tooltip-animation-translate) * -1);
93
102
 
94
- z-index: 1100;
103
+ will-change: transform, opacity;
95
104
 
96
- width: var(--positioner-width);
97
- max-width: var(--available-width);
105
+ z-index: 114514;
106
+
107
+ width: min(var(--positioner-width), 320px, var(--available-width));
98
108
  height: var(--positioner-height);
99
109
 
100
110
  transition-timing-function: var(--lobe-tooltip-animation-ease-out);
101
111
  transition-duration: var(--lobe-tooltip-animation-duration);
102
- transition-property:
103
- inset-block-start, inset-inline-start, inset-inline-end, inset-block-end, transform;
112
+ transition-property: none;
113
+
114
+ &[data-layout-animation] {
115
+ transition-property:
116
+ inset-block-start, inset-inline-start, inset-inline-end, inset-block-end, transform;
117
+ }
104
118
 
105
119
  &[data-instant] {
106
120
  transition: none;
@@ -151,7 +165,7 @@ const styles = createStaticStyles(({ css: css$1, cssVar: cssVar$1 }) => ({
151
165
  gap: 6px;
152
166
  align-items: center;
153
167
 
154
- max-width: min(320px, var(--available-width));
168
+ max-width: var(--available-width);
155
169
  padding-block: 4px;
156
170
  padding-inline: var(--lobe-tooltip-viewport-inline-padding);
157
171
 
@@ -174,6 +188,12 @@ const styles = createStaticStyles(({ css: css$1, cssVar: cssVar$1 }) => ({
174
188
  var(--lobe-tooltip-animation-ease-out);
175
189
  }
176
190
 
191
+ [data-previous] {
192
+ position: absolute;
193
+ inset-block-start: 4px;
194
+ inset-inline-start: var(--lobe-tooltip-viewport-inline-padding);
195
+ }
196
+
177
197
  &[data-activation-direction~='right'] [data-previous][data-ending-style] {
178
198
  transform: translateX(-50%);
179
199
  opacity: 0;
@@ -1 +1 @@
1
- {"version":3,"file":"style.mjs","names":["cssVar"],"sources":["../../src/Tooltip/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => ({\n arrow: css`\n --lobe-tooltip-arrow-offset-block: 4px;\n --lobe-tooltip-arrow-offset-inline: 6px;\n\n pointer-events: none;\n\n position: absolute;\n transform-origin: center;\n\n display: flex;\n\n width: 8px;\n height: 4px;\n\n & > svg {\n display: block;\n width: 100%;\n height: 100%;\n fill: ${cssVar.colorText};\n }\n\n & [data-role='stroke'] {\n stroke: none;\n }\n\n &[data-side='top'] {\n inset-block-end: calc(var(--lobe-tooltip-arrow-offset-block) * -1);\n transform: rotate(180deg);\n }\n\n &[data-side='left'] {\n inset-inline-end: calc(var(--lobe-tooltip-arrow-offset-inline) * -1);\n transform: rotate(90deg);\n }\n\n &[data-side='right'] {\n inset-inline-start: calc(var(--lobe-tooltip-arrow-offset-inline) * -1);\n transform: rotate(-90deg);\n }\n\n &[data-side='bottom'] {\n inset-block-start: calc(var(--lobe-tooltip-arrow-offset-block) * -1);\n }\n `,\n\n popup: css`\n user-select: none;\n\n position: relative;\n transform-origin: var(--transform-origin);\n\n max-width: min(320px, var(--available-width));\n border-radius: ${cssVar.borderRadiusSM};\n\n font-size: 12px;\n line-height: 1.2;\n color: ${cssVar.colorBgLayout};\n\n background: ${cssVar.colorText};\n\n transition-timing-function: var(--lobe-tooltip-animation-ease-out);\n transition-duration: var(--lobe-tooltip-animation-duration);\n transition-property: opacity, transform;\n\n &[data-starting-style],\n &[data-ending-style] {\n transform: translate3d(var(--lobe-tooltip-translate-x), var(--lobe-tooltip-translate-y), 0)\n scale(var(--lobe-tooltip-animation-scale));\n opacity: 0;\n }\n\n &[data-ending-style] {\n transition-timing-function: var(--lobe-tooltip-animation-ease-in);\n transition-duration: var(--lobe-tooltip-animation-duration-exit);\n }\n\n &[data-instant] {\n transition: none;\n }\n `,\n\n positioner: css`\n --lobe-tooltip-animation-duration: 120ms;\n --lobe-tooltip-animation-duration-exit: 80ms;\n --lobe-tooltip-animation-translate: 4px;\n --lobe-tooltip-animation-scale: 0.96;\n --lobe-tooltip-animation-ease-in: ease-in;\n --lobe-tooltip-animation-ease-out: ${cssVar.motionEaseOut};\n --lobe-tooltip-translate-x: 0;\n --lobe-tooltip-translate-y: calc(var(--lobe-tooltip-animation-translate) * -1);\n\n z-index: 1100;\n\n width: var(--positioner-width);\n max-width: var(--available-width);\n height: var(--positioner-height);\n\n transition-timing-function: var(--lobe-tooltip-animation-ease-out);\n transition-duration: var(--lobe-tooltip-animation-duration);\n transition-property:\n inset-block-start, inset-inline-start, inset-inline-end, inset-block-end, transform;\n\n &[data-instant] {\n transition: none;\n }\n\n /* Fallback: never show a tooltip when the anchor is hidden or the positioner falls back to (0,0). */\n &[data-anchor-hidden],\n &[data-zero-origin='true'] {\n pointer-events: none;\n visibility: hidden;\n }\n\n &[data-placement='top'],\n &[data-placement='topLeft'],\n &[data-placement='topRight'] {\n --lobe-tooltip-translate-x: 0;\n --lobe-tooltip-translate-y: var(--lobe-tooltip-animation-translate);\n }\n\n &[data-placement='bottom'],\n &[data-placement='bottomLeft'],\n &[data-placement='bottomRight'] {\n --lobe-tooltip-translate-x: 0;\n --lobe-tooltip-translate-y: calc(var(--lobe-tooltip-animation-translate) * -1);\n }\n\n &[data-placement='left'],\n &[data-placement='leftTop'],\n &[data-placement='leftBottom'] {\n --lobe-tooltip-translate-x: var(--lobe-tooltip-animation-translate);\n --lobe-tooltip-translate-y: 0;\n }\n\n &[data-placement='right'],\n &[data-placement='rightTop'],\n &[data-placement='rightBottom'] {\n --lobe-tooltip-translate-x: calc(var(--lobe-tooltip-animation-translate) * -1);\n --lobe-tooltip-translate-y: 0;\n }\n `,\n\n viewport: css`\n --lobe-tooltip-viewport-inline-padding: 8px;\n\n position: relative;\n\n overflow: clip;\n display: flex;\n gap: 6px;\n align-items: center;\n\n max-width: min(320px, var(--available-width));\n padding-block: 4px;\n padding-inline: var(--lobe-tooltip-viewport-inline-padding);\n\n word-break: break-word;\n white-space: normal;\n\n [data-previous],\n [data-current] {\n transform: translateX(0);\n\n display: flex;\n gap: 6px;\n align-items: center;\n\n opacity: 1;\n\n transition:\n transform var(--lobe-tooltip-animation-duration) var(--lobe-tooltip-animation-ease-out),\n opacity calc(var(--lobe-tooltip-animation-duration) / 2)\n var(--lobe-tooltip-animation-ease-out);\n }\n\n &[data-activation-direction~='right'] [data-previous][data-ending-style] {\n transform: translateX(-50%);\n opacity: 0;\n }\n\n &[data-activation-direction~='right'] [data-current][data-starting-style] {\n transform: translateX(50%);\n opacity: 0;\n }\n\n &[data-activation-direction~='left'] [data-previous][data-ending-style] {\n transform: translateX(50%);\n opacity: 0;\n }\n\n &[data-activation-direction~='left'] [data-current][data-starting-style] {\n transform: translateX(-50%);\n opacity: 0;\n }\n\n &[data-activation-direction~='down'] [data-previous][data-ending-style] {\n transform: translateY(-50%);\n opacity: 0;\n }\n\n &[data-activation-direction~='down'] [data-current][data-starting-style] {\n transform: translateY(50%);\n opacity: 0;\n }\n\n &[data-activation-direction~='up'] [data-previous][data-ending-style] {\n transform: translateY(50%);\n opacity: 0;\n }\n\n &[data-activation-direction~='up'] [data-current][data-starting-style] {\n transform: translateY(-50%);\n opacity: 0;\n }\n `,\n}));\n"],"mappings":";;;AAEA,MAAa,SAAS,oBAAoB,EAAE,YAAK,wBAAc;CAC7D,OAAO,KAAG;;;;;;;;;;;;;;;;;;cAkBEA,SAAO,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;CA2B7B,OAAO,KAAG;;;;;;;qBAOSA,SAAO,eAAe;;;;aAI9BA,SAAO,cAAc;;kBAEhBA,SAAO,UAAU;;;;;;;;;;;;;;;;;;;;;;CAuBjC,YAAY,KAAG;;;;;;yCAMwBA,SAAO,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuD5D,UAAU,KAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyEd,EAAE"}
1
+ {"version":3,"file":"style.mjs","names":["cssVar"],"sources":["../../src/Tooltip/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => ({\n arrow: css`\n --lobe-tooltip-arrow-offset-block: 4px;\n --lobe-tooltip-arrow-offset-inline: 6px;\n\n pointer-events: none;\n\n position: absolute;\n transform-origin: center;\n\n display: flex;\n\n width: 8px;\n height: 4px;\n\n & > svg {\n display: block;\n width: 100%;\n height: 100%;\n fill: ${cssVar.colorBgElevated};\n }\n\n & [data-role='stroke'] {\n stroke: ${cssVar.colorBorderSecondary};\n }\n\n &[data-side='top'] {\n inset-block-end: calc(var(--lobe-tooltip-arrow-offset-block) * -1);\n transform: rotate(180deg);\n }\n\n &[data-side='left'] {\n inset-inline-end: calc(var(--lobe-tooltip-arrow-offset-inline) * -1);\n transform: rotate(90deg);\n }\n\n &[data-side='right'] {\n inset-inline-start: calc(var(--lobe-tooltip-arrow-offset-inline) * -1);\n transform: rotate(-90deg);\n }\n\n &[data-side='bottom'] {\n inset-block-start: calc(var(--lobe-tooltip-arrow-offset-block) * -1);\n }\n `,\n\n popup: css`\n user-select: none;\n\n position: relative;\n transform-origin: var(--transform-origin);\n\n max-width: min(320px, var(--available-width));\n border: 1px solid ${cssVar.colorBorderSecondary};\n border-radius: ${cssVar.borderRadiusSM};\n\n font-size: ${cssVar.fontSizeSM};\n line-height: 1.2;\n color: ${cssVar.colorTextSecondary};\n\n background: ${cssVar.colorBgElevated};\n box-shadow:\n 0 1px 2px 0 rgba(0, 0, 0, 3%),\n 0 1px 6px -1px rgba(0, 0, 0, 2%),\n 0 2px 4px 0 rgba(0, 0, 0, 2%);\n\n transition-timing-function: var(--lobe-tooltip-animation-ease-out);\n transition-duration: var(--lobe-tooltip-animation-duration);\n transition-property: opacity;\n\n &[data-layout-animation] {\n transition-property: opacity, transform, width, height;\n }\n\n &[data-starting-style],\n &[data-ending-style] {\n transform: translate3d(var(--lobe-tooltip-translate-x), var(--lobe-tooltip-translate-y), 0)\n scale(var(--lobe-tooltip-animation-scale));\n opacity: 0;\n }\n\n &[data-ending-style] {\n transition-timing-function: var(--lobe-tooltip-animation-ease-in);\n transition-duration: var(--lobe-tooltip-animation-duration-exit);\n }\n\n &[data-instant] {\n transition: none;\n }\n `,\n\n positioner: css`\n --lobe-tooltip-animation-duration: 100ms;\n --lobe-tooltip-animation-duration-exit: 60ms;\n --lobe-tooltip-animation-translate: 2px;\n --lobe-tooltip-animation-scale: 0.98;\n --lobe-tooltip-animation-ease-in: ease-in;\n --lobe-tooltip-animation-ease-out: ${cssVar.motionEaseOut};\n --lobe-tooltip-translate-x: 0;\n --lobe-tooltip-translate-y: calc(var(--lobe-tooltip-animation-translate) * -1);\n\n will-change: transform, opacity;\n\n z-index: 114514;\n\n width: min(var(--positioner-width), 320px, var(--available-width));\n height: var(--positioner-height);\n\n transition-timing-function: var(--lobe-tooltip-animation-ease-out);\n transition-duration: var(--lobe-tooltip-animation-duration);\n transition-property: none;\n\n &[data-layout-animation] {\n transition-property:\n inset-block-start, inset-inline-start, inset-inline-end, inset-block-end, transform;\n }\n\n &[data-instant] {\n transition: none;\n }\n\n /* Fallback: never show a tooltip when the anchor is hidden or the positioner falls back to (0,0). */\n &[data-anchor-hidden],\n &[data-zero-origin='true'] {\n pointer-events: none;\n visibility: hidden;\n }\n\n &[data-placement='top'],\n &[data-placement='topLeft'],\n &[data-placement='topRight'] {\n --lobe-tooltip-translate-x: 0;\n --lobe-tooltip-translate-y: var(--lobe-tooltip-animation-translate);\n }\n\n &[data-placement='bottom'],\n &[data-placement='bottomLeft'],\n &[data-placement='bottomRight'] {\n --lobe-tooltip-translate-x: 0;\n --lobe-tooltip-translate-y: calc(var(--lobe-tooltip-animation-translate) * -1);\n }\n\n &[data-placement='left'],\n &[data-placement='leftTop'],\n &[data-placement='leftBottom'] {\n --lobe-tooltip-translate-x: var(--lobe-tooltip-animation-translate);\n --lobe-tooltip-translate-y: 0;\n }\n\n &[data-placement='right'],\n &[data-placement='rightTop'],\n &[data-placement='rightBottom'] {\n --lobe-tooltip-translate-x: calc(var(--lobe-tooltip-animation-translate) * -1);\n --lobe-tooltip-translate-y: 0;\n }\n `,\n\n viewport: css`\n --lobe-tooltip-viewport-inline-padding: 8px;\n\n position: relative;\n\n overflow: clip;\n display: flex;\n gap: 6px;\n align-items: center;\n\n max-width: var(--available-width);\n padding-block: 4px;\n padding-inline: var(--lobe-tooltip-viewport-inline-padding);\n\n word-break: break-word;\n white-space: normal;\n\n [data-previous],\n [data-current] {\n transform: translateX(0);\n\n display: flex;\n gap: 6px;\n align-items: center;\n\n opacity: 1;\n\n transition:\n transform var(--lobe-tooltip-animation-duration) var(--lobe-tooltip-animation-ease-out),\n opacity calc(var(--lobe-tooltip-animation-duration) / 2)\n var(--lobe-tooltip-animation-ease-out);\n }\n\n [data-previous] {\n position: absolute;\n inset-block-start: 4px;\n inset-inline-start: var(--lobe-tooltip-viewport-inline-padding);\n }\n\n &[data-activation-direction~='right'] [data-previous][data-ending-style] {\n transform: translateX(-50%);\n opacity: 0;\n }\n\n &[data-activation-direction~='right'] [data-current][data-starting-style] {\n transform: translateX(50%);\n opacity: 0;\n }\n\n &[data-activation-direction~='left'] [data-previous][data-ending-style] {\n transform: translateX(50%);\n opacity: 0;\n }\n\n &[data-activation-direction~='left'] [data-current][data-starting-style] {\n transform: translateX(-50%);\n opacity: 0;\n }\n\n &[data-activation-direction~='down'] [data-previous][data-ending-style] {\n transform: translateY(-50%);\n opacity: 0;\n }\n\n &[data-activation-direction~='down'] [data-current][data-starting-style] {\n transform: translateY(50%);\n opacity: 0;\n }\n\n &[data-activation-direction~='up'] [data-previous][data-ending-style] {\n transform: translateY(50%);\n opacity: 0;\n }\n\n &[data-activation-direction~='up'] [data-current][data-starting-style] {\n transform: translateY(-50%);\n opacity: 0;\n }\n `,\n}));\n"],"mappings":";;;AAEA,MAAa,SAAS,oBAAoB,EAAE,YAAK,wBAAc;CAC7D,OAAO,KAAG;;;;;;;;;;;;;;;;;;cAkBEA,SAAO,gBAAgB;;;;gBAIrBA,SAAO,qBAAqB;;;;;;;;;;;;;;;;;;;;;;CAuB1C,OAAO,KAAG;;;;;;;wBAOYA,SAAO,qBAAqB;qBAC/BA,SAAO,eAAe;;iBAE1BA,SAAO,WAAW;;aAEtBA,SAAO,mBAAmB;;kBAErBA,SAAO,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BvC,YAAY,KAAG;;;;;;yCAMwBA,SAAO,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4D5D,UAAU,KAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+Ed,EAAE"}
@@ -1,7 +1,7 @@
1
1
  import { FlexboxProps } from "../Flex/type.mjs";
2
2
  import "../Flex/index.mjs";
3
3
  import { VideoProps as VideoProps$1 } from "../types/index.mjs";
4
- import * as react79 from "react";
4
+ import * as react49 from "react";
5
5
  import { CSSProperties, Ref } from "react";
6
6
 
7
7
  //#region src/Video/index.d.ts
@@ -39,7 +39,7 @@ interface VideoProps extends VideoProps$1, Pick<FlexboxProps, 'width' | 'height'
39
39
  };
40
40
  variant?: 'borderless' | 'filled' | 'outlined';
41
41
  }
42
- declare const Video: react79.NamedExoticComponent<VideoProps>;
42
+ declare const Video: react49.NamedExoticComponent<VideoProps>;
43
43
  //#endregion
44
44
  export { Video, VideoProps };
45
45
  //# sourceMappingURL=index.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { AuroraBackgroundProps } from "./type.mjs";
2
- import * as react134 from "react";
2
+ import * as react130 from "react";
3
3
 
4
4
  //#region src/awesome/AuroraBackground/AuroraBackground.d.ts
5
- declare const AuroraBackground: react134.NamedExoticComponent<AuroraBackgroundProps>;
5
+ declare const AuroraBackground: react130.NamedExoticComponent<AuroraBackgroundProps>;
6
6
  //#endregion
7
7
  export { AuroraBackground };
8
8
  //# sourceMappingURL=AuroraBackground.d.mts.map
@@ -1,9 +1,9 @@
1
1
  import { ButtonProps } from "../../Button/type.mjs";
2
2
  import "../../Button/index.mjs";
3
- import * as react136 from "react";
3
+ import * as react134 from "react";
4
4
 
5
5
  //#region src/awesome/BottomGradientButton/BottomGradientButton.d.ts
6
- declare const BottomGradientButton: react136.NamedExoticComponent<ButtonProps>;
6
+ declare const BottomGradientButton: react134.NamedExoticComponent<ButtonProps>;
7
7
  //#endregion
8
8
  export { BottomGradientButton };
9
9
  //# sourceMappingURL=BottomGradientButton.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { FeaturesProps } from "./type.mjs";
2
- import * as react138 from "react";
2
+ import * as react131 from "react";
3
3
 
4
4
  //#region src/awesome/Features/Features.d.ts
5
- declare const Features: react138.NamedExoticComponent<FeaturesProps>;
5
+ declare const Features: react131.NamedExoticComponent<FeaturesProps>;
6
6
  //#endregion
7
7
  export { Features };
8
8
  //# sourceMappingURL=Features.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { GiscusProps } from "./type.mjs";
2
- import * as react131 from "react";
2
+ import * as react129 from "react";
3
3
 
4
4
  //#region src/awesome/Giscus/Giscus.d.ts
5
- declare const Giscus: react131.NamedExoticComponent<GiscusProps>;
5
+ declare const Giscus: react129.NamedExoticComponent<GiscusProps>;
6
6
  //#endregion
7
7
  export { Giscus };
8
8
  //# sourceMappingURL=Giscus.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { GradientButtonProps } from "./type.mjs";
2
- import * as react135 from "react";
2
+ import * as react133 from "react";
3
3
 
4
4
  //#region src/awesome/GradientButton/GradientButton.d.ts
5
- declare const GradientButton: react135.NamedExoticComponent<GradientButtonProps>;
5
+ declare const GradientButton: react133.NamedExoticComponent<GradientButtonProps>;
6
6
  //#endregion
7
7
  export { GradientButton };
8
8
  //# sourceMappingURL=GradientButton.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { GridBackgroundProps } from "./type.mjs";
2
- import * as react132 from "react";
2
+ import * as react137 from "react";
3
3
 
4
4
  //#region src/awesome/GridBackground/GridBackground.d.ts
5
- declare const GridBackground: react132.NamedExoticComponent<GridBackgroundProps>;
5
+ declare const GridBackground: react137.NamedExoticComponent<GridBackgroundProps>;
6
6
  //#endregion
7
7
  export { GridBackground };
8
8
  //# sourceMappingURL=GridBackground.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { GridShowcaseProps } from "./type.mjs";
2
- import * as react133 from "react";
2
+ import * as react138 from "react";
3
3
 
4
4
  //#region src/awesome/GridBackground/GridShowcase.d.ts
5
- declare const GridShowcase: react133.NamedExoticComponent<GridShowcaseProps>;
5
+ declare const GridShowcase: react138.NamedExoticComponent<GridShowcaseProps>;
6
6
  //#endregion
7
7
  export { GridShowcase };
8
8
  //# sourceMappingURL=GridShowcase.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { HeroProps } from "./type.mjs";
2
- import * as react137 from "react";
2
+ import * as react140 from "react";
3
3
 
4
4
  //#region src/awesome/Hero/Hero.d.ts
5
- declare const Hero: react137.NamedExoticComponent<HeroProps>;
5
+ declare const Hero: react140.NamedExoticComponent<HeroProps>;
6
6
  //#endregion
7
7
  export { Hero };
8
8
  //# sourceMappingURL=Hero.d.mts.map
@@ -1,9 +1,9 @@
1
1
  import { SplineProps } from "./type.mjs";
2
- import * as react139 from "react";
2
+ import * as react135 from "react";
3
3
  import "@splinetool/runtime";
4
4
 
5
5
  //#region src/awesome/Spline/Spine.d.ts
6
- declare const Spline: react139.NamedExoticComponent<SplineProps>;
6
+ declare const Spline: react135.NamedExoticComponent<SplineProps>;
7
7
  //#endregion
8
8
  export { Spline };
9
9
  //# sourceMappingURL=Spine.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { SpotlightProps } from "./type.mjs";
2
- import * as react141 from "react";
2
+ import * as react136 from "react";
3
3
 
4
4
  //#region src/awesome/Spotlight/Spotlight.d.ts
5
- declare const Spotlight: react141.NamedExoticComponent<SpotlightProps>;
5
+ declare const Spotlight: react136.NamedExoticComponent<SpotlightProps>;
6
6
  //#endregion
7
7
  export { Spotlight };
8
8
  //# sourceMappingURL=Spotlight.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { SpotlightCardProps } from "./type.mjs";
2
- import * as react142 from "react";
2
+ import * as react139 from "react";
3
3
 
4
4
  //#region src/awesome/SpotlightCard/SpotlightCard.d.ts
5
- declare const SpotlightCard: react142.NamedExoticComponent<SpotlightCardProps<any>>;
5
+ declare const SpotlightCard: react139.NamedExoticComponent<SpotlightCardProps<any>>;
6
6
  //#endregion
7
7
  export { SpotlightCard };
8
8
  //# sourceMappingURL=SpotlightCard.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { TypewriterEffectProps } from "./type.mjs";
2
- import * as react140 from "react";
2
+ import * as react132 from "react";
3
3
 
4
4
  //#region src/awesome/TypewriterEffect/TypewriterEffect.d.ts
5
- declare const TypewriterEffect: react140.NamedExoticComponent<TypewriterEffectProps>;
5
+ declare const TypewriterEffect: react132.NamedExoticComponent<TypewriterEffectProps>;
6
6
  //#endregion
7
7
  export { TypewriterEffect };
8
8
  //# sourceMappingURL=TypewriterEffect.d.mts.map
@@ -1,5 +1,5 @@
1
1
  import { DivProps } from "../../types/index.mjs";
2
- import * as react67 from "react";
2
+ import * as react59 from "react";
3
3
  import { ReactNode } from "react";
4
4
 
5
5
  //#region src/brand/LobeChat/index.d.ts
@@ -8,7 +8,7 @@ interface LobeChatProps extends DivProps {
8
8
  size?: number;
9
9
  type?: '3d' | 'flat' | 'mono' | 'text' | 'combine';
10
10
  }
11
- declare const LobeChat: react67.NamedExoticComponent<LobeChatProps>;
11
+ declare const LobeChat: react59.NamedExoticComponent<LobeChatProps>;
12
12
  //#endregion
13
13
  export { LobeChat, LobeChatProps };
14
14
  //# sourceMappingURL=index.d.mts.map
@@ -1,5 +1,5 @@
1
1
  import { DivProps } from "../../types/index.mjs";
2
- import * as react68 from "react";
2
+ import * as react58 from "react";
3
3
  import { ReactNode } from "react";
4
4
 
5
5
  //#region src/brand/LobeHub/index.d.ts
@@ -8,7 +8,7 @@ interface LobeHubProps extends DivProps {
8
8
  size?: number;
9
9
  type?: '3d' | 'flat' | 'mono' | 'text' | 'combine';
10
10
  }
11
- declare const LobeHub: react68.NamedExoticComponent<LobeHubProps>;
11
+ declare const LobeHub: react58.NamedExoticComponent<LobeHubProps>;
12
12
  //#endregion
13
13
  export { LobeHub, LobeHubProps };
14
14
  //# sourceMappingURL=index.d.mts.map
@@ -1,6 +1,6 @@
1
1
  import { SplineProps } from "../../awesome/Spline/type.mjs";
2
2
  import "../../awesome/Spline/index.mjs";
3
- import * as react70 from "react";
3
+ import * as react60 from "react";
4
4
  import { CSSProperties } from "react";
5
5
 
6
6
  //#region src/brand/LogoThree/LogoSpline.d.ts
@@ -10,7 +10,7 @@ interface LogoSplineProps extends Partial<SplineProps> {
10
10
  style?: CSSProperties;
11
11
  width?: number | string;
12
12
  }
13
- declare const LogoSpline: react70.NamedExoticComponent<LogoSplineProps>;
13
+ declare const LogoSpline: react60.NamedExoticComponent<LogoSplineProps>;
14
14
  //#endregion
15
15
  export { LogoSpline, LogoSplineProps };
16
16
  //# sourceMappingURL=LogoSpline.d.mts.map
@@ -1,6 +1,6 @@
1
1
  import { SplineProps } from "../../awesome/Spline/type.mjs";
2
2
  import "../../awesome/Spline/index.mjs";
3
- import * as react69 from "react";
3
+ import * as react61 from "react";
4
4
  import { CSSProperties } from "react";
5
5
 
6
6
  //#region src/brand/LogoThree/index.d.ts
@@ -9,7 +9,7 @@ interface LogoThreeProps extends Partial<SplineProps> {
9
9
  size?: number;
10
10
  style?: CSSProperties;
11
11
  }
12
- declare const LogoThree: react69.NamedExoticComponent<LogoThreeProps>;
12
+ declare const LogoThree: react61.NamedExoticComponent<LogoThreeProps>;
13
13
  //#endregion
14
14
  export { LogoThree, LogoThreeProps };
15
15
  //# sourceMappingURL=index.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { BackBottomProps } from "./type.mjs";
2
- import * as react123 from "react";
2
+ import * as react142 from "react";
3
3
 
4
4
  //#region src/chat/BackBottom/BackBottom.d.ts
5
- declare const BackBottom: react123.NamedExoticComponent<BackBottomProps>;
5
+ declare const BackBottom: react142.NamedExoticComponent<BackBottomProps>;
6
6
  //#endregion
7
7
  export { BackBottom };
8
8
  //# sourceMappingURL=BackBottom.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { ChatInputAreaInnerProps } from "../type.mjs";
2
- import * as react124 from "react";
2
+ import * as react144 from "react";
3
3
 
4
4
  //#region src/chat/ChatInputArea/components/ChatInputAreaInner.d.ts
5
- declare const ChatInputAreaInner: react124.NamedExoticComponent<ChatInputAreaInnerProps>;
5
+ declare const ChatInputAreaInner: react144.NamedExoticComponent<ChatInputAreaInnerProps>;
6
6
  //#endregion
7
7
  export { ChatInputAreaInner };
8
8
  //# sourceMappingURL=ChatInputAreaInner.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { ChatItemProps } from "./type.mjs";
2
- import * as react129 from "react";
2
+ import * as react143 from "react";
3
3
 
4
4
  //#region src/chat/ChatItem/ChatItem.d.ts
5
- declare const ChatItem: react129.NamedExoticComponent<ChatItemProps>;
5
+ declare const ChatItem: react143.NamedExoticComponent<ChatItemProps>;
6
6
  //#endregion
7
7
  export { ChatItem };
8
8
  //# sourceMappingURL=ChatItem.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { ChatListProps } from "./type.mjs";
2
- import * as react125 from "react";
2
+ import * as react141 from "react";
3
3
 
4
4
  //#region src/chat/ChatList/ChatList.d.ts
5
- declare const ChatList: react125.NamedExoticComponent<ChatListProps>;
5
+ declare const ChatList: react141.NamedExoticComponent<ChatListProps>;
6
6
  //#endregion
7
7
  export { ChatList };
8
8
  //# sourceMappingURL=ChatList.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { EditableMessageProps } from "./type.mjs";
2
- import * as react126 from "react";
2
+ import * as react148 from "react";
3
3
 
4
4
  //#region src/chat/EditableMessage/EditableMessage.d.ts
5
- declare const EditableMessage: react126.NamedExoticComponent<EditableMessageProps>;
5
+ declare const EditableMessage: react148.NamedExoticComponent<EditableMessageProps>;
6
6
  //#endregion
7
7
  export { EditableMessage };
8
8
  //# sourceMappingURL=EditableMessage.d.mts.map
@@ -6,15 +6,15 @@ import MessageModal_default from "../MessageModal/MessageModal.mjs";
6
6
  import { memo } from "react";
7
7
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
8
8
  import { cx } from "antd-style";
9
- import useMergeState from "use-merge-value";
9
+ import useControlledState from "use-merge-value";
10
10
 
11
11
  //#region src/chat/EditableMessage/EditableMessage.tsx
12
12
  const EditableMessage = memo(({ value, onChange, classNames = {}, onEditingChange, editing, openModal, onOpenChange, placeholder, showEditWhenEmpty = false, styles: customStyles, className, style, height, variant, editButtonSize, text, fullFeaturedCodeBlock, model, fontSize, language = "markdown", markdownProps }) => {
13
- const [isEdit, setTyping] = useMergeState(false, {
13
+ const [isEdit, setTyping] = useControlledState(false, {
14
14
  onChange: onEditingChange,
15
15
  value: editing
16
16
  });
17
- const [expand, setExpand] = useMergeState(false, {
17
+ const [expand, setExpand] = useControlledState(false, {
18
18
  onChange: onOpenChange,
19
19
  value: openModal
20
20
  });
@@ -1 +1 @@
1
- {"version":3,"file":"EditableMessage.mjs","names":["useControlledState","MessageInput","text","Markdown","MessageModal"],"sources":["../../../src/chat/EditableMessage/EditableMessage.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { memo } from 'react';\nimport useControlledState from 'use-merge-value';\n\nimport Markdown from '@/Markdown';\nimport MessageInput from '@/chat/MessageInput';\nimport MessageModal from '@/chat/MessageModal';\n\nimport type { EditableMessageProps } from './type';\n\nconst EditableMessage = memo<EditableMessageProps>(\n ({\n value,\n onChange,\n classNames = {},\n onEditingChange,\n editing,\n openModal,\n onOpenChange,\n placeholder,\n showEditWhenEmpty = false,\n styles: customStyles,\n className,\n style,\n height,\n variant,\n editButtonSize,\n text,\n fullFeaturedCodeBlock,\n model,\n fontSize,\n language = 'markdown',\n markdownProps,\n }) => {\n const [isEdit, setTyping] = useControlledState(false, {\n onChange: onEditingChange,\n value: editing,\n });\n\n const [expand, setExpand] = useControlledState<boolean>(false, {\n onChange: onOpenChange,\n value: openModal,\n });\n\n const isAutoSize = height === 'auto';\n\n const input = (\n <MessageInput\n className={cx(className, classNames?.input)}\n classNames={classNames}\n defaultValue={value}\n editButtonSize={editButtonSize}\n height={height}\n language={language}\n onCancel={() => setTyping(false)}\n onConfirm={(text) => {\n onChange?.(text);\n setTyping(false);\n }}\n placeholder={placeholder}\n shortcut\n style={{\n ...style,\n ...customStyles?.input,\n }}\n styles={customStyles}\n text={text}\n variant={variant}\n />\n );\n\n if (!value && showEditWhenEmpty) return input;\n\n return (\n <>\n {!expand && isEdit ? (\n input\n ) : (\n <Markdown\n className={cx(className, classNames?.markdown)}\n fontSize={fontSize}\n fullFeaturedCodeBlock={fullFeaturedCodeBlock}\n style={{\n height: isAutoSize ? 'unset' : height,\n ...style,\n ...customStyles?.markdown,\n }}\n variant={'chat'}\n {...markdownProps}\n >\n {value || placeholder || ''}\n </Markdown>\n )}\n {expand && (\n <MessageModal\n editing={isEdit}\n extra={model?.extra}\n footer={model?.footer}\n height={height}\n language={language}\n onChange={onChange}\n onEditingChange={setTyping}\n onOpenChange={(e) => {\n setExpand(e);\n setTyping(false);\n }}\n open={expand}\n placeholder={placeholder}\n text={text}\n value={value}\n />\n )}\n </>\n );\n },\n);\n\nEditableMessage.displayName = 'EditableMessage';\n\nexport default EditableMessage;\n"],"mappings":";;;;;;;;;;;AAYA,MAAM,kBAAkB,MACrB,EACC,OACA,UACA,aAAa,EAAE,EACf,iBACA,SACA,WACA,cACA,aACA,oBAAoB,OACpB,QAAQ,cACR,WACA,OACA,QACA,SACA,gBACA,MACA,uBACA,OACA,UACA,WAAW,YACX,oBACI;CACJ,MAAM,CAAC,QAAQ,aAAaA,cAAmB,OAAO;EACpD,UAAU;EACV,OAAO;EACR,CAAC;CAEF,MAAM,CAAC,QAAQ,aAAaA,cAA4B,OAAO;EAC7D,UAAU;EACV,OAAO;EACR,CAAC;CAEF,MAAM,aAAa,WAAW;CAE9B,MAAM,QACJ,oBAACC;EACC,WAAW,GAAG,WAAW,YAAY,MAAM;EAC/B;EACZ,cAAc;EACE;EACR;EACE;EACV,gBAAgB,UAAU,MAAM;EAChC,YAAY,WAAS;AACnB,cAAWC,OAAK;AAChB,aAAU,MAAM;;EAEL;EACb;EACA,OAAO;GACL,GAAG;GACH,GAAG,cAAc;GAClB;EACD,QAAQ;EACF;EACG;GACT;AAGJ,KAAI,CAAC,SAAS,kBAAmB,QAAO;AAExC,QACE,8CACG,CAAC,UAAU,SACV,QAEA,oBAACC;EACC,WAAW,GAAG,WAAW,YAAY,SAAS;EACpC;EACa;EACvB,OAAO;GACL,QAAQ,aAAa,UAAU;GAC/B,GAAG;GACH,GAAG,cAAc;GAClB;EACD,SAAS;EACT,GAAI;YAEH,SAAS,eAAe;GAChB,EAEZ,UACC,oBAACC;EACC,SAAS;EACT,OAAO,OAAO;EACd,QAAQ,OAAO;EACP;EACE;EACA;EACV,iBAAiB;EACjB,eAAe,MAAM;AACnB,aAAU,EAAE;AACZ,aAAU,MAAM;;EAElB,MAAM;EACO;EACP;EACC;GACP,IAEH;EAGR;AAED,gBAAgB,cAAc;AAE9B,8BAAe"}
1
+ {"version":3,"file":"EditableMessage.mjs","names":["MessageInput","text","Markdown","MessageModal"],"sources":["../../../src/chat/EditableMessage/EditableMessage.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { memo } from 'react';\nimport useControlledState from 'use-merge-value';\n\nimport Markdown from '@/Markdown';\nimport MessageInput from '@/chat/MessageInput';\nimport MessageModal from '@/chat/MessageModal';\n\nimport type { EditableMessageProps } from './type';\n\nconst EditableMessage = memo<EditableMessageProps>(\n ({\n value,\n onChange,\n classNames = {},\n onEditingChange,\n editing,\n openModal,\n onOpenChange,\n placeholder,\n showEditWhenEmpty = false,\n styles: customStyles,\n className,\n style,\n height,\n variant,\n editButtonSize,\n text,\n fullFeaturedCodeBlock,\n model,\n fontSize,\n language = 'markdown',\n markdownProps,\n }) => {\n const [isEdit, setTyping] = useControlledState(false, {\n onChange: onEditingChange,\n value: editing,\n });\n\n const [expand, setExpand] = useControlledState<boolean>(false, {\n onChange: onOpenChange,\n value: openModal,\n });\n\n const isAutoSize = height === 'auto';\n\n const input = (\n <MessageInput\n className={cx(className, classNames?.input)}\n classNames={classNames}\n defaultValue={value}\n editButtonSize={editButtonSize}\n height={height}\n language={language}\n onCancel={() => setTyping(false)}\n onConfirm={(text) => {\n onChange?.(text);\n setTyping(false);\n }}\n placeholder={placeholder}\n shortcut\n style={{\n ...style,\n ...customStyles?.input,\n }}\n styles={customStyles}\n text={text}\n variant={variant}\n />\n );\n\n if (!value && showEditWhenEmpty) return input;\n\n return (\n <>\n {!expand && isEdit ? (\n input\n ) : (\n <Markdown\n className={cx(className, classNames?.markdown)}\n fontSize={fontSize}\n fullFeaturedCodeBlock={fullFeaturedCodeBlock}\n style={{\n height: isAutoSize ? 'unset' : height,\n ...style,\n ...customStyles?.markdown,\n }}\n variant={'chat'}\n {...markdownProps}\n >\n {value || placeholder || ''}\n </Markdown>\n )}\n {expand && (\n <MessageModal\n editing={isEdit}\n extra={model?.extra}\n footer={model?.footer}\n height={height}\n language={language}\n onChange={onChange}\n onEditingChange={setTyping}\n onOpenChange={(e) => {\n setExpand(e);\n setTyping(false);\n }}\n open={expand}\n placeholder={placeholder}\n text={text}\n value={value}\n />\n )}\n </>\n );\n },\n);\n\nEditableMessage.displayName = 'EditableMessage';\n\nexport default EditableMessage;\n"],"mappings":";;;;;;;;;;;AAYA,MAAM,kBAAkB,MACrB,EACC,OACA,UACA,aAAa,EAAE,EACf,iBACA,SACA,WACA,cACA,aACA,oBAAoB,OACpB,QAAQ,cACR,WACA,OACA,QACA,SACA,gBACA,MACA,uBACA,OACA,UACA,WAAW,YACX,oBACI;CACJ,MAAM,CAAC,QAAQ,aAAa,mBAAmB,OAAO;EACpD,UAAU;EACV,OAAO;EACR,CAAC;CAEF,MAAM,CAAC,QAAQ,aAAa,mBAA4B,OAAO;EAC7D,UAAU;EACV,OAAO;EACR,CAAC;CAEF,MAAM,aAAa,WAAW;CAE9B,MAAM,QACJ,oBAACA;EACC,WAAW,GAAG,WAAW,YAAY,MAAM;EAC/B;EACZ,cAAc;EACE;EACR;EACE;EACV,gBAAgB,UAAU,MAAM;EAChC,YAAY,WAAS;AACnB,cAAWC,OAAK;AAChB,aAAU,MAAM;;EAEL;EACb;EACA,OAAO;GACL,GAAG;GACH,GAAG,cAAc;GAClB;EACD,QAAQ;EACF;EACG;GACT;AAGJ,KAAI,CAAC,SAAS,kBAAmB,QAAO;AAExC,QACE,8CACG,CAAC,UAAU,SACV,QAEA,oBAACC;EACC,WAAW,GAAG,WAAW,YAAY,SAAS;EACpC;EACa;EACvB,OAAO;GACL,QAAQ,aAAa,UAAU;GAC/B,GAAG;GACH,GAAG,cAAc;GAClB;EACD,SAAS;EACT,GAAI;YAEH,SAAS,eAAe;GAChB,EAEZ,UACC,oBAACC;EACC,SAAS;EACT,OAAO,OAAO;EACd,QAAQ,OAAO;EACP;EACE;EACA;EACV,iBAAiB;EACjB,eAAe,MAAM;AACnB,aAAU,EAAE;AACZ,aAAU,MAAM;;EAElB,MAAM;EACO;EACP;EACC;GACP,IAEH;EAGR;AAED,gBAAgB,cAAc;AAE9B,8BAAe"}
@@ -1,8 +1,8 @@
1
1
  import { EditableMessageListProps } from "./type.mjs";
2
- import * as react127 from "react";
2
+ import * as react146 from "react";
3
3
 
4
4
  //#region src/chat/EditableMessageList/EditableMessageList.d.ts
5
- declare const EditableMessageList: react127.NamedExoticComponent<EditableMessageListProps>;
5
+ declare const EditableMessageList: react146.NamedExoticComponent<EditableMessageListProps>;
6
6
  //#endregion
7
7
  export { EditableMessageList };
8
8
  //# sourceMappingURL=EditableMessageList.d.mts.map