@lobehub/ui 4.9.1 → 4.9.3

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 (137) 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/ActionIconGroup/ActionIconGroup.mjs +1 -0
  5. package/es/ActionIconGroup/ActionIconGroup.mjs.map +1 -1
  6. package/es/Alert/Alert.d.mts +2 -2
  7. package/es/AutoComplete/Select.d.mts +2 -2
  8. package/es/Avatar/Avatar.mjs +41 -31
  9. package/es/Avatar/Avatar.mjs.map +1 -1
  10. package/es/Avatar/AvatarGroup/index.d.mts +2 -2
  11. package/es/Avatar/utils.mjs +50 -0
  12. package/es/Avatar/utils.mjs.map +1 -0
  13. package/es/Burger/Burger.d.mts +2 -2
  14. package/es/CodeEditor/CodeEditor.d.mts +2 -2
  15. package/es/Collapse/Collapse.d.mts +2 -2
  16. package/es/ColorSwatches/ColorSwatches.mjs +3 -2
  17. package/es/ColorSwatches/ColorSwatches.mjs.map +1 -1
  18. package/es/ConfigProvider/index.d.mts +2 -2
  19. package/es/ContextMenu/ContextMenuHost.d.mts +2 -2
  20. package/es/CopyButton/CopyButton.d.mts +2 -2
  21. package/es/DatePicker/DatePicker.d.mts +2 -2
  22. package/es/DraggablePanel/components/DraggablePanelBody.d.mts +2 -2
  23. package/es/DraggablePanel/components/DraggablePanelContainer.d.mts +2 -2
  24. package/es/DraggablePanel/components/DraggablePanelFooter.d.mts +2 -2
  25. package/es/DraggablePanel/components/DraggablePanelHeader.d.mts +2 -2
  26. package/es/DraggableSideNav/DraggableSideNav.d.mts +2 -2
  27. package/es/Drawer/Drawer.d.mts +2 -2
  28. package/es/Dropdown/Dropdown.d.mts +2 -2
  29. package/es/DropdownMenu/DropdownMenu.d.mts +2 -2
  30. package/es/DropdownMenu/DropdownMenu.mjs +25 -4
  31. package/es/DropdownMenu/DropdownMenu.mjs.map +1 -1
  32. package/es/DropdownMenu/type.d.mts +1 -0
  33. package/es/EditableText/EditableText.d.mts +2 -2
  34. package/es/EmojiPicker/EmojiPicker.d.mts +2 -2
  35. package/es/Flex/FlexBasic.d.mts +2 -2
  36. package/es/FontLoader/index.d.mts +2 -2
  37. package/es/Footer/Footer.d.mts +2 -2
  38. package/es/Form/components/FormGroup.d.mts +2 -2
  39. package/es/Form/components/FormItem.d.mts +2 -2
  40. package/es/Form/components/FormSubmitFooter.d.mts +2 -2
  41. package/es/FormModal/FormModal.d.mts +2 -2
  42. package/es/GuideCard/GuideCard.d.mts +2 -2
  43. package/es/Header/Header.d.mts +2 -2
  44. package/es/Highlighter/Highlighter.d.mts +2 -2
  45. package/es/Highlighter/SyntaxHighlighter/index.d.mts +2 -2
  46. package/es/Hotkey/Hotkey.d.mts +2 -2
  47. package/es/HotkeyInput/HotkeyInput.d.mts +2 -2
  48. package/es/Icon/Icon.d.mts +2 -2
  49. package/es/Icon/components/IconProvider.d.mts +3 -3
  50. package/es/Image/PreviewGroup.d.mts +2 -2
  51. package/es/Image/PreviewGroup.mjs +2 -2
  52. package/es/Image/PreviewGroup.mjs.map +1 -1
  53. package/es/Image/components/usePreviewGroup.mjs.map +1 -1
  54. package/es/ImageSelect/ImageSelect.d.mts +2 -2
  55. package/es/Input/Input.d.mts +2 -2
  56. package/es/Input/InputNumber.d.mts +2 -2
  57. package/es/Input/InputOPT.d.mts +2 -2
  58. package/es/Input/InputPassword.d.mts +2 -2
  59. package/es/Input/TextArea.d.mts +2 -2
  60. package/es/Layout/components/LayoutFooter.d.mts +2 -2
  61. package/es/Layout/components/LayoutHeader.d.mts +2 -2
  62. package/es/Layout/components/LayoutMain.d.mts +2 -2
  63. package/es/Layout/components/LayoutSidebar.d.mts +2 -2
  64. package/es/Layout/components/LayoutSidebarInner.d.mts +2 -2
  65. package/es/Layout/components/LayoutToc.d.mts +2 -2
  66. package/es/List/ListItem/index.d.mts +2 -2
  67. package/es/Markdown/Markdown.d.mts +2 -2
  68. package/es/Markdown/Typography.d.mts +2 -2
  69. package/es/Markdown/components/SearchResultCards/index.d.mts +2 -2
  70. package/es/MaskShadow/MaskShadow.d.mts +2 -2
  71. package/es/Menu/Menu.d.mts +2 -2
  72. package/es/Mermaid/Mermaid.d.mts +2 -2
  73. package/es/Mermaid/SyntaxMermaid/index.d.mts +2 -2
  74. package/es/Modal/Modal.d.mts +2 -2
  75. package/es/Modal/ModalProvider.d.mts +2 -2
  76. package/es/MotionProvider/index.d.mts +2 -2
  77. package/es/SearchBar/SearchBar.d.mts +2 -2
  78. package/es/Segmented/Segmented.d.mts +2 -2
  79. package/es/Select/Select.d.mts +2 -2
  80. package/es/SideNav/SideNav.d.mts +2 -2
  81. package/es/SliderWithInput/SliderWithInput.d.mts +2 -2
  82. package/es/SortableList/components/DragHandle.d.mts +2 -2
  83. package/es/SortableList/components/SortableItem.d.mts +2 -2
  84. package/es/ThemeProvider/GlobalStyle/antdOverride.mjs +4 -3
  85. package/es/ThemeProvider/GlobalStyle/antdOverride.mjs.map +1 -1
  86. package/es/ThemeProvider/ThemeProvider.d.mts +2 -2
  87. package/es/ThemeSwitch/ThemeSwitch.mjs +1 -0
  88. package/es/ThemeSwitch/ThemeSwitch.mjs.map +1 -1
  89. package/es/Toc/Toc.d.mts +2 -2
  90. package/es/Video/index.d.mts +2 -2
  91. package/es/awesome/AuroraBackground/AuroraBackground.d.mts +2 -2
  92. package/es/awesome/BottomGradientButton/BottomGradientButton.d.mts +2 -2
  93. package/es/awesome/Features/Features.d.mts +2 -2
  94. package/es/awesome/Giscus/Giscus.d.mts +2 -2
  95. package/es/awesome/Giscus/style.mjs +4 -3
  96. package/es/awesome/Giscus/style.mjs.map +1 -1
  97. package/es/awesome/GradientButton/GradientButton.d.mts +2 -2
  98. package/es/awesome/GridBackground/GridBackground.d.mts +2 -2
  99. package/es/awesome/GridBackground/GridShowcase.d.mts +2 -2
  100. package/es/awesome/Spline/Spine.d.mts +2 -2
  101. package/es/awesome/Spotlight/Spotlight.d.mts +2 -2
  102. package/es/awesome/SpotlightCard/SpotlightCard.d.mts +2 -2
  103. package/es/awesome/TypewriterEffect/TypewriterEffect.d.mts +2 -2
  104. package/es/brand/LobeChat/index.d.mts +2 -2
  105. package/es/brand/LobeHub/index.d.mts +2 -2
  106. package/es/brand/LogoThree/LogoSpline.d.mts +2 -2
  107. package/es/brand/LogoThree/index.d.mts +2 -2
  108. package/es/chat/BackBottom/BackBottom.d.mts +2 -2
  109. package/es/chat/ChatInputArea/components/ChatInputAreaInner.d.mts +2 -2
  110. package/es/chat/ChatItem/ChatItem.d.mts +2 -2
  111. package/es/chat/ChatList/ChatList.d.mts +2 -2
  112. package/es/chat/EditableMessage/EditableMessage.d.mts +2 -2
  113. package/es/chat/EditableMessageList/EditableMessageList.d.mts +2 -2
  114. package/es/chat/MessageInput/MessageInput.d.mts +2 -2
  115. package/es/chat/MessageModal/MessageModal.d.mts +2 -2
  116. package/es/color/ColorScales/index.d.mts +2 -2
  117. package/es/color/CssVar/index.d.mts +2 -2
  118. package/es/i18n/context.d.mts +2 -2
  119. package/es/icons/lucideExtra/DiscordIcon.d.mts +3 -3
  120. package/es/icons/lucideExtra/GlobeOffIcon.d.mts +3 -3
  121. package/es/icons/lucideExtra/GroupBotSquareIcon.d.mts +3 -3
  122. package/es/icons/lucideExtra/LeftClickIcon.d.mts +3 -3
  123. package/es/icons/lucideExtra/LeftDoubleClickIcon.d.mts +3 -3
  124. package/es/icons/lucideExtra/McpIcon.d.mts +3 -3
  125. package/es/icons/lucideExtra/ProviderIcon.d.mts +3 -3
  126. package/es/icons/lucideExtra/RightClickIcon.d.mts +3 -3
  127. package/es/icons/lucideExtra/ShapesUploadIcon.d.mts +3 -3
  128. package/es/icons/lucideExtra/TreeDownRightIcon.d.mts +3 -3
  129. package/es/icons/lucideExtra/TreeUpDownRightIcon.d.mts +3 -3
  130. package/es/mdx/Mdx/index.d.mts +2 -2
  131. package/es/mobile/ChatHeader/ChatHeaderTitle.d.mts +2 -2
  132. package/es/mobile/ChatInputArea/components/ChatSendButton.d.mts +2 -2
  133. package/es/mobile/TabBar/TabBar.d.mts +2 -2
  134. package/es/storybook/StoryBook/index.d.mts +2 -2
  135. package/es/utils/safeReadableColor.mjs +15 -0
  136. package/es/utils/safeReadableColor.mjs.map +1 -0
  137. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  import { AccordionProps } from "./type.mjs";
