@lobehub/ui 4.9.2 → 4.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/es/Accordion/Accordion.d.mts +2 -2
  2. package/es/Accordion/AccordionItem.d.mts +2 -2
  3. package/es/ActionIcon/ActionIcon.d.mts +2 -2
  4. package/es/Alert/Alert.d.mts +2 -2
  5. package/es/AutoComplete/Select.d.mts +2 -2
  6. package/es/Avatar/Avatar.mjs +41 -31
  7. package/es/Avatar/Avatar.mjs.map +1 -1
  8. package/es/Avatar/AvatarGroup/index.d.mts +2 -2
  9. package/es/Avatar/utils.mjs +50 -0
  10. package/es/Avatar/utils.mjs.map +1 -0
  11. package/es/Burger/Burger.d.mts +2 -2
  12. package/es/CodeEditor/CodeEditor.d.mts +2 -2
  13. package/es/Collapse/Collapse.d.mts +2 -2
  14. package/es/ColorSwatches/ColorSwatches.mjs +3 -2
  15. package/es/ColorSwatches/ColorSwatches.mjs.map +1 -1
  16. package/es/ConfigProvider/index.d.mts +2 -2
  17. package/es/ContextMenu/ContextMenuHost.d.mts +2 -2
  18. package/es/CopyButton/CopyButton.d.mts +2 -2
  19. package/es/DatePicker/DatePicker.d.mts +2 -2
  20. package/es/DraggablePanel/components/DraggablePanelBody.d.mts +2 -2
  21. package/es/DraggablePanel/components/DraggablePanelContainer.d.mts +2 -2
  22. package/es/DraggablePanel/components/DraggablePanelFooter.d.mts +2 -2
  23. package/es/DraggablePanel/components/DraggablePanelHeader.d.mts +2 -2
  24. package/es/DraggablePanel/style.mjs +1 -1
  25. package/es/DraggablePanel/style.mjs.map +1 -1
  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 +9 -2
  29. package/es/Dropdown/Dropdown.mjs +6 -0
  30. package/es/Dropdown/Dropdown.mjs.map +1 -1
  31. package/es/DropdownMenu/DropdownMenu.d.mts +2 -2
  32. package/es/DropdownMenu/DropdownMenu.mjs +20 -36
  33. package/es/DropdownMenu/DropdownMenu.mjs.map +1 -1
  34. package/es/DropdownMenu/type.d.mts +2 -1
  35. package/es/EditableText/EditableText.d.mts +2 -2
  36. package/es/EmojiPicker/EmojiPicker.d.mts +2 -2
  37. package/es/Flex/FlexBasic.d.mts +2 -2
  38. package/es/FontLoader/index.d.mts +2 -2
  39. package/es/Footer/Footer.d.mts +2 -2
  40. package/es/Form/components/FormGroup.d.mts +2 -2
  41. package/es/Form/components/FormItem.d.mts +2 -2
  42. package/es/Form/components/FormSubmitFooter.d.mts +2 -2
  43. package/es/FormModal/FormModal.d.mts +2 -2
  44. package/es/GuideCard/GuideCard.d.mts +2 -2
  45. package/es/Header/Header.d.mts +2 -2
  46. package/es/Highlighter/Highlighter.d.mts +2 -2
  47. package/es/Highlighter/SyntaxHighlighter/index.d.mts +2 -2
  48. package/es/Hotkey/Hotkey.d.mts +2 -2
  49. package/es/HotkeyInput/HotkeyInput.d.mts +2 -2
  50. package/es/Icon/Icon.d.mts +2 -2
  51. package/es/Icon/components/IconProvider.d.mts +3 -3
  52. package/es/Image/PreviewGroup.d.mts +2 -2
  53. package/es/ImageSelect/ImageSelect.d.mts +2 -2
  54. package/es/Input/Input.d.mts +2 -2
  55. package/es/Input/InputNumber.d.mts +2 -2
  56. package/es/Input/InputOPT.d.mts +2 -2
  57. package/es/Input/InputPassword.d.mts +2 -2
  58. package/es/Input/TextArea.d.mts +2 -2
  59. package/es/Layout/components/LayoutFooter.d.mts +2 -2
  60. package/es/Layout/components/LayoutHeader.d.mts +2 -2
  61. package/es/Layout/components/LayoutMain.d.mts +2 -2
  62. package/es/Layout/components/LayoutSidebar.d.mts +2 -2
  63. package/es/Layout/components/LayoutSidebarInner.d.mts +2 -2
  64. package/es/Layout/components/LayoutToc.d.mts +2 -2
  65. package/es/List/ListItem/index.d.mts +2 -2
  66. package/es/Markdown/Markdown.d.mts +2 -2
  67. package/es/Markdown/Typography.d.mts +2 -2
  68. package/es/Markdown/components/SearchResultCards/index.d.mts +2 -2
  69. package/es/MaskShadow/MaskShadow.d.mts +2 -2
  70. package/es/Menu/Menu.d.mts +2 -2
  71. package/es/Menu/sharedStyle.mjs +56 -10
  72. package/es/Menu/sharedStyle.mjs.map +1 -1
  73. package/es/Mermaid/Mermaid.d.mts +2 -2
  74. package/es/Mermaid/SyntaxMermaid/index.d.mts +2 -2
  75. package/es/Modal/Modal.d.mts +2 -2
  76. package/es/Modal/ModalProvider.d.mts +2 -2
  77. package/es/MotionProvider/index.d.mts +2 -2
  78. package/es/Popover/ArrowIcon.mjs +22 -0
  79. package/es/Popover/ArrowIcon.mjs.map +1 -0
  80. package/es/Popover/Popover.d.mts +9 -0
  81. package/es/Popover/Popover.mjs +20 -0
  82. package/es/Popover/Popover.mjs.map +1 -0
  83. package/es/Popover/PopoverGroup.d.mts +11 -0
  84. package/es/Popover/PopoverGroup.mjs +96 -0
  85. package/es/Popover/PopoverGroup.mjs.map +1 -0
  86. package/es/Popover/PopoverInGroup.mjs +55 -0
  87. package/es/Popover/PopoverInGroup.mjs.map +1 -0
  88. package/es/Popover/PopoverPortal.mjs +45 -0
  89. package/es/Popover/PopoverPortal.mjs.map +1 -0
  90. package/es/Popover/PopoverStandalone.mjs +166 -0
  91. package/es/Popover/PopoverStandalone.mjs.map +1 -0
  92. package/es/Popover/groupContext.d.mts +14 -0
  93. package/es/Popover/groupContext.mjs +11 -0
  94. package/es/Popover/groupContext.mjs.map +1 -0
  95. package/es/Popover/index.d.mts +5 -0
  96. package/es/Popover/index.d.ts +1 -0
  97. package/es/Popover/index.js +1 -0
  98. package/es/Popover/index.mjs +5 -0
  99. package/es/Popover/parseTrigger.d.mts +14 -0
  100. package/es/Popover/parseTrigger.mjs +18 -0
  101. package/es/Popover/parseTrigger.mjs.map +1 -0
  102. package/es/Popover/style.mjs +218 -0
  103. package/es/Popover/style.mjs.map +1 -0
  104. package/es/Popover/type.d.mts +112 -0
  105. package/es/Popover/useMergedPopoverProps.mjs +88 -0
  106. package/es/Popover/useMergedPopoverProps.mjs.map +1 -0
  107. package/es/SearchBar/SearchBar.d.mts +2 -2
  108. package/es/Segmented/Segmented.d.mts +2 -2
  109. package/es/Select/Select.d.mts +2 -2
  110. package/es/SideNav/SideNav.d.mts +2 -2
  111. package/es/SliderWithInput/SliderWithInput.d.mts +2 -2
  112. package/es/SortableList/components/DragHandle.d.mts +2 -2
  113. package/es/SortableList/components/SortableItem.d.mts +2 -2
  114. package/es/ThemeProvider/GlobalStyle/antdOverride.mjs +4 -3
  115. package/es/ThemeProvider/GlobalStyle/antdOverride.mjs.map +1 -1
  116. package/es/ThemeProvider/ThemeProvider.d.mts +2 -2
  117. package/es/Toc/Toc.d.mts +2 -2
  118. package/es/Tooltip/TooltipGroup.mjs +2 -2
  119. package/es/Tooltip/TooltipGroup.mjs.map +1 -1
  120. package/es/Tooltip/type.d.mts +2 -2
  121. package/es/Tooltip/useTooltipFloating.mjs +2 -2
  122. package/es/Tooltip/useTooltipFloating.mjs.map +1 -1
  123. package/es/Video/index.d.mts +2 -2
  124. package/es/awesome/AuroraBackground/AuroraBackground.d.mts +2 -2
  125. package/es/awesome/BottomGradientButton/BottomGradientButton.d.mts +2 -2
  126. package/es/awesome/Features/Features.d.mts +2 -2
  127. package/es/awesome/Giscus/style.mjs +4 -3
  128. package/es/awesome/Giscus/style.mjs.map +1 -1
  129. package/es/awesome/GradientButton/GradientButton.d.mts +2 -2
  130. package/es/awesome/GridBackground/GridBackground.d.mts +2 -2
  131. package/es/awesome/GridBackground/GridShowcase.d.mts +2 -2
  132. package/es/awesome/Hero/Hero.d.mts +2 -2
  133. package/es/awesome/Spotlight/Spotlight.d.mts +2 -2
  134. package/es/awesome/SpotlightCard/SpotlightCard.d.mts +2 -2
  135. package/es/awesome/TypewriterEffect/TypewriterEffect.d.mts +2 -2
  136. package/es/brand/LobeChat/index.d.mts +2 -2
  137. package/es/brand/LobeHub/index.d.mts +2 -2
  138. package/es/brand/LogoThree/LogoSpline.d.mts +2 -2
  139. package/es/brand/LogoThree/index.d.mts +2 -2
  140. package/es/chat/BackBottom/BackBottom.d.mts +2 -2
  141. package/es/chat/ChatInputArea/components/ChatInputAreaInner.d.mts +2 -2
  142. package/es/chat/ChatItem/ChatItem.d.mts +2 -2
  143. package/es/chat/ChatList/ChatList.d.mts +2 -2
  144. package/es/chat/EditableMessage/EditableMessage.d.mts +2 -2
  145. package/es/chat/EditableMessageList/EditableMessageList.d.mts +2 -2
  146. package/es/chat/MessageInput/MessageInput.d.mts +2 -2
  147. package/es/chat/MessageModal/MessageModal.d.mts +2 -2
  148. package/es/color/ColorScales/index.d.mts +2 -2
  149. package/es/color/CssVar/index.d.mts +2 -2
  150. package/es/i18n/context.d.mts +2 -2
  151. package/es/icons/lucideExtra/BotPromptIcon.d.mts +2 -2
  152. package/es/icons/lucideExtra/CreateBotIcon.d.mts +3 -3
  153. package/es/icons/lucideExtra/DiscordIcon.d.mts +3 -3
  154. package/es/icons/lucideExtra/GlobeOffIcon.d.mts +2 -2
  155. package/es/icons/lucideExtra/GroupBotIcon.d.mts +3 -3
  156. package/es/icons/lucideExtra/GroupBotSquareIcon.d.mts +3 -3
  157. package/es/icons/lucideExtra/LeftClickIcon.d.mts +3 -3
  158. package/es/icons/lucideExtra/LeftDoubleClickIcon.d.mts +3 -3
  159. package/es/icons/lucideExtra/McpIcon.d.mts +3 -3
  160. package/es/icons/lucideExtra/ProviderIcon.d.mts +3 -3
  161. package/es/icons/lucideExtra/RightClickIcon.d.mts +3 -3
  162. package/es/icons/lucideExtra/RightDoubleClickIcon.d.mts +3 -3
  163. package/es/icons/lucideExtra/ShapesUploadIcon.d.mts +3 -3
  164. package/es/icons/lucideExtra/TreeDownRightIcon.d.mts +3 -3
  165. package/es/icons/lucideExtra/TreeUpDownRightIcon.d.mts +3 -3
  166. package/es/index.d.mts +6 -1
  167. package/es/index.mjs +4 -1
  168. package/es/mdx/Mdx/index.d.mts +2 -2
  169. package/es/mobile/ChatHeader/ChatHeaderTitle.d.mts +2 -2
  170. package/es/mobile/ChatInputArea/components/ChatSendButton.d.mts +2 -2
  171. package/es/mobile/TabBar/TabBar.d.mts +2 -2
  172. package/es/storybook/StoryBook/index.d.mts +2 -2
  173. package/es/utils/placement.d.mts +31 -0
  174. package/es/utils/placement.mjs +100 -0
  175. package/es/utils/placement.mjs.map +1 -0
  176. package/es/utils/safeReadableColor.mjs +15 -0
  177. package/es/utils/safeReadableColor.mjs.map +1 -0
  178. package/package.json +1 -1
  179. package/es/Tooltip/antdPlacementToFloating.mjs +0 -27
  180. package/es/Tooltip/antdPlacementToFloating.mjs.map +0 -1
