@lobehub/ui 4.3.13 → 4.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) 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/CopyButton/CopyButton.d.mts +2 -2
  12. package/es/DatePicker/DatePicker.d.mts +2 -2
  13. package/es/DraggablePanel/components/DraggablePanelBody.d.mts +2 -2
  14. package/es/DraggablePanel/components/DraggablePanelContainer.d.mts +2 -2
  15. package/es/DraggablePanel/components/DraggablePanelFooter.d.mts +2 -2
  16. package/es/DraggablePanel/components/DraggablePanelHeader.d.mts +2 -2
  17. package/es/DraggableSideNav/DraggableSideNav.d.mts +2 -2
  18. package/es/Drawer/Drawer.d.mts +2 -2
  19. package/es/Dropdown/Dropdown.d.mts +2 -2
  20. package/es/EditableText/EditableText.d.mts +2 -2
  21. package/es/EmojiPicker/EmojiPicker.d.mts +2 -2
  22. package/es/Flex/FlexBasic.d.mts +2 -2
  23. package/es/FontLoader/index.d.mts +2 -2
  24. package/es/Footer/Footer.d.mts +2 -2
  25. package/es/Form/components/FormGroup.d.mts +2 -2
  26. package/es/Form/components/FormItem.d.mts +2 -2
  27. package/es/Form/components/FormSubmitFooter.d.mts +2 -2
  28. package/es/FormModal/FormModal.d.mts +2 -2
  29. package/es/Header/Header.d.mts +2 -2
  30. package/es/Highlighter/Highlighter.d.mts +2 -2
  31. package/es/Highlighter/SyntaxHighlighter/index.d.mts +2 -2
  32. package/es/Hotkey/Hotkey.d.mts +2 -2
  33. package/es/HotkeyInput/HotkeyInput.d.mts +2 -2
  34. package/es/Icon/Icon.d.mts +2 -2
  35. package/es/Icon/components/IconProvider.d.mts +3 -3
  36. package/es/Image/PreviewGroup.d.mts +2 -2
  37. package/es/Layout/components/LayoutFooter.d.mts +2 -2
  38. package/es/Layout/components/LayoutHeader.d.mts +2 -2
  39. package/es/Layout/components/LayoutMain.d.mts +2 -2
  40. package/es/Layout/components/LayoutSidebar.d.mts +2 -2
  41. package/es/Layout/components/LayoutSidebarInner.d.mts +2 -2
  42. package/es/Layout/components/LayoutToc.d.mts +2 -2
  43. package/es/List/ListItem/index.d.mts +2 -2
  44. package/es/Markdown/Markdown.d.mts +2 -2
  45. package/es/Markdown/Typography.d.mts +2 -2
  46. package/es/Markdown/components/SearchResultCards/index.d.mts +2 -2
  47. package/es/MaskShadow/MaskShadow.d.mts +2 -2
  48. package/es/Menu/Menu.d.mts +2 -2
  49. package/es/Mermaid/Mermaid.d.mts +2 -2
  50. package/es/Mermaid/SyntaxMermaid/index.d.mts +2 -2
  51. package/es/Modal/Modal.d.mts +2 -2
  52. package/es/MotionProvider/index.d.mts +2 -2
  53. package/es/SearchBar/SearchBar.d.mts +2 -2
  54. package/es/Segmented/Segmented.d.mts +2 -2
  55. package/es/Select/Select.d.mts +2 -2
  56. package/es/SideNav/SideNav.d.mts +2 -2
  57. package/es/SliderWithInput/SliderWithInput.d.mts +2 -2
  58. package/es/SortableList/components/DragHandle.d.mts +2 -2
  59. package/es/SortableList/components/SortableItem.d.mts +2 -2
  60. package/es/ThemeProvider/ThemeProvider.d.mts +2 -2
  61. package/es/ThemeProvider/ThemeProvider.mjs +6 -1
  62. package/es/ThemeProvider/ThemeProvider.mjs.map +1 -1
  63. package/es/ThemeProvider/constants.d.mts +5 -0
  64. package/es/ThemeProvider/constants.mjs +6 -0
  65. package/es/ThemeProvider/constants.mjs.map +1 -0
  66. package/es/ThemeProvider/index.d.mts +2 -1
  67. package/es/ThemeProvider/index.mjs +2 -1
  68. package/es/Toc/Toc.d.mts +2 -2
  69. package/es/Tooltip/Tooltip.mjs +2 -2
  70. package/es/Tooltip/Tooltip.mjs.map +1 -1
  71. package/es/Tooltip/TooltipPortal.mjs +22 -12
  72. package/es/Tooltip/TooltipPortal.mjs.map +1 -1
  73. package/es/Video/index.d.mts +2 -2
  74. package/es/awesome/AuroraBackground/AuroraBackground.d.mts +2 -2
  75. package/es/awesome/BottomGradientButton/BottomGradientButton.d.mts +2 -2
  76. package/es/awesome/Features/Features.d.mts +2 -2
  77. package/es/awesome/Giscus/Giscus.d.mts +2 -2
  78. package/es/awesome/GradientButton/GradientButton.d.mts +2 -2
  79. package/es/awesome/GridBackground/GridBackground.d.mts +2 -2
  80. package/es/awesome/GridBackground/GridShowcase.d.mts +2 -2
  81. package/es/awesome/Hero/Hero.d.mts +2 -2
  82. package/es/awesome/Spline/Spine.d.mts +2 -2
  83. package/es/awesome/Spotlight/Spotlight.d.mts +2 -2
  84. package/es/awesome/SpotlightCard/SpotlightCard.d.mts +2 -2
  85. package/es/awesome/TypewriterEffect/TypewriterEffect.d.mts +2 -2
  86. package/es/brand/LobeChat/index.d.mts +2 -2
  87. package/es/brand/LobeHub/index.d.mts +2 -2
  88. package/es/brand/LogoThree/LogoSpline.d.mts +2 -2
  89. package/es/brand/LogoThree/index.d.mts +2 -2
  90. package/es/chat/BackBottom/BackBottom.d.mts +2 -2
  91. package/es/chat/ChatInputArea/components/ChatInputAreaInner.d.mts +2 -2
  92. package/es/chat/ChatItem/ChatItem.d.mts +2 -2
  93. package/es/chat/ChatList/ChatList.d.mts +2 -2
  94. package/es/chat/EditableMessage/EditableMessage.d.mts +2 -2
  95. package/es/chat/EditableMessageList/EditableMessageList.d.mts +2 -2
  96. package/es/chat/MessageInput/MessageInput.d.mts +2 -2
  97. package/es/chat/MessageModal/MessageModal.d.mts +2 -2
  98. package/es/color/ColorScales/index.d.mts +2 -2
  99. package/es/color/CssVar/index.d.mts +2 -2
  100. package/es/i18n/context.d.mts +2 -2
  101. package/es/icons/lucideExtra/BotPromptIcon.d.mts +2 -2
  102. package/es/icons/lucideExtra/CreateBotIcon.d.mts +2 -2
  103. package/es/icons/lucideExtra/DiscordIcon.d.mts +2 -2
  104. package/es/icons/lucideExtra/GlobeOffIcon.d.mts +3 -3
  105. package/es/icons/lucideExtra/GroupBotIcon.d.mts +3 -3
  106. package/es/icons/lucideExtra/GroupBotSquareIcon.d.mts +3 -3
  107. package/es/icons/lucideExtra/LeftClickIcon.d.mts +3 -3
  108. package/es/icons/lucideExtra/LeftDoubleClickIcon.d.mts +3 -3
  109. package/es/icons/lucideExtra/McpIcon.d.mts +2 -2
  110. package/es/icons/lucideExtra/ProviderIcon.d.mts +3 -3
  111. package/es/icons/lucideExtra/RightClickIcon.d.mts +2 -2
  112. package/es/icons/lucideExtra/RightDoubleClickIcon.d.mts +3 -3
  113. package/es/icons/lucideExtra/ShapesUploadIcon.d.mts +3 -3
  114. package/es/icons/lucideExtra/TreeDownRightIcon.d.mts +3 -3
  115. package/es/icons/lucideExtra/TreeUpDownRightIcon.d.mts +3 -3
  116. package/es/mdx/Mdx/index.d.mts +2 -2
  117. package/es/mobile/ChatInputArea/components/ChatSendButton.d.mts +2 -2
  118. package/es/mobile/TabBar/TabBar.d.mts +2 -2
  119. package/es/storybook/StoryBook/index.d.mts +2 -2
  120. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  import { SyntaxMermaidProps } from "../type.mjs";
2
- import * as react66 from "react";
2
+ import * as react33 from "react";
3
3
 
