@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.
- package/es/Accordion/Accordion.d.mts +2 -2
- package/es/Accordion/AccordionItem.d.mts +2 -2
- package/es/ActionIcon/ActionIcon.d.mts +2 -2
- package/es/ActionIconGroup/ActionIconGroup.mjs +1 -0
- package/es/ActionIconGroup/ActionIconGroup.mjs.map +1 -1
- package/es/Alert/Alert.d.mts +2 -2
- package/es/AutoComplete/Select.d.mts +2 -2
- package/es/Avatar/Avatar.mjs +41 -31
- package/es/Avatar/Avatar.mjs.map +1 -1
- package/es/Avatar/AvatarGroup/index.d.mts +2 -2
- package/es/Avatar/utils.mjs +50 -0
- package/es/Avatar/utils.mjs.map +1 -0
- package/es/Burger/Burger.d.mts +2 -2
- package/es/CodeEditor/CodeEditor.d.mts +2 -2
- package/es/Collapse/Collapse.d.mts +2 -2
- package/es/ColorSwatches/ColorSwatches.mjs +3 -2
- package/es/ColorSwatches/ColorSwatches.mjs.map +1 -1
- package/es/ConfigProvider/index.d.mts +2 -2
- package/es/ContextMenu/ContextMenuHost.d.mts +2 -2
- package/es/CopyButton/CopyButton.d.mts +2 -2
- package/es/DatePicker/DatePicker.d.mts +2 -2
- package/es/DraggablePanel/components/DraggablePanelBody.d.mts +2 -2
- package/es/DraggablePanel/components/DraggablePanelContainer.d.mts +2 -2
- package/es/DraggablePanel/components/DraggablePanelFooter.d.mts +2 -2
- package/es/DraggablePanel/components/DraggablePanelHeader.d.mts +2 -2
- package/es/DraggableSideNav/DraggableSideNav.d.mts +2 -2
- package/es/Drawer/Drawer.d.mts +2 -2
- package/es/Dropdown/Dropdown.d.mts +2 -2
- package/es/DropdownMenu/DropdownMenu.d.mts +2 -2
- package/es/DropdownMenu/DropdownMenu.mjs +25 -4
- package/es/DropdownMenu/DropdownMenu.mjs.map +1 -1
- package/es/DropdownMenu/type.d.mts +1 -0
- package/es/EditableText/EditableText.d.mts +2 -2
- package/es/EmojiPicker/EmojiPicker.d.mts +2 -2
- package/es/Flex/FlexBasic.d.mts +2 -2
- package/es/FontLoader/index.d.mts +2 -2
- package/es/Footer/Footer.d.mts +2 -2
- package/es/Form/components/FormGroup.d.mts +2 -2
- package/es/Form/components/FormItem.d.mts +2 -2
- package/es/Form/components/FormSubmitFooter.d.mts +2 -2
- package/es/FormModal/FormModal.d.mts +2 -2
- package/es/GuideCard/GuideCard.d.mts +2 -2
- package/es/Header/Header.d.mts +2 -2
- package/es/Highlighter/Highlighter.d.mts +2 -2
- package/es/Highlighter/SyntaxHighlighter/index.d.mts +2 -2
- package/es/Hotkey/Hotkey.d.mts +2 -2
- package/es/HotkeyInput/HotkeyInput.d.mts +2 -2
- package/es/Icon/Icon.d.mts +2 -2
- package/es/Icon/components/IconProvider.d.mts +3 -3
- package/es/Image/PreviewGroup.d.mts +2 -2
- package/es/Image/PreviewGroup.mjs +2 -2
- package/es/Image/PreviewGroup.mjs.map +1 -1
- package/es/Image/components/usePreviewGroup.mjs.map +1 -1
- package/es/ImageSelect/ImageSelect.d.mts +2 -2
- package/es/Input/Input.d.mts +2 -2
- package/es/Input/InputNumber.d.mts +2 -2
- package/es/Input/InputOPT.d.mts +2 -2
- package/es/Input/InputPassword.d.mts +2 -2
- package/es/Input/TextArea.d.mts +2 -2
- package/es/Layout/components/LayoutFooter.d.mts +2 -2
- package/es/Layout/components/LayoutHeader.d.mts +2 -2
- package/es/Layout/components/LayoutMain.d.mts +2 -2
- package/es/Layout/components/LayoutSidebar.d.mts +2 -2
- package/es/Layout/components/LayoutSidebarInner.d.mts +2 -2
- package/es/Layout/components/LayoutToc.d.mts +2 -2
- package/es/List/ListItem/index.d.mts +2 -2
- package/es/Markdown/Markdown.d.mts +2 -2
- package/es/Markdown/Typography.d.mts +2 -2
- package/es/Markdown/components/SearchResultCards/index.d.mts +2 -2
- package/es/MaskShadow/MaskShadow.d.mts +2 -2
- package/es/Menu/Menu.d.mts +2 -2
- package/es/Mermaid/Mermaid.d.mts +2 -2
- package/es/Mermaid/SyntaxMermaid/index.d.mts +2 -2
- package/es/Modal/Modal.d.mts +2 -2
- package/es/Modal/ModalProvider.d.mts +2 -2
- package/es/MotionProvider/index.d.mts +2 -2
- package/es/SearchBar/SearchBar.d.mts +2 -2
- package/es/Segmented/Segmented.d.mts +2 -2
- package/es/Select/Select.d.mts +2 -2
- package/es/SideNav/SideNav.d.mts +2 -2
- package/es/SliderWithInput/SliderWithInput.d.mts +2 -2
- package/es/SortableList/components/DragHandle.d.mts +2 -2
- package/es/SortableList/components/SortableItem.d.mts +2 -2
- package/es/ThemeProvider/GlobalStyle/antdOverride.mjs +4 -3
- package/es/ThemeProvider/GlobalStyle/antdOverride.mjs.map +1 -1
- package/es/ThemeProvider/ThemeProvider.d.mts +2 -2
- package/es/ThemeSwitch/ThemeSwitch.mjs +1 -0
- package/es/ThemeSwitch/ThemeSwitch.mjs.map +1 -1
- package/es/Toc/Toc.d.mts +2 -2
- package/es/Video/index.d.mts +2 -2
- package/es/awesome/AuroraBackground/AuroraBackground.d.mts +2 -2
- package/es/awesome/BottomGradientButton/BottomGradientButton.d.mts +2 -2
- package/es/awesome/Features/Features.d.mts +2 -2
- package/es/awesome/Giscus/Giscus.d.mts +2 -2
- package/es/awesome/Giscus/style.mjs +4 -3
- package/es/awesome/Giscus/style.mjs.map +1 -1
- package/es/awesome/GradientButton/GradientButton.d.mts +2 -2
- package/es/awesome/GridBackground/GridBackground.d.mts +2 -2
- package/es/awesome/GridBackground/GridShowcase.d.mts +2 -2
- package/es/awesome/Spline/Spine.d.mts +2 -2
- package/es/awesome/Spotlight/Spotlight.d.mts +2 -2
- package/es/awesome/SpotlightCard/SpotlightCard.d.mts +2 -2
- package/es/awesome/TypewriterEffect/TypewriterEffect.d.mts +2 -2
- package/es/brand/LobeChat/index.d.mts +2 -2
- package/es/brand/LobeHub/index.d.mts +2 -2
- package/es/brand/LogoThree/LogoSpline.d.mts +2 -2
- package/es/brand/LogoThree/index.d.mts +2 -2
- package/es/chat/BackBottom/BackBottom.d.mts +2 -2
- package/es/chat/ChatInputArea/components/ChatInputAreaInner.d.mts +2 -2
- package/es/chat/ChatItem/ChatItem.d.mts +2 -2
- package/es/chat/ChatList/ChatList.d.mts +2 -2
- package/es/chat/EditableMessage/EditableMessage.d.mts +2 -2
- package/es/chat/EditableMessageList/EditableMessageList.d.mts +2 -2
- package/es/chat/MessageInput/MessageInput.d.mts +2 -2
- package/es/chat/MessageModal/MessageModal.d.mts +2 -2
- package/es/color/ColorScales/index.d.mts +2 -2
- package/es/color/CssVar/index.d.mts +2 -2
- package/es/i18n/context.d.mts +2 -2
- package/es/icons/lucideExtra/DiscordIcon.d.mts +3 -3
- package/es/icons/lucideExtra/GlobeOffIcon.d.mts +3 -3
- package/es/icons/lucideExtra/GroupBotSquareIcon.d.mts +3 -3
- package/es/icons/lucideExtra/LeftClickIcon.d.mts +3 -3
- package/es/icons/lucideExtra/LeftDoubleClickIcon.d.mts +3 -3
- package/es/icons/lucideExtra/McpIcon.d.mts +3 -3
- package/es/icons/lucideExtra/ProviderIcon.d.mts +3 -3
- package/es/icons/lucideExtra/RightClickIcon.d.mts +3 -3
- package/es/icons/lucideExtra/ShapesUploadIcon.d.mts +3 -3
- package/es/icons/lucideExtra/TreeDownRightIcon.d.mts +3 -3
- package/es/icons/lucideExtra/TreeUpDownRightIcon.d.mts +3 -3
- package/es/mdx/Mdx/index.d.mts +2 -2
- package/es/mobile/ChatHeader/ChatHeaderTitle.d.mts +2 -2
- package/es/mobile/ChatInputArea/components/ChatSendButton.d.mts +2 -2
- package/es/mobile/TabBar/TabBar.d.mts +2 -2
- package/es/storybook/StoryBook/index.d.mts +2 -2
- package/es/utils/safeReadableColor.mjs +15 -0
- package/es/utils/safeReadableColor.mjs.map +1 -0
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { AccordionProps } from "./type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react72 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/Accordion/Accordion.d.ts
|
|
5
|
-
declare const Accordion:
|
|
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
|
|
2
|
+
import * as react73 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/Accordion/AccordionItem.d.ts
|
|
5
|
-
declare const AccordionItem:
|
|
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
|
|
2
|
+
import * as react71 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/ActionIcon/ActionIcon.d.ts
|
|
5
|
-
declare const ActionIcon:
|
|
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;
|
|
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"}
|
package/es/Alert/Alert.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { AlertProps } from "./type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react68 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/Alert/Alert.d.ts
|
|
5
|
-
declare const Alert:
|
|
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
|
|
2
|
+
import * as react69 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/AutoComplete/Select.d.ts
|
|
5
|
-
declare const AutoComplete:
|
|
5
|
+
declare const AutoComplete: react69.NamedExoticComponent<AutoCompleteProps>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { AutoComplete };
|
|
8
8
|
//# sourceMappingURL=Select.d.mts.map
|
package/es/Avatar/Avatar.mjs
CHANGED
|
@@ -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 {
|
|
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(() =>
|
|
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
|
-
|
|
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:
|
|
45
|
+
size: calculateEmojiSize(size, hasBackground, emojiScaleWithBackground),
|
|
44
46
|
type: animation ? "anim" : "3d",
|
|
45
47
|
unoptimized
|
|
46
|
-
}) :
|
|
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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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";
|
package/es/Avatar/Avatar.mjs.map
CHANGED
|
@@ -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 {
|
|
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
|
|
2
|
+
import * as react67 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/Avatar/AvatarGroup/index.d.ts
|
|
5
|
-
declare const AvatarGroup:
|
|
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"}
|
package/es/Burger/Burger.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BurgerProps } from "./type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react66 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/Burger/Burger.d.ts
|
|
5
|
-
declare const Burger:
|
|
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
|
|
2
|
+
import * as react65 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/CodeEditor/CodeEditor.d.ts
|
|
5
|
-
declare const CodeEditor:
|
|
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
|
|
2
|
+
import * as react64 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/Collapse/Collapse.d.ts
|
|
5
|
-
declare const Collapse:
|
|
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 {
|
|
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(
|
|
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 {
|
|
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
|
|
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:
|
|
22
|
+
declare const ConfigProvider: react0.NamedExoticComponent<ConfigProviderProps>;
|
|
23
23
|
type CdnFn = ({
|
|
24
24
|
pkg,
|
|
25
25
|
version,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as
|
|
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:
|
|
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
|
|
2
|
+
import * as react62 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/CopyButton/CopyButton.d.ts
|
|
5
|
-
declare const CopyButton:
|
|
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
|
|
2
|
+
import * as react63 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/DatePicker/DatePicker.d.ts
|
|
5
|
-
declare const DatePicker:
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
2
|
+
import * as react57 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/DraggableSideNav/DraggableSideNav.d.ts
|
|
5
|
-
declare const DraggableSideNav:
|
|
5
|
+
declare const DraggableSideNav: react57.NamedExoticComponent<DraggableSideNavProps>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { DraggableSideNav };
|
|
8
8
|
//# sourceMappingURL=DraggableSideNav.d.mts.map
|
package/es/Drawer/Drawer.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { DrawerProps } from "./type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react56 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/Drawer/Drawer.d.ts
|
|
5
|
-
declare const Drawer:
|
|
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
|
|
2
|
+
import * as react70 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/Dropdown/Dropdown.d.ts
|
|
5
|
-
declare const Dropdown:
|
|
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
|
|
2
|
+
import * as react0 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/DropdownMenu/DropdownMenu.d.ts
|
|
5
|
-
declare const DropdownMenu:
|
|
5
|
+
declare const DropdownMenu: react0.NamedExoticComponent<DropdownMenuProps<unknown>>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { DropdownMenu };
|
|
8
8
|
//# sourceMappingURL=DropdownMenu.d.mts.map
|