@@ -1,8 +1,8 @@
1
1
  import { AccordionProps } from "./type.mjs";
2
- import * as react23 from "react";
2
+ import * as react71 from "react";
3
3
 
4
4
  //#region src/Accordion/Accordion.d.ts
5
- declare const Accordion: react23.NamedExoticComponent<AccordionProps>;
5
+ declare const Accordion: react71.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 react24 from "react";
2
+ import * as react72 from "react";
3
3
 
4
4
  //#region src/Accordion/AccordionItem.d.ts
5
- declare const AccordionItem: react24.NamedExoticComponent<AccordionItemProps>;
5
+ declare const AccordionItem: react72.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 react22 from "react";
2
+ import * as react70 from "react";
3
3
 
4
4
  //#region src/ActionIcon/ActionIcon.d.ts
5
- declare const ActionIcon: react22.NamedExoticComponent<ActionIconProps>;
5
+ declare const ActionIcon: react70.NamedExoticComponent<ActionIconProps>;
6
6
  //#endregion
7
7
  export { ActionIcon };
8
8
  //# sourceMappingURL=ActionIcon.d.mts.map
@@ -1,8 +1,8 @@
1
1
  import { AlertProps } from "./type.mjs";
2
- import * as react11 from "react";
2
+ import * as react69 from "react";
3
3
 