4
4
  //#region src/Mermaid/SyntaxMermaid/index.d.ts
5
- declare const SyntaxMermaid: react66.NamedExoticComponent<SyntaxMermaidProps>;
5
+ declare const SyntaxMermaid: react33.NamedExoticComponent<SyntaxMermaidProps>;
6
6
  //#endregion
7
7
  export { SyntaxMermaid };
8
8
  //# sourceMappingURL=index.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { ModalProps } from "./type.mjs";
2
- import * as react6 from "react";
2
+ import * as react31 from "react";
3
3
 
4
4
  //#region src/Modal/Modal.d.ts
5
- declare const Modal: react6.NamedExoticComponent<ModalProps>;
5
+ declare const Modal: react31.NamedExoticComponent<ModalProps>;
6
6
  //#endregion
7
7
  export { Modal };
8
8
  //# sourceMappingURL=Modal.d.mts.map
@@ -1,4 +1,4 @@
1
- import * as react61 from "react";
1
+ import * as react63 from "react";
2
2
  import { Context, ReactNode } from "react";
3
3
  import * as motion_react0 from "motion/react";
4
4
  import * as m from "motion/react-m";
@@ -6,7 +6,7 @@ import * as m from "motion/react-m";
6
6
  //#region src/MotionProvider/index.d.ts
7
7
  type MotionComponentType = typeof motion_react0.motion | typeof m;
8
8
  declare const MotionComponent: Context<MotionComponentType>;
9
- declare const MotionProvider: react61.NamedExoticComponent<{
9
+ declare const MotionProvider: react63.NamedExoticComponent<{
10
10
  children: ReactNode;
11
11
  motion: MotionComponentType;
12
12
  }>;
@@ -1,8 +1,8 @@
1
1
  import { SearchBarProps } from "./type.mjs";
2
- import * as react3 from "react";
2
+ import * as react14 from "react";
3
3
 
4
4
  //#region src/SearchBar/SearchBar.d.ts
5
- declare const SearchBar: react3.NamedExoticComponent<SearchBarProps>;
5
+ declare const SearchBar: react14.NamedExoticComponent<SearchBarProps>;
6
6
  //#endregion
7
7
  export { SearchBar };
8
8
  //# sourceMappingURL=SearchBar.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { SegmentedProps } from "./type.mjs";
2
- import * as react4 from "react";
2
+ import * as react10 from "react";
3
3
 
4
4
  //#region src/Segmented/Segmented.d.ts
5
- declare const Segmented: react4.NamedExoticComponent<SegmentedProps>;
5
+ declare const Segmented: react10.NamedExoticComponent<SegmentedProps>;
6
6
  //#endregion
7
7
  export { Segmented };
8
8
  //# sourceMappingURL=Segmented.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { SelectProps } from "./type.mjs";
2
- import * as react41 from "react";
2
+ import * as react45 from "react";
3
3
 
4
4
  //#region src/Select/Select.d.ts
5
- declare const Input: react41.NamedExoticComponent<SelectProps>;
5
+ declare const Input: react45.NamedExoticComponent<SelectProps>;
6
6
  //#endregion
7
7
  export { Input };
8
8
  //# sourceMappingURL=Select.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { SideNavProps } from "./type.mjs";
2
- import * as react39 from "react";
2
+ import * as react38 from "react";
3
3
 
4
4
  //#region src/SideNav/SideNav.d.ts
5
- declare const SideNav: react39.NamedExoticComponent<SideNavProps>;
5
+ declare const SideNav: react38.NamedExoticComponent<SideNavProps>;
6
6
  //#endregion
7
7
  export { SideNav };
8
8
  //# sourceMappingURL=SideNav.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { SliderWithInputProps } from "./type.mjs";
2
- import * as react22 from "react";
2
+ import * as react34 from "react";
3
3
 
4
4
  //#region src/SliderWithInput/SliderWithInput.d.ts
5
- declare const SliderWithInput: react22.NamedExoticComponent<SliderWithInputProps>;
5
+ declare const SliderWithInput: react34.NamedExoticComponent<SliderWithInputProps>;
6
6
  //#endregion
7
7
  export { SliderWithInput };
8
8
  //# sourceMappingURL=SliderWithInput.d.mts.map
@@ -1,9 +1,9 @@
1
1
  import { ActionIconProps } from "../../ActionIcon/type.mjs";
2
2
  import "../../ActionIcon/index.mjs";
3
- import * as react73 from "react";
3
+ import * as react103 from "react";
4
4
 
5
5
  //#region src/SortableList/components/DragHandle.d.ts
6
- declare const DragHandle: react73.NamedExoticComponent<ActionIconProps>;
6
+ declare const DragHandle: react103.NamedExoticComponent<ActionIconProps>;
7
7
  //#endregion
8
8
  export { DragHandle };
9
9
  //# sourceMappingURL=DragHandle.d.mts.map
@@ -1,6 +1,6 @@
1
1
  import { FlexboxProps } from "../../Flex/type.mjs";
2
2
  import "../../Flex/index.mjs";
3
- import * as react71 from "react";
3
+ import * as react101 from "react";
4
4
  import "@dnd-kit/core";
5
5
 
6
6
  //#region src/SortableList/components/SortableItem.d.ts
@@ -9,7 +9,7 @@ interface SortableItemProps extends Omit<FlexboxProps, 'id'> {
9
9
  id: string | number;
10
10
  variant?: 'borderless' | 'filled' | 'outlined';
11
11
  }
12
- declare const SortableItem: react71.NamedExoticComponent<SortableItemProps>;
12
+ declare const SortableItem: react101.NamedExoticComponent<SortableItemProps>;
13
13
  //#endregion
14
14
  export { SortableItem };
15
15
  //# sourceMappingURL=SortableItem.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { ThemeProviderProps } from "./type.mjs";
2
- import * as react63 from "react";
2
+ import * as react15 from "react";
3
3
 
4
4
  //#region src/ThemeProvider/ThemeProvider.d.ts
5
- declare const ThemeProvider: react63.NamedExoticComponent<ThemeProviderProps>;
5
+ declare const ThemeProvider: react15.NamedExoticComponent<ThemeProviderProps>;
6
6
  //#endregion
7
7
  export { ThemeProvider };
8
8
  //# sourceMappingURL=ThemeProvider.d.mts.map
@@ -3,6 +3,7 @@
3
3
  import { useCdnFn } from "../ConfigProvider/index.mjs";
4
4
  import { generateCustomStylish } from "../styles/theme/customStylish.mjs";
5
5
  import { generateCustomToken } from "../styles/theme/customToken.mjs";
6
+ import { LOBE_THEME_APP_ID } from "./constants.mjs";
6
7
  import FontLoader_default from "../FontLoader/index.mjs";
7
8
  import { createLobeAntdTheme } from "../styles/theme/antdTheme.mjs";
8
9
  import ConfigProvider_default from "./ConfigProvider.mjs";
@@ -65,7 +66,11 @@ const ThemeProvider$1 = memo(({ children, customStylish, customToken, enableCust
65
66
  width: "inherit",
66
67
  ...style
67
68
  },
68
- children
69
+ children: /* @__PURE__ */ jsx("div", {
70
+ id: LOBE_THEME_APP_ID,
71
+ style: { display: "contents" },
72
+ children
73
+ })
69
74
  })] })
70
75
  })] });
