@lobehub/ui 4.14.0 → 4.15.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 (126) 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/Burger/Burger.d.mts +2 -2
  8. package/es/CodeEditor/CodeEditor.d.mts +2 -2
  9. package/es/Collapse/Collapse.d.mts +2 -2
  10. package/es/ConfigProvider/index.d.mts +2 -2
  11. package/es/ContextMenu/ContextMenuHost.d.mts +2 -2
  12. package/es/CopyButton/CopyButton.d.mts +2 -2
  13. package/es/DatePicker/DatePicker.d.mts +2 -2
  14. package/es/DraggablePanel/components/DraggablePanelBody.d.mts +2 -2
  15. package/es/DraggablePanel/components/DraggablePanelContainer.d.mts +2 -2
  16. package/es/DraggablePanel/components/DraggablePanelFooter.d.mts +2 -2
  17. package/es/DraggablePanel/components/DraggablePanelHeader.d.mts +2 -2
  18. package/es/DraggableSideNav/DraggableSideNav.d.mts +2 -2
  19. package/es/Drawer/Drawer.d.mts +2 -2
  20. package/es/Dropdown/Dropdown.d.mts +2 -2
  21. package/es/DropdownMenu/DropdownMenu.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/Header/Header.d.mts +2 -2
  32. package/es/Highlighter/Highlighter.d.mts +2 -2
  33. package/es/Highlighter/SyntaxHighlighter/index.d.mts +2 -2
  34. package/es/Hotkey/Hotkey.d.mts +2 -2
  35. package/es/HotkeyInput/HotkeyInput.d.mts +2 -2
  36. package/es/Icon/Icon.d.mts +2 -2
  37. package/es/Icon/components/IconProvider.d.mts +3 -3
  38. package/es/Image/PreviewGroup.d.mts +2 -2
  39. package/es/Layout/components/LayoutFooter.d.mts +2 -2
  40. package/es/Layout/components/LayoutHeader.d.mts +2 -2
  41. package/es/Layout/components/LayoutMain.d.mts +2 -2
  42. package/es/Layout/components/LayoutSidebar.d.mts +2 -2
  43. package/es/Layout/components/LayoutSidebarInner.d.mts +2 -2
  44. package/es/Layout/components/LayoutToc.d.mts +2 -2
  45. package/es/List/ListItem/index.d.mts +2 -2
  46. package/es/Markdown/Markdown.d.mts +2 -2
  47. package/es/Markdown/Typography.d.mts +2 -2
  48. package/es/Markdown/components/SearchResultCards/index.d.mts +2 -2
  49. package/es/MaskShadow/MaskShadow.d.mts +2 -2
  50. package/es/Menu/Menu.d.mts +2 -2
  51. package/es/Mermaid/Mermaid.d.mts +2 -2
  52. package/es/Mermaid/SyntaxMermaid/index.d.mts +2 -2
  53. package/es/Modal/Modal.d.mts +2 -2
  54. package/es/Modal/ModalProvider.d.mts +2 -2
  55. package/es/MotionProvider/index.d.mts +2 -2
  56. package/es/Popover/PopoverGroup.mjs +18 -9
  57. package/es/Popover/PopoverGroup.mjs.map +1 -1
  58. package/es/Popover/PopoverStandalone.mjs +3 -2
  59. package/es/Popover/PopoverStandalone.mjs.map +1 -1
  60. package/es/Popover/context.d.mts +2 -2
  61. package/es/Popover/groupContext.d.mts +10 -0
  62. package/es/Popover/groupContext.mjs.map +1 -1
  63. package/es/Popover/index.d.mts +2 -2
  64. package/es/Popover/style.mjs +11 -2
  65. package/es/Popover/style.mjs.map +1 -1
  66. package/es/Popover/type.d.mts +10 -2
  67. package/es/SearchBar/SearchBar.d.mts +2 -2
  68. package/es/Segmented/Segmented.d.mts +2 -2
  69. package/es/Select/Select.d.mts +2 -2
  70. package/es/SideNav/SideNav.d.mts +2 -2
  71. package/es/SliderWithInput/SliderWithInput.d.mts +2 -2
  72. package/es/SortableList/components/DragHandle.d.mts +2 -2
  73. package/es/SortableList/components/SortableItem.d.mts +2 -2
  74. package/es/ThemeProvider/ThemeProvider.d.mts +2 -2
  75. package/es/Toc/Toc.d.mts +2 -2
  76. package/es/Tooltip/TooltipGroup.mjs +18 -9
  77. package/es/Tooltip/TooltipGroup.mjs.map +1 -1
  78. package/es/Tooltip/TooltipStandalone.mjs +3 -2
  79. package/es/Tooltip/TooltipStandalone.mjs.map +1 -1
  80. package/es/Tooltip/index.d.mts +1 -1
  81. package/es/Tooltip/style.mjs +7 -0
  82. package/es/Tooltip/style.mjs.map +1 -1
  83. package/es/Tooltip/type.d.mts +21 -2
  84. package/es/Video/index.d.mts +2 -2
  85. package/es/awesome/AuroraBackground/AuroraBackground.d.mts +2 -2
  86. package/es/awesome/BottomGradientButton/BottomGradientButton.d.mts +2 -2
  87. package/es/awesome/Features/Features.d.mts +2 -2
  88. package/es/awesome/Giscus/Giscus.d.mts +2 -2
  89. package/es/awesome/GradientButton/GradientButton.d.mts +2 -2
  90. package/es/awesome/GridBackground/GridBackground.d.mts +2 -2
  91. package/es/awesome/GridBackground/GridShowcase.d.mts +2 -2
  92. package/es/awesome/Hero/Hero.d.mts +2 -2
  93. package/es/awesome/Spline/Spine.d.mts +2 -2
  94. package/es/awesome/Spotlight/Spotlight.d.mts +2 -2
  95. package/es/awesome/SpotlightCard/SpotlightCard.d.mts +2 -2
  96. package/es/awesome/TypewriterEffect/TypewriterEffect.d.mts +2 -2
  97. package/es/brand/LobeChat/index.d.mts +2 -2
  98. package/es/brand/LobeHub/index.d.mts +2 -2
  99. package/es/brand/LogoThree/LogoSpline.d.mts +2 -2
  100. package/es/brand/LogoThree/index.d.mts +2 -2
  101. package/es/chat/BackBottom/BackBottom.d.mts +2 -2
  102. package/es/chat/ChatItem/ChatItem.d.mts +2 -2
  103. package/es/color/ColorScales/index.d.mts +2 -2
  104. package/es/color/CssVar/index.d.mts +2 -2
  105. package/es/i18n/context.d.mts +2 -2
  106. package/es/icons/lucideExtra/BotPromptIcon.d.mts +2 -2
  107. package/es/icons/lucideExtra/CreateBotIcon.d.mts +3 -3
  108. package/es/icons/lucideExtra/DiscordIcon.d.mts +3 -3
  109. package/es/icons/lucideExtra/GlobeOffIcon.d.mts +3 -3
  110. package/es/icons/lucideExtra/GroupBotIcon.d.mts +3 -3
  111. package/es/icons/lucideExtra/GroupBotSquareIcon.d.mts +3 -3
  112. package/es/icons/lucideExtra/LeftClickIcon.d.mts +3 -3
  113. package/es/icons/lucideExtra/LeftDoubleClickIcon.d.mts +3 -3
  114. package/es/icons/lucideExtra/McpIcon.d.mts +3 -3
  115. package/es/icons/lucideExtra/ProviderIcon.d.mts +3 -3
  116. package/es/icons/lucideExtra/RightClickIcon.d.mts +3 -3
  117. package/es/icons/lucideExtra/RightDoubleClickIcon.d.mts +3 -3
  118. package/es/icons/lucideExtra/ShapesUploadIcon.d.mts +3 -3
  119. package/es/icons/lucideExtra/TreeDownRightIcon.d.mts +3 -3
  120. package/es/icons/lucideExtra/TreeUpDownRightIcon.d.mts +3 -3
  121. package/es/mdx/Mdx/index.d.mts +2 -2
  122. package/es/mobile/TabBar/TabBar.d.mts +2 -2
  123. package/es/storybook/StoryBook/index.d.mts +2 -2
  124. package/es/utils/destroyOnInvalidActiveTriggerElement.mjs +88 -0
  125. package/es/utils/destroyOnInvalidActiveTriggerElement.mjs.map +1 -0
  126. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipGroup.mjs","names":["TooltipGroup: FC<TooltipGroupProps>","BaseTooltip","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, useEffect, useMemo, useRef, useState } from 'react';\n\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 layoutAnimation = false,\n ...sharedProps\n}) => {\n const handle = useMemo(() => BaseTooltip.createHandle<TooltipGroupItem>(), []);\n const activeItemRef = useRef<TooltipGroupItem | null>(null);\n\n const [updateKey, setUpdateKey] = useState(0);\n useEffect(() => {\n setUpdateKey((prev) => prev + 1);\n }, [handle]);\n\n const handleOpenChange = useCallback((open: boolean) => {\n activeItemRef.current?.onOpenChange?.(open);\n }, []);\n\n const portalContainer = useTooltipPortalContainer();\n\n return (\n <TooltipGroupHandleContext.Provider value={handle}>\n <TooltipGroupPropsContext.Provider value={sharedProps}>\n {children}\n <BaseTooltip.Root handle={handle} key={updateKey} 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 ) : (\n popup\n );\n }}\n </BaseTooltip.Root>\n </TooltipGroupPropsContext.Provider>\n </TooltipGroupHandleContext.Provider>\n );\n};\n\nTooltipGroup.displayName = 'TooltipGroup';\n\nexport default TooltipGroup;\n"],"mappings":";;;;;;;;;;;;;;AAmBA,MAAMA,gBAAuC,EAC3C,UACA,kBAAkB,OAClB,GAAG,kBACC;CACJ,MAAM,SAAS,cAAcC,QAAY,cAAgC,EAAE,EAAE,CAAC;CAC9E,MAAM,gBAAgB,OAAgC,KAAK;CAE3D,MAAM,CAAC,WAAW,gBAAgB,SAAS,EAAE;AAC7C,iBAAgB;AACd,gBAAc,SAAS,OAAO,EAAE;IAC/B,CAAC,OAAO,CAAC;CAEZ,MAAM,mBAAmB,aAAa,SAAkB;AACtD,gBAAc,SAAS,eAAe,KAAK;IAC1C,EAAE,CAAC;CAEN,MAAM,kBAAkB,2BAA2B;AAEnD,QACE,oBAAC,0BAA0B;EAAS,OAAO;YACzC,qBAAC,yBAAyB;GAAS,OAAO;cACvC,UACD,oBAACA,QAAY;IAAa;IAAwB,cAAc;eAC5D,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,oBAACC;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,oBAACD,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,GAE5E;;MA9FiC,UAiGpB;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 {\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"}
@@ -21,7 +21,7 @@ const DEFAULT_CLOSE_DELAY = 100;
21
21
  * Tooltip component - displays small contextual hints on hover/focus
22
22
  * Compatible with Ant Design Tooltip-like API (subset)
23
23
  */
24
- const TooltipStandalone = memo(({ children, title, arrow = false, className, classNames, closeDelay, defaultOpen = false, disabled = false, getPopupContainer, hotkey, hotkeyProps, mouseEnterDelay, mouseLeaveDelay, onOpenChange, open, openDelay, placement = "top", styles: styleProps, zIndex, ref: refProp, positionerProps, triggerProps, popupProps }) => {
24
+ const TooltipStandalone = memo(({ children, title, arrow = false, className, classNames, closeDelay, defaultOpen = false, disabled = false, getPopupContainer, hotkey, hotkeyProps, mouseEnterDelay, mouseLeaveDelay, onOpenChange, open, openDelay, placement = "top", styles: styleProps, zIndex, ref: refProp, positionerProps, triggerProps, popupProps, portalProps }) => {
25
25
  const isClient = useIsClient();
26
26
  const [uncontrolledOpen, setUncontrolledOpen] = useState(Boolean(defaultOpen));
27
27
  const resolvedOpen = disabled ? false : open ?? uncontrolledOpen;
@@ -164,8 +164,9 @@ const TooltipStandalone = memo(({ children, title, arrow = false, className, cla
164
164
  open: resolvedOpen,
165
165
  children: [triggerElement, resolvedPortalContainer ? /* @__PURE__ */ jsx(Tooltip.Portal, {
166
166
  container: resolvedPortalContainer,
167
+ ...portalProps,
167
168
  children: popup
168
- }) : popup]
169
+ }) : null]
169
170
  });
170
171
  });
171
172
  TooltipStandalone.displayName = "TooltipStandalone";
@@ -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 }) => {\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}>{popup}</BaseTooltip.Portal>\n ) : (\n popup\n )}\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 { 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,3 +1,3 @@
1
- import { TooltipGroupProps, TooltipPlacement, TooltipPopupComponentProps, TooltipPositionerProps, TooltipProps, TooltipTriggerComponentProps } from "./type.mjs";
1
+ import { TooltipGroupProps, TooltipPlacement, TooltipPopupComponentProps, TooltipPortalProps, TooltipPositionerProps, TooltipProps, TooltipTriggerComponentProps } from "./type.mjs";
2
2
  import { Tooltip } from "./Tooltip.mjs";
3
3
  import { TooltipGroup } from "./TooltipGroup.mjs";
@@ -106,6 +106,13 @@ const styles = createStaticStyles(({ css: css$1, cssVar: cssVar$1 }) => ({
106
106
  transition: none;
107
107
  }
108
108
 
109
+ /* Fallback: never show a tooltip when the anchor is hidden or the positioner falls back to (0,0). */
110
+ &[data-anchor-hidden],
111
+ &[data-zero-origin='true'] {
112
+ pointer-events: none;
113
+ visibility: hidden;
114
+ }
115
+
109
116
  &[data-placement='top'],
110
117
  &[data-placement='topLeft'],
111
118
  &[data-placement='topRight'] {
@@ -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 &[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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgD5D,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.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"}
@@ -2,7 +2,7 @@ import { HotkeyProps } from "../Hotkey/type.mjs";
2
2
  import "../Hotkey/index.mjs";
3
3
  import { Placement } from "../utils/placement.mjs";
4
4
  import { CSSProperties, ReactElement, ReactNode, Ref } from "react";
5
- import { TooltipPopupProps, TooltipPositionerProps, TooltipTriggerProps } from "@base-ui/react/tooltip";
5
+ import { TooltipPopupProps, TooltipPortalProps, TooltipPositionerProps, TooltipTriggerProps } from "@base-ui/react/tooltip";
6
6
 
7
7
  //#region src/Tooltip/type.d.ts
8
8
  type TooltipPlacement = Placement;
@@ -18,6 +18,10 @@ type TooltipTriggerComponentProps = Omit<TooltipTriggerProps, 'className' | 'sty
18
18
  * Base UI Popup props that can be passed through
19
19
  */
20
20
  type TooltipPopupComponentProps = Omit<TooltipPopupProps, 'className' | 'style' | 'children'>;
21
+ /**
22
+ * Base UI Portal props that can be passed through
23
+ */
24
+ type TooltipPortalProps$1 = Omit<TooltipPortalProps, 'children' | 'container'>;
21
25
  interface TooltipProps {
22
26
  /**
23
27
  * Whether the tooltip has an arrow pointer.
@@ -91,6 +95,10 @@ interface TooltipProps {
91
95
  * Base UI Popup 组件的 props
92
96
  */
93
97
  popupProps?: TooltipPopupComponentProps;
98
+ /**
99
+ * Base UI Portal 组件的 props
100
+ */
101
+ portalProps?: TooltipPortalProps$1;
94
102
  /**
95
103
  * Base UI Positioner 组件的 props
96
104
  */
@@ -135,6 +143,16 @@ interface TooltipGroupProps {
135
143
  className?: string;
136
144
  classNames?: TooltipProps['classNames'];
137
145
  closeDelay?: number;
146
+ /**
147
+ * Disable the "destroy on invalid trigger (display:none / disconnected)" guard for performance.
148
+ * @default false
149
+ */
150
+ disableDestroyOnInvalidTrigger?: boolean;
151
+ /**
152
+ * Disable the "hide when positioner falls back to (0,0)" visual guard for performance.
153
+ * @default false
154
+ */
155
+ disableZeroOriginGuard?: boolean;
138
156
  disabled?: boolean;
139
157
  getPopupContainer?: TooltipProps['getPopupContainer'];
140
158
  hotkey?: string;
@@ -145,11 +163,12 @@ interface TooltipGroupProps {
145
163
  openDelay?: number;
146
164
  placement?: TooltipPlacement;
147
165
  popupProps?: TooltipPopupComponentProps;
166
+ portalProps?: TooltipPortalProps$1;
148
167
  positionerProps?: TooltipPositionerProps$1;
149
168
  styles?: TooltipProps['styles'];
150
169
  triggerProps?: TooltipTriggerComponentProps;
151
170
  zIndex?: number;
152
171
  }
153
172
  //#endregion
154
- export { TooltipGroupProps, TooltipPlacement, TooltipPopupComponentProps, TooltipPositionerProps$1 as TooltipPositionerProps, TooltipProps, TooltipTriggerComponentProps };
173
+ export { TooltipGroupProps, TooltipPlacement, TooltipPopupComponentProps, TooltipPortalProps$1 as TooltipPortalProps, TooltipPositionerProps$1 as TooltipPositionerProps, TooltipProps, TooltipTriggerComponentProps };
155
174
  //# sourceMappingURL=type.d.mts.map
@@ -1,7 +1,7 @@
1
1
  import { FlexboxProps } from "../Flex/type.mjs";
2
2
  import "../Flex/index.mjs";
3
3
  import { VideoProps as VideoProps$1 } from "../types/index.mjs";
4
- import * as react73 from "react";
4
+ import * as react74 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: react73.NamedExoticComponent<VideoProps>;
42
+ declare const Video: react74.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 react125 from "react";
2
+ import * as react126 from "react";
3
3
 
4
4
  //#region src/awesome/AuroraBackground/AuroraBackground.d.ts
5
- declare const AuroraBackground: react125.NamedExoticComponent<AuroraBackgroundProps>;
5
+ declare const AuroraBackground: react126.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 react130 from "react";
3
+ import * as react132 from "react";
4
4
 
5
5
  //#region src/awesome/BottomGradientButton/BottomGradientButton.d.ts
6
- declare const BottomGradientButton: react130.NamedExoticComponent<ButtonProps>;
6
+ declare const BottomGradientButton: react132.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 react126 from "react";
2
+ import * as react133 from "react";
3
3
 
4
4
  //#region src/awesome/Features/Features.d.ts
5
- declare const Features: react126.NamedExoticComponent<FeaturesProps>;
5
+ declare const Features: react133.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 react127 from "react";
2
+ import * as react134 from "react";
3
3
 
4
4
  //#region src/awesome/Giscus/Giscus.d.ts
5
- declare const Giscus: react127.NamedExoticComponent<GiscusProps>;
5
+ declare const Giscus: react134.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 react131 from "react";
2
+ import * as react135 from "react";
3
3
 
4
4
  //#region src/awesome/GradientButton/GradientButton.d.ts
5
- declare const GradientButton: react131.NamedExoticComponent<GradientButtonProps>;
5
+ declare const GradientButton: react135.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 react128 from "react";
2
+ import * as react127 from "react";
3
3
 
4
4
  //#region src/awesome/GridBackground/GridBackground.d.ts
5
- declare const GridBackground: react128.NamedExoticComponent<GridBackgroundProps>;
5
+ declare const GridBackground: react127.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 react129 from "react";
2
+ import * as react128 from "react";
3
3
 
4
4
  //#region src/awesome/GridBackground/GridShowcase.d.ts
5
- declare const GridShowcase: react129.NamedExoticComponent<GridShowcaseProps>;
5
+ declare const GridShowcase: react128.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 react132 from "react";
2
+ import * as react129 from "react";
3
3
 
4
4
  //#region src/awesome/Hero/Hero.d.ts
5
- declare const Hero: react132.NamedExoticComponent<HeroProps>;
5
+ declare const Hero: react129.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 react133 from "react";
2
+ import * as react130 from "react";
3
3
  import "@splinetool/runtime";
4
4
 
5
5
  //#region src/awesome/Spline/Spine.d.ts
6
- declare const Spline: react133.NamedExoticComponent<SplineProps>;
6
+ declare const Spline: react130.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 react134 from "react";
2
+ import * as react131 from "react";
3
3
 
4
4
  //#region src/awesome/Spotlight/Spotlight.d.ts
5
- declare const Spotlight: react134.NamedExoticComponent<SpotlightProps>;
5
+ declare const Spotlight: react131.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 react135 from "react";
2
+ import * as react136 from "react";
3
3
 
4
4
  //#region src/awesome/SpotlightCard/SpotlightCard.d.ts
5
- declare const SpotlightCard: react135.NamedExoticComponent<SpotlightCardProps<any>>;
5
+ declare const SpotlightCard: react136.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 react136 from "react";
2
+ import * as react125 from "react";
3
3
 
4
4
  //#region src/awesome/TypewriterEffect/TypewriterEffect.d.ts
5
- declare const TypewriterEffect: react136.NamedExoticComponent<TypewriterEffectProps>;
5
+ declare const TypewriterEffect: react125.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 react23 from "react";
2
+ import * as react15 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: react23.NamedExoticComponent<LobeChatProps>;
11
+ declare const LobeChat: react15.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 react24 from "react";
2
+ import * as react16 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: react24.NamedExoticComponent<LobeHubProps>;
11
+ declare const LobeHub: react16.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 react22 from "react";
3
+ import * as react17 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: react22.NamedExoticComponent<LogoSplineProps>;
13
+ declare const LogoSpline: react17.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 react25 from "react";
3
+ import * as react18 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: react25.NamedExoticComponent<LogoThreeProps>;
12
+ declare const LogoThree: react18.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 react118 from "react";
2
+ import * as react117 from "react";
3
3
 
4
4
  //#region src/chat/BackBottom/BackBottom.d.ts
5
- declare const BackBottom: react118.NamedExoticComponent<BackBottomProps>;
5
+ declare const BackBottom: react117.NamedExoticComponent<BackBottomProps>;
6
6
  //#endregion
7
7
  export { BackBottom };
8
8
  //# sourceMappingURL=BackBottom.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { ChatItemProps } from "./type.mjs";
2
- import * as react117 from "react";
2
+ import * as react118 from "react";
3
3
 
4
4
  //#region src/chat/ChatItem/ChatItem.d.ts
5
- declare const ChatItem: react117.NamedExoticComponent<ChatItemProps>;
5
+ declare const ChatItem: react118.NamedExoticComponent<ChatItemProps>;
6
6
  //#endregion
7
7
  export { ChatItem };
8
8
  //# sourceMappingURL=ChatItem.d.mts.map
@@ -1,5 +1,5 @@
1
1
  import { ColorScaleItem } from "../types.mjs";
2
- import * as react19 from "react";
2
+ import * as react10 from "react";
3
3
 
4
4
  //#region src/color/ColorScales/index.d.ts
5
5
  interface ColorScalesProps {
@@ -16,7 +16,7 @@ interface ColorScalesProps {
16
16
  */
17
17
  scale: ColorScaleItem;
18
18
  }
19
- declare const ColorScales: react19.NamedExoticComponent<ColorScalesProps>;
19
+ declare const ColorScales: react10.NamedExoticComponent<ColorScalesProps>;
20
20
  //#endregion
21
21
  export { ColorScales, ColorScalesProps };
22
22
  //# sourceMappingURL=index.d.mts.map
@@ -1,5 +1,5 @@
1
1
  import { ColorScaleItem } from "../types.mjs";
2
- import * as react20 from "react";
2
+ import * as react11 from "react";
3
3
 
4
4
  //#region src/color/CssVar/index.d.ts
5
5
  interface ColorScalesProps {
@@ -16,7 +16,7 @@ interface ColorScalesProps {
16
16
  */
17
17
  scale: ColorScaleItem;
18
18
  }
19
- declare const ColorScales: react20.NamedExoticComponent<ColorScalesProps>;
19
+ declare const ColorScales: react11.NamedExoticComponent<ColorScalesProps>;
20
20
  //#endregion
21
21
  export { ColorScales };
22
22
  //# sourceMappingURL=index.d.mts.map
@@ -1,7 +1,7 @@
1
1
  import { MotionComponentType } from "../MotionProvider/index.mjs";
2
2
  import { I18nContextValue, TranslationKey, TranslationResources, TranslationResourcesInput } from "./types.mjs";
3
3
  import "../ConfigProvider/index.mjs";
4
- import * as react21 from "react";
4
+ import * as react13 from "react";
5
5
  import { ReactNode } from "react";
6
6
 
7
7
  //#region src/i18n/context.d.ts
@@ -11,7 +11,7 @@ interface I18nProviderProps {
11
11
  motion: MotionComponentType;
12
12
  resources?: TranslationResourcesInput;
13
13
  }
14
- declare const I18nProvider: react21.NamedExoticComponent<I18nProviderProps>;
14
+ declare const I18nProvider: react13.NamedExoticComponent<I18nProviderProps>;
15
15
  //#endregion
16
16
  export { I18nProvider, I18nProviderProps };
17
17
  //# sourceMappingURL=context.d.mts.map
@@ -1,8 +1,8 @@
1
- import * as react78 from "react";
1
+ import * as react83 from "react";
2
2
  import * as lucide_react0 from "lucide-react";
3
3
 
4
4
  //#region src/icons/lucideExtra/BotPromptIcon.d.ts
5
- declare const BotPromptIcon: react78.ForwardRefExoticComponent<Omit<lucide_react0.LucideProps, "ref"> & react78.RefAttributes<SVGSVGElement>>;
5
+ declare const BotPromptIcon: react83.ForwardRefExoticComponent<Omit<lucide_react0.LucideProps, "ref"> & react83.RefAttributes<SVGSVGElement>>;
6
6
  //#endregion
7
7
  export { BotPromptIcon };
8
8
  //# sourceMappingURL=BotPromptIcon.d.mts.map
@@ -1,8 +1,8 @@
1
- import * as react76 from "react";
2
- import * as lucide_react0 from "lucide-react";
1
+ import * as react85 from "react";
2
+ import * as lucide_react1 from "lucide-react";
3
3
 
4
4
  //#region src/icons/lucideExtra/CreateBotIcon.d.ts
5
- declare const CreateBotIcon: react76.ForwardRefExoticComponent<Omit<lucide_react0.LucideProps, "ref"> & react76.RefAttributes<SVGSVGElement>>;
5
+ declare const CreateBotIcon: react85.ForwardRefExoticComponent<Omit<lucide_react1.LucideProps, "ref"> & react85.RefAttributes<SVGSVGElement>>;
6
6
  //#endregion
7
7
  export { CreateBotIcon };
8
8
  //# sourceMappingURL=CreateBotIcon.d.mts.map
@@ -1,8 +1,8 @@
1
- import * as react82 from "react";
2
- import * as lucide_react2 from "lucide-react";
1
+ import * as react81 from "react";
2
+ import * as lucide_react0 from "lucide-react";
3
3
 
4
4
  //#region src/icons/lucideExtra/DiscordIcon.d.ts
5
- declare const DiscordIcon: react82.ForwardRefExoticComponent<Omit<lucide_react2.LucideProps, "ref"> & react82.RefAttributes<SVGSVGElement>>;
5
+ declare const DiscordIcon: react81.ForwardRefExoticComponent<Omit<lucide_react0.LucideProps, "ref"> & react81.RefAttributes<SVGSVGElement>>;
6
6
  //#endregion
7
7
  export { DiscordIcon };
8
8
  //# sourceMappingURL=DiscordIcon.d.mts.map
@@ -1,8 +1,8 @@
1
- import * as react88 from "react";
2
- import * as lucide_react5 from "lucide-react";
1
+ import * as react89 from "react";
2
+ import * as lucide_react3 from "lucide-react";
3
3
 
4
4
  //#region src/icons/lucideExtra/GlobeOffIcon.d.ts
5
- declare const GlobeOffIcon: react88.ForwardRefExoticComponent<Omit<lucide_react5.LucideProps, "ref"> & react88.RefAttributes<SVGSVGElement>>;
5
+ declare const GlobeOffIcon: react89.ForwardRefExoticComponent<Omit<lucide_react3.LucideProps, "ref"> & react89.RefAttributes<SVGSVGElement>>;
6
6
  //#endregion
7
7
  export { GlobeOffIcon };
8
8
  //# sourceMappingURL=GlobeOffIcon.d.mts.map
@@ -1,8 +1,8 @@
1
- import * as react84 from "react";
2
- import * as lucide_react3 from "lucide-react";
1
+ import * as react93 from "react";
2
+ import * as lucide_react5 from "lucide-react";
3
3
 
4
4
  //#region src/icons/lucideExtra/GroupBotIcon.d.ts
5
- declare const GroupBotIcon: react84.ForwardRefExoticComponent<Omit<lucide_react3.LucideProps, "ref"> & react84.RefAttributes<SVGSVGElement>>;
5
+ declare const GroupBotIcon: react93.ForwardRefExoticComponent<Omit<lucide_react5.LucideProps, "ref"> & react93.RefAttributes<SVGSVGElement>>;
6
6
  //#endregion
7
7
  export { GroupBotIcon };
8
8
  //# sourceMappingURL=GroupBotIcon.d.mts.map