4
4
  //#region src/Alert/Alert.d.ts
5
- declare const Alert: react11.NamedExoticComponent<AlertProps>;
5
+ declare const Alert: react69.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 react9 from "react";
2
+ import * as react73 from "react";
3
3
 
4
4
  //#region src/AutoComplete/Select.d.ts
5
- declare const AutoComplete: react9.NamedExoticComponent<AutoCompleteProps>;
5
+ declare const AutoComplete: react73.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 react7 from "react";
2
+ import * as react67 from "react";
3
3
 
4
4
  //#region src/Avatar/AvatarGroup/index.d.ts
5
- declare const AvatarGroup: react7.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 react8 from "react";
2
+ import * as react26 from "react";
3
3
 
4
4
  //#region src/Burger/Burger.d.ts
5
- declare const Burger: react8.NamedExoticComponent<BurgerProps>;
5
+ declare const Burger: react26.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 react6 from "react";
2
+ import * as react25 from "react";
3
3
 
4
4
  //#region src/CodeEditor/CodeEditor.d.ts
5
- declare const CodeEditor: react6.NamedExoticComponent<CodeEditorProps>;
5
+ declare const CodeEditor: react25.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 react5 from "react";
2
+ import * as react24 from "react";
3
3
 
4
4
  //#region src/Collapse/Collapse.d.ts
5
- declare const Collapse: react5.NamedExoticComponent<CollapseProps>;
5
+ declare const Collapse: react24.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 react108 from "react";
1
+ import * as react76 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: react108.MemoExoticComponent<() => react_jsx_runtime0.JSX.Element | null>;
5
+ declare const ContextMenuHost: react76.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 react64 from "react";
2
+ import * as react23 from "react";
3
3
 
4
4
  //#region src/CopyButton/CopyButton.d.ts
5
- declare const CopyButton: react64.NamedExoticComponent<CopyButtonProps>;
5
+ declare const CopyButton: react23.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 react65 from "react";
2
+ import * as react22 from "react";
3
3
 
4
4
  //#region src/DatePicker/DatePicker.d.ts
5
- declare const DatePicker: react65.NamedExoticComponent<DatePickerProps>;
5
+ declare const DatePicker: react22.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 react59 from "react";
2
+ import * as react17 from "react";
3
3
 
4
4
  //#region src/DraggablePanel/components/DraggablePanelBody.d.ts
5
5
  type DraggablePanelBodyProps = DivProps;
6
- declare const DraggablePanelBody: react59.NamedExoticComponent<DivProps>;
6
+ declare const DraggablePanelBody: react17.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 react60 from "react";
2
+ import * as react16 from "react";
3
3
 