71
76
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeProvider.mjs","names":["ThemeProvider","lobeCustomStylish","theme","lobeCustomToken","FontLoader","AntdThemeProvider","AntdConfigProvider","GlobalStyle"],"sources":["../../src/ThemeProvider/ThemeProvider.tsx"],"sourcesContent":["'use client';\n\nimport { App } from 'antd';\nimport {\n ThemeProvider as AntdThemeProvider,\n CustomStylishParams,\n CustomTokenParams,\n GetAntdTheme,\n} from 'antd-style';\nimport { merge } from 'es-toolkit/compat';\nimport { memo, useCallback, useMemo } from 'react';\n\nimport { useCdnFn } from '@/ConfigProvider';\nimport FontLoader from '@/FontLoader';\nimport { lobeCustomStylish, lobeCustomToken } from '@/styles';\nimport { createLobeAntdTheme } from '@/styles/theme/antdTheme';\nimport { LobeCustomToken } from '@/types/customToken';\n\nimport AntdConfigProvider from './ConfigProvider';\nimport GlobalStyle from './GlobalStyle';\nimport type { ThemeProviderProps } from './type';\n\nconst ThemeProvider = memo<ThemeProviderProps>(\n ({\n children,\n customStylish,\n customToken,\n enableCustomFonts = true,\n enableGlobalStyle = true,\n customFonts,\n customTheme = {},\n className,\n style,\n theme: antdTheme,\n ...rest\n }) => {\n const genCdnUrl = useCdnFn();\n\n const webfontUrls = useMemo(\n () =>\n customFonts || [\n genCdnUrl({ path: 'css/index.css', pkg: '@lobehub/webfont-mono' }),\n genCdnUrl({\n path: 'css/index.css',\n pkg: '@lobehub/webfont-harmony-sans',\n }),\n genCdnUrl({\n path: 'css/index.css',\n pkg: '@lobehub/webfont-harmony-sans-sc',\n }),\n genCdnUrl({ path: 'dist/katex.min.css', pkg: 'katex' }),\n ],\n [customFonts, genCdnUrl],\n );\n\n const stylish = useCallback(\n (theme: CustomStylishParams) => ({ ...lobeCustomStylish(theme), ...customStylish?.(theme) }),\n [customStylish],\n );\n\n const token = useCallback(\n (theme: CustomTokenParams) => ({ ...lobeCustomToken(theme), ...customToken?.(theme) }),\n [customToken],\n );\n\n const theme = useCallback<GetAntdTheme>(\n (appearance) => {\n const lobeTheme = createLobeAntdTheme({\n appearance,\n neutralColor: customTheme.neutralColor,\n primaryColor: customTheme.primaryColor,\n });\n return merge(lobeTheme, antdTheme);\n },\n [customTheme.primaryColor, customTheme.neutralColor, antdTheme],\n );\n\n return (\n <>\n {enableCustomFonts &&\n webfontUrls?.length > 0 &&\n webfontUrls.map((webfont) => <FontLoader key={webfont} url={webfont} />)}\n <AntdThemeProvider<LobeCustomToken>\n customStylish={stylish}\n customToken={token}\n theme={theme}\n {...rest}\n >\n <AntdConfigProvider>\n {enableGlobalStyle && <GlobalStyle />}\n <App className={className} style={{ minHeight: 'inherit', width: 'inherit', ...style }}>\n {children}\n </App>\n </AntdConfigProvider>\n </AntdThemeProvider>\n </>\n );\n },\n);\n\nThemeProvider.displayName = 'LobeThemeProvider';\n\nexport default ThemeProvider;\n"],"mappings":";;;;;;;;;;;;;;;;AAsBA,MAAMA,kBAAgB,MACnB,EACC,UACA,eACA,aACA,oBAAoB,MACpB,oBAAoB,MACpB,aACA,cAAc,EAAE,EAChB,WACA,OACA,OAAO,WACP,GAAG,WACC;CACJ,MAAM,YAAY,UAAU;CAE5B,MAAM,cAAc,cAEhB,eAAe;EACb,UAAU;GAAE,MAAM;GAAiB,KAAK;GAAyB,CAAC;EAClE,UAAU;GACR,MAAM;GACN,KAAK;GACN,CAAC;EACF,UAAU;GACR,MAAM;GACN,KAAK;GACN,CAAC;EACF,UAAU;GAAE,MAAM;GAAsB,KAAK;GAAS,CAAC;EACxD,EACH,CAAC,aAAa,UAAU,CACzB;CAED,MAAM,UAAU,aACb,aAAgC;EAAE,GAAGC,sBAAkBC,QAAM;EAAE,GAAG,gBAAgBA,QAAM;EAAE,GAC3F,CAAC,cAAc,CAChB;CAED,MAAM,QAAQ,aACX,aAA8B;EAAE,GAAGC,oBAAgBD,QAAM;EAAE,GAAG,cAAcA,QAAM;EAAE,GACrF,CAAC,YAAY,CACd;CAED,MAAM,QAAQ,aACX,eAAe;AAMd,SAAO,MALW,oBAAoB;GACpC;GACA,cAAc,YAAY;GAC1B,cAAc,YAAY;GAC3B,CAAC,EACsB,UAAU;IAEpC;EAAC,YAAY;EAAc,YAAY;EAAc;EAAU,CAChE;AAED,QACE,8CACG,qBACC,aAAa,SAAS,KACtB,YAAY,KAAK,YAAY,oBAACE,sBAAyB,KAAK,WAAd,QAAyB,CAAC,EAC1E,oBAACC;EACC,eAAe;EACf,aAAa;EACN;EACP,GAAI;YAEJ,qBAACC,qCACE,qBAAqB,oBAACC,wBAAc,EACrC,oBAAC;GAAe;GAAW,OAAO;IAAE,WAAW;IAAW,OAAO;IAAW,GAAG;IAAO;GACnF;IACG,IACa;GACH,IACnB;EAGR;AAED,gBAAc,cAAc;AAE5B,4BAAeP"}
1
+ {"version":3,"file":"ThemeProvider.mjs","names":["ThemeProvider","lobeCustomStylish","theme","lobeCustomToken","FontLoader","AntdThemeProvider","AntdConfigProvider","GlobalStyle"],"sources":["../../src/ThemeProvider/ThemeProvider.tsx"],"sourcesContent":["'use client';\n\nimport { App } from 'antd';\nimport {\n ThemeProvider as AntdThemeProvider,\n CustomStylishParams,\n CustomTokenParams,\n GetAntdTheme,\n} from 'antd-style';\nimport { merge } from 'es-toolkit/compat';\nimport { memo, useCallback, useMemo } from 'react';\n\nimport { useCdnFn } from '@/ConfigProvider';\nimport FontLoader from '@/FontLoader';\nimport { lobeCustomStylish, lobeCustomToken } from '@/styles';\nimport { createLobeAntdTheme } from '@/styles/theme/antdTheme';\nimport { LobeCustomToken } from '@/types/customToken';\n\nimport AntdConfigProvider from './ConfigProvider';\nimport GlobalStyle from './GlobalStyle';\nimport { LOBE_THEME_APP_ID } from './constants';\nimport type { ThemeProviderProps } from './type';\n\nconst ThemeProvider = memo<ThemeProviderProps>(\n ({\n children,\n customStylish,\n customToken,\n enableCustomFonts = true,\n enableGlobalStyle = true,\n customFonts,\n customTheme = {},\n className,\n style,\n theme: antdTheme,\n ...rest\n }) => {\n const genCdnUrl = useCdnFn();\n\n const webfontUrls = useMemo(\n () =>\n customFonts || [\n genCdnUrl({ path: 'css/index.css', pkg: '@lobehub/webfont-mono' }),\n genCdnUrl({\n path: 'css/index.css',\n pkg: '@lobehub/webfont-harmony-sans',\n }),\n genCdnUrl({\n path: 'css/index.css',\n pkg: '@lobehub/webfont-harmony-sans-sc',\n }),\n genCdnUrl({ path: 'dist/katex.min.css', pkg: 'katex' }),\n ],\n [customFonts, genCdnUrl],\n );\n\n const stylish = useCallback(\n (theme: CustomStylishParams) => ({ ...lobeCustomStylish(theme), ...customStylish?.(theme) }),\n [customStylish],\n );\n\n const token = useCallback(\n (theme: CustomTokenParams) => ({ ...lobeCustomToken(theme), ...customToken?.(theme) }),\n [customToken],\n );\n\n const theme = useCallback<GetAntdTheme>(\n (appearance) => {\n const lobeTheme = createLobeAntdTheme({\n appearance,\n neutralColor: customTheme.neutralColor,\n primaryColor: customTheme.primaryColor,\n });\n return merge(lobeTheme, antdTheme);\n },\n [customTheme.primaryColor, customTheme.neutralColor, antdTheme],\n );\n\n return (\n <>\n {enableCustomFonts &&\n webfontUrls?.length > 0 &&\n webfontUrls.map((webfont) => <FontLoader key={webfont} url={webfont} />)}\n <AntdThemeProvider<LobeCustomToken>\n customStylish={stylish}\n customToken={token}\n theme={theme}\n {...rest}\n >\n <AntdConfigProvider>\n {enableGlobalStyle && <GlobalStyle />}\n <App className={className} style={{ minHeight: 'inherit', width: 'inherit', ...style }}>\n <div id={LOBE_THEME_APP_ID} style={{ display: 'contents' }}>\n {children}\n </div>\n </App>\n </AntdConfigProvider>\n </AntdThemeProvider>\n </>\n );\n },\n);\n\nThemeProvider.displayName = 'LobeThemeProvider';\n\nexport default ThemeProvider;\n"],"mappings":";;;;;;;;;;;;;;;;;AAuBA,MAAMA,kBAAgB,MACnB,EACC,UACA,eACA,aACA,oBAAoB,MACpB,oBAAoB,MACpB,aACA,cAAc,EAAE,EAChB,WACA,OACA,OAAO,WACP,GAAG,WACC;CACJ,MAAM,YAAY,UAAU;CAE5B,MAAM,cAAc,cAEhB,eAAe;EACb,UAAU;GAAE,MAAM;GAAiB,KAAK;GAAyB,CAAC;EAClE,UAAU;GACR,MAAM;GACN,KAAK;GACN,CAAC;EACF,UAAU;GACR,MAAM;GACN,KAAK;GACN,CAAC;EACF,UAAU;GAAE,MAAM;GAAsB,KAAK;GAAS,CAAC;EACxD,EACH,CAAC,aAAa,UAAU,CACzB;CAED,MAAM,UAAU,aACb,aAAgC;EAAE,GAAGC,sBAAkBC,QAAM;EAAE,GAAG,gBAAgBA,QAAM;EAAE,GAC3F,CAAC,cAAc,CAChB;CAED,MAAM,QAAQ,aACX,aAA8B;EAAE,GAAGC,oBAAgBD,QAAM;EAAE,GAAG,cAAcA,QAAM;EAAE,GACrF,CAAC,YAAY,CACd;CAED,MAAM,QAAQ,aACX,eAAe;AAMd,SAAO,MALW,oBAAoB;GACpC;GACA,cAAc,YAAY;GAC1B,cAAc,YAAY;GAC3B,CAAC,EACsB,UAAU;IAEpC;EAAC,YAAY;EAAc,YAAY;EAAc;EAAU,CAChE;AAED,QACE,8CACG,qBACC,aAAa,SAAS,KACtB,YAAY,KAAK,YAAY,oBAACE,sBAAyB,KAAK,WAAd,QAAyB,CAAC,EAC1E,oBAACC;EACC,eAAe;EACf,aAAa;EACN;EACP,GAAI;YAEJ,qBAACC,qCACE,qBAAqB,oBAACC,wBAAc,EACrC,oBAAC;GAAe;GAAW,OAAO;IAAE,WAAW;IAAW,OAAO;IAAW,GAAG;IAAO;aACpF,oBAAC;IAAI,IAAI;IAAmB,OAAO,EAAE,SAAS,YAAY;IACvD;KACG;IACF,IACa;GACH,IACnB;EAGR;AAED,gBAAc,cAAc;AAE5B,4BAAeP"}
@@ -0,0 +1,5 @@
1
+ //#region src/ThemeProvider/constants.d.ts
2
+ declare const LOBE_THEME_APP_ID = "lobe-ui-theme-app";
3
+ //#endregion
4
+ export { LOBE_THEME_APP_ID };
5
+ //# sourceMappingURL=constants.d.mts.map
@@ -0,0 +1,6 @@
1
+ //#region src/ThemeProvider/constants.ts
2
+ const LOBE_THEME_APP_ID = "lobe-ui-theme-app";
3
+
4
+ //#endregion
5
+ export { LOBE_THEME_APP_ID };
6
+ //# sourceMappingURL=constants.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.mjs","names":[],"sources":["../../src/ThemeProvider/constants.ts"],"sourcesContent":["export const LOBE_THEME_APP_ID = 'lobe-ui-theme-app';\n"],"mappings":";AAAA,MAAa,oBAAoB"}
@@ -1,4 +1,5 @@
1
+ import { LOBE_THEME_APP_ID } from "./constants.mjs";
1
2
  import { MetaProps, ThemeProviderProps } from "./type.mjs";