2
- import * as react15 from "react";
2
+ import * as react72 from "react";
3
3
 
4
4
  //#region src/Accordion/Accordion.d.ts
5
- declare const Accordion: react15.NamedExoticComponent<AccordionProps>;
5
+ declare const Accordion: react72.NamedExoticComponent<AccordionProps>;
6
6
  //#endregion
7
7
  export { Accordion };
8
8
  //# sourceMappingURL=Accordion.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { AccordionItemProps } from "./type.mjs";
2
- import * as react14 from "react";
2
+ import * as react73 from "react";
3
3
 
4
4
  //#region src/Accordion/AccordionItem.d.ts
5
- declare const AccordionItem: react14.NamedExoticComponent<AccordionItemProps>;
5
+ declare const AccordionItem: react73.NamedExoticComponent<AccordionItemProps>;
6
6
  //#endregion
7
7
  export { AccordionItem };
8
8
  //# sourceMappingURL=AccordionItem.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { ActionIconProps } from "./type.mjs";
2
- import * as react1 from "react";
2
+ import * as react71 from "react";
3
3
 
4
4
  //#region src/ActionIcon/ActionIcon.d.ts
5
- declare const ActionIcon: react1.NamedExoticComponent<ActionIconProps>;
5
+ declare const ActionIcon: react71.NamedExoticComponent<ActionIconProps>;
6
6
  //#endregion
7
7
  export { ActionIcon };
8
8
  //# sourceMappingURL=ActionIcon.d.mts.map
@@ -57,6 +57,7 @@ const ActionIconGroup = ({ variant = "filled", disabled, shadow, glass, actionIc
57
57
  }, key);