4
4
  //#region src/DraggablePanel/components/DraggablePanelContainer.d.ts
5
5
  type DraggablePanelContainerProps = DivProps;
6
- declare const DraggablePanelContainer: react60.NamedExoticComponent<DivProps>;
6
+ declare const DraggablePanelContainer: react16.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 react61 from "react";
2
+ import * as react18 from "react";
3
3
 
4
4
  //#region src/DraggablePanel/components/DraggablePanelFooter.d.ts
5
5
  type DraggablePanelFooterProps = DivProps;
6
- declare const DraggablePanelFooter: react61.NamedExoticComponent<DivProps>;
6
+ declare const DraggablePanelFooter: react18.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 react62 from "react";
2
+ import * as react19 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: react62.NamedExoticComponent<DraggablePanelHeaderProps>;
12
+ declare const DraggablePanelHeader: react19.NamedExoticComponent<DraggablePanelHeaderProps>;
13
13
  //#endregion
14
14
  export { DraggablePanelHeader, DraggablePanelHeaderProps };
15
15
  //# sourceMappingURL=DraggablePanelHeader.d.mts.map
@@ -73,7 +73,7 @@ const styles = createStaticStyles(({ css: css$1, cssVar: cssVar$1 }) => {
73
73
  const handleHighlightStyle = css$1`
74
74
  &:hover {
75
75
  &::before {
76
- background: ${cssVar$1.colorPrimary};
76
+ background: ${cssVar$1.colorPrimaryBorder};
77
77
  box-shadow: 0 0 8px color-mix(in srgb, ${cssVar$1.colorPrimary} 25%, transparent);
78
78
  }
79
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"style.mjs","names":["cssVar"],"sources":["../../src/DraggablePanel/style.ts"],"sourcesContent":["import { createStaticStyles, cx } from 'antd-style';\nimport { cva } from 'class-variance-authority';\n\n// Layout constants\nconst LAYOUT = {\n offset: 16,\n toggleLength: 54,\n toggleShort: 16,\n};\n\nconst prefixCls = 'ant';\n\nconst prefix = `${prefixCls}-draggable-panel`;\n\nexport const styles = createStaticStyles(({ css, cssVar }) => {\n // Base styles - border styles split by showBorder\n const borderStyles = {\n borderBottom: css`\n border-block-end: 1px solid ${cssVar.colorBorderSecondary};\n `,\n borderBottomNone: css`\n border-block-end-width: 0;\n `,\n borderLeft: css`\n border-inline-start: 1px solid ${cssVar.colorBorderSecondary};\n `,\n borderLeftNone: css`\n border-inline-start-width: 0;\n `,\n borderRight: css`\n border-inline-end: 1px solid ${cssVar.colorBorderSecondary};\n `,\n borderRightNone: css`\n border-inline-end-width: 0;\n `,\n borderTop: css`\n border-block-start: 1px solid ${cssVar.colorBorderSecondary};\n `,\n borderTopNone: css`\n border-block-start-width: 0;\n `,\n };\n\n // Position styles\n const float = css`\n position: absolute;\n z-index: 200;\n `;\n\n const floatPositions = {\n bottomFloat: cx(\n float,\n css`\n inset-block-end: 0;\n inset-inline: 0 0;\n width: 100%;\n `,\n ),\n leftFloat: cx(\n float,\n css`\n inset-block: var(--draggable-panel-header-height, 0) 0;\n inset-inline-start: 0;\n height: calc(100% - var(--draggable-panel-header-height, 0px));\n `,\n ),\n rightFloat: cx(\n float,\n css`\n inset-block: var(--draggable-panel-header-height, 0) 0;\n inset-inline-end: 0;\n height: calc(100% - var(--draggable-panel-header-height, 0px));\n `,\n ),\n topFloat: cx(\n float,\n css`\n inset-block-start: var(--draggable-panel-header-height, 0);\n inset-inline: 0 0;\n width: 100%;\n `,\n ),\n };\n\n // Handle styles\n const handleBaseStyle = css`\n position: relative;\n\n &::before {\n content: '';\n position: absolute;\n transition: all 0.2s ${cssVar.motionEaseOut};\n }\n `;\n\n const handleHighlightStyle = css`\n &:hover {\n &::before {\n background: ${cssVar.colorPrimary};\n box-shadow: 0 0 8px color-mix(in srgb, ${cssVar.colorPrimary} 25%, transparent);\n }\n }\n\n &:active {\n &::before {\n background: ${cssVar.colorPrimary} !important;\n }\n }\n `;\n\n const handleStyles = {\n handleBottom: cx(\n `${prefix}-bottom-handle`,\n css`\n &::before {\n inset-block-end: 50%;\n width: 100%;\n height: 2px;\n }\n `,\n ),\n handleLeft: cx(\n `${prefix}-left-handle`,\n css`\n &::before {\n inset-inline-start: 50%;\n width: 2px;\n height: 100%;\n }\n `,\n ),\n handleRight: cx(\n `${prefix}-right-handle`,\n css`\n &::before {\n inset-inline-end: 50%;\n width: 2px;\n height: 100%;\n }\n `,\n ),\n handleRoot: handleBaseStyle,\n handleTop: cx(\n `${prefix}-top-handle`,\n css`\n &::before {\n inset-block-start: 50%;\n width: 100%;\n height: 2px;\n }\n `,\n ),\n };\n\n // Toggle styles - base class with variant for showHandleWideArea\n const toggleRoot = cx(\n `${prefix}-toggle`,\n css`\n position: absolute;\n z-index: 50;\n opacity: 0;\n transition: all 0.2s ${cssVar.motionEaseOut};\n\n &:hover,\n &:active {\n opacity: 1 !important;\n }\n\n > div {\n pointer-events: all;\n cursor: pointer;\n\n position: absolute;\n\n border: 1px solid ${cssVar.colorBorder};\n\n color: ${cssVar.colorTextTertiary};\n\n background: var(--draggable-panel-bg, ${cssVar.colorBgLayout});\n backdrop-filter: blur(8px);\n\n transition: all 0.2s ${cssVar.motionEaseOut};\n\n &:hover {\n color: ${cssVar.colorTextSecondary};\n }\n\n &:active {\n color: ${cssVar.colorText};\n }\n }\n `,\n );\n\n const toggleRootWithWideArea = css`\n pointer-events: all;\n `;\n\n const toggleRootWithoutWideArea = css`\n pointer-events: none;\n `;\n\n const toggleStyles = {\n toggleBottom: cx(\n `${prefix}-toggle-bottom`,\n css`\n inset-block-end: -${LAYOUT.offset}px;\n width: 100%;\n height: ${LAYOUT.toggleShort}px;\n\n > div {\n inset-inline-start: 50%;\n\n width: ${LAYOUT.toggleLength}px;\n height: ${LAYOUT.toggleShort}px;\n margin-inline-start: -27px;\n border-block-start-width: 0;\n border-radius: 0 0 ${cssVar.borderRadiusLG} ${cssVar.borderRadiusLG};\n }\n `,\n ),\n toggleLeft: cx(\n `${prefix}-toggle-left`,\n css`\n inset-inline-start: -${LAYOUT.offset}px;\n width: ${LAYOUT.toggleShort}px;\n height: 100%;\n\n > div {\n inset-block-start: 50%;\n\n width: ${LAYOUT.toggleShort}px;\n height: ${LAYOUT.toggleLength}px;\n margin-block-start: -27px;\n border-inline-end-width: 0;\n border-radius: ${cssVar.borderRadiusLG} 0 0 ${cssVar.borderRadiusLG};\n }\n `,\n ),\n toggleRight: cx(\n `${prefix}-toggle-right`,\n css`\n inset-inline-end: -${LAYOUT.offset}px;\n width: ${LAYOUT.toggleShort}px;\n height: 100%;\n\n > div {\n inset-block-start: 50%;\n\n width: ${LAYOUT.toggleShort}px;\n height: ${LAYOUT.toggleLength}px;\n margin-block-start: -27px;\n border-inline-start-width: 0;\n border-radius: 0 ${cssVar.borderRadiusLG} ${cssVar.borderRadiusLG} 0;\n }\n `,\n ),\n toggleRoot,\n toggleRootWithWideArea,\n toggleRootWithoutWideArea,\n toggleTop: cx(\n `${prefix}-toggle-top`,\n css`\n inset-block-start: -${LAYOUT.offset}px;\n width: 100%;\n height: ${LAYOUT.toggleShort}px;\n\n > div {\n inset-inline-start: 50%;\n\n width: ${LAYOUT.toggleLength}px;\n height: ${LAYOUT.toggleShort}px;\n margin-inline-start: -27px;\n border-block-end-width: 0;\n border-radius: ${cssVar.borderRadiusLG} ${cssVar.borderRadiusLG} 0 0;\n }\n `,\n ),\n };\n\n // Additional component styles\n const componentStyles = {\n fixed: css`\n position: relative;\n `,\n fullscreen: css`\n position: absolute;\n inset-block: var(--draggable-panel-header-height, 0) 0;\n inset-inline: 0;\n\n width: 100%;\n height: calc(100% - var(--draggable-panel-header-height, 0px));\n\n background: ${cssVar.colorBgContainer};\n `,\n handlerIcon: css`\n transition: all 0.2s ${cssVar.motionEaseOut};\n `,\n panel: cx(\n `${prefix}-fixed`,\n css`\n overflow: hidden;\n background: var(--draggable-panel-bg, ${cssVar.colorBgLayout});\n transition: all 0.2s ${cssVar.motionEaseOut};\n `,\n ),\n root: cx(\n prefix,\n css`\n flex-shrink: 0;\n\n &:hover {\n > .${prefix}-toggle {\n opacity: 1;\n }\n }\n `,\n ),\n };\n\n return {\n ...borderStyles,\n ...floatPositions,\n ...handleStyles,\n handleHighlight: handleHighlightStyle,\n ...toggleStyles,\n ...componentStyles,\n };\n});\n\nexport const handleVariants = cva(styles.handleRoot, {\n variants: {\n placement: {\n bottom: styles.handleBottom,\n left: styles.handleLeft,\n right: styles.handleRight,\n top: styles.handleTop,\n },\n },\n});\n\nexport const panelVariants = cva(styles.root, {\n compoundVariants: [\n {\n class: styles.bottomFloat,\n mode: 'float',\n placement: 'bottom',\n },\n {\n class: styles.topFloat,\n mode: 'float',\n placement: 'top',\n },\n {\n class: styles.leftFloat,\n mode: 'float',\n placement: 'left',\n },\n {\n class: styles.rightFloat,\n mode: 'float',\n placement: 'right',\n },\n // Border styles based on placement, isExpand, and showBorder\n // Note: border is on the opposite side of placement\n // placement 'top' -> borderBottom, placement 'right' -> borderLeft, etc.\n {\n class: styles.borderBottom,\n isExpand: true,\n placement: 'top',\n showBorder: true,\n },\n {\n class: styles.borderBottomNone,\n isExpand: true,\n placement: 'top',\n showBorder: false,\n },\n {\n class: styles.borderLeft,\n isExpand: true,\n placement: 'right',\n showBorder: true,\n },\n {\n class: styles.borderLeftNone,\n isExpand: true,\n placement: 'right',\n showBorder: false,\n },\n {\n class: styles.borderTop,\n isExpand: true,\n placement: 'bottom',\n showBorder: true,\n },\n {\n class: styles.borderTopNone,\n isExpand: true,\n placement: 'bottom',\n showBorder: false,\n },\n {\n class: styles.borderRight,\n isExpand: true,\n placement: 'left',\n showBorder: true,\n },\n {\n class: styles.borderRightNone,\n isExpand: true,\n placement: 'left',\n showBorder: false,\n },\n ],\n defaultVariants: {\n isExpand: false,\n mode: 'fixed',\n placement: 'right',\n showBorder: true,\n },\n /* eslint-disable sort-keys-fix/sort-keys-fix */\n variants: {\n isExpand: {\n false: null,\n true: null,\n },\n mode: {\n fixed: styles.fixed,\n float: null,\n },\n placement: {\n bottom: null,\n left: null,\n right: null,\n top: null,\n },\n showBorder: {\n false: null,\n true: null,\n },\n },\n /* eslint-enable sort-keys-fix/sort-keys-fix */\n});\n\nexport const toggleVariants = cva(styles.toggleRoot, {\n compoundVariants: [\n {\n class: styles.toggleRootWithWideArea,\n showHandleWideArea: true,\n },\n {\n class: styles.toggleRootWithoutWideArea,\n showHandleWideArea: false,\n },\n ],\n defaultVariants: {\n showHandleWideArea: false,\n },\n variants: {\n placement: {\n bottom: styles.toggleTop,\n left: styles.toggleRight,\n right: styles.toggleLeft,\n top: styles.toggleBottom,\n },\n showHandleWideArea: {\n false: null,\n true: null,\n },\n },\n});\n"],"mappings":"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W;GACZ;EACD;GACE,OAAO,OAAO;GACd,MAAM;GACN,WAAW;GACZ;EAID;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACD;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACD;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACD;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACD;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACD;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACD;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACD;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACF;CACD,iBAAiB;EACf,UAAU;EACV,MAAM;EACN,WAAW;EACX,YAAY;EACb;CAED,UAAU;EACR,UAAU;GACR,OAAO;GACP,MAAM;GACP;EACD,MAAM;GACJ,OAAO,OAAO;GACd,OAAO;GACR;EACD,WAAW;GACT,QAAQ;GACR,MAAM;GACN,OAAO;GACP,KAAK;GACN;EACD,YAAY;GACV,OAAO;GACP,MAAM;GACP;EACF;CAEF,CAAC;AAEF,MAAa,iBAAiB,IAAI,OAAO,YAAY;CACnD,kBAAkB,CAChB;EACE,OAAO,OAAO;EACd,oBAAoB;EACrB,EACD;EACE,OAAO,OAAO;EACd,oBAAoB;EACrB,CACF;CACD,iBAAiB,EACf,oBAAoB,OACrB;CACD,UAAU;EACR,WAAW;GACT,QAAQ,OAAO;GACf,MAAM,OAAO;GACb,OAAO,OAAO;GACd,KAAK,OAAO;GACb;EACD,oBAAoB;GAClB,OAAO;GACP,MAAM;GACP;EACF;CACF,CAAC"}
1
+ {"version":3,"file":"style.mjs","names":["cssVar"],"sources":["../../src/DraggablePanel/style.ts"],"sourcesContent":["import { createStaticStyles, cx } from 'antd-style';\nimport { cva } from 'class-variance-authority';\n\n// Layout constants\nconst LAYOUT = {\n offset: 16,\n toggleLength: 54,\n toggleShort: 16,\n};\n\nconst prefixCls = 'ant';\n\nconst prefix = `${prefixCls}-draggable-panel`;\n\nexport const styles = createStaticStyles(({ css, cssVar }) => {\n // Base styles - border styles split by showBorder\n const borderStyles = {\n borderBottom: css`\n border-block-end: 1px solid ${cssVar.colorBorderSecondary};\n `,\n borderBottomNone: css`\n border-block-end-width: 0;\n `,\n borderLeft: css`\n border-inline-start: 1px solid ${cssVar.colorBorderSecondary};\n `,\n borderLeftNone: css`\n border-inline-start-width: 0;\n `,\n borderRight: css`\n border-inline-end: 1px solid ${cssVar.colorBorderSecondary};\n `,\n borderRightNone: css`\n border-inline-end-width: 0;\n `,\n borderTop: css`\n border-block-start: 1px solid ${cssVar.colorBorderSecondary};\n `,\n borderTopNone: css`\n border-block-start-width: 0;\n `,\n };\n\n // Position styles\n const float = css`\n position: absolute;\n z-index: 200;\n `;\n\n const floatPositions = {\n bottomFloat: cx(\n float,\n css`\n inset-block-end: 0;\n inset-inline: 0 0;\n width: 100%;\n `,\n ),\n leftFloat: cx(\n float,\n css`\n inset-block: var(--draggable-panel-header-height, 0) 0;\n inset-inline-start: 0;\n height: calc(100% - var(--draggable-panel-header-height, 0px));\n `,\n ),\n rightFloat: cx(\n float,\n css`\n inset-block: var(--draggable-panel-header-height, 0) 0;\n inset-inline-end: 0;\n height: calc(100% - var(--draggable-panel-header-height, 0px));\n `,\n ),\n topFloat: cx(\n float,\n css`\n inset-block-start: var(--draggable-panel-header-height, 0);\n inset-inline: 0 0;\n width: 100%;\n `,\n ),\n };\n\n // Handle styles\n const handleBaseStyle = css`\n position: relative;\n\n &::before {\n content: '';\n position: absolute;\n transition: all 0.2s ${cssVar.motionEaseOut};\n }\n `;\n\n const handleHighlightStyle = css`\n &:hover {\n &::before {\n background: ${cssVar.colorPrimaryBorder};\n box-shadow: 0 0 8px color-mix(in srgb, ${cssVar.colorPrimary} 25%, transparent);\n }\n }\n\n &:active {\n &::before {\n background: ${cssVar.colorPrimary} !important;\n }\n }\n `;\n\n const handleStyles = {\n handleBottom: cx(\n `${prefix}-bottom-handle`,\n css`\n &::before {\n inset-block-end: 50%;\n width: 100%;\n height: 2px;\n }\n `,\n ),\n handleLeft: cx(\n `${prefix}-left-handle`,\n css`\n &::before {\n inset-inline-start: 50%;\n width: 2px;\n height: 100%;\n }\n `,\n ),\n handleRight: cx(\n `${prefix}-right-handle`,\n css`\n &::before {\n inset-inline-end: 50%;\n width: 2px;\n height: 100%;\n }\n `,\n ),\n handleRoot: handleBaseStyle,\n handleTop: cx(\n `${prefix}-top-handle`,\n css`\n &::before {\n inset-block-start: 50%;\n width: 100%;\n height: 2px;\n }\n `,\n ),\n };\n\n // Toggle styles - base class with variant for showHandleWideArea\n const toggleRoot = cx(\n `${prefix}-toggle`,\n css`\n position: absolute;\n z-index: 50;\n opacity: 0;\n transition: all 0.2s ${cssVar.motionEaseOut};\n\n &:hover,\n &:active {\n opacity: 1 !important;\n }\n\n > div {\n pointer-events: all;\n cursor: pointer;\n\n position: absolute;\n\n border: 1px solid ${cssVar.colorBorder};\n\n color: ${cssVar.colorTextTertiary};\n\n background: var(--draggable-panel-bg, ${cssVar.colorBgLayout});\n backdrop-filter: blur(8px);\n\n transition: all 0.2s ${cssVar.motionEaseOut};\n\n &:hover {\n color: ${cssVar.colorTextSecondary};\n }\n\n &:active {\n color: ${cssVar.colorText};\n }\n }\n `,\n );\n\n const toggleRootWithWideArea = css`\n pointer-events: all;\n `;\n\n const toggleRootWithoutWideArea = css`\n pointer-events: none;\n `;\n\n const toggleStyles = {\n toggleBottom: cx(\n `${prefix}-toggle-bottom`,\n css`\n inset-block-end: -${LAYOUT.offset}px;\n width: 100%;\n height: ${LAYOUT.toggleShort}px;\n\n > div {\n inset-inline-start: 50%;\n\n width: ${LAYOUT.toggleLength}px;\n height: ${LAYOUT.toggleShort}px;\n margin-inline-start: -27px;\n border-block-start-width: 0;\n border-radius: 0 0 ${cssVar.borderRadiusLG} ${cssVar.borderRadiusLG};\n }\n `,\n ),\n toggleLeft: cx(\n `${prefix}-toggle-left`,\n css`\n inset-inline-start: -${LAYOUT.offset}px;\n width: ${LAYOUT.toggleShort}px;\n height: 100%;\n\n > div {\n inset-block-start: 50%;\n\n width: ${LAYOUT.toggleShort}px;\n height: ${LAYOUT.toggleLength}px;\n margin-block-start: -27px;\n border-inline-end-width: 0;\n border-radius: ${cssVar.borderRadiusLG} 0 0 ${cssVar.borderRadiusLG};\n }\n `,\n ),\n toggleRight: cx(\n `${prefix}-toggle-right`,\n css`\n inset-inline-end: -${LAYOUT.offset}px;\n width: ${LAYOUT.toggleShort}px;\n height: 100%;\n\n > div {\n inset-block-start: 50%;\n\n width: ${LAYOUT.toggleShort}px;\n height: ${LAYOUT.toggleLength}px;\n margin-block-start: -27px;\n border-inline-start-width: 0;\n border-radius: 0 ${cssVar.borderRadiusLG} ${cssVar.borderRadiusLG} 0;\n }\n `,\n ),\n toggleRoot,\n toggleRootWithWideArea,\n toggleRootWithoutWideArea,\n toggleTop: cx(\n `${prefix}-toggle-top`,\n css`\n inset-block-start: -${LAYOUT.offset}px;\n width: 100%;\n height: ${LAYOUT.toggleShort}px;\n\n > div {\n inset-inline-start: 50%;\n\n width: ${LAYOUT.toggleLength}px;\n height: ${LAYOUT.toggleShort}px;\n margin-inline-start: -27px;\n border-block-end-width: 0;\n border-radius: ${cssVar.borderRadiusLG} ${cssVar.borderRadiusLG} 0 0;\n }\n `,\n ),\n };\n\n // Additional component styles\n const componentStyles = {\n fixed: css`\n position: relative;\n `,\n fullscreen: css`\n position: absolute;\n inset-block: var(--draggable-panel-header-height, 0) 0;\n inset-inline: 0;\n\n width: 100%;\n height: calc(100% - var(--draggable-panel-header-height, 0px));\n\n background: ${cssVar.colorBgContainer};\n `,\n handlerIcon: css`\n transition: all 0.2s ${cssVar.motionEaseOut};\n `,\n panel: cx(\n `${prefix}-fixed`,\n css`\n overflow: hidden;\n background: var(--draggable-panel-bg, ${cssVar.colorBgLayout});\n transition: all 0.2s ${cssVar.motionEaseOut};\n `,\n ),\n root: cx(\n prefix,\n css`\n flex-shrink: 0;\n\n &:hover {\n > .${prefix}-toggle {\n opacity: 1;\n }\n }\n `,\n ),\n };\n\n return {\n ...borderStyles,\n ...floatPositions,\n ...handleStyles,\n handleHighlight: handleHighlightStyle,\n ...toggleStyles,\n ...componentStyles,\n };\n});\n\nexport const handleVariants = cva(styles.handleRoot, {\n variants: {\n placement: {\n bottom: styles.handleBottom,\n left: styles.handleLeft,\n right: styles.handleRight,\n top: styles.handleTop,\n },\n },\n});\n\nexport const panelVariants = cva(styles.root, {\n compoundVariants: [\n {\n class: styles.bottomFloat,\n mode: 'float',\n placement: 'bottom',\n },\n {\n class: styles.topFloat,\n mode: 'float',\n placement: 'top',\n },\n {\n class: styles.leftFloat,\n mode: 'float',\n placement: 'left',\n },\n {\n class: styles.rightFloat,\n mode: 'float',\n placement: 'right',\n },\n // Border styles based on placement, isExpand, and showBorder\n // Note: border is on the opposite side of placement\n // placement 'top' -> borderBottom, placement 'right' -> borderLeft, etc.\n {\n class: styles.borderBottom,\n isExpand: true,\n placement: 'top',\n showBorder: true,\n },\n {\n class: styles.borderBottomNone,\n isExpand: true,\n placement: 'top',\n showBorder: false,\n },\n {\n class: styles.borderLeft,\n isExpand: true,\n placement: 'right',\n showBorder: true,\n },\n {\n class: styles.borderLeftNone,\n isExpand: true,\n placement: 'right',\n showBorder: false,\n },\n {\n class: styles.borderTop,\n isExpand: true,\n placement: 'bottom',\n showBorder: true,\n },\n {\n class: styles.borderTopNone,\n isExpand: true,\n placement: 'bottom',\n showBorder: false,\n },\n {\n class: styles.borderRight,\n isExpand: true,\n placement: 'left',\n showBorder: true,\n },\n {\n class: styles.borderRightNone,\n isExpand: true,\n placement: 'left',\n showBorder: false,\n },\n ],\n defaultVariants: {\n isExpand: false,\n mode: 'fixed',\n placement: 'right',\n showBorder: true,\n },\n /* eslint-disable sort-keys-fix/sort-keys-fix */\n variants: {\n isExpand: {\n false: null,\n true: null,\n },\n mode: {\n fixed: styles.fixed,\n float: null,\n },\n placement: {\n bottom: null,\n left: null,\n right: null,\n top: null,\n },\n showBorder: {\n false: null,\n true: null,\n },\n },\n /* eslint-enable sort-keys-fix/sort-keys-fix */\n});\n\nexport const toggleVariants = cva(styles.toggleRoot, {\n compoundVariants: [\n {\n class: styles.toggleRootWithWideArea,\n showHandleWideArea: true,\n },\n {\n class: styles.toggleRootWithoutWideArea,\n showHandleWideArea: false,\n },\n ],\n defaultVariants: {\n showHandleWideArea: false,\n },\n variants: {\n placement: {\n bottom: styles.toggleTop,\n left: styles.toggleRight,\n right: styles.toggleLeft,\n top: styles.toggleBottom,\n },\n showHandleWideArea: {\n false: null,\n true: null,\n },\n },\n});\n"],"mappings":"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AAW;GACZ;EACD;GACE,OAAO,OAAO;GACd,MAAM;GACN,WAAW;GACZ;EAID;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACD;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACD;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACD;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACD;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACD;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACD;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACD;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACF;CACD,iBAAiB;EACf,UAAU;EACV,MAAM;EACN,WAAW;EACX,YAAY;EACb;CAED,UAAU;EACR,UAAU;GACR,OAAO;GACP,MAAM;GACP;EACD,MAAM;GACJ,OAAO,OAAO;GACd,OAAO;GACR;EACD,WAAW;GACT,QAAQ;GACR,MAAM;GACN,OAAO;GACP,KAAK;GACN;EACD,YAAY;GACV,OAAO;GACP,MAAM;GACP;EACF;CAEF,CAAC;AAEF,MAAa,iBAAiB,IAAI,OAAO,YAAY;CACnD,kBAAkB,CAChB;EACE,OAAO,OAAO;EACd,oBAAoB;EACrB,EACD;EACE,OAAO,OAAO;EACd,oBAAoB;EACrB,CACF;CACD,iBAAiB,EACf,oBAAoB,OACrB;CACD,UAAU;EACR,WAAW;GACT,QAAQ,OAAO;GACf,MAAM,OAAO;GACb,OAAO,OAAO;GACd,KAAK,OAAO;GACb;EACD,oBAAoB;GAClB,OAAO;GACP,MAAM;GACP;EACF;CACF,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { DraggableSideNavProps } from "./type.mjs";
2
- import * as react63 from "react";
2
+ import * as react21 from "react";
3
3
 
4
4
  //#region src/DraggableSideNav/DraggableSideNav.d.ts
5
- declare const DraggableSideNav: react63.NamedExoticComponent<DraggableSideNavProps>;
5
+ declare const DraggableSideNav: react21.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 react21 from "react";
2
+ import * as react20 from "react";
3
3
 
4
4
  //#region src/Drawer/Drawer.d.ts
5
- declare const Drawer: react21.NamedExoticComponent<DrawerProps>;
5
+ declare const Drawer: react20.NamedExoticComponent<DrawerProps>;
6
6
  //#endregion
7
7
  export { Drawer };
8
8
  //# sourceMappingURL=Drawer.d.mts.map