2
3
  import { Meta } from "./Meta.mjs";
3
4
  import { ThemeProvider } from "./ThemeProvider.mjs";
4
- export { Meta, MetaProps, ThemeProviderProps, ThemeProvider as default };
5
+ export { LOBE_THEME_APP_ID, Meta, MetaProps, ThemeProviderProps, ThemeProvider as default };
@@ -1,4 +1,5 @@
1
+ import { LOBE_THEME_APP_ID } from "./constants.mjs";
1
2
  import Meta_default from "./Meta.mjs";
2
3
  import ThemeProvider_default from "./ThemeProvider.mjs";
3
4
 
4
- export { Meta_default as Meta, ThemeProvider_default as default };
5
+ export { LOBE_THEME_APP_ID, Meta_default as Meta, ThemeProvider_default as default };
package/es/Toc/Toc.d.mts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { TocProps } from "./type.mjs";
2
- import * as react5 from "react";
2
+ import * as react9 from "react";
3
3
 
4
4
  //#region src/Toc/Toc.d.ts
5
- declare const Toc: react5.NamedExoticComponent<TocProps>;
5
+ declare const Toc: react9.NamedExoticComponent<TocProps>;
6
6
  //#endregion
7
7
  export { Toc };
8
8
  //# sourceMappingURL=Toc.d.mts.map
@@ -105,7 +105,7 @@ const TooltipInGroup = ({ ref, hotkey, className, arrow: arrow$1, title, hotkeyP
105
105
  }, [children]);