58
58
  }), menu && /* @__PURE__ */ jsx(DropdownMenu_default, {
59
59
  items: menuItems,
60
+ nativeButton: false,
60
61
  children: /* @__PURE__ */ jsx(ActionIcon_default, {
61
62
  disabled,
62
63
  icon: MoreHorizontal,
@@ -1 +1 @@
1
- {"version":3,"file":"ActionIconGroup.mjs","names":["ActionIconGroup: FC<ActionIconGroupProps>","TooltipGroup","Center","ActionIcon","DropdownMenu"],"sources":["../../src/ActionIconGroup/ActionIconGroup.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { MoreHorizontal } from 'lucide-react';\nimport { type FC, useMemo } from 'react';\n\nimport ActionIcon from '@/ActionIcon';\nimport DropdownMenu from '@/DropdownMenu';\nimport { Center } from '@/Flex';\nimport { TooltipGroup } from '@/Tooltip';\n\nimport { variants } from './style';\nimport type { ActionIconGroupProps } from './type';\n\nconst ActionIconGroup: FC<ActionIconGroupProps> = ({\n variant = 'filled',\n disabled,\n shadow,\n glass,\n actionIconProps,\n items = [],\n horizontal = true,\n menu,\n onActionClick,\n className,\n size = 'small',\n ref,\n ...rest\n}) => {\n const tooltipPlacement = useMemo(\n () => (actionIconProps?.tooltipProps?.placement || horizontal ? 'top' : 'right'),\n [actionIconProps, horizontal],\n );\n\n const menuItems = useMemo(() => {\n const rawItems = typeof menu === 'function' ? menu() : menu;\n if (!rawItems) return [];\n return rawItems.map((item) => ({\n ...(item as any),\n onClick: (info: any) => {\n (item as any)?.onClick?.(info);\n onActionClick?.(info);\n },\n }));\n }, [menu, onActionClick]);\n\n return (\n <TooltipGroup>\n <Center\n className={cx(variants({ disabled, glass, shadow, variant }), className)}\n horizontal={horizontal}\n padding={2}\n ref={ref}\n {...rest}\n >\n {items?.length > 0 &&\n items.map((item) => {\n const { icon, key, label, onClick, danger, loading, ...itemRest } = item;\n return (\n <ActionIcon\n danger={danger}\n icon={icon}\n key={key}\n loading={loading}\n onClick={(e) => {\n onActionClick?.({\n domEvent: e,\n key: String(key),\n keyPath: [String(key)],\n });\n onClick?.(e as any);\n }}\n size={size}\n title={label}\n tooltipProps={{\n placement: tooltipPlacement,\n }}\n {...actionIconProps}\n disabled={disabled || loading || itemRest?.disabled}\n />\n );\n })}\n {menu && (\n <DropdownMenu items={menuItems}>\n <ActionIcon\n disabled={disabled}\n icon={MoreHorizontal}\n key=\"more\"\n size={size}\n {...actionIconProps}\n tooltipProps={{\n placement: tooltipPlacement,\n ...actionIconProps?.tooltipProps,\n }}\n />\n </DropdownMenu>\n )}\n </Center>\n </TooltipGroup>\n );\n};\n\nActionIconGroup.displayName = 'ActionIconGroup';\n\nexport default ActionIconGroup;\n"],"mappings":";;;;;;;;;;;;;AAcA,MAAMA,mBAA6C,EACjD,UAAU,UACV,UACA,QACA,OACA,iBACA,QAAQ,EAAE,EACV,aAAa,MACb,MACA,eACA,WACA,OAAO,SACP,KACA,GAAG,WACC;CACJ,MAAM,mBAAmB,cAChB,iBAAiB,cAAc,aAAa,aAAa,QAAQ,SACxE,CAAC,iBAAiB,WAAW,CAC9B;CAED,MAAM,YAAY,cAAc;EAC9B,MAAM,WAAW,OAAO,SAAS,aAAa,MAAM,GAAG;AACvD,MAAI,CAAC,SAAU,QAAO,EAAE;AACxB,SAAO,SAAS,KAAK,UAAU;GAC7B,GAAI;GACJ,UAAU,SAAc;AACtB,IAAC,MAAc,UAAU,KAAK;AAC9B,oBAAgB,KAAK;;GAExB,EAAE;IACF,CAAC,MAAM,cAAc,CAAC;AAEzB,QACE,oBAACC,kCACC,qBAACC;EACC,WAAW,GAAG,SAAS;GAAE;GAAU;GAAO;GAAQ;GAAS,CAAC,EAAE,UAAU;EAC5D;EACZ,SAAS;EACJ;EACL,GAAI;aAEH,OAAO,SAAS,KACf,MAAM,KAAK,SAAS;GAClB,MAAM,EAAE,MAAM,KAAK,OAAO,SAAS,QAAQ,SAAS,GAAG,aAAa;AACpE,UACE,oBAACC;IACS;IACF;IAEG;IACT,UAAU,MAAM;AACd,qBAAgB;MACd,UAAU;MACV,KAAK,OAAO,IAAI;MAChB,SAAS,CAAC,OAAO,IAAI,CAAC;MACvB,CAAC;AACF,eAAU,EAAS;;IAEf;IACN,OAAO;IACP,cAAc,EACZ,WAAW,kBACZ;IACD,GAAI;IACJ,UAAU,YAAY,WAAW,UAAU;MAhBtC,IAiBL;IAEJ,EACH,QACC,oBAACC;GAAa,OAAO;aACnB,oBAACD;IACW;IACV,MAAM;IAEA;IACN,GAAI;IACJ,cAAc;KACZ,WAAW;KACX,GAAG,iBAAiB;KACrB;MANG,OAOJ;IACW;GAEV,GACI;;AAInB,gBAAgB,cAAc;AAE9B,8BAAe"}
1
+ {"version":3,"file":"ActionIconGroup.mjs","names":["ActionIconGroup: FC<ActionIconGroupProps>","TooltipGroup","Center","ActionIcon","DropdownMenu"],"sources":["../../src/ActionIconGroup/ActionIconGroup.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { MoreHorizontal } from 'lucide-react';\nimport { type FC, useMemo } from 'react';\n\nimport ActionIcon from '@/ActionIcon';\nimport DropdownMenu from '@/DropdownMenu';\nimport { Center } from '@/Flex';\nimport { TooltipGroup } from '@/Tooltip';\n\nimport { variants } from './style';\nimport type { ActionIconGroupProps } from './type';\n\nconst ActionIconGroup: FC<ActionIconGroupProps> = ({\n variant = 'filled',\n disabled,\n shadow,\n glass,\n actionIconProps,\n items = [],\n horizontal = true,\n menu,\n onActionClick,\n className,\n size = 'small',\n ref,\n ...rest\n}) => {\n const tooltipPlacement = useMemo(\n () => (actionIconProps?.tooltipProps?.placement || horizontal ? 'top' : 'right'),\n [actionIconProps, horizontal],\n );\n\n const menuItems = useMemo(() => {\n const rawItems = typeof menu === 'function' ? menu() : menu;\n if (!rawItems) return [];\n return rawItems.map((item) => ({\n ...(item as any),\n onClick: (info: any) => {\n (item as any)?.onClick?.(info);\n onActionClick?.(info);\n },\n }));\n }, [menu, onActionClick]);\n\n return (\n <TooltipGroup>\n <Center\n className={cx(variants({ disabled, glass, shadow, variant }), className)}\n horizontal={horizontal}\n padding={2}\n ref={ref}\n {...rest}\n >\n {items?.length > 0 &&\n items.map((item) => {\n const { icon, key, label, onClick, danger, loading, ...itemRest } = item;\n return (\n <ActionIcon\n danger={danger}\n icon={icon}\n key={key}\n loading={loading}\n onClick={(e) => {\n onActionClick?.({\n domEvent: e,\n key: String(key),\n keyPath: [String(key)],\n });\n onClick?.(e as any);\n }}\n size={size}\n title={label}\n tooltipProps={{\n placement: tooltipPlacement,\n }}\n {...actionIconProps}\n disabled={disabled || loading || itemRest?.disabled}\n />\n );\n })}\n {menu && (\n <DropdownMenu items={menuItems} nativeButton={false}>\n <ActionIcon\n disabled={disabled}\n icon={MoreHorizontal}\n key=\"more\"\n size={size}\n {...actionIconProps}\n tooltipProps={{\n placement: tooltipPlacement,\n ...actionIconProps?.tooltipProps,\n }}\n />\n </DropdownMenu>\n )}\n </Center>\n </TooltipGroup>\n );\n};\n\nActionIconGroup.displayName = 'ActionIconGroup';\n\nexport default ActionIconGroup;\n"],"mappings":";;;;;;;;;;;;;AAcA,MAAMA,mBAA6C,EACjD,UAAU,UACV,UACA,QACA,OACA,iBACA,QAAQ,EAAE,EACV,aAAa,MACb,MACA,eACA,WACA,OAAO,SACP,KACA,GAAG,WACC;CACJ,MAAM,mBAAmB,cAChB,iBAAiB,cAAc,aAAa,aAAa,QAAQ,SACxE,CAAC,iBAAiB,WAAW,CAC9B;CAED,MAAM,YAAY,cAAc;EAC9B,MAAM,WAAW,OAAO,SAAS,aAAa,MAAM,GAAG;AACvD,MAAI,CAAC,SAAU,QAAO,EAAE;AACxB,SAAO,SAAS,KAAK,UAAU;GAC7B,GAAI;GACJ,UAAU,SAAc;AACtB,IAAC,MAAc,UAAU,KAAK;AAC9B,oBAAgB,KAAK;;GAExB,EAAE;IACF,CAAC,MAAM,cAAc,CAAC;AAEzB,QACE,oBAACC,kCACC,qBAACC;EACC,WAAW,GAAG,SAAS;GAAE;GAAU;GAAO;GAAQ;GAAS,CAAC,EAAE,UAAU;EAC5D;EACZ,SAAS;EACJ;EACL,GAAI;aAEH,OAAO,SAAS,KACf,MAAM,KAAK,SAAS;GAClB,MAAM,EAAE,MAAM,KAAK,OAAO,SAAS,QAAQ,SAAS,GAAG,aAAa;AACpE,UACE,oBAACC;IACS;IACF;IAEG;IACT,UAAU,MAAM;AACd,qBAAgB;MACd,UAAU;MACV,KAAK,OAAO,IAAI;MAChB,SAAS,CAAC,OAAO,IAAI,CAAC;MACvB,CAAC;AACF,eAAU,EAAS;;IAEf;IACN,OAAO;IACP,cAAc,EACZ,WAAW,kBACZ;IACD,GAAI;IACJ,UAAU,YAAY,WAAW,UAAU;MAhBtC,IAiBL;IAEJ,EACH,QACC,oBAACC;GAAa,OAAO;GAAW,cAAc;aAC5C,oBAACD;IACW;IACV,MAAM;IAEA;IACN,GAAI;IACJ,cAAc;KACZ,WAAW;KACX,GAAG,iBAAiB;KACrB;MANG,OAOJ;IACW;GAEV,GACI;;AAInB,gBAAgB,cAAc;AAE9B,8BAAe"}
@@ -1,8 +1,8 @@
1
1
  import { AlertProps } from "./type.mjs";
2
- import * as react5 from "react";
2
+ import * as react68 from "react";
3
3
 
4
4
  //#region src/Alert/Alert.d.ts
5
- declare const Alert: react5.NamedExoticComponent<AlertProps>;
5
+ declare const Alert: react68.NamedExoticComponent<AlertProps>;
6
6
  //#endregion
7
7
  export { Alert };
8
8
  //# sourceMappingURL=Alert.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { AutoCompleteProps } from "./type.mjs";
2
- import * as react3 from "react";
2
+ import * as react69 from "react";
3
3
 
4
4
  //#region src/AutoComplete/Select.d.ts
5
- declare const AutoComplete: react3.NamedExoticComponent<AutoCompleteProps>;
5
+ declare const AutoComplete: react69.NamedExoticComponent<AutoCompleteProps>;
6
6
  //#endregion
7
7
  export { AutoComplete };
8
8
  //# sourceMappingURL=Select.d.mts.map
@@ -2,14 +2,15 @@
2
2
 
3
3
  import Center_default from "../Flex/Center.mjs";
4
4
  import Icon_default from "../Icon/Icon.mjs";
5
+ import { safeReadableColor } from "../utils/safeReadableColor.mjs";
5
6
  import Img_default from "../Img/index.mjs";
6
7
  import FluentEmoji_default from "../FluentEmoji/FluentEmoji.mjs";
7
8
  import { styles, variants } from "./style.mjs";
8
- import { isValidElement, memo, useMemo } from "react";
9
+ import { calculateEmojiSize, formatAvatarText, getActualColorForReadable, hasValidBackground, isDefaultAntAvatar } from "./utils.mjs";
10
+ import { memo, useMemo } from "react";
9
11
  import { jsx, jsxs } from "react/jsx-runtime";
10
12
  import { Avatar } from "antd";
11
13
  import { cssVar, cx, useTheme } from "antd-style";
12
- import { readableColor } from "polished";
13
14
  import { Loader2 } from "lucide-react";
14
15
  import { getEmoji } from "@lobehub/fluent-emoji";
15
16
 
@@ -17,33 +18,34 @@ import { getEmoji } from "@lobehub/fluent-emoji";
17
18
  const Avatar$1 = memo(({ bordered, className, avatar, title, animation, borderedColor, size = 48, shape = "square", background, style, unoptimized, alt, variant = "borderless", shadow, loading, sliceText = true, emojiScaleWithBackground = true, ref, ...rest }) => {
18
19
  const theme = useTheme();
19
20
  const isStringAvatar = typeof avatar === "string";
20
- const isDefaultAntAvatar = useMemo(() => Boolean(avatar && ([
21
- "/",
22
- "http",
23
- "data:"
24
- ].some((index) => isStringAvatar && avatar.startsWith(index)) || isValidElement(avatar))), [avatar, isStringAvatar]);
25
- const emoji = useMemo(() => avatar && !isDefaultAntAvatar && isStringAvatar && getEmoji(avatar), [
21
+ const isDefaultAntAvatar$1 = useMemo(() => isDefaultAntAvatar(avatar), [avatar]);
22
+ const emoji = useMemo(() => avatar && !isDefaultAntAvatar$1 && isStringAvatar && getEmoji(avatar), [
26
23
  avatar,
27
24
  isStringAvatar,
28
- isDefaultAntAvatar
25
+ isDefaultAntAvatar$1
29
26
  ]);
30
- const text = String(isDefaultAntAvatar ? title : avatar);
27
+ const text = String(isDefaultAntAvatar$1 ? title : avatar);
31
28
  const imgAlt = alt || title || "avatar";
32
- const defualtAvatar = typeof avatar === "string" ? /* @__PURE__ */ jsx(Img_default, {
29
+ const defualtAvatar = useMemo(() => typeof avatar === "string" ? /* @__PURE__ */ jsx(Img_default, {
33
30
  alt: imgAlt,
34
31
  height: size,
35
32
  loading: "lazy",
36
33
  src: avatar,
37
34
  unoptimized,
38
35
  width: size
39
- }) : avatar;
40
- const hasBackground = background && background !== "transparent" && background !== "rgba(0,0,0,0)" && background !== null;
36
+ }) : avatar, [
37
+ avatar,
38
+ imgAlt,
39
+ size,
40
+ unoptimized
41
+ ]);
42
+ const hasBackground = hasValidBackground(background);
41
43
  const customAvatar = useMemo(() => emoji ? /* @__PURE__ */ jsx(FluentEmoji_default, {
42
44
  emoji,
43
- size: emojiScaleWithBackground ? hasBackground ? size * .85 : size : size * .85,
45
+ size: calculateEmojiSize(size, hasBackground, emojiScaleWithBackground),
44
46
  type: animation ? "anim" : "3d",
45
47
  unoptimized
46
- }) : sliceText ? (text || title)?.toUpperCase().slice(0, 2) : (text || title)?.toUpperCase(), [
48
+ }) : formatAvatarText(text || title, sliceText), [
47
49
  animation,
48
50
  emoji,
49
51
  hasBackground,
@@ -54,11 +56,27 @@ const Avatar$1 = memo(({ bordered, className, avatar, title, animation, bordered
54
56
  unoptimized,
55
57
  emojiScaleWithBackground
56
58
  ]);
57
- const actualColorForReadable = useMemo(() => {
58
- const bgColor = background || theme.colorBorder;
59
- if (typeof bgColor === "string" && bgColor.startsWith("var(")) return theme.colorBorder;
60
- return bgColor;
61
- }, [background, theme.colorBorder]);
59
+ const actualColorForReadable = useMemo(() => getActualColorForReadable(background, theme.colorBorder), [background, theme.colorBorder]);
60
+ const avatarStyle = useMemo(() => ({
61
+ backgroundColor: isDefaultAntAvatar$1 || !!emoji ? background : background || cssVar.colorBorder,
62
+ borderRadius: shape === "square" && size && size < 24 ? "33%" : void 0,
63
+ boxShadow: bordered ? `${cssVar.colorBgLayout} 0 0 0 2px, ${borderedColor || cssVar.colorTextTertiary} 0 0 0 4px` : void 0,
64
+ color: safeReadableColor(actualColorForReadable),
65
+ cursor: rest?.onClick ? "pointer" : void 0,
66
+ fontSize: size * (emoji ? .7 : .5),
67
+ ...style
68
+ }), [
69
+ isDefaultAntAvatar$1,
70
+ emoji,
71
+ background,
72
+ shape,
73
+ size,
74
+ bordered,
75
+ borderedColor,
76
+ actualColorForReadable,
77
+ rest?.onClick,
78
+ style
79
+ ]);
62
80
  return /* @__PURE__ */ jsxs(Avatar, {
63
81
  alt: imgAlt,
64
82
  className: cx(variants({
@@ -69,16 +87,8 @@ const Avatar$1 = memo(({ bordered, className, avatar, title, animation, bordered
69
87
  ref,
70
88
  shape,
71
89
  size,
72
- src: isDefaultAntAvatar ? defualtAvatar : void 0,
73
- style: {
74
- background: isDefaultAntAvatar || !!emoji ? background : background || cssVar.colorBorder,
75
- borderRadius: shape === "square" && size && size < 24 ? "33%" : void 0,
76
- boxShadow: bordered ? `${cssVar.colorBgLayout} 0 0 0 2px, ${borderedColor || cssVar.colorTextTertiary} 0 0 0 4px` : void 0,
77
- color: readableColor(actualColorForReadable),
78
- cursor: rest?.onClick ? "pointer" : void 0,
79
- fontSize: size * (emoji ? .7 : .5),
80
- ...style
81
- },
90
+ src: isDefaultAntAvatar$1 ? defualtAvatar : void 0,
91
+ style: avatarStyle,
82
92
  ...rest,
83
93
  children: [loading && /* @__PURE__ */ jsx(Center_default, {
84
94
  className: styles.loading,
@@ -88,7 +98,7 @@ const Avatar$1 = memo(({ bordered, className, avatar, title, animation, bordered
88
98
  icon: Loader2,
89
99
  spin: true
90
100
  })
91
- }), !isDefaultAntAvatar && customAvatar]
101
+ }), !isDefaultAntAvatar$1 && customAvatar]
92
102
  });
93
103
  });
94
104
  Avatar$1.displayName = "Avatar";
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.mjs","names":["Avatar","Img","FluentEmoji","AntAvatar","Center","Icon"],"sources":["../../src/Avatar/Avatar.tsx"],"sourcesContent":["'use client';\n\nimport { getEmoji } from '@lobehub/fluent-emoji';\nimport { Avatar as AntAvatar } from 'antd';\nimport { cssVar, cx, useTheme } from 'antd-style';\nimport { Loader2 } from 'lucide-react';\nimport { readableColor } from 'polished';\nimport { isValidElement, memo, useMemo } from 'react';\n\nimport { Center } from '@/Flex';\nimport FluentEmoji from '@/FluentEmoji';\nimport Icon from '@/Icon';\nimport Img from '@/Img';\n\nimport { styles, variants } from './style';\nimport type { AvatarProps } from './type';\n\nconst Avatar = memo<AvatarProps>(\n ({\n bordered,\n className,\n avatar,\n title,\n animation,\n borderedColor,\n size = 48,\n shape = 'square',\n background,\n style,\n unoptimized,\n alt,\n variant = 'borderless',\n shadow,\n loading,\n sliceText = true,\n emojiScaleWithBackground = true,\n ref,\n ...rest\n }) => {\n const theme = useTheme();\n const isStringAvatar = typeof avatar === 'string';\n\n const isDefaultAntAvatar = useMemo(\n () =>\n Boolean(\n avatar &&\n (['/', 'http', 'data:'].some((index) => isStringAvatar && avatar.startsWith(index)) ||\n isValidElement(avatar)),\n ),\n [avatar, isStringAvatar],\n );\n\n const emoji = useMemo(\n () => avatar && !isDefaultAntAvatar && isStringAvatar && getEmoji(avatar),\n [avatar, isStringAvatar, isDefaultAntAvatar],\n );\n\n const text = String(isDefaultAntAvatar ? title : avatar);\n\n const imgAlt = alt || title || 'avatar';\n\n const defualtAvatar =\n typeof avatar === 'string' ? (\n <Img\n alt={imgAlt}\n height={size}\n loading={'lazy'}\n src={avatar}\n unoptimized={unoptimized}\n width={size}\n />\n ) : (\n avatar\n );\n\n const hasBackground =\n background &&\n background !== 'transparent' &&\n background !== 'rgba(0,0,0,0)' &&\n background !== null;\n\n const customAvatar = useMemo(\n () =>\n emoji ? (\n <FluentEmoji\n emoji={emoji}\n size={emojiScaleWithBackground ? (hasBackground ? size * 0.85 : size) : size * 0.85}\n type={animation ? 'anim' : '3d'}\n unoptimized={unoptimized}\n />\n ) : sliceText ? (\n (text || title)?.toUpperCase().slice(0, 2)\n ) : (\n (text || title)?.toUpperCase()\n ),\n [\n animation,\n emoji,\n hasBackground,\n size,\n sliceText,\n text,\n title,\n unoptimized,\n emojiScaleWithBackground,\n ],\n );\n\n // Get actual color value for readableColor (CSS variables can't be parsed)\n const actualColorForReadable = useMemo(() => {\n const bgColor = background || theme.colorBorder;\n // If background is a CSS variable, use theme.colorBorder as fallback\n if (typeof bgColor === 'string' && bgColor.startsWith('var(')) {\n return theme.colorBorder;\n }\n return bgColor;\n }, [background, theme.colorBorder]);\n\n return (\n <AntAvatar\n alt={imgAlt}\n className={cx(variants({ shadow, variant }), className)}\n draggable={false}\n ref={ref}\n shape={shape}\n size={size}\n src={isDefaultAntAvatar ? defualtAvatar : undefined}\n style={{\n background: isDefaultAntAvatar || !!emoji ? background : background || cssVar.colorBorder,\n borderRadius: shape === 'square' && size && size < 24 ? '33%' : undefined,\n boxShadow: bordered\n ? `${cssVar.colorBgLayout} 0 0 0 2px, ${borderedColor || cssVar.colorTextTertiary} 0 0 0 4px`\n : undefined,\n color: readableColor(actualColorForReadable),\n cursor: rest?.onClick ? 'pointer' : undefined,\n fontSize: size * (emoji ? 0.7 : 0.5),\n ...style,\n }}\n {...rest}\n >\n {loading && (\n <Center className={styles.loading} height={'100%'} width={'100%'}>\n <Icon icon={Loader2} spin />\n </Center>\n )}\n {!isDefaultAntAvatar && customAvatar}\n </AntAvatar>\n );\n },\n);\n\nAvatar.displayName = 'Avatar';\n\nexport default Avatar;\n"],"mappings":";;;;;;;;;;;;;;;;AAiBA,MAAMA,WAAS,MACZ,EACC,UACA,WACA,QACA,OACA,WACA,eACA,OAAO,IACP,QAAQ,UACR,YACA,OACA,aACA,KACA,UAAU,cACV,QACA,SACA,YAAY,MACZ,2BAA2B,MAC3B,KACA,GAAG,WACC;CACJ,MAAM,QAAQ,UAAU;CACxB,MAAM,iBAAiB,OAAO,WAAW;CAEzC,MAAM,qBAAqB,cAEvB,QACE,WACC;EAAC;EAAK;EAAQ;EAAQ,CAAC,MAAM,UAAU,kBAAkB,OAAO,WAAW,MAAM,CAAC,IACjF,eAAe,OAAO,EACzB,EACH,CAAC,QAAQ,eAAe,CACzB;CAED,MAAM,QAAQ,cACN,UAAU,CAAC,sBAAsB,kBAAkB,SAAS,OAAO,EACzE;EAAC;EAAQ;EAAgB;EAAmB,CAC7C;CAED,MAAM,OAAO,OAAO,qBAAqB,QAAQ,OAAO;CAExD,MAAM,SAAS,OAAO,SAAS;CAE/B,MAAM,gBACJ,OAAO,WAAW,WAChB,oBAACC;EACC,KAAK;EACL,QAAQ;EACR,SAAS;EACT,KAAK;EACQ;EACb,OAAO;GACP,GAEF;CAGJ,MAAM,gBACJ,cACA,eAAe,iBACf,eAAe,mBACf,eAAe;CAEjB,MAAM,eAAe,cAEjB,QACE,oBAACC;EACQ;EACP,MAAM,2BAA4B,gBAAgB,OAAO,MAAO,OAAQ,OAAO;EAC/E,MAAM,YAAY,SAAS;EACd;GACb,GACA,aACD,QAAQ,QAAQ,aAAa,CAAC,MAAM,GAAG,EAAE,IAEzC,QAAQ,QAAQ,aAAa,EAElC;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;CAGD,MAAM,yBAAyB,cAAc;EAC3C,MAAM,UAAU,cAAc,MAAM;AAEpC,MAAI,OAAO,YAAY,YAAY,QAAQ,WAAW,OAAO,CAC3D,QAAO,MAAM;AAEf,SAAO;IACN,CAAC,YAAY,MAAM,YAAY,CAAC;AAEnC,QACE,qBAACC;EACC,KAAK;EACL,WAAW,GAAG,SAAS;GAAE;GAAQ;GAAS,CAAC,EAAE,UAAU;EACvD,WAAW;EACN;EACE;EACD;EACN,KAAK,qBAAqB,gBAAgB;EAC1C,OAAO;GACL,YAAY,sBAAsB,CAAC,CAAC,QAAQ,aAAa,cAAc,OAAO;GAC9E,cAAc,UAAU,YAAY,QAAQ,OAAO,KAAK,QAAQ;GAChE,WAAW,WACP,GAAG,OAAO,cAAc,cAAc,iBAAiB,OAAO,kBAAkB,cAChF;GACJ,OAAO,cAAc,uBAAuB;GAC5C,QAAQ,MAAM,UAAU,YAAY;GACpC,UAAU,QAAQ,QAAQ,KAAM;GAChC,GAAG;GACJ;EACD,GAAI;aAEH,WACC,oBAACC;GAAO,WAAW,OAAO;GAAS,QAAQ;GAAQ,OAAO;aACxD,oBAACC;IAAK,MAAM;IAAS;KAAO;IACrB,EAEV,CAAC,sBAAsB;GACd;EAGjB;AAED,SAAO,cAAc;AAErB,qBAAeL"}
1
+ {"version":3,"file":"Avatar.mjs","names":["Avatar","isDefaultAntAvatar","checkIsDefaultAntAvatar","Img","FluentEmoji","AntAvatar","Center","Icon"],"sources":["../../src/Avatar/Avatar.tsx"],"sourcesContent":["'use client';\n\nimport { getEmoji } from '@lobehub/fluent-emoji';\nimport { Avatar as AntAvatar } from 'antd';\nimport { cssVar, cx, useTheme } from 'antd-style';\nimport { Loader2 } from 'lucide-react';\nimport { memo, useMemo } from 'react';\n\nimport { Center } from '@/Flex';\nimport FluentEmoji from '@/FluentEmoji';\nimport Icon from '@/Icon';\nimport Img from '@/Img';\nimport { safeReadableColor } from '@/utils/safeReadableColor';\n\nimport { styles, variants } from './style';\nimport type { AvatarProps } from './type';\nimport {\n calculateEmojiSize,\n isDefaultAntAvatar as checkIsDefaultAntAvatar,\n formatAvatarText,\n getActualColorForReadable,\n hasValidBackground,\n} from './utils';\n\nconst Avatar = memo<AvatarProps>(\n ({\n bordered,\n className,\n avatar,\n title,\n animation,\n borderedColor,\n size = 48,\n shape = 'square',\n background,\n style,\n unoptimized,\n alt,\n variant = 'borderless',\n shadow,\n loading,\n sliceText = true,\n emojiScaleWithBackground = true,\n ref,\n ...rest\n }) => {\n const theme = useTheme();\n const isStringAvatar = typeof avatar === 'string';\n\n const isDefaultAntAvatar = useMemo(() => checkIsDefaultAntAvatar(avatar), [avatar]);\n\n const emoji = useMemo(\n () => avatar && !isDefaultAntAvatar && isStringAvatar && getEmoji(avatar),\n [avatar, isStringAvatar, isDefaultAntAvatar],\n );\n\n const text = String(isDefaultAntAvatar ? title : avatar);\n\n const imgAlt = alt || title || 'avatar';\n\n const defualtAvatar = useMemo(\n () =>\n typeof avatar === 'string' ? (\n <Img\n alt={imgAlt}\n height={size}\n loading={'lazy'}\n src={avatar}\n unoptimized={unoptimized}\n width={size}\n />\n ) : (\n avatar\n ),\n [avatar, imgAlt, size, unoptimized],\n );\n\n const hasBackground = hasValidBackground(background);\n\n const customAvatar = useMemo(\n () =>\n emoji ? (\n <FluentEmoji\n emoji={emoji}\n size={calculateEmojiSize(size, hasBackground, emojiScaleWithBackground)}\n type={animation ? 'anim' : '3d'}\n unoptimized={unoptimized}\n />\n ) : (\n formatAvatarText(text || title, sliceText)\n ),\n [\n animation,\n emoji,\n hasBackground,\n size,\n sliceText,\n text,\n title,\n unoptimized,\n emojiScaleWithBackground,\n ],\n );\n\n // Get actual color value for readableColor (CSS variables can't be parsed)\n const actualColorForReadable = useMemo(\n () => getActualColorForReadable(background, theme.colorBorder),\n [background, theme.colorBorder],\n );\n\n const avatarStyle = useMemo(\n () => ({\n backgroundColor:\n isDefaultAntAvatar || !!emoji ? background : background || cssVar.colorBorder,\n borderRadius: shape === 'square' && size && size < 24 ? '33%' : undefined,\n boxShadow: bordered\n ? `${cssVar.colorBgLayout} 0 0 0 2px, ${borderedColor || cssVar.colorTextTertiary} 0 0 0 4px`\n : undefined,\n color: safeReadableColor(actualColorForReadable),\n cursor: rest?.onClick ? 'pointer' : undefined,\n fontSize: size * (emoji ? 0.7 : 0.5),\n ...style,\n }),\n [\n isDefaultAntAvatar,\n emoji,\n background,\n shape,\n size,\n bordered,\n borderedColor,\n actualColorForReadable,\n rest?.onClick,\n style,\n ],\n );\n\n return (\n <AntAvatar\n alt={imgAlt}\n className={cx(variants({ shadow, variant }), className)}\n draggable={false}\n ref={ref}\n shape={shape}\n size={size}\n src={isDefaultAntAvatar ? defualtAvatar : undefined}\n style={avatarStyle}\n {...rest}\n >\n {loading && (\n <Center className={styles.loading} height={'100%'} width={'100%'}>\n <Icon icon={Loader2} spin />\n </Center>\n )}\n {!isDefaultAntAvatar && customAvatar}\n </AntAvatar>\n );\n },\n);\n\nAvatar.displayName = 'Avatar';\n\nexport default Avatar;\n"],"mappings":";;;;;;;;;;;;;;;;;AAwBA,MAAMA,WAAS,MACZ,EACC,UACA,WACA,QACA,OACA,WACA,eACA,OAAO,IACP,QAAQ,UACR,YACA,OACA,aACA,KACA,UAAU,cACV,QACA,SACA,YAAY,MACZ,2BAA2B,MAC3B,KACA,GAAG,WACC;CACJ,MAAM,QAAQ,UAAU;CACxB,MAAM,iBAAiB,OAAO,WAAW;CAEzC,MAAMC,uBAAqB,cAAcC,mBAAwB,OAAO,EAAE,CAAC,OAAO,CAAC;CAEnF,MAAM,QAAQ,cACN,UAAU,CAACD,wBAAsB,kBAAkB,SAAS,OAAO,EACzE;EAAC;EAAQ;EAAgBA;EAAmB,CAC7C;CAED,MAAM,OAAO,OAAOA,uBAAqB,QAAQ,OAAO;CAExD,MAAM,SAAS,OAAO,SAAS;CAE/B,MAAM,gBAAgB,cAElB,OAAO,WAAW,WAChB,oBAACE;EACC,KAAK;EACL,QAAQ;EACR,SAAS;EACT,KAAK;EACQ;EACb,OAAO;GACP,GAEF,QAEJ;EAAC;EAAQ;EAAQ;EAAM;EAAY,CACpC;CAED,MAAM,gBAAgB,mBAAmB,WAAW;CAEpD,MAAM,eAAe,cAEjB,QACE,oBAACC;EACQ;EACP,MAAM,mBAAmB,MAAM,eAAe,yBAAyB;EACvE,MAAM,YAAY,SAAS;EACd;GACb,GAEF,iBAAiB,QAAQ,OAAO,UAAU,EAE9C;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;CAGD,MAAM,yBAAyB,cACvB,0BAA0B,YAAY,MAAM,YAAY,EAC9D,CAAC,YAAY,MAAM,YAAY,CAChC;CAED,MAAM,cAAc,eACX;EACL,iBACEH,wBAAsB,CAAC,CAAC,QAAQ,aAAa,cAAc,OAAO;EACpE,cAAc,UAAU,YAAY,QAAQ,OAAO,KAAK,QAAQ;EAChE,WAAW,WACP,GAAG,OAAO,cAAc,cAAc,iBAAiB,OAAO,kBAAkB,cAChF;EACJ,OAAO,kBAAkB,uBAAuB;EAChD,QAAQ,MAAM,UAAU,YAAY;EACpC,UAAU,QAAQ,QAAQ,KAAM;EAChC,GAAG;EACJ,GACD;EACEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAM;EACN;EACD,CACF;AAED,QACE,qBAACI;EACC,KAAK;EACL,WAAW,GAAG,SAAS;GAAE;GAAQ;GAAS,CAAC,EAAE,UAAU;EACvD,WAAW;EACN;EACE;EACD;EACN,KAAKJ,uBAAqB,gBAAgB;EAC1C,OAAO;EACP,GAAI;aAEH,WACC,oBAACK;GAAO,WAAW,OAAO;GAAS,QAAQ;GAAQ,OAAO;aACxD,oBAACC;IAAK,MAAM;IAAS;KAAO;IACrB,EAEV,CAACN,wBAAsB;GACd;EAGjB;AAED,SAAO,cAAc;AAErB,qBAAeD"}
@@ -1,8 +1,8 @@
1
1
  import { AvatarGroupProps } from "../type.mjs";
2
- import * as react4 from "react";
2
+ import * as react67 from "react";
3
3
 
4
4
  //#region src/Avatar/AvatarGroup/index.d.ts
5
- declare const AvatarGroup: react4.NamedExoticComponent<AvatarGroupProps>;
5
+ declare const AvatarGroup: react67.NamedExoticComponent<AvatarGroupProps>;
6
6
  //#endregion
7
7
  export { AvatarGroup };
8
8
  //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1,50 @@
1
+ import { isValidElement } from "react";
2
+
3
+ //#region src/Avatar/utils.ts
4
+ /**
5
+ * 判断 avatar 是否是默认的 Ant Design Avatar 类型
6
+ * (URL 路径或 React 元素)
7
+ */
8
+ const isDefaultAntAvatar = (avatar) => {
9
+ if (!avatar) return false;
10
+ const isUrlOrDataUri = typeof avatar === "string" && [
11
+ "/",
12
+ "http",
13
+ "data:"
14
+ ].some((prefix) => avatar.startsWith(prefix));
15
+ return Boolean(isUrlOrDataUri || isValidElement(avatar));
16
+ };
17
+ /**
18
+ * 判断是否有有效的背景色
19
+ */
20
+ const hasValidBackground = (background) => {
21
+ return Boolean(background && background !== "transparent" && background !== "rgba(0,0,0,0)" && background !== null);
22
+ };
23
+ /**
24
+ * 获取用于可读性计算的实际颜色值
25
+ * 如果是 CSS 变量,返回 fallback 值
26
+ */
27
+ const getActualColorForReadable = (background, fallbackColor) => {
28
+ const bgColor = background || fallbackColor;
29
+ if (typeof bgColor === "string" && bgColor.startsWith("var(")) return fallbackColor;
30
+ return bgColor;
31
+ };
32
+ /**
33
+ * 格式化头像文本(转大写并可选切片)
34
+ */
35
+ const formatAvatarText = (text, sliceText) => {
36
+ if (!text) return "";
37
+ const upperText = text.toUpperCase();
38
+ return sliceText ? upperText.slice(0, 2) : upperText;
39
+ };
40
+ /**
41
+ * 计算 emoji 大小
42
+ */
43
+ const calculateEmojiSize = (size, hasBackground, emojiScaleWithBackground) => {
44
+ if (emojiScaleWithBackground) return hasBackground ? size * .85 : size;
45
+ return size * .85;
46
+ };
47
+
48
+ //#endregion
49
+ export { calculateEmojiSize, formatAvatarText, getActualColorForReadable, hasValidBackground, isDefaultAntAvatar };
50
+ //# sourceMappingURL=utils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.mjs","names":[],"sources":["../../src/Avatar/utils.ts"],"sourcesContent":["import { type ReactNode, isValidElement } from 'react';\n\n/**\n * 判断 avatar 是否是默认的 Ant Design Avatar 类型\n * (URL 路径或 React 元素)\n */\nexport const isDefaultAntAvatar = (avatar: ReactNode): boolean => {\n if (!avatar) return false;\n\n const isStringAvatar = typeof avatar === 'string';\n const isUrlOrDataUri =\n isStringAvatar && ['/', 'http', 'data:'].some((prefix) => avatar.startsWith(prefix));\n\n return Boolean(isUrlOrDataUri || isValidElement(avatar));\n};\n\n/**\n * 判断是否有有效的背景色\n */\nexport const hasValidBackground = (background?: string | null): boolean => {\n return Boolean(\n background &&\n background !== 'transparent' &&\n background !== 'rgba(0,0,0,0)' &&\n background !== null,\n );\n};\n\n/**\n * 获取用于可读性计算的实际颜色值\n * 如果是 CSS 变量,返回 fallback 值\n */\nexport const getActualColorForReadable = (\n background: string | undefined,\n fallbackColor: string,\n): string => {\n const bgColor = background || fallbackColor;\n\n // 如果背景是 CSS 变量,使用 fallback 颜色\n if (typeof bgColor === 'string' && bgColor.startsWith('var(')) {\n return fallbackColor;\n }\n\n return bgColor;\n};\n\n/**\n * 格式化头像文本(转大写并可选切片)\n */\nexport const formatAvatarText = (text: string | undefined, sliceText: boolean): string => {\n if (!text) return '';\n\n const upperText = text.toUpperCase();\n return sliceText ? upperText.slice(0, 2) : upperText;\n};\n\n/**\n * 计算 emoji 大小\n */\nexport const calculateEmojiSize = (\n size: number,\n hasBackground: boolean,\n emojiScaleWithBackground: boolean,\n): number => {\n if (emojiScaleWithBackground) {\n return hasBackground ? size * 0.85 : size;\n }\n return size * 0.85;\n};\n"],"mappings":";;;;;;;AAMA,MAAa,sBAAsB,WAA+B;AAChE,KAAI,CAAC,OAAQ,QAAO;CAGpB,MAAM,iBADiB,OAAO,WAAW,YAErB;EAAC;EAAK;EAAQ;EAAQ,CAAC,MAAM,WAAW,OAAO,WAAW,OAAO,CAAC;AAEtF,QAAO,QAAQ,kBAAkB,eAAe,OAAO,CAAC;;;;;AAM1D,MAAa,sBAAsB,eAAwC;AACzE,QAAO,QACL,cACA,eAAe,iBACf,eAAe,mBACf,eAAe,KAChB;;;;;;AAOH,MAAa,6BACX,YACA,kBACW;CACX,MAAM,UAAU,cAAc;AAG9B,KAAI,OAAO,YAAY,YAAY,QAAQ,WAAW,OAAO,CAC3D,QAAO;AAGT,QAAO;;;;;AAMT,MAAa,oBAAoB,MAA0B,cAA+B;AACxF,KAAI,CAAC,KAAM,QAAO;CAElB,MAAM,YAAY,KAAK,aAAa;AACpC,QAAO,YAAY,UAAU,MAAM,GAAG,EAAE,GAAG;;;;;AAM7C,MAAa,sBACX,MACA,eACA,6BACW;AACX,KAAI,yBACF,QAAO,gBAAgB,OAAO,MAAO;AAEvC,QAAO,OAAO"}
@@ -1,8 +1,8 @@
1
1
  import { BurgerProps } from "./type.mjs";
2
- import * as react12 from "react";
2
+ import * as react66 from "react";
3
3
 
4
4
  //#region src/Burger/Burger.d.ts
5
- declare const Burger: react12.NamedExoticComponent<BurgerProps>;
5
+ declare const Burger: react66.NamedExoticComponent<BurgerProps>;
6
6
  //#endregion
7
7
  export { Burger };
8
8
  //# sourceMappingURL=Burger.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { CodeEditorProps } from "./type.mjs";
2
- import * as react8 from "react";
2
+ import * as react65 from "react";
3
3
 
4
4
  //#region src/CodeEditor/CodeEditor.d.ts
5
- declare const CodeEditor: react8.NamedExoticComponent<CodeEditorProps>;
5
+ declare const CodeEditor: react65.NamedExoticComponent<CodeEditorProps>;
6
6
  //#endregion
7
7
  export { CodeEditor };
8
8
  //# sourceMappingURL=CodeEditor.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { CollapseProps } from "./type.mjs";
2
- import * as react9 from "react";
2
+ import * as react64 from "react";
3
3
 
4
4
  //#region src/Collapse/Collapse.d.ts
5
- declare const Collapse: react9.NamedExoticComponent<CollapseProps>;
5
+ declare const Collapse: react64.NamedExoticComponent<CollapseProps>;
6
6
  //#endregion
7
7
  export { Collapse };
8
8
  //# sourceMappingURL=Collapse.d.mts.map
@@ -3,6 +3,7 @@
3
3
  import FlexBasic_default from "../Flex/FlexBasic.mjs";
4
4
  import Center_default from "../Flex/Center.mjs";
5
5
  import Icon_default from "../Icon/Icon.mjs";
6
+ import { safeReadableColor } from "../utils/safeReadableColor.mjs";
6
7
  import Tooltip_default from "../Tooltip/Tooltip.mjs";
7
8
  import { styles } from "./style.mjs";
8
9
  import { useMemo } from "react";
@@ -10,7 +11,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
10
11
  import { ColorPicker } from "antd";
11
12
  import { cssVar, cx, useTheme } from "antd-style";
12
13
  import useMergeState from "use-merge-value";
13
- import { readableColor, rgba } from "polished";
14
+ import { rgba } from "polished";
14
15
  import { CheckIcon } from "lucide-react";
15
16
  import chroma from "chroma-js";
16
17
 
@@ -55,7 +56,7 @@ const ColorSwatches = ({ enableColorPicker, enableColorSwatches = true, defaultV
55
56
  borderRadius: shape === "circle" ? "50%" : cssVar.borderRadius
56
57
  },
57
58
  children: isActive && /* @__PURE__ */ jsx(Icon_default, {
58
- color: rgba(readableColor(actualColorForReadable), .33),
59
+ color: rgba(safeReadableColor(actualColorForReadable), .33),
59
60
  icon: CheckIcon,
60
61
  size: {
61
62
  size: 14,
@@ -1 +1 @@
1
- {"version":3,"file":"ColorSwatches.mjs","names":["ColorSwatches: FC<ColorSwatchesProps>","Flexbox","Tooltip","Center","Icon"],"sources":["../../src/ColorSwatches/ColorSwatches.tsx"],"sourcesContent":["'use client';\n\nimport { ColorPicker } from 'antd';\nimport { cssVar, cx, useTheme } from 'antd-style';\nimport chroma from 'chroma-js';\nimport { CheckIcon } from 'lucide-react';\nimport { readableColor, rgba } from 'polished';\nimport { type FC, useMemo } from 'react';\nimport useMergeState from 'use-merge-value';\n\nimport { Center, Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\nimport Tooltip from '@/Tooltip';\n\nimport { styles } from './style';\nimport type { ColorSwatchesProps } from './type';\n\nconst ColorSwatches: FC<ColorSwatchesProps> = ({\n enableColorPicker,\n enableColorSwatches = true,\n defaultValue,\n value,\n style,\n colors,\n onChange,\n size = 24,\n shape = 'circle',\n texts,\n ref,\n ...rest\n}) => {\n const theme = useTheme();\n const [active, setActive] = useMergeState(defaultValue, {\n defaultValue,\n onChange,\n value,\n });\n\n // Convert size prop to CSS variable\n const cssVariables = useMemo<Record<string, string>>(\n () => ({\n '--color-swatches-size': `${size}px`,\n }),\n [size],\n );\n\n const isCustomActive = useMemo(\n () => active && active !== cssVar.colorPrimary && !colors.some((c) => c.color === active),\n [active, colors],\n );\n\n return (\n <Flexbox\n gap={6}\n horizontal\n ref={ref}\n style={{\n ...cssVariables,\n flexWrap: 'wrap',\n ...style,\n }}\n {...rest}\n >\n {enableColorSwatches &&\n colors.map((c, i) => {\n const color = c.color || theme.colorPrimary;\n const isActive = (!active && !c.color) || color === active;\n // Check if color is transparent or CSS variable (which chroma can't parse)\n const isTransparent =\n c.color === 'transparent' ||\n (c.color &&\n !c.color.startsWith('var(') &&\n (() => {\n try {\n return chroma(c.color).alpha() === 0;\n } catch {\n return false;\n }\n })());\n // Get actual color value for readableColor (CSS variables can't be parsed)\n const actualColorForReadable = c.color?.startsWith('var(') ? theme.colorPrimary : color;\n return (\n <Tooltip key={c?.key || i} title={c.title}>\n <Center\n className={cx(\n styles.container,\n isTransparent && styles.transparent,\n isActive && styles.active,\n )}\n onClick={() => setActive(c.color || undefined)}\n style={{\n background: isTransparent ? undefined : color,\n borderRadius: shape === 'circle' ? '50%' : cssVar.borderRadius,\n }}\n >\n {isActive && (\n <Icon\n color={rgba(readableColor(actualColorForReadable), 0.33)}\n icon={CheckIcon}\n size={{ size: 14, strokeWidth: 4 }}\n style={{\n pointerEvents: 'none',\n }}\n />\n )}\n </Center>\n </Tooltip>\n );\n })}\n {enableColorPicker && (\n <Tooltip title={texts?.custom || 'Custom'}>\n <ColorPicker\n arrow={false}\n className={cx(\n styles.picker,\n enableColorSwatches && styles.conic,\n isCustomActive && styles.active,\n )}\n defaultValue={cssVar.colorPrimary}\n disabledAlpha\n format={'hex'}\n onChangeComplete={(c) => {\n if (c.toHexString() === cssVar.colorPrimary) {\n setActive('');\n } else {\n setActive(c.toHexString());\n }\n }}\n presets={\n enableColorSwatches\n ? undefined\n : [\n {\n colors: colors.map((c) => c.color),\n label: texts?.presets || 'Presets',\n },\n ]\n }\n style={{\n borderRadius: shape === 'circle' ? '50%' : cssVar.borderRadius,\n }}\n value={enableColorSwatches ? undefined : active}\n />\n </Tooltip>\n )}\n </Flexbox>\n );\n};\n\nColorSwatches.displayName = 'ColorSwatches';\n\nexport default ColorSwatches;\n"],"mappings":";;;;;;;;;;;;;;;;;AAiBA,MAAMA,iBAAyC,EAC7C,mBACA,sBAAsB,MACtB,cACA,OACA,OACA,QACA,UACA,OAAO,IACP,QAAQ,UACR,OACA,KACA,GAAG,WACC;CACJ,MAAM,QAAQ,UAAU;CACxB,MAAM,CAAC,QAAQ,aAAa,cAAc,cAAc;EACtD;EACA;EACA;EACD,CAAC;CAGF,MAAM,eAAe,eACZ,EACL,yBAAyB,GAAG,KAAK,KAClC,GACD,CAAC,KAAK,CACP;CAED,MAAM,iBAAiB,cACf,UAAU,WAAW,OAAO,gBAAgB,CAAC,OAAO,MAAM,MAAM,EAAE,UAAU,OAAO,EACzF,CAAC,QAAQ,OAAO,CACjB;AAED,QACE,qBAACC;EACC,KAAK;EACL;EACK;EACL,OAAO;GACL,GAAG;GACH,UAAU;GACV,GAAG;GACJ;EACD,GAAI;aAEH,uBACC,OAAO,KAAK,GAAG,MAAM;GACnB,MAAM,QAAQ,EAAE,SAAS,MAAM;GAC/B,MAAM,WAAY,CAAC,UAAU,CAAC,EAAE,SAAU,UAAU;GAEpD,MAAM,gBACJ,EAAE,UAAU,iBACX,EAAE,SACD,CAAC,EAAE,MAAM,WAAW,OAAO,WACpB;AACL,QAAI;AACF,YAAO,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK;YAC7B;AACN,YAAO;;OAEP;GAER,MAAM,yBAAyB,EAAE,OAAO,WAAW,OAAO,GAAG,MAAM,eAAe;AAClF,UACE,oBAACC;IAA0B,OAAO,EAAE;cAClC,oBAACC;KACC,WAAW,GACT,OAAO,WACP,iBAAiB,OAAO,aACxB,YAAY,OAAO,OACpB;KACD,eAAe,UAAU,EAAE,SAAS,OAAU;KAC9C,OAAO;MACL,YAAY,gBAAgB,SAAY;MACxC,cAAc,UAAU,WAAW,QAAQ,OAAO;MACnD;eAEA,YACC,oBAACC;MACC,OAAO,KAAK,cAAc,uBAAuB,EAAE,IAAK;MACxD,MAAM;MACN,MAAM;OAAE,MAAM;OAAI,aAAa;OAAG;MAClC,OAAO,EACL,eAAe,QAChB;OACD;MAEG;MAvBG,GAAG,OAAO,EAwBd;IAEZ,EACH,qBACC,oBAACF;GAAQ,OAAO,OAAO,UAAU;aAC/B,oBAAC;IACC,OAAO;IACP,WAAW,GACT,OAAO,QACP,uBAAuB,OAAO,OAC9B,kBAAkB,OAAO,OAC1B;IACD,cAAc,OAAO;IACrB;IACA,QAAQ;IACR,mBAAmB,MAAM;AACvB,SAAI,EAAE,aAAa,KAAK,OAAO,aAC7B,WAAU,GAAG;SAEb,WAAU,EAAE,aAAa,CAAC;;IAG9B,SACE,sBACI,SACA,CACE;KACE,QAAQ,OAAO,KAAK,MAAM,EAAE,MAAM;KAClC,OAAO,OAAO,WAAW;KAC1B,CACF;IAEP,OAAO,EACL,cAAc,UAAU,WAAW,QAAQ,OAAO,cACnD;IACD,OAAO,sBAAsB,SAAY;KACzC;IACM;GAEJ;;AAId,cAAc,cAAc;AAE5B,4BAAe"}
1
+ {"version":3,"file":"ColorSwatches.mjs","names":["ColorSwatches: FC<ColorSwatchesProps>","Flexbox","Tooltip","Center","Icon"],"sources":["../../src/ColorSwatches/ColorSwatches.tsx"],"sourcesContent":["'use client';\n\nimport { ColorPicker } from 'antd';\nimport { cssVar, cx, useTheme } from 'antd-style';\nimport chroma from 'chroma-js';\nimport { CheckIcon } from 'lucide-react';\nimport { rgba } from 'polished';\nimport { type FC, useMemo } from 'react';\nimport useMergeState from 'use-merge-value';\n\nimport { Center, Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\nimport Tooltip from '@/Tooltip';\nimport { safeReadableColor } from '@/utils/safeReadableColor';\n\nimport { styles } from './style';\nimport type { ColorSwatchesProps } from './type';\n\nconst ColorSwatches: FC<ColorSwatchesProps> = ({\n enableColorPicker,\n enableColorSwatches = true,\n defaultValue,\n value,\n style,\n colors,\n onChange,\n size = 24,\n shape = 'circle',\n texts,\n ref,\n ...rest\n}) => {\n const theme = useTheme();\n const [active, setActive] = useMergeState(defaultValue, {\n defaultValue,\n onChange,\n value,\n });\n\n // Convert size prop to CSS variable\n const cssVariables = useMemo<Record<string, string>>(\n () => ({\n '--color-swatches-size': `${size}px`,\n }),\n [size],\n );\n\n const isCustomActive = useMemo(\n () => active && active !== cssVar.colorPrimary && !colors.some((c) => c.color === active),\n [active, colors],\n );\n\n return (\n <Flexbox\n gap={6}\n horizontal\n ref={ref}\n style={{\n ...cssVariables,\n flexWrap: 'wrap',\n ...style,\n }}\n {...rest}\n >\n {enableColorSwatches &&\n colors.map((c, i) => {\n const color = c.color || theme.colorPrimary;\n const isActive = (!active && !c.color) || color === active;\n // Check if color is transparent or CSS variable (which chroma can't parse)\n const isTransparent =\n c.color === 'transparent' ||\n (c.color &&\n !c.color.startsWith('var(') &&\n (() => {\n try {\n return chroma(c.color).alpha() === 0;\n } catch {\n return false;\n }\n })());\n // Get actual color value for readableColor (CSS variables can't be parsed)\n const actualColorForReadable = c.color?.startsWith('var(') ? theme.colorPrimary : color;\n return (\n <Tooltip key={c?.key || i} title={c.title}>\n <Center\n className={cx(\n styles.container,\n isTransparent && styles.transparent,\n isActive && styles.active,\n )}\n onClick={() => setActive(c.color || undefined)}\n style={{\n background: isTransparent ? undefined : color,\n borderRadius: shape === 'circle' ? '50%' : cssVar.borderRadius,\n }}\n >\n {isActive && (\n <Icon\n color={rgba(safeReadableColor(actualColorForReadable), 0.33)}\n icon={CheckIcon}\n size={{ size: 14, strokeWidth: 4 }}\n style={{\n pointerEvents: 'none',\n }}\n />\n )}\n </Center>\n </Tooltip>\n );\n })}\n {enableColorPicker && (\n <Tooltip title={texts?.custom || 'Custom'}>\n <ColorPicker\n arrow={false}\n className={cx(\n styles.picker,\n enableColorSwatches && styles.conic,\n isCustomActive && styles.active,\n )}\n defaultValue={cssVar.colorPrimary}\n disabledAlpha\n format={'hex'}\n onChangeComplete={(c) => {\n if (c.toHexString() === cssVar.colorPrimary) {\n setActive('');\n } else {\n setActive(c.toHexString());\n }\n }}\n presets={\n enableColorSwatches\n ? undefined\n : [\n {\n colors: colors.map((c) => c.color),\n label: texts?.presets || 'Presets',\n },\n ]\n }\n style={{\n borderRadius: shape === 'circle' ? '50%' : cssVar.borderRadius,\n }}\n value={enableColorSwatches ? undefined : active}\n />\n </Tooltip>\n )}\n </Flexbox>\n );\n};\n\nColorSwatches.displayName = 'ColorSwatches';\n\nexport default ColorSwatches;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAkBA,MAAMA,iBAAyC,EAC7C,mBACA,sBAAsB,MACtB,cACA,OACA,OACA,QACA,UACA,OAAO,IACP,QAAQ,UACR,OACA,KACA,GAAG,WACC;CACJ,MAAM,QAAQ,UAAU;CACxB,MAAM,CAAC,QAAQ,aAAa,cAAc,cAAc;EACtD;EACA;EACA;EACD,CAAC;CAGF,MAAM,eAAe,eACZ,EACL,yBAAyB,GAAG,KAAK,KAClC,GACD,CAAC,KAAK,CACP;CAED,MAAM,iBAAiB,cACf,UAAU,WAAW,OAAO,gBAAgB,CAAC,OAAO,MAAM,MAAM,EAAE,UAAU,OAAO,EACzF,CAAC,QAAQ,OAAO,CACjB;AAED,QACE,qBAACC;EACC,KAAK;EACL;EACK;EACL,OAAO;GACL,GAAG;GACH,UAAU;GACV,GAAG;GACJ;EACD,GAAI;aAEH,uBACC,OAAO,KAAK,GAAG,MAAM;GACnB,MAAM,QAAQ,EAAE,SAAS,MAAM;GAC/B,MAAM,WAAY,CAAC,UAAU,CAAC,EAAE,SAAU,UAAU;GAEpD,MAAM,gBACJ,EAAE,UAAU,iBACX,EAAE,SACD,CAAC,EAAE,MAAM,WAAW,OAAO,WACpB;AACL,QAAI;AACF,YAAO,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK;YAC7B;AACN,YAAO;;OAEP;GAER,MAAM,yBAAyB,EAAE,OAAO,WAAW,OAAO,GAAG,MAAM,eAAe;AAClF,UACE,oBAACC;IAA0B,OAAO,EAAE;cAClC,oBAACC;KACC,WAAW,GACT,OAAO,WACP,iBAAiB,OAAO,aACxB,YAAY,OAAO,OACpB;KACD,eAAe,UAAU,EAAE,SAAS,OAAU;KAC9C,OAAO;MACL,YAAY,gBAAgB,SAAY;MACxC,cAAc,UAAU,WAAW,QAAQ,OAAO;MACnD;eAEA,YACC,oBAACC;MACC,OAAO,KAAK,kBAAkB,uBAAuB,EAAE,IAAK;MAC5D,MAAM;MACN,MAAM;OAAE,MAAM;OAAI,aAAa;OAAG;MAClC,OAAO,EACL,eAAe,QAChB;OACD;MAEG;MAvBG,GAAG,OAAO,EAwBd;IAEZ,EACH,qBACC,oBAACF;GAAQ,OAAO,OAAO,UAAU;aAC/B,oBAAC;IACC,OAAO;IACP,WAAW,GACT,OAAO,QACP,uBAAuB,OAAO,OAC9B,kBAAkB,OAAO,OAC1B;IACD,cAAc,OAAO;IACrB;IACA,QAAQ;IACR,mBAAmB,MAAM;AACvB,SAAI,EAAE,aAAa,KAAK,OAAO,aAC7B,WAAU,GAAG;SAEb,WAAU,EAAE,aAAa,CAAC;;IAG9B,SACE,sBACI,SACA,CACE;KACE,QAAQ,OAAO,KAAK,MAAM,EAAE,MAAM;KAClC,OAAO,OAAO,WAAW;KAC1B,CACF;IAEP,OAAO,EACL,cAAc,UAAU,WAAW,QAAQ,OAAO,cACnD;IACD,OAAO,sBAAsB,SAAY;KACzC;IACM;GAEJ;;AAId,cAAc,cAAc;AAE5B,4BAAe"}
@@ -1,7 +1,7 @@
1
1
  import { MotionComponentType } from "../MotionProvider/index.mjs";
2
2
  import { TranslationResourcesInput } from "../i18n/types.mjs";
3
3
  import { CDN, CdnApi } from "../utils/genCdnUrl.mjs";
4
- import * as react66 from "react";
4
+ import * as react0 from "react";
5
5
  import { ElementType, ReactNode } from "react";
6
6
 
7
7
  //#region src/ConfigProvider/index.d.ts
@@ -19,7 +19,7 @@ interface ConfigProviderProps {
19
19
  motion: MotionComponentType;
20
20
  resources?: TranslationResourcesInput;
21
21
  }
22
- declare const ConfigProvider: react66.NamedExoticComponent<ConfigProviderProps>;
22
+ declare const ConfigProvider: react0.NamedExoticComponent<ConfigProviderProps>;
23
23
  type CdnFn = ({
24
24
  pkg,
25
25
  version,
@@ -1,8 +1,8 @@
1
- import * as react105 from "react";
1
+ import * as react109 from "react";
2
2
  import * as react_jsx_runtime0 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/ContextMenu/ContextMenuHost.d.ts
5
- declare const ContextMenuHost: react105.MemoExoticComponent<() => react_jsx_runtime0.JSX.Element | null>;
5
+ declare const ContextMenuHost: react109.MemoExoticComponent<() => react_jsx_runtime0.JSX.Element | null>;
6
6
  //#endregion
7
7
  export { ContextMenuHost };
8
8
  //# sourceMappingURL=ContextMenuHost.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { CopyButtonProps } from "./type.mjs";
2
- import * as react0 from "react";
2
+ import * as react62 from "react";
3
3
 
4
4
  //#region src/CopyButton/CopyButton.d.ts
5
- declare const CopyButton: react0.NamedExoticComponent<CopyButtonProps>;
5
+ declare const CopyButton: react62.NamedExoticComponent<CopyButtonProps>;
6
6
  //#endregion
7
7
  export { CopyButton };
8
8
  //# sourceMappingURL=CopyButton.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { DatePickerProps } from "./type.mjs";
2
- import * as react2 from "react";
2
+ import * as react63 from "react";
3
3
 
4
4
  //#region src/DatePicker/DatePicker.d.ts
5
- declare const DatePicker: react2.NamedExoticComponent<DatePickerProps>;
5
+ declare const DatePicker: react63.NamedExoticComponent<DatePickerProps>;
6
6
  //#endregion
7
7
  export { DatePicker };
8
8
  //# sourceMappingURL=DatePicker.d.mts.map
@@ -1,9 +1,9 @@
1
1
  import { DivProps } from "../../types/index.mjs";
2
- import * as react30 from "react";
2
+ import * as react58 from "react";
3
3
 
4
4
  //#region src/DraggablePanel/components/DraggablePanelBody.d.ts
5
5
  type DraggablePanelBodyProps = DivProps;
6
- declare const DraggablePanelBody: react30.NamedExoticComponent<DivProps>;
6
+ declare const DraggablePanelBody: react58.NamedExoticComponent<DivProps>;
7
7
  //#endregion
8
8
  export { DraggablePanelBody, DraggablePanelBodyProps };
9
9
  //# sourceMappingURL=DraggablePanelBody.d.mts.map
@@ -1,9 +1,9 @@
1
1
  import { DivProps } from "../../types/index.mjs";
2
- import * as react31 from "react";
2
+ import * as react59 from "react";
3
3
 
4
4
  //#region src/DraggablePanel/components/DraggablePanelContainer.d.ts
5
5
  type DraggablePanelContainerProps = DivProps;
6
- declare const DraggablePanelContainer: react31.NamedExoticComponent<DivProps>;
6
+ declare const DraggablePanelContainer: react59.NamedExoticComponent<DivProps>;
7
7
  //#endregion
8
8
  export { DraggablePanelContainer, DraggablePanelContainerProps };
9
9
  //# sourceMappingURL=DraggablePanelContainer.d.mts.map
@@ -1,9 +1,9 @@
1
1
  import { DivProps } from "../../types/index.mjs";
2
- import * as react32 from "react";
2
+ import * as react60 from "react";
3
3
 
4
4
  //#region src/DraggablePanel/components/DraggablePanelFooter.d.ts
5
5
  type DraggablePanelFooterProps = DivProps;
6
- declare const DraggablePanelFooter: react32.NamedExoticComponent<DivProps>;
6
+ declare const DraggablePanelFooter: react60.NamedExoticComponent<DivProps>;
7
7
  //#endregion
8
8
  export { DraggablePanelFooter, DraggablePanelFooterProps };
9
9
  //# sourceMappingURL=DraggablePanelFooter.d.mts.map
@@ -1,5 +1,5 @@
1
1
  import { DivProps } from "../../types/index.mjs";
2
- import * as react34 from "react";
2
+ import * as react61 from "react";
3
3
 
4
4
  //#region src/DraggablePanel/components/DraggablePanelHeader.d.ts
5
5
  interface DraggablePanelHeaderProps extends Omit<DivProps, 'children'> {
@@ -9,7 +9,7 @@ interface DraggablePanelHeaderProps extends Omit<DivProps, 'children'> {
9
9
  setPin?: (pin: boolean) => void;
10
10
  title?: string;
11
11
  }
12
- declare const DraggablePanelHeader: react34.NamedExoticComponent<DraggablePanelHeaderProps>;
12
+ declare const DraggablePanelHeader: react61.NamedExoticComponent<DraggablePanelHeaderProps>;
13
13
  //#endregion
14
14
  export { DraggablePanelHeader, DraggablePanelHeaderProps };
15
15
  //# sourceMappingURL=DraggablePanelHeader.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { DraggableSideNavProps } from "./type.mjs";
2
- import * as react35 from "react";
2
+ import * as react57 from "react";
3
3
 
4
4
  //#region src/DraggableSideNav/DraggableSideNav.d.ts
5
- declare const DraggableSideNav: react35.NamedExoticComponent<DraggableSideNavProps>;
5
+ declare const DraggableSideNav: react57.NamedExoticComponent<DraggableSideNavProps>;
6
6
  //#endregion
7
7
  export { DraggableSideNav };
8
8
  //# sourceMappingURL=DraggableSideNav.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { DrawerProps } from "./type.mjs";
2
- import * as react24 from "react";
2
+ import * as react56 from "react";
3
3
 
4
4
  //#region src/Drawer/Drawer.d.ts
5
- declare const Drawer: react24.NamedExoticComponent<DrawerProps>;
5
+ declare const Drawer: react56.NamedExoticComponent<DrawerProps>;
6
6
  //#endregion
7
7
  export { Drawer };
8
8
  //# sourceMappingURL=Drawer.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { DropdownProps } from "./type.mjs";
2
- import * as react23 from "react";
2
+ import * as react70 from "react";
3
3
 
4
4
  //#region src/Dropdown/Dropdown.d.ts
5
- declare const Dropdown: react23.NamedExoticComponent<DropdownProps>;
5
+ declare const Dropdown: react70.NamedExoticComponent<DropdownProps>;
6
6
  //#endregion
7
7
  export { Dropdown };
8
8
  //# sourceMappingURL=Dropdown.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { DropdownMenuProps } from "./type.mjs";
2
- import * as react13 from "react";
2
+ import * as react0 from "react";
3
3
 
4
4
  //#region src/DropdownMenu/DropdownMenu.d.ts
5
- declare const DropdownMenu: react13.NamedExoticComponent<DropdownMenuProps<unknown>>;
5
+ declare const DropdownMenu: react0.NamedExoticComponent<DropdownMenuProps<unknown>>;
6
6
  //#endregion
7
7
  export { DropdownMenu };
8
8
  //# sourceMappingURL=DropdownMenu.d.mts.map