106
106
  const referenceNode = useMemo(() => {
107
107
  if (!isValidElement(trigger)) return trigger;
108
- const originalRef = trigger.ref;
108
+ const originalRef = trigger.props?.ref;
109
109
  const triggerProps = trigger.props || {};
110
110
  const setTriggerEl = (node) => {
111
111
  triggerElRef.current = node instanceof HTMLElement ? node : null;
@@ -201,7 +201,7 @@ const TooltipStandalone = ({ ref, hotkey, className, arrow: arrow$1 = false, tit
201
201
  }, [children]);
202
202
  const referenceNode = useMemo(() => {
203
203
  if (!isValidElement(trigger)) return trigger;
204
- const originalRef = trigger.ref;
204
+ const originalRef = trigger.props?.ref;
205
205
  return cloneElement(trigger, getReferenceProps({
206
206
  ...trigger.props,
207
207
  ref: mergeRefs([
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.mjs","names":["TooltipInGroup: FC<TooltipProps>","item: TooltipGroupItem","arrow","triggerProps: any","TooltipStandalone: FC<TooltipProps>","arrowMiddleware","TooltipFloating","TooltipPortal","Tooltip: FC<TooltipProps>"],"sources":["../../src/Tooltip/Tooltip.tsx"],"sourcesContent":["'use client';\n\nimport {\n arrow as arrowMiddleware,\n autoUpdate,\n flip,\n offset,\n shift,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport {\n type FC,\n cloneElement,\n isValidElement,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { mergeRefs } from 'react-merge-refs';\n\nimport { antdPlacementToFloating } from '@/Tooltip/antdPlacementToFloating';\nimport { composeEventHandlers } from '@/utils/composeEventHandlers';\n\nimport TooltipFloating from './TooltipFloating';\nimport TooltipPortal from './TooltipPortal';\nimport {\n TooltipGroupApiContext,\n type TooltipGroupItem,\n TooltipGroupPropsContext,\n} from './groupContext';\nimport type { TooltipProps } from './type';\n\nconst TooltipInGroup: FC<TooltipProps> = ({\n ref,\n hotkey,\n className,\n arrow,\n title,\n hotkeyProps,\n children,\n placement,\n openDelay,\n closeDelay,\n mouseEnterDelay,\n mouseLeaveDelay,\n onOpenChange,\n disabled,\n classNames,\n styles: styleProps,\n zIndex,\n portalled,\n getPopupContainer,\n}) => {\n const group = useContext(TooltipGroupApiContext);\n const sharedProps = useContext(TooltipGroupPropsContext);\n const triggerElRef = useRef<HTMLElement | null>(null);\n\n const mergedClassName = useMemo(() => {\n if (!sharedProps?.className && !className) return undefined;\n return [sharedProps?.className, className].filter(Boolean).join(' ');\n }, [className, sharedProps?.className]);\n\n const mergedClassNames = useMemo(() => {\n if (!sharedProps?.classNames && !classNames) return undefined;\n return { ...sharedProps?.classNames, ...classNames };\n }, [classNames, sharedProps?.classNames]);\n\n const mergedStyles = useMemo(() => {\n if (!sharedProps?.styles && !styleProps) return undefined;\n return { ...sharedProps?.styles, ...styleProps };\n }, [sharedProps?.styles, styleProps]);\n\n const mergedHotkeyProps = useMemo(() => {\n if (!sharedProps?.hotkeyProps && !hotkeyProps) return undefined;\n return { ...sharedProps?.hotkeyProps, ...hotkeyProps };\n }, [hotkeyProps, sharedProps?.hotkeyProps]);\n\n const mergedOnOpenChange = useMemo(() => {\n if (!sharedProps?.onOpenChange && !onOpenChange) return undefined;\n return (open: boolean) => {\n sharedProps?.onOpenChange?.(open);\n onOpenChange?.(open);\n };\n }, [onOpenChange, sharedProps?.onOpenChange]);\n\n const item: TooltipGroupItem = useMemo(\n () => ({\n arrow: arrow ?? sharedProps?.arrow ?? false,\n className: mergedClassName,\n classNames: mergedClassNames,\n closeDelay: closeDelay ?? sharedProps?.closeDelay,\n disabled: disabled ?? sharedProps?.disabled,\n getPopupContainer: getPopupContainer ?? sharedProps?.getPopupContainer,\n hotkey: hotkey ?? sharedProps?.hotkey,\n hotkeyProps: mergedHotkeyProps,\n mouseEnterDelay: mouseEnterDelay ?? sharedProps?.mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay ?? sharedProps?.mouseLeaveDelay,\n onOpenChange: mergedOnOpenChange,\n openDelay: openDelay ?? sharedProps?.openDelay,\n placement: placement ?? sharedProps?.placement ?? 'top',\n portalled: portalled ?? sharedProps?.portalled,\n styles: mergedStyles,\n title,\n zIndex: zIndex ?? sharedProps?.zIndex,\n }),\n [\n arrow,\n closeDelay,\n disabled,\n getPopupContainer,\n hotkey,\n mergedClassName,\n mergedClassNames,\n mergedHotkeyProps,\n mergedOnOpenChange,\n mergedStyles,\n mouseEnterDelay,\n mouseLeaveDelay,\n openDelay,\n placement,\n portalled,\n sharedProps?.arrow,\n sharedProps?.closeDelay,\n sharedProps?.disabled,\n sharedProps?.getPopupContainer,\n sharedProps?.hotkey,\n sharedProps?.mouseEnterDelay,\n sharedProps?.mouseLeaveDelay,\n sharedProps?.openDelay,\n sharedProps?.placement,\n sharedProps?.portalled,\n sharedProps?.zIndex,\n title,\n zIndex,\n ],\n );\n\n const trigger = useMemo(() => {\n if (!isValidElement(children)) return <span>{children}</span>;\n\n const needsWrapper =\n typeof children.type === 'string' && Boolean((children.props as any)?.disabled);\n\n if (needsWrapper) return <span style={{ display: 'inline-flex' }}>{children}</span>;\n\n return children;\n }, [children]);\n\n const referenceNode = useMemo(() => {\n if (!isValidElement(trigger)) return trigger;\n\n const originalRef = (trigger as any).ref;\n const triggerProps: any = trigger.props || {};\n\n const setTriggerEl = (node: any) => {\n triggerElRef.current = node instanceof HTMLElement ? node : null;\n };\n\n return cloneElement(trigger as any, {\n ...triggerProps,\n onBlur: composeEventHandlers(triggerProps.onBlur, (e: any) => {\n group?.closeFromTrigger(e.currentTarget as HTMLElement, item);\n }),\n onFocus: composeEventHandlers(triggerProps.onFocus, (e: any) => {\n group?.openFromTrigger(e.currentTarget as HTMLElement, item);\n }),\n onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (e: any) => {\n if (e?.key === 'Escape') group?.closeImmediately();\n }),\n onPointerEnter: composeEventHandlers(triggerProps.onPointerEnter, (e: any) => {\n group?.openFromTrigger(e.currentTarget as HTMLElement, item);\n }),\n onPointerLeave: composeEventHandlers(triggerProps.onPointerLeave, (e: any) => {\n group?.closeFromTrigger(e.currentTarget as HTMLElement, item);\n }),\n ref: mergeRefs([originalRef, setTriggerEl, ref]),\n });\n }, [group, item, ref, trigger]);\n\n useEffect(() => {\n return () => {\n if (!group) return;\n const el = triggerElRef.current;\n if (el && group.isActiveTrigger(el)) group.closeImmediately();\n };\n }, [group]);\n\n return referenceNode as any;\n};\n\nTooltipInGroup.displayName = 'TooltipInGroup';\n\nconst TooltipStandalone: FC<TooltipProps> = ({\n ref,\n hotkey,\n className,\n arrow = false,\n title,\n hotkeyProps,\n children,\n placement = 'top',\n openDelay,\n closeDelay,\n mouseEnterDelay,\n mouseLeaveDelay,\n open,\n defaultOpen,\n onOpenChange,\n disabled,\n classNames,\n styles: styleProps,\n zIndex,\n portalled = true,\n getPopupContainer,\n}) => {\n const arrowRef = useRef<SVGSVGElement | null>(null);\n const [uncontrolledOpen, setUncontrolledOpen] = useState(Boolean(defaultOpen));\n\n const mergedOpen = open ?? uncontrolledOpen;\n const setOpen = (next: boolean) => {\n if (open === undefined) setUncontrolledOpen(next);\n onOpenChange?.(next);\n };\n\n const floatingPlacement = useMemo(() => antdPlacementToFloating(placement), [placement]);\n\n const middleware = useMemo(() => {\n const base = [offset(8), flip(), shift({ padding: 8 })];\n if (arrow) base.push(arrowMiddleware({ element: arrowRef }));\n return base;\n }, [arrow]);\n\n const { context, floatingStyles, refs } = useFloating({\n middleware,\n onOpenChange: setOpen,\n open: disabled ? false : mergedOpen,\n placement: floatingPlacement,\n whileElementsMounted: autoUpdate,\n });\n\n const resolvedDelay = useMemo(\n () => ({\n close: closeDelay ?? (mouseLeaveDelay !== undefined ? mouseLeaveDelay * 1000 : 100),\n open: openDelay ?? (mouseEnterDelay !== undefined ? mouseEnterDelay * 1000 : 400),\n }),\n [closeDelay, mouseEnterDelay, mouseLeaveDelay, openDelay],\n );\n\n const hover = useHover(context, {\n delay: resolvedDelay,\n enabled: !disabled,\n move: false,\n });\n const focus = useFocus(context, { enabled: !disabled });\n const dismiss = useDismiss(context, { enabled: !disabled });\n const role = useRole(context, { role: 'tooltip' });\n\n const { getFloatingProps, getReferenceProps } = useInteractions([hover, focus, dismiss, role]);\n\n const trigger = useMemo(() => {\n if (!isValidElement(children)) return <span>{children}</span>;\n\n const needsWrapper =\n typeof children.type === 'string' && Boolean((children.props as any)?.disabled);\n\n if (needsWrapper) return <span style={{ display: 'inline-flex' }}>{children}</span>;\n\n return children;\n }, [children]);\n\n const referenceNode = useMemo(() => {\n if (!isValidElement(trigger)) return trigger;\n\n const originalRef = (trigger as any).ref;\n\n return cloneElement(\n trigger as any,\n getReferenceProps({\n ...(trigger.props as any),\n ref: mergeRefs([originalRef, refs.setReference, ref]),\n }),\n );\n }, [getReferenceProps, ref, refs.setReference, trigger]);\n\n const portalRoot =\n getPopupContainer && refs.reference.current\n ? getPopupContainer(refs.reference.current as any)\n : undefined;\n\n const floatingNode = (\n <TooltipFloating\n arrow={arrow}\n arrowRef={arrowRef}\n className={className}\n classNames={classNames}\n context={context}\n floatingProps={getFloatingProps()}\n floatingStyles={floatingStyles}\n hotkey={hotkey}\n hotkeyProps={hotkeyProps}\n open={mergedOpen}\n placement={floatingPlacement}\n setFloating={refs.setFloating}\n styles={styleProps}\n title={title}\n zIndex={zIndex}\n />\n );\n\n return (\n <>\n {referenceNode}\n {!disabled &&\n title &&\n (portalled ? (\n <TooltipPortal root={portalRoot}>{floatingNode}</TooltipPortal>\n ) : (\n floatingNode\n ))}\n </>\n );\n};\n\nexport const Tooltip: FC<TooltipProps> = (props) => {\n const group = useContext(TooltipGroupApiContext);\n\n // Group mode is intentionally hover/focus driven; keep standalone behavior for controlled cases.\n const canUseGroup = Boolean(group) && props.open === undefined && props.defaultOpen === undefined;\n\n return canUseGroup ? <TooltipInGroup {...props} /> : <TooltipStandalone {...props} />;\n};\n\nexport default Tooltip;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Tooltip.mjs","names":["TooltipInGroup: FC<TooltipProps>","item: TooltipGroupItem","arrow","triggerProps: any","TooltipStandalone: FC<TooltipProps>","arrowMiddleware","TooltipFloating","TooltipPortal","Tooltip: FC<TooltipProps>"],"sources":["../../src/Tooltip/Tooltip.tsx"],"sourcesContent":["'use client';\n\nimport {\n arrow as arrowMiddleware,\n autoUpdate,\n flip,\n offset,\n shift,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport {\n type FC,\n cloneElement,\n isValidElement,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { mergeRefs } from 'react-merge-refs';\n\nimport { antdPlacementToFloating } from '@/Tooltip/antdPlacementToFloating';\nimport { composeEventHandlers } from '@/utils/composeEventHandlers';\n\nimport TooltipFloating from './TooltipFloating';\nimport TooltipPortal from './TooltipPortal';\nimport {\n TooltipGroupApiContext,\n type TooltipGroupItem,\n TooltipGroupPropsContext,\n} from './groupContext';\nimport type { TooltipProps } from './type';\n\nconst TooltipInGroup: FC<TooltipProps> = ({\n ref,\n hotkey,\n className,\n arrow,\n title,\n hotkeyProps,\n children,\n placement,\n openDelay,\n closeDelay,\n mouseEnterDelay,\n mouseLeaveDelay,\n onOpenChange,\n disabled,\n classNames,\n styles: styleProps,\n zIndex,\n portalled,\n getPopupContainer,\n}) => {\n const group = useContext(TooltipGroupApiContext);\n const sharedProps = useContext(TooltipGroupPropsContext);\n const triggerElRef = useRef<HTMLElement | null>(null);\n\n const mergedClassName = useMemo(() => {\n if (!sharedProps?.className && !className) return undefined;\n return [sharedProps?.className, className].filter(Boolean).join(' ');\n }, [className, sharedProps?.className]);\n\n const mergedClassNames = useMemo(() => {\n if (!sharedProps?.classNames && !classNames) return undefined;\n return { ...sharedProps?.classNames, ...classNames };\n }, [classNames, sharedProps?.classNames]);\n\n const mergedStyles = useMemo(() => {\n if (!sharedProps?.styles && !styleProps) return undefined;\n return { ...sharedProps?.styles, ...styleProps };\n }, [sharedProps?.styles, styleProps]);\n\n const mergedHotkeyProps = useMemo(() => {\n if (!sharedProps?.hotkeyProps && !hotkeyProps) return undefined;\n return { ...sharedProps?.hotkeyProps, ...hotkeyProps };\n }, [hotkeyProps, sharedProps?.hotkeyProps]);\n\n const mergedOnOpenChange = useMemo(() => {\n if (!sharedProps?.onOpenChange && !onOpenChange) return undefined;\n return (open: boolean) => {\n sharedProps?.onOpenChange?.(open);\n onOpenChange?.(open);\n };\n }, [onOpenChange, sharedProps?.onOpenChange]);\n\n const item: TooltipGroupItem = useMemo(\n () => ({\n arrow: arrow ?? sharedProps?.arrow ?? false,\n className: mergedClassName,\n classNames: mergedClassNames,\n closeDelay: closeDelay ?? sharedProps?.closeDelay,\n disabled: disabled ?? sharedProps?.disabled,\n getPopupContainer: getPopupContainer ?? sharedProps?.getPopupContainer,\n hotkey: hotkey ?? sharedProps?.hotkey,\n hotkeyProps: mergedHotkeyProps,\n mouseEnterDelay: mouseEnterDelay ?? sharedProps?.mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay ?? sharedProps?.mouseLeaveDelay,\n onOpenChange: mergedOnOpenChange,\n openDelay: openDelay ?? sharedProps?.openDelay,\n placement: placement ?? sharedProps?.placement ?? 'top',\n portalled: portalled ?? sharedProps?.portalled,\n styles: mergedStyles,\n title,\n zIndex: zIndex ?? sharedProps?.zIndex,\n }),\n [\n arrow,\n closeDelay,\n disabled,\n getPopupContainer,\n hotkey,\n mergedClassName,\n mergedClassNames,\n mergedHotkeyProps,\n mergedOnOpenChange,\n mergedStyles,\n mouseEnterDelay,\n mouseLeaveDelay,\n openDelay,\n placement,\n portalled,\n sharedProps?.arrow,\n sharedProps?.closeDelay,\n sharedProps?.disabled,\n sharedProps?.getPopupContainer,\n sharedProps?.hotkey,\n sharedProps?.mouseEnterDelay,\n sharedProps?.mouseLeaveDelay,\n sharedProps?.openDelay,\n sharedProps?.placement,\n sharedProps?.portalled,\n sharedProps?.zIndex,\n title,\n zIndex,\n ],\n );\n\n const trigger = useMemo(() => {\n if (!isValidElement(children)) return <span>{children}</span>;\n\n const needsWrapper =\n typeof children.type === 'string' && Boolean((children.props as any)?.disabled);\n\n if (needsWrapper) return <span style={{ display: 'inline-flex' }}>{children}</span>;\n\n return children;\n }, [children]);\n\n const referenceNode = useMemo(() => {\n if (!isValidElement(trigger)) return trigger;\n\n const originalRef = (trigger.props as any)?.ref;\n const triggerProps: any = trigger.props || {};\n\n const setTriggerEl = (node: any) => {\n triggerElRef.current = node instanceof HTMLElement ? node : null;\n };\n\n return cloneElement(trigger as any, {\n ...triggerProps,\n onBlur: composeEventHandlers(triggerProps.onBlur, (e: any) => {\n group?.closeFromTrigger(e.currentTarget as HTMLElement, item);\n }),\n onFocus: composeEventHandlers(triggerProps.onFocus, (e: any) => {\n group?.openFromTrigger(e.currentTarget as HTMLElement, item);\n }),\n onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (e: any) => {\n if (e?.key === 'Escape') group?.closeImmediately();\n }),\n onPointerEnter: composeEventHandlers(triggerProps.onPointerEnter, (e: any) => {\n group?.openFromTrigger(e.currentTarget as HTMLElement, item);\n }),\n onPointerLeave: composeEventHandlers(triggerProps.onPointerLeave, (e: any) => {\n group?.closeFromTrigger(e.currentTarget as HTMLElement, item);\n }),\n ref: mergeRefs([originalRef, setTriggerEl, ref]),\n });\n }, [group, item, ref, trigger]);\n\n useEffect(() => {\n return () => {\n if (!group) return;\n const el = triggerElRef.current;\n if (el && group.isActiveTrigger(el)) group.closeImmediately();\n };\n }, [group]);\n\n return referenceNode as any;\n};\n\nTooltipInGroup.displayName = 'TooltipInGroup';\n\nconst TooltipStandalone: FC<TooltipProps> = ({\n ref,\n hotkey,\n className,\n arrow = false,\n title,\n hotkeyProps,\n children,\n placement = 'top',\n openDelay,\n closeDelay,\n mouseEnterDelay,\n mouseLeaveDelay,\n open,\n defaultOpen,\n onOpenChange,\n disabled,\n classNames,\n styles: styleProps,\n zIndex,\n portalled = true,\n getPopupContainer,\n}) => {\n const arrowRef = useRef<SVGSVGElement | null>(null);\n const [uncontrolledOpen, setUncontrolledOpen] = useState(Boolean(defaultOpen));\n\n const mergedOpen = open ?? uncontrolledOpen;\n const setOpen = (next: boolean) => {\n if (open === undefined) setUncontrolledOpen(next);\n onOpenChange?.(next);\n };\n\n const floatingPlacement = useMemo(() => antdPlacementToFloating(placement), [placement]);\n\n const middleware = useMemo(() => {\n const base = [offset(8), flip(), shift({ padding: 8 })];\n if (arrow) base.push(arrowMiddleware({ element: arrowRef }));\n return base;\n }, [arrow]);\n\n const { context, floatingStyles, refs } = useFloating({\n middleware,\n onOpenChange: setOpen,\n open: disabled ? false : mergedOpen,\n placement: floatingPlacement,\n whileElementsMounted: autoUpdate,\n });\n\n const resolvedDelay = useMemo(\n () => ({\n close: closeDelay ?? (mouseLeaveDelay !== undefined ? mouseLeaveDelay * 1000 : 100),\n open: openDelay ?? (mouseEnterDelay !== undefined ? mouseEnterDelay * 1000 : 400),\n }),\n [closeDelay, mouseEnterDelay, mouseLeaveDelay, openDelay],\n );\n\n const hover = useHover(context, {\n delay: resolvedDelay,\n enabled: !disabled,\n move: false,\n });\n const focus = useFocus(context, { enabled: !disabled });\n const dismiss = useDismiss(context, { enabled: !disabled });\n const role = useRole(context, { role: 'tooltip' });\n\n const { getFloatingProps, getReferenceProps } = useInteractions([hover, focus, dismiss, role]);\n\n const trigger = useMemo(() => {\n if (!isValidElement(children)) return <span>{children}</span>;\n\n const needsWrapper =\n typeof children.type === 'string' && Boolean((children.props as any)?.disabled);\n\n if (needsWrapper) return <span style={{ display: 'inline-flex' }}>{children}</span>;\n\n return children;\n }, [children]);\n\n const referenceNode = useMemo(() => {\n if (!isValidElement(trigger)) return trigger;\n\n const originalRef = (trigger.props as any)?.ref;\n\n return cloneElement(\n trigger as any,\n getReferenceProps({\n ...(trigger.props as any),\n ref: mergeRefs([originalRef, refs.setReference, ref]),\n }),\n );\n }, [getReferenceProps, ref, refs.setReference, trigger]);\n\n const portalRoot =\n getPopupContainer && refs.reference.current\n ? getPopupContainer(refs.reference.current as any)\n : undefined;\n\n const floatingNode = (\n <TooltipFloating\n arrow={arrow}\n arrowRef={arrowRef}\n className={className}\n classNames={classNames}\n context={context}\n floatingProps={getFloatingProps()}\n floatingStyles={floatingStyles}\n hotkey={hotkey}\n hotkeyProps={hotkeyProps}\n open={mergedOpen}\n placement={floatingPlacement}\n setFloating={refs.setFloating}\n styles={styleProps}\n title={title}\n zIndex={zIndex}\n />\n );\n\n return (\n <>\n {referenceNode}\n {!disabled &&\n title &&\n (portalled ? (\n <TooltipPortal root={portalRoot}>{floatingNode}</TooltipPortal>\n ) : (\n floatingNode\n ))}\n </>\n );\n};\n\nexport const Tooltip: FC<TooltipProps> = (props) => {\n const group = useContext(TooltipGroupApiContext);\n\n // Group mode is intentionally hover/focus driven; keep standalone behavior for controlled cases.\n const canUseGroup = Boolean(group) && props.open === undefined && props.defaultOpen === undefined;\n\n return canUseGroup ? <TooltipInGroup {...props} /> : <TooltipStandalone {...props} />;\n};\n\nexport default Tooltip;\n"],"mappings":"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"}
@@ -1,20 +1,30 @@
1
1
  'use client';
2
2
 
3
- import ThemeProvider_default from "../ThemeProvider/ThemeProvider.mjs";
4
- import { useState } from "react";
5
- import { jsx } from "react/jsx-runtime";
3
+ import { LOBE_THEME_APP_ID } from "../ThemeProvider/constants.mjs";
4
+ import { useEffect, useState } from "react";
6
5
  import { createPortal } from "react-dom";
7
6
 
8
7
  //#region src/Tooltip/TooltipPortal.tsx
9
8
  const PORTAL_ATTR = "data-lobe-ui-tooltip-portal";
9
+ const TOOLTIP_CONTAINER_ATTR = "data-lobe-ui-tooltip-container";
10
10
  const containerMap = /* @__PURE__ */ new WeakMap();
11
11
  const getOrCreateContainer = (root) => {
12
- const cached = containerMap.get(root);
12
+ const resolvedRoot = (() => {
13
+ if (typeof document === "undefined") return root;
14
+ if (typeof ShadowRoot !== "undefined" && root instanceof ShadowRoot) return root;
15
+ if (!(root === document.body)) return root;
16
+ const themeApp = document.querySelector(`#${LOBE_THEME_APP_ID}`);
17
+ if (themeApp) return themeApp;
18
+ const tooltipContainer = document.querySelector(`[${TOOLTIP_CONTAINER_ATTR}="true"]`);
19
+ if (tooltipContainer) return tooltipContainer;
20
+ return root;
21
+ })();
22
+ const cached = containerMap.get(resolvedRoot);
13
23
  if (cached && cached.isConnected) return cached;
14
24
  const el = document.createElement("div");
15
25
  el.setAttribute(PORTAL_ATTR, "true");
16
- root.append(el);
17
- containerMap.set(root, el);
26
+ resolvedRoot.append(el);
27
+ containerMap.set(resolvedRoot, el);
18
28
  return el;
19
29
  };
20
30
  const resolveRoot = (root) => {
@@ -23,14 +33,14 @@ const resolveRoot = (root) => {
23
33
  return document.body;
24
34
  };
25
35
  const TooltipPortal = ({ children, root }) => {
26
- const [container, setContainer] = useState(() => {
36
+ const [container, setContainer] = useState(null);
37
+ useEffect(() => {
27
38
  const resolved = resolveRoot(root);
28
- if (!resolved) return null;
29
- return getOrCreateContainer(resolved);
30
- });
31
- if (!container && typeof document !== "undefined") setContainer(getOrCreateContainer(document.body));
39
+ if (!resolved) return;
40
+ setContainer(getOrCreateContainer(resolved));
41
+ }, [root]);
32
42
  if (!container) return null;
33
- return createPortal(/* @__PURE__ */ jsx(ThemeProvider_default, { children }), container);
43
+ return createPortal(children, container);
34
44
  };
35
45
  var TooltipPortal_default = TooltipPortal;
36
46
 
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipPortal.mjs","names":["ThemeProvider"],"sources":["../../src/Tooltip/TooltipPortal.tsx"],"sourcesContent":["'use client';\n\nimport type { ReactNode } from 'react';\nimport { useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport ThemeProvider from '@/ThemeProvider';\n\ntype TooltipPortalProps = {\n children: ReactNode;\n root?: HTMLElement | ShadowRoot | null;\n};\n\nconst PORTAL_ATTR = 'data-lobe-ui-tooltip-portal';\n\n// Reuse one portal container per root (document.body by default).\nconst containerMap = new WeakMap<object, HTMLElement>();\n\nconst getOrCreateContainer = (root: HTMLElement | ShadowRoot): HTMLElement => {\n const cached = containerMap.get(root);\n if (cached && cached.isConnected) return cached;\n\n const el = document.createElement('div');\n el.setAttribute(PORTAL_ATTR, 'true');\n root.append(el);\n containerMap.set(root, el);\n return el;\n};\n\nconst resolveRoot = (root?: HTMLElement | ShadowRoot | null): HTMLElement | ShadowRoot | null => {\n if (root) return root;\n if (typeof document === 'undefined') return null;\n return document.body;\n};\n\nconst TooltipPortal = ({ children, root }: TooltipPortalProps) => {\n const [container, setContainer] = useState<HTMLElement | null>(() => {\n const resolved = resolveRoot(root);\n if (!resolved) return null;\n return getOrCreateContainer(resolved);\n });\n\n if (!container && typeof document !== 'undefined') {\n setContainer(getOrCreateContainer(document.body));\n }\n\n if (!container) return null;\n return createPortal(<ThemeProvider>{children}</ThemeProvider>, container);\n};\n\nexport default TooltipPortal;\n"],"mappings":";;;;;;;;AAaA,MAAM,cAAc;AAGpB,MAAM,+BAAe,IAAI,SAA8B;AAEvD,MAAM,wBAAwB,SAAgD;CAC5E,MAAM,SAAS,aAAa,IAAI,KAAK;AACrC,KAAI,UAAU,OAAO,YAAa,QAAO;CAEzC,MAAM,KAAK,SAAS,cAAc,MAAM;AACxC,IAAG,aAAa,aAAa,OAAO;AACpC,MAAK,OAAO,GAAG;AACf,cAAa,IAAI,MAAM,GAAG;AAC1B,QAAO;;AAGT,MAAM,eAAe,SAA4E;AAC/F,KAAI,KAAM,QAAO;AACjB,KAAI,OAAO,aAAa,YAAa,QAAO;AAC5C,QAAO,SAAS;;AAGlB,MAAM,iBAAiB,EAAE,UAAU,WAA+B;CAChE,MAAM,CAAC,WAAW,gBAAgB,eAAmC;EACnE,MAAM,WAAW,YAAY,KAAK;AAClC,MAAI,CAAC,SAAU,QAAO;AACtB,SAAO,qBAAqB,SAAS;GACrC;AAEF,KAAI,CAAC,aAAa,OAAO,aAAa,YACpC,cAAa,qBAAqB,SAAS,KAAK,CAAC;AAGnD,KAAI,CAAC,UAAW,QAAO;AACvB,QAAO,aAAa,oBAACA,yBAAe,WAAyB,EAAE,UAAU;;AAG3E,4BAAe"}
1
+ {"version":3,"file":"TooltipPortal.mjs","names":[],"sources":["../../src/Tooltip/TooltipPortal.tsx"],"sourcesContent":["'use client';\n\nimport type { ReactNode } from 'react';\nimport { useEffect, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { LOBE_THEME_APP_ID } from '@/ThemeProvider';\n\ntype TooltipPortalProps = {\n children: ReactNode;\n root?: HTMLElement | ShadowRoot | null;\n};\n\nconst PORTAL_ATTR = 'data-lobe-ui-tooltip-portal';\nexport const TOOLTIP_CONTAINER_ATTR = 'data-lobe-ui-tooltip-container';\n\n// Reuse one portal container per root (document.body by default).\nconst containerMap = new WeakMap<object, HTMLElement>();\n\nconst getOrCreateContainer = (root: HTMLElement | ShadowRoot): HTMLElement => {\n // try ThemeProvider's App root\n const resolvedRoot = (() => {\n if (typeof document === 'undefined') return root;\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot) return root;\n\n const isBody = root === document.body;\n if (!isBody) return root;\n const themeApp = document.querySelector<HTMLElement>(`#${LOBE_THEME_APP_ID}`);\n if (themeApp) return themeApp;\n const tooltipContainer = document.querySelector<HTMLElement>(\n `[${TOOLTIP_CONTAINER_ATTR}=\"true\"]`,\n );\n if (tooltipContainer) return tooltipContainer;\n\n return root;\n })();\n\n const cached = containerMap.get(resolvedRoot);\n if (cached && cached.isConnected) return cached;\n\n const el = document.createElement('div');\n el.setAttribute(PORTAL_ATTR, 'true');\n resolvedRoot.append(el);\n containerMap.set(resolvedRoot, el);\n return el;\n};\n\nconst resolveRoot = (root?: HTMLElement | ShadowRoot | null): HTMLElement | ShadowRoot | null => {\n if (root) return root;\n if (typeof document === 'undefined') return null;\n return document.body;\n};\n\nconst TooltipPortal = ({ children, root }: TooltipPortalProps) => {\n const [container, setContainer] = useState<HTMLElement | null>(null);\n\n // Never mutate DOM / create portal container during render.\n // Create it after mount to avoid SSR/hydration side effects.\n useEffect(() => {\n const resolved = resolveRoot(root);\n if (!resolved) return;\n setContainer(getOrCreateContainer(resolved));\n }, [root]);\n\n if (!container) return null;\n return createPortal(children, container);\n};\n\nexport default TooltipPortal;\n"],"mappings":";;;;;;;AAaA,MAAM,cAAc;AACpB,MAAa,yBAAyB;AAGtC,MAAM,+BAAe,IAAI,SAA8B;AAEvD,MAAM,wBAAwB,SAAgD;CAE5E,MAAM,sBAAsB;AAC1B,MAAI,OAAO,aAAa,YAAa,QAAO;AAC5C,MAAI,OAAO,eAAe,eAAe,gBAAgB,WAAY,QAAO;AAG5E,MAAI,EADW,SAAS,SAAS,MACpB,QAAO;EACpB,MAAM,WAAW,SAAS,cAA2B,IAAI,oBAAoB;AAC7E,MAAI,SAAU,QAAO;EACrB,MAAM,mBAAmB,SAAS,cAChC,IAAI,uBAAuB,UAC5B;AACD,MAAI,iBAAkB,QAAO;AAE7B,SAAO;KACL;CAEJ,MAAM,SAAS,aAAa,IAAI,aAAa;AAC7C,KAAI,UAAU,OAAO,YAAa,QAAO;CAEzC,MAAM,KAAK,SAAS,cAAc,MAAM;AACxC,IAAG,aAAa,aAAa,OAAO;AACpC,cAAa,OAAO,GAAG;AACvB,cAAa,IAAI,cAAc,GAAG;AAClC,QAAO;;AAGT,MAAM,eAAe,SAA4E;AAC/F,KAAI,KAAM,QAAO;AACjB,KAAI,OAAO,aAAa,YAAa,QAAO;AAC5C,QAAO,SAAS;;AAGlB,MAAM,iBAAiB,EAAE,UAAU,WAA+B;CAChE,MAAM,CAAC,WAAW,gBAAgB,SAA6B,KAAK;AAIpE,iBAAgB;EACd,MAAM,WAAW,YAAY,KAAK;AAClC,MAAI,CAAC,SAAU;AACf,eAAa,qBAAqB,SAAS,CAAC;IAC3C,CAAC,KAAK,CAAC;AAEV,KAAI,CAAC,UAAW,QAAO;AACvB,QAAO,aAAa,UAAU,UAAU;;AAG1C,4BAAe"}
@@ -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 react62 from "react";
4
+ import * as react64 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: react62.NamedExoticComponent<VideoProps>;
42
+ declare const Video: react64.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 react118 from "react";
2
+ import * as react110 from "react";
3
3
 
4
4
  //#region src/awesome/AuroraBackground/AuroraBackground.d.ts
5
- declare const AuroraBackground: react118.NamedExoticComponent<AuroraBackgroundProps>;
5
+ declare const AuroraBackground: react110.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 react119 from "react";
3
+ import * as react109 from "react";
4
4
 
5
5
  //#region src/awesome/BottomGradientButton/BottomGradientButton.d.ts
6
- declare const BottomGradientButton: react119.NamedExoticComponent<ButtonProps>;
6
+ declare const BottomGradientButton: react109.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 react120 from "react";
2
+ import * as react112 from "react";
3
3
 
4
4
  //#region src/awesome/Features/Features.d.ts
5
- declare const Features: react120.NamedExoticComponent<FeaturesProps>;
5
+ declare const Features: react112.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 react121 from "react";
2
+ import * as react119 from "react";
3
3
 
4
4
  //#region src/awesome/Giscus/Giscus.d.ts
5
- declare const Giscus: react121.NamedExoticComponent<GiscusProps>;
5
+ declare const Giscus: react119.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 react122 from "react";
2
+ import * as react117 from "react";
3
3
 
4
4
  //#region src/awesome/GradientButton/GradientButton.d.ts
5
- declare const GradientButton: react122.NamedExoticComponent<GradientButtonProps>;
5
+ declare const GradientButton: react117.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 react123 from "react";
2
+ import * as react113 from "react";
3
3
 
4
4
  //#region src/awesome/GridBackground/GridBackground.d.ts
5
- declare const GridBackground: react123.NamedExoticComponent<GridBackgroundProps>;
5
+ declare const GridBackground: react113.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 react124 from "react";
2
+ import * as react114 from "react";
3
3
 
4
4
  //#region src/awesome/GridBackground/GridShowcase.d.ts
5
- declare const GridShowcase: react124.NamedExoticComponent<GridShowcaseProps>;
5
+ declare const GridShowcase: react114.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 react125 from "react";
2
+ import * as react120 from "react";
3
3
 
4
4
  //#region src/awesome/Hero/Hero.d.ts
5
- declare const Hero: react125.NamedExoticComponent<HeroProps>;
5
+ declare const Hero: react120.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 react126 from "react";
2
+ import * as react118 from "react";
3
3
  import "@splinetool/runtime";
4
4
 
5
5
  //#region src/awesome/Spline/Spine.d.ts
6
- declare const Spline: react126.NamedExoticComponent<SplineProps>;
6
+ declare const Spline: react118.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 react127 from "react";
2
+ import * as react116 from "react";
3
3
 
4
4
  //#region src/awesome/Spotlight/Spotlight.d.ts
5
- declare const Spotlight: react127.NamedExoticComponent<SpotlightProps>;
5
+ declare const Spotlight: react116.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 react128 from "react";
2
+ import * as react115 from "react";
3
3
 
4
4
  //#region src/awesome/SpotlightCard/SpotlightCard.d.ts
5
- declare const SpotlightCard: react128.NamedExoticComponent<SpotlightCardProps<any>>;
5
+ declare const SpotlightCard: react115.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 react117 from "react";
2
+ import * as react111 from "react";
3
3
 
4
4
  //#region src/awesome/TypewriterEffect/TypewriterEffect.d.ts
5
- declare const TypewriterEffect: react117.NamedExoticComponent<TypewriterEffectProps>;
5
+ declare const TypewriterEffect: react111.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 react52 from "react";
2
+ import * as react16 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: react52.NamedExoticComponent<LobeChatProps>;
11
+ declare const LobeChat: react16.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 react53 from "react";
2
+ import * as react18 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: react53.NamedExoticComponent<LobeHubProps>;
11
+ declare const LobeHub: react18.NamedExoticComponent<LobeHubProps>;
12
12
  //#endregion
13
13
  export { LobeHub, LobeHubProps };
14
14
  //# sourceMappingURL=index.d.mts.map