@lobehub/ui 4.33.3 → 4.34.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 (596) hide show
  1. package/README.md +3 -3
  2. package/es/A/index.mjs.map +1 -1
  3. package/es/Accordion/Accordion.d.mts +2 -2
  4. package/es/Accordion/Accordion.mjs +3 -3
  5. package/es/Accordion/Accordion.mjs.map +1 -1
  6. package/es/Accordion/AccordionItem.d.mts +2 -2
  7. package/es/Accordion/AccordionItem.mjs +15 -15
  8. package/es/Accordion/AccordionItem.mjs.map +1 -1
  9. package/es/Accordion/context.mjs +2 -2
  10. package/es/Accordion/context.mjs.map +1 -1
  11. package/es/ActionIcon/ActionIcon.d.mts +2 -2
  12. package/es/ActionIcon/ActionIcon.mjs +2 -2
  13. package/es/ActionIcon/ActionIcon.mjs.map +1 -1
  14. package/es/ActionIcon/style.mjs.map +1 -1
  15. package/es/ActionIconGroup/ActionIconGroup.mjs +3 -3
  16. package/es/ActionIconGroup/ActionIconGroup.mjs.map +1 -1
  17. package/es/ActionIconGroup/style.mjs.map +1 -1
  18. package/es/Alert/Alert.d.mts +2 -2
  19. package/es/Alert/Alert.mjs +6 -6
  20. package/es/Alert/Alert.mjs.map +1 -1
  21. package/es/Alert/style.mjs.map +1 -1
  22. package/es/AutoComplete/Select.d.mts +2 -2
  23. package/es/AutoComplete/Select.mjs +1 -1
  24. package/es/AutoComplete/Select.mjs.map +1 -1
  25. package/es/AutoComplete/style.mjs.map +1 -1
  26. package/es/Avatar/Avatar.mjs +4 -4
  27. package/es/Avatar/Avatar.mjs.map +1 -1
  28. package/es/Avatar/AvatarGroup/index.d.mts +2 -2
  29. package/es/Avatar/AvatarGroup/index.mjs +5 -5
  30. package/es/Avatar/AvatarGroup/index.mjs.map +1 -1
  31. package/es/Avatar/index.mjs.map +1 -1
  32. package/es/Avatar/style.mjs.map +1 -1
  33. package/es/Avatar/utils.mjs.map +1 -1
  34. package/es/Block/style.mjs.map +1 -1
  35. package/es/Burger/Burger.d.mts +2 -2
  36. package/es/Burger/Burger.mjs +2 -2
  37. package/es/Burger/Burger.mjs.map +1 -1
  38. package/es/Burger/type.d.mts +1 -1
  39. package/es/Button/Button.mjs +7 -7
  40. package/es/Button/Button.mjs.map +1 -1
  41. package/es/Button/style.mjs.map +1 -1
  42. package/es/Checkbox/Checkbox.mjs +8 -8
  43. package/es/Checkbox/Checkbox.mjs.map +1 -1
  44. package/es/Checkbox/CheckboxGroup.mjs +4 -4
  45. package/es/Checkbox/CheckboxGroup.mjs.map +1 -1
  46. package/es/Checkbox/index.mjs.map +1 -1
  47. package/es/CodeDiff/CodeDiff.d.mts +2 -2
  48. package/es/CodeDiff/CodeDiff.mjs +3 -3
  49. package/es/CodeDiff/CodeDiff.mjs.map +1 -1
  50. package/es/CodeDiff/PatchDiff.d.mts +2 -2
  51. package/es/CodeDiff/PatchDiff.mjs +3 -3
  52. package/es/CodeDiff/PatchDiff.mjs.map +1 -1
  53. package/es/CodeDiff/style.mjs.map +1 -1
  54. package/es/CodeEditor/CodeEditor.d.mts +2 -2
  55. package/es/CodeEditor/CodeEditor.mjs +5 -5
  56. package/es/CodeEditor/CodeEditor.mjs.map +1 -1
  57. package/es/CodeEditor/style.mjs.map +1 -1
  58. package/es/Collapse/Collapse.d.mts +2 -2
  59. package/es/Collapse/Collapse.mjs +5 -5
  60. package/es/Collapse/Collapse.mjs.map +1 -1
  61. package/es/Collapse/style.mjs.map +1 -1
  62. package/es/ColorSwatches/ColorSwatches.mjs +11 -11
  63. package/es/ColorSwatches/ColorSwatches.mjs.map +1 -1
  64. package/es/ConfigProvider/index.d.mts +3 -3
  65. package/es/ConfigProvider/index.mjs.map +1 -1
  66. package/es/ContextMenu/ContextMenuHost.d.mts +3 -3
  67. package/es/ContextMenu/ContextMenuHost.mjs +10 -3
  68. package/es/ContextMenu/ContextMenuHost.mjs.map +1 -1
  69. package/es/ContextMenu/ContextMenuTrigger.mjs.map +1 -1
  70. package/es/ContextMenu/renderItems.d.mts +1 -1
  71. package/es/ContextMenu/renderItems.mjs +39 -14
  72. package/es/ContextMenu/renderItems.mjs.map +1 -1
  73. package/es/ContextMenu/store.d.mts +3 -1
  74. package/es/ContextMenu/store.mjs +1 -0
  75. package/es/ContextMenu/store.mjs.map +1 -1
  76. package/es/CopyButton/CopyButton.d.mts +2 -2
  77. package/es/DatePicker/DatePicker.d.mts +2 -2
  78. package/es/DatePicker/DatePicker.mjs +1 -1
  79. package/es/DatePicker/DatePicker.mjs.map +1 -1
  80. package/es/DatePicker/style.mjs.map +1 -1
  81. package/es/DraggablePanel/DraggablePanel.mjs +9 -9
  82. package/es/DraggablePanel/DraggablePanel.mjs.map +1 -1
  83. package/es/DraggablePanel/components/DraggablePanelBody.d.mts +2 -2
  84. package/es/DraggablePanel/components/DraggablePanelContainer.d.mts +2 -2
  85. package/es/DraggablePanel/components/DraggablePanelFooter.d.mts +2 -2
  86. package/es/DraggablePanel/components/DraggablePanelFooter.mjs +1 -1
  87. package/es/DraggablePanel/components/DraggablePanelFooter.mjs.map +1 -1
  88. package/es/DraggablePanel/components/DraggablePanelHeader.d.mts +2 -2
  89. package/es/DraggablePanel/components/DraggablePanelHeader.mjs +7 -7
  90. package/es/DraggablePanel/components/DraggablePanelHeader.mjs.map +1 -1
  91. package/es/DraggablePanel/index.mjs +1 -1
  92. package/es/DraggablePanel/index.mjs.map +1 -1
  93. package/es/DraggablePanel/style.mjs.map +1 -1
  94. package/es/DraggableSideNav/DraggableSideNav.d.mts +2 -2
  95. package/es/DraggableSideNav/DraggableSideNav.mjs +5 -5
  96. package/es/DraggableSideNav/DraggableSideNav.mjs.map +1 -1
  97. package/es/Drawer/Drawer.d.mts +2 -2
  98. package/es/Drawer/Drawer.mjs +5 -5
  99. package/es/Drawer/Drawer.mjs.map +1 -1
  100. package/es/Dropdown/Dropdown.d.mts +2 -2
  101. package/es/DropdownMenu/DropdownMenu.d.mts +2 -2
  102. package/es/DropdownMenu/DropdownMenu.mjs +7 -3
  103. package/es/DropdownMenu/DropdownMenu.mjs.map +1 -1
  104. package/es/DropdownMenu/atoms.d.mts +33 -17
  105. package/es/DropdownMenu/atoms.mjs +20 -6
  106. package/es/DropdownMenu/atoms.mjs.map +1 -1
  107. package/es/DropdownMenu/index.d.mts +2 -2
  108. package/es/DropdownMenu/index.mjs +2 -2
  109. package/es/DropdownMenu/renderItems.d.mts +1 -1
  110. package/es/DropdownMenu/renderItems.mjs +36 -14
  111. package/es/DropdownMenu/renderItems.mjs.map +1 -1
  112. package/es/DropdownMenu/type.d.mts +8 -1
  113. package/es/EditableText/ControlInput.mjs +29 -29
  114. package/es/EditableText/ControlInput.mjs.map +1 -1
  115. package/es/EditableText/EditableText.d.mts +2 -2
  116. package/es/EditableText/EditableText.mjs +16 -16
  117. package/es/EditableText/EditableText.mjs.map +1 -1
  118. package/es/EditorSlashMenu/EditorSlashMenu.mjs +2 -2
  119. package/es/EditorSlashMenu/EditorSlashMenu.mjs.map +1 -1
  120. package/es/EditorSlashMenu/MenuItemRenderer.mjs +1 -1
  121. package/es/EditorSlashMenu/MenuItemRenderer.mjs.map +1 -1
  122. package/es/EditorSlashMenu/atoms.d.mts +22 -13
  123. package/es/EditorSlashMenu/atoms.mjs +3 -4
  124. package/es/EditorSlashMenu/atoms.mjs.map +1 -1
  125. package/es/EmojiPicker/AvatarUploader.mjs +5 -5
  126. package/es/EmojiPicker/AvatarUploader.mjs.map +1 -1
  127. package/es/EmojiPicker/EmojiPicker.d.mts +2 -2
  128. package/es/EmojiPicker/EmojiPicker.mjs +23 -23
  129. package/es/EmojiPicker/EmojiPicker.mjs.map +1 -1
  130. package/es/Empty/Empty.mjs +2 -2
  131. package/es/Empty/Empty.mjs.map +1 -1
  132. package/es/FileTypeIcon/components/FileIcon.mjs.map +1 -1
  133. package/es/FileTypeIcon/components/FolderIcon.mjs.map +1 -1
  134. package/es/Flex/FlexBasic.d.mts +2 -2
  135. package/es/FluentEmoji/FluentEmoji.mjs +1 -1
  136. package/es/FluentEmoji/FluentEmoji.mjs.map +1 -1
  137. package/es/FontLoader/index.d.mts +2 -2
  138. package/es/Footer/Footer.d.mts +2 -2
  139. package/es/Footer/Footer.mjs +1 -1
  140. package/es/Footer/Footer.mjs.map +1 -1
  141. package/es/Form/Form.mjs +12 -12
  142. package/es/Form/Form.mjs.map +1 -1
  143. package/es/Form/components/FormGroup.d.mts +2 -2
  144. package/es/Form/components/FormGroup.mjs +5 -5
  145. package/es/Form/components/FormGroup.mjs.map +1 -1
  146. package/es/Form/components/FormItem.d.mts +2 -2
  147. package/es/Form/components/FormProvider.mjs.map +1 -1
  148. package/es/Form/components/FormSubmitFooter.d.mts +2 -2
  149. package/es/Form/components/FormSubmitFooter.mjs +5 -5
  150. package/es/Form/components/FormSubmitFooter.mjs.map +1 -1
  151. package/es/Form/components/FormTitle.mjs +1 -1
  152. package/es/Form/components/FormTitle.mjs.map +1 -1
  153. package/es/Form/components/merge.mjs.map +1 -1
  154. package/es/Form/index.mjs +1 -1
  155. package/es/Form/index.mjs.map +1 -1
  156. package/es/Form/style.mjs.map +1 -1
  157. package/es/Form/type.d.mts +1 -1
  158. package/es/FormModal/FormModal.d.mts +2 -2
  159. package/es/FormModal/FormModal.mjs +10 -10
  160. package/es/FormModal/FormModal.mjs.map +1 -1
  161. package/es/GroupAvatar/style.mjs.map +1 -1
  162. package/es/GroupAvatar/type.d.mts +1 -1
  163. package/es/GuideCard/GuideCard.d.mts +2 -2
  164. package/es/GuideCard/style.mjs.map +1 -1
  165. package/es/Header/Header.d.mts +2 -2
  166. package/es/Header/Header.mjs +5 -5
  167. package/es/Header/Header.mjs.map +1 -1
  168. package/es/Highlighter/FullFeatured.mjs +9 -9
  169. package/es/Highlighter/FullFeatured.mjs.map +1 -1
  170. package/es/Highlighter/Highlighter.d.mts +2 -2
  171. package/es/Highlighter/Highlighter.mjs +4 -4
  172. package/es/Highlighter/Highlighter.mjs.map +1 -1
  173. package/es/Highlighter/LangSelect.mjs +6 -6
  174. package/es/Highlighter/LangSelect.mjs.map +1 -1
  175. package/es/Highlighter/SyntaxHighlighter/StaticRenderer.mjs +2 -2
  176. package/es/Highlighter/SyntaxHighlighter/StaticRenderer.mjs.map +1 -1
  177. package/es/Highlighter/SyntaxHighlighter/index.d.mts +2 -2
  178. package/es/Highlighter/SyntaxHighlighter/style.mjs.map +1 -1
  179. package/es/Highlighter/style.mjs.map +1 -1
  180. package/es/Hotkey/Hotkey.d.mts +2 -2
  181. package/es/Hotkey/Hotkey.mjs +5 -5
  182. package/es/Hotkey/Hotkey.mjs.map +1 -1
  183. package/es/Hotkey/style.mjs.map +1 -1
  184. package/es/HotkeyInput/HotkeyInput.d.mts +2 -2
  185. package/es/HotkeyInput/HotkeyInput.mjs +10 -10
  186. package/es/HotkeyInput/HotkeyInput.mjs.map +1 -1
  187. package/es/HotkeyInput/style.mjs.map +1 -1
  188. package/es/Icon/Icon.d.mts +2 -2
  189. package/es/Icon/Icon.mjs.map +1 -1
  190. package/es/Icon/components/IconProvider.d.mts +3 -3
  191. package/es/Icon/components/IconProvider.mjs.map +1 -1
  192. package/es/Icon/style.mjs.map +1 -1
  193. package/es/Image/Image.mjs +3 -3
  194. package/es/Image/Image.mjs.map +1 -1
  195. package/es/Image/PreviewGroup.d.mts +2 -2
  196. package/es/Image/PreviewGroup.mjs.map +1 -1
  197. package/es/Image/components/Preview.mjs.map +1 -1
  198. package/es/Image/components/Toolbar.mjs +1 -1
  199. package/es/Image/components/Toolbar.mjs.map +1 -1
  200. package/es/Image/components/usePreviewGroup.mjs.map +1 -1
  201. package/es/Image/style.mjs.map +1 -1
  202. package/es/ImageSelect/ImageSelect.d.mts +2 -2
  203. package/es/ImageSelect/ImageSelect.mjs +7 -7
  204. package/es/ImageSelect/ImageSelect.mjs.map +1 -1
  205. package/es/Img/index.mjs.map +1 -1
  206. package/es/Input/Input.d.mts +2 -2
  207. package/es/Input/Input.mjs +2 -2
  208. package/es/Input/Input.mjs.map +1 -1
  209. package/es/Input/InputNumber.d.mts +2 -2
  210. package/es/Input/InputNumber.mjs +2 -2
  211. package/es/Input/InputNumber.mjs.map +1 -1
  212. package/es/Input/InputOPT.mjs +2 -2
  213. package/es/Input/InputOPT.mjs.map +1 -1
  214. package/es/Input/InputPassword.d.mts +2 -2
  215. package/es/Input/InputPassword.mjs +2 -2
  216. package/es/Input/InputPassword.mjs.map +1 -1
  217. package/es/Input/TextArea.d.mts +2 -2
  218. package/es/Input/TextArea.mjs +2 -2
  219. package/es/Input/TextArea.mjs.map +1 -1
  220. package/es/Input/style.mjs.map +1 -1
  221. package/es/Layout/Layout.mjs +1 -1
  222. package/es/Layout/Layout.mjs.map +1 -1
  223. package/es/Layout/components/LayoutFooter.d.mts +2 -2
  224. package/es/Layout/components/LayoutHeader.d.mts +2 -2
  225. package/es/Layout/components/LayoutMain.d.mts +2 -2
  226. package/es/Layout/components/LayoutSidebar.d.mts +2 -2
  227. package/es/Layout/components/LayoutSidebarInner.d.mts +2 -2
  228. package/es/Layout/components/LayoutToc.d.mts +2 -2
  229. package/es/Layout/index.mjs.map +1 -1
  230. package/es/List/List.mjs +6 -6
  231. package/es/List/List.mjs.map +1 -1
  232. package/es/List/ListItem/index.d.mts +2 -2
  233. package/es/List/ListItem/index.mjs +11 -11
  234. package/es/List/ListItem/index.mjs.map +1 -1
  235. package/es/LobeSelect/LobeSelect.d.mts +2 -2
  236. package/es/LobeSelect/LobeSelect.mjs +16 -16
  237. package/es/LobeSelect/LobeSelect.mjs.map +1 -1
  238. package/es/LobeSelect/atoms.d.mts +19 -19
  239. package/es/LobeSelect/atoms.mjs +1 -1
  240. package/es/LobeSelect/atoms.mjs.map +1 -1
  241. package/es/LobeSwitch/LobeSwitch.d.mts +2 -2
  242. package/es/LobeSwitch/LobeSwitch.mjs +2 -2
  243. package/es/LobeSwitch/LobeSwitch.mjs.map +1 -1
  244. package/es/LobeSwitch/atoms.d.mts +4 -4
  245. package/es/LobeSwitch/atoms.mjs +10 -10
  246. package/es/LobeSwitch/atoms.mjs.map +1 -1
  247. package/es/Markdown/Markdown.d.mts +2 -2
  248. package/es/Markdown/Markdown.mjs +3 -3
  249. package/es/Markdown/Markdown.mjs.map +1 -1
  250. package/es/Markdown/SyntaxMarkdown/StreamdownRender.mjs.map +1 -1
  251. package/es/Markdown/Typography.d.mts +2 -2
  252. package/es/Markdown/components/CodeBlock.mjs.map +1 -1
  253. package/es/Markdown/components/Footnotes.mjs +3 -3
  254. package/es/Markdown/components/Footnotes.mjs.map +1 -1
  255. package/es/Markdown/components/MarkdownProvider.mjs.map +1 -1
  256. package/es/Markdown/components/SearchResultCards/SearchResultCard.mjs +3 -3
  257. package/es/Markdown/components/SearchResultCards/SearchResultCard.mjs.map +1 -1
  258. package/es/Markdown/components/SearchResultCards/index.d.mts +2 -2
  259. package/es/Markdown/components/SearchResultCards/index.mjs +1 -1
  260. package/es/Markdown/components/SearchResultCards/index.mjs.map +1 -1
  261. package/es/Markdown/plugins/rehypeCustomFootnotes.mjs.map +1 -1
  262. package/es/Markdown/plugins/rehypeKatexDir.mjs.map +1 -1
  263. package/es/Markdown/plugins/rehypeStreamAnimated.mjs.map +1 -1
  264. package/es/Markdown/plugins/remarkColor.mjs +1 -1
  265. package/es/Markdown/plugins/remarkColor.mjs.map +1 -1
  266. package/es/Markdown/plugins/remarkCustomFootnotes.mjs.map +1 -1
  267. package/es/Markdown/plugins/remarkVideo.mjs +3 -3
  268. package/es/Markdown/plugins/remarkVideo.mjs.map +1 -1
  269. package/es/Markdown/style.mjs.map +1 -1
  270. package/es/MaskShadow/MaskShadow.d.mts +2 -2
  271. package/es/MaskShadow/style.mjs.map +1 -1
  272. package/es/Menu/Menu.d.mts +2 -2
  273. package/es/Menu/Menu.mjs.map +1 -1
  274. package/es/Menu/checkboxItem.d.mts +1 -0
  275. package/es/Menu/index.d.mts +2 -2
  276. package/es/Menu/renderUtils.d.mts +4 -1
  277. package/es/Menu/renderUtils.mjs.map +1 -1
  278. package/es/Menu/sharedStyle.d.mts +4 -0
  279. package/es/Menu/sharedStyle.mjs +24 -0
  280. package/es/Menu/sharedStyle.mjs.map +1 -1
  281. package/es/Menu/style.mjs.map +1 -1
  282. package/es/Menu/switchItem.d.mts +1 -0
  283. package/es/Menu/type.d.mts +3 -1
  284. package/es/Mermaid/FullFeatured.mjs +7 -7
  285. package/es/Mermaid/FullFeatured.mjs.map +1 -1
  286. package/es/Mermaid/Mermaid.d.mts +2 -2
  287. package/es/Mermaid/Mermaid.mjs +1 -1
  288. package/es/Mermaid/Mermaid.mjs.map +1 -1
  289. package/es/Mermaid/SyntaxMermaid/StaticMermaid.mjs +3 -3
  290. package/es/Mermaid/SyntaxMermaid/StaticMermaid.mjs.map +1 -1
  291. package/es/Mermaid/SyntaxMermaid/StreamMermaid.mjs +3 -3
  292. package/es/Mermaid/SyntaxMermaid/StreamMermaid.mjs.map +1 -1
  293. package/es/Mermaid/SyntaxMermaid/index.d.mts +2 -2
  294. package/es/Mermaid/SyntaxMermaid/style.mjs.map +1 -1
  295. package/es/Modal/Modal.d.mts +2 -2
  296. package/es/Modal/Modal.mjs +25 -25
  297. package/es/Modal/Modal.mjs.map +1 -1
  298. package/es/Modal/ModalProvider.d.mts +2 -2
  299. package/es/Modal/ModalStackItem.mjs +1 -1
  300. package/es/Modal/ModalStackItem.mjs.map +1 -1
  301. package/es/Modal/imperative.d.mts +2 -2
  302. package/es/Modal/imperative.mjs +5 -5
  303. package/es/Modal/imperative.mjs.map +1 -1
  304. package/es/MotionProvider/index.d.mts +2 -2
  305. package/es/MotionProvider/index.mjs.map +1 -1
  306. package/es/Popover/ArrowIcon.d.mts +2 -2
  307. package/es/Popover/Popover.mjs +2 -2
  308. package/es/Popover/Popover.mjs.map +1 -1
  309. package/es/Popover/PopoverGroup.mjs +2 -2
  310. package/es/Popover/PopoverGroup.mjs.map +1 -1
  311. package/es/Popover/PopoverInGroup.mjs +2 -2
  312. package/es/Popover/PopoverInGroup.mjs.map +1 -1
  313. package/es/Popover/PopoverStandalone.mjs +1 -1
  314. package/es/Popover/PopoverStandalone.mjs.map +1 -1
  315. package/es/Popover/atoms.d.mts +9 -9
  316. package/es/Popover/atoms.mjs +1 -1
  317. package/es/Popover/atoms.mjs.map +1 -1
  318. package/es/Popover/context.d.mts +2 -2
  319. package/es/Popover/context.mjs.map +1 -1
  320. package/es/Popover/groupContext.mjs.map +1 -1
  321. package/es/ScrollArea/atoms.d.mts +7 -7
  322. package/es/ScrollArea/type.d.mts +1 -1
  323. package/es/ScrollShadow/style.mjs.map +1 -1
  324. package/es/ScrollShadow/useScrollOverflow.mjs.map +1 -1
  325. package/es/SearchBar/SearchBar.d.mts +2 -2
  326. package/es/SearchBar/SearchBar.mjs +14 -14
  327. package/es/SearchBar/SearchBar.mjs.map +1 -1
  328. package/es/Segmented/Segmented.d.mts +2 -2
  329. package/es/Segmented/style.mjs.map +1 -1
  330. package/es/Select/Select.d.mts +2 -2
  331. package/es/Select/Select.mjs +2 -2
  332. package/es/Select/Select.mjs.map +1 -1
  333. package/es/Select/style.mjs.map +1 -1
  334. package/es/SideNav/SideNav.d.mts +2 -2
  335. package/es/Skeleton/Skeleton.mjs +1 -1
  336. package/es/Skeleton/Skeleton.mjs.map +1 -1
  337. package/es/Skeleton/SkeletonBlock.mjs.map +1 -1
  338. package/es/Skeleton/SkeletonTags.mjs +3 -3
  339. package/es/Skeleton/SkeletonTags.mjs.map +1 -1
  340. package/es/Skeleton/SkeletonTitle.mjs +1 -1
  341. package/es/Skeleton/SkeletonTitle.mjs.map +1 -1
  342. package/es/SliderWithInput/SliderWithInput.d.mts +2 -2
  343. package/es/SliderWithInput/SliderWithInput.mjs +3 -3
  344. package/es/SliderWithInput/SliderWithInput.mjs.map +1 -1
  345. package/es/Snippet/Snippet.mjs +1 -1
  346. package/es/Snippet/Snippet.mjs.map +1 -1
  347. package/es/Snippet/style.mjs.map +1 -1
  348. package/es/SortableList/SortableList.mjs +1 -1
  349. package/es/SortableList/SortableList.mjs.map +1 -1
  350. package/es/SortableList/components/DragHandle.d.mts +2 -2
  351. package/es/SortableList/components/DragHandle.mjs +3 -3
  352. package/es/SortableList/components/DragHandle.mjs.map +1 -1
  353. package/es/SortableList/components/SortableItem.d.mts +2 -2
  354. package/es/SortableList/components/SortableItem.mjs +1 -1
  355. package/es/SortableList/components/SortableItem.mjs.map +1 -1
  356. package/es/SortableList/components/SortableOverlay.mjs.map +1 -1
  357. package/es/SortableList/style.mjs.map +1 -1
  358. package/es/SortableList/type.d.mts +2 -2
  359. package/es/Tabs/style.mjs.map +1 -1
  360. package/es/Tag/Tag.mjs +2 -2
  361. package/es/Tag/Tag.mjs.map +1 -1
  362. package/es/Tag/styles.mjs.map +1 -1
  363. package/es/Text/Text.mjs +27 -14
  364. package/es/Text/Text.mjs.map +1 -1
  365. package/es/Text/type.d.mts +18 -1
  366. package/es/ThemeProvider/ConfigProvider.mjs.map +1 -1
  367. package/es/ThemeProvider/GlobalStyle/antdOverride.mjs.map +1 -1
  368. package/es/ThemeProvider/GlobalStyle/global.mjs.map +1 -1
  369. package/es/ThemeProvider/ThemeProvider.d.mts +2 -2
  370. package/es/ThemeProvider/ThemeProvider.mjs.map +1 -1
  371. package/es/ThemeSwitch/ThemeSwitch.mjs +4 -4
  372. package/es/ThemeSwitch/ThemeSwitch.mjs.map +1 -1
  373. package/es/Toast/Toast.mjs +3 -3
  374. package/es/Toast/Toast.mjs.map +1 -1
  375. package/es/Toast/imperative.d.mts +3 -3
  376. package/es/Toast/imperative.mjs +1 -1
  377. package/es/Toast/imperative.mjs.map +1 -1
  378. package/es/Toc/Toc.d.mts +2 -2
  379. package/es/Toc/Toc.mjs.map +1 -1
  380. package/es/Toc/TocMobile.mjs +6 -6
  381. package/es/Toc/TocMobile.mjs.map +1 -1
  382. package/es/Toc/utils.mjs.map +1 -1
  383. package/es/Tooltip/Tooltip.mjs +2 -2
  384. package/es/Tooltip/Tooltip.mjs.map +1 -1
  385. package/es/Tooltip/TooltipContent.mjs.map +1 -1
  386. package/es/Tooltip/TooltipGroup.mjs +3 -3
  387. package/es/Tooltip/TooltipGroup.mjs.map +1 -1
  388. package/es/Tooltip/TooltipInGroup.mjs +3 -3
  389. package/es/Tooltip/TooltipInGroup.mjs.map +1 -1
  390. package/es/Tooltip/TooltipStandalone.mjs +2 -2
  391. package/es/Tooltip/TooltipStandalone.mjs.map +1 -1
  392. package/es/Tooltip/groupContext.mjs.map +1 -1
  393. package/es/Tooltip/type.d.mts +1 -1
  394. package/es/Video/index.d.mts +2 -2
  395. package/es/Video/index.mjs +8 -8
  396. package/es/Video/index.mjs.map +1 -1
  397. package/es/Video/style.mjs.map +1 -1
  398. package/es/awesome/AuroraBackground/AuroraBackground.d.mts +2 -2
  399. package/es/awesome/BottomGradientButton/BottomGradientButton.d.mts +2 -2
  400. package/es/awesome/BottomGradientButton/BottomGradientButton.mjs +1 -1
  401. package/es/awesome/BottomGradientButton/BottomGradientButton.mjs.map +1 -1
  402. package/es/awesome/Features/FeatureItem.mjs +1 -1
  403. package/es/awesome/Features/FeatureItem.mjs.map +1 -1
  404. package/es/awesome/Features/Features.d.mts +2 -2
  405. package/es/awesome/Features/Features.mjs +4 -4
  406. package/es/awesome/Features/Features.mjs.map +1 -1
  407. package/es/awesome/Features/type.d.mts +1 -1
  408. package/es/awesome/Giscus/Giscus.d.mts +2 -2
  409. package/es/awesome/GradientButton/GradientButton.mjs +2 -2
  410. package/es/awesome/GradientButton/GradientButton.mjs.map +1 -1
  411. package/es/awesome/GridBackground/GridBackground.d.mts +2 -2
  412. package/es/awesome/GridBackground/GridShowcase.d.mts +2 -2
  413. package/es/awesome/GridBackground/GridShowcase.mjs +5 -5
  414. package/es/awesome/GridBackground/GridShowcase.mjs.map +1 -1
  415. package/es/awesome/GridBackground/components/Grid.mjs.map +1 -1
  416. package/es/awesome/Hero/Hero.d.mts +2 -2
  417. package/es/awesome/Hero/Hero.mjs +3 -3
  418. package/es/awesome/Hero/Hero.mjs.map +1 -1
  419. package/es/awesome/Hero/type.d.mts +1 -1
  420. package/es/awesome/Spline/ParentSize.mjs.map +1 -1
  421. package/es/awesome/Spline/Spine.mjs +2 -2
  422. package/es/awesome/Spline/Spine.mjs.map +1 -1
  423. package/es/awesome/Spotlight/Spotlight.d.mts +2 -2
  424. package/es/awesome/SpotlightCard/SpotlightCard.d.mts +2 -2
  425. package/es/brand/BrandLoading/index.mjs.map +1 -1
  426. package/es/brand/LobeChat/index.d.mts +2 -2
  427. package/es/brand/LobeChat/index.mjs +3 -3
  428. package/es/brand/LobeChat/index.mjs.map +1 -1
  429. package/es/brand/LobeChatText/index.mjs.map +1 -1
  430. package/es/brand/LobeHub/index.d.mts +2 -2
  431. package/es/brand/LobeHub/index.mjs +3 -3
  432. package/es/brand/LobeHub/index.mjs.map +1 -1
  433. package/es/brand/LobeHubText/index.mjs.map +1 -1
  434. package/es/brand/Logo3d/index.mjs.map +1 -1
  435. package/es/brand/LogoThree/Loading.mjs +2 -2
  436. package/es/brand/LogoThree/Loading.mjs.map +1 -1
  437. package/es/brand/LogoThree/LogoSpline.d.mts +2 -2
  438. package/es/brand/LogoThree/LogoSpline.mjs +1 -1
  439. package/es/brand/LogoThree/LogoSpline.mjs.map +1 -1
  440. package/es/brand/LogoThree/index.d.mts +2 -2
  441. package/es/brand/LogoThree/index.mjs +4 -4
  442. package/es/brand/LogoThree/index.mjs.map +1 -1
  443. package/es/brand/components/Divider.mjs.map +1 -1
  444. package/es/chat/BackBottom/BackBottom.d.mts +2 -2
  445. package/es/chat/BackBottom/BackBottom.mjs +2 -2
  446. package/es/chat/BackBottom/BackBottom.mjs.map +1 -1
  447. package/es/chat/ChatHeader/ChatHeader.mjs +6 -6
  448. package/es/chat/ChatHeader/ChatHeader.mjs.map +1 -1
  449. package/es/chat/ChatHeader/ChatHeaderTitle.mjs +4 -4
  450. package/es/chat/ChatHeader/ChatHeaderTitle.mjs.map +1 -1
  451. package/es/chat/ChatInputArea/ChatInputArea.mjs +3 -3
  452. package/es/chat/ChatInputArea/ChatInputArea.mjs.map +1 -1
  453. package/es/chat/ChatInputArea/components/ChatInputActionBar.mjs +3 -3
  454. package/es/chat/ChatInputArea/components/ChatInputActionBar.mjs.map +1 -1
  455. package/es/chat/ChatInputArea/components/ChatInputAreaInner.d.mts +2 -2
  456. package/es/chat/ChatInputArea/components/ChatInputAreaInner.mjs +3 -3
  457. package/es/chat/ChatInputArea/components/ChatInputAreaInner.mjs.map +1 -1
  458. package/es/chat/ChatInputArea/components/ChatSendButton.mjs +5 -5
  459. package/es/chat/ChatInputArea/components/ChatSendButton.mjs.map +1 -1
  460. package/es/chat/ChatItem/ChatItem.mjs +9 -9
  461. package/es/chat/ChatItem/ChatItem.mjs.map +1 -1
  462. package/es/chat/ChatItem/components/Actions.mjs.map +1 -1
  463. package/es/chat/ChatItem/components/Avatar.mjs +2 -2
  464. package/es/chat/ChatItem/components/Avatar.mjs.map +1 -1
  465. package/es/chat/ChatItem/components/ErrorContent.mjs +1 -1
  466. package/es/chat/ChatItem/components/ErrorContent.mjs.map +1 -1
  467. package/es/chat/ChatItem/components/Loading.mjs +2 -2
  468. package/es/chat/ChatItem/components/Loading.mjs.map +1 -1
  469. package/es/chat/ChatItem/components/MessageContent.mjs +4 -4
  470. package/es/chat/ChatItem/components/MessageContent.mjs.map +1 -1
  471. package/es/chat/ChatItem/components/Title.mjs.map +1 -1
  472. package/es/chat/ChatList/ChatList.d.mts +2 -2
  473. package/es/chat/ChatList/components/ChatListItem.mjs +14 -14
  474. package/es/chat/ChatList/components/ChatListItem.mjs.map +1 -1
  475. package/es/chat/ChatList/type.d.mts +1 -1
  476. package/es/chat/EditableMessage/EditableMessage.d.mts +2 -2
  477. package/es/chat/EditableMessage/EditableMessage.mjs +18 -18
  478. package/es/chat/EditableMessage/EditableMessage.mjs.map +1 -1
  479. package/es/chat/EditableMessageList/EditableMessageList.mjs +17 -17
  480. package/es/chat/EditableMessageList/EditableMessageList.mjs.map +1 -1
  481. package/es/chat/MessageInput/MessageInput.d.mts +2 -2
  482. package/es/chat/MessageInput/MessageInput.mjs +8 -8
  483. package/es/chat/MessageInput/MessageInput.mjs.map +1 -1
  484. package/es/chat/MessageModal/MessageModal.d.mts +2 -2
  485. package/es/chat/MessageModal/MessageModal.mjs +15 -15
  486. package/es/chat/MessageModal/MessageModal.mjs.map +1 -1
  487. package/es/chat/TokenTag/TokenTag.mjs +2 -2
  488. package/es/chat/TokenTag/TokenTag.mjs.map +1 -1
  489. package/es/chat/types/error.mjs.map +1 -1
  490. package/es/color/ColorScales/ScaleRow.mjs +3 -3
  491. package/es/color/ColorScales/ScaleRow.mjs.map +1 -1
  492. package/es/color/ColorScales/index.d.mts +2 -2
  493. package/es/color/ColorScales/index.mjs +4 -4
  494. package/es/color/ColorScales/index.mjs.map +1 -1
  495. package/es/color/CssVar/ScaleRow.mjs +4 -4
  496. package/es/color/CssVar/ScaleRow.mjs.map +1 -1
  497. package/es/color/CssVar/VarRow.mjs +2 -2
  498. package/es/color/CssVar/VarRow.mjs.map +1 -1
  499. package/es/color/CssVar/index.d.mts +2 -2
  500. package/es/color/CssVar/index.mjs +4 -4
  501. package/es/color/CssVar/index.mjs.map +1 -1
  502. package/es/color/colors/blue.mjs.map +1 -1
  503. package/es/color/colors/cyan.mjs.map +1 -1
  504. package/es/color/colors/geekblue.mjs.map +1 -1
  505. package/es/color/colors/gold.mjs.map +1 -1
  506. package/es/color/colors/gray.mjs.map +1 -1
  507. package/es/color/colors/green.mjs.map +1 -1
  508. package/es/color/colors/lime.mjs.map +1 -1
  509. package/es/color/colors/magenta.mjs.map +1 -1
  510. package/es/color/colors/orange.mjs.map +1 -1
  511. package/es/color/colors/primary.mjs.map +1 -1
  512. package/es/color/colors/purple.mjs.map +1 -1
  513. package/es/color/colors/red.mjs.map +1 -1
  514. package/es/color/colors/volcano.mjs.map +1 -1
  515. package/es/color/colors/yellow.mjs.map +1 -1
  516. package/es/color/neutrals/mauve.mjs.map +1 -1
  517. package/es/color/neutrals/olive.mjs.map +1 -1
  518. package/es/color/neutrals/sage.mjs.map +1 -1
  519. package/es/color/neutrals/sand.mjs.map +1 -1
  520. package/es/color/neutrals/slate.mjs.map +1 -1
  521. package/es/hooks/useFloatingLayer.mjs +2 -2
  522. package/es/hooks/useFloatingLayer.mjs.map +1 -1
  523. package/es/hooks/useHighlight.mjs.map +1 -1
  524. package/es/hooks/useMarkdown/latex.mjs +12 -12
  525. package/es/hooks/useMarkdown/latex.mjs.map +1 -1
  526. package/es/hooks/useMarkdown/useMarkdownComponents.mjs +1 -1
  527. package/es/hooks/useMarkdown/useMarkdownComponents.mjs.map +1 -1
  528. package/es/hooks/useMarkdown/utils.mjs +4 -4
  529. package/es/hooks/useMarkdown/utils.mjs.map +1 -1
  530. package/es/hooks/useNativeButton.mjs.map +1 -1
  531. package/es/hooks/useStreamHighlight.mjs.map +1 -1
  532. package/es/i18n/context.d.mts +3 -3
  533. package/es/i18n/context.mjs.map +1 -1
  534. package/es/icons/Authelia/components/Color.mjs.map +1 -1
  535. package/es/icons/lucideExtra/BotPromptIcon.d.mts +2 -2
  536. package/es/icons/lucideExtra/CreateBotIcon.d.mts +3 -3
  537. package/es/icons/lucideExtra/DiscordIcon.d.mts +2 -2
  538. package/es/icons/lucideExtra/GlobeOffIcon.d.mts +3 -3
  539. package/es/icons/lucideExtra/GroupBotIcon.d.mts +2 -2
  540. package/es/icons/lucideExtra/GroupBotSquareIcon.d.mts +3 -3
  541. package/es/icons/lucideExtra/LeftClickIcon.d.mts +3 -3
  542. package/es/icons/lucideExtra/LeftDoubleClickIcon.d.mts +3 -3
  543. package/es/icons/lucideExtra/McpIcon.d.mts +2 -2
  544. package/es/icons/lucideExtra/ProviderIcon.d.mts +3 -3
  545. package/es/icons/lucideExtra/RightClickIcon.d.mts +3 -3
  546. package/es/icons/lucideExtra/RightDoubleClickIcon.d.mts +3 -3
  547. package/es/icons/lucideExtra/ShapesUploadIcon.d.mts +3 -3
  548. package/es/icons/lucideExtra/TreeDownRightIcon.d.mts +3 -3
  549. package/es/icons/lucideExtra/TreeUpDownRightIcon.d.mts +3 -3
  550. package/es/mdx/Callout/index.mjs +1 -1
  551. package/es/mdx/Callout/index.mjs.map +1 -1
  552. package/es/mdx/Cards/Card.mjs +2 -2
  553. package/es/mdx/Cards/Card.mjs.map +1 -1
  554. package/es/mdx/FileTree/File.mjs +1 -1
  555. package/es/mdx/FileTree/File.mjs.map +1 -1
  556. package/es/mdx/FileTree/Folder.mjs +1 -1
  557. package/es/mdx/FileTree/Folder.mjs.map +1 -1
  558. package/es/mdx/FileTree/index.mjs.map +1 -1
  559. package/es/mdx/Mdx/index.d.mts +2 -2
  560. package/es/mdx/Mdx/index.mjs +3 -3
  561. package/es/mdx/Mdx/index.mjs.map +1 -1
  562. package/es/mdx/Steps/index.mjs.map +1 -1
  563. package/es/mdx/Tabs/Tab.mjs.map +1 -1
  564. package/es/mdx/Tabs/index.mjs +1 -1
  565. package/es/mdx/Tabs/index.mjs.map +1 -1
  566. package/es/mdx/mdxComponents/Citation/PopoverPanel.mjs +3 -3
  567. package/es/mdx/mdxComponents/Citation/PopoverPanel.mjs.map +1 -1
  568. package/es/mdx/mdxComponents/Citation/index.mjs.map +1 -1
  569. package/es/mdx/mdxComponents/Link.mjs +1 -1
  570. package/es/mdx/mdxComponents/Link.mjs.map +1 -1
  571. package/es/mobile/ChatHeader/ChatHeader.mjs +4 -4
  572. package/es/mobile/ChatHeader/ChatHeader.mjs.map +1 -1
  573. package/es/mobile/ChatHeader/ChatHeaderTitle.d.mts +2 -2
  574. package/es/mobile/ChatHeader/ChatHeaderTitle.mjs +5 -5
  575. package/es/mobile/ChatHeader/ChatHeaderTitle.mjs.map +1 -1
  576. package/es/mobile/ChatInputArea/ChatInputArea.mjs +9 -9
  577. package/es/mobile/ChatInputArea/ChatInputArea.mjs.map +1 -1
  578. package/es/mobile/ChatInputArea/components/ChatSendButton.d.mts +2 -2
  579. package/es/mobile/ChatInputArea/components/ChatSendButton.mjs +2 -2
  580. package/es/mobile/ChatInputArea/components/ChatSendButton.mjs.map +1 -1
  581. package/es/mobile/SafeArea/SafeArea.mjs.map +1 -1
  582. package/es/mobile/TabBar/TabBar.d.mts +2 -2
  583. package/es/mobile/TabBar/TabBar.mjs +3 -3
  584. package/es/mobile/TabBar/TabBar.mjs.map +1 -1
  585. package/es/storybook/StoryBook/index.d.mts +2 -2
  586. package/es/storybook/StoryBook/index.mjs.map +1 -1
  587. package/es/styles/theme/algorithms/darkAlgorithm.mjs.map +1 -1
  588. package/es/styles/theme/algorithms/lightAlgorithm.mjs.map +1 -1
  589. package/es/styles/theme/antdTheme.mjs.map +1 -1
  590. package/es/styles/theme/customStylish.mjs.map +1 -1
  591. package/es/styles/theme/customToken.mjs.map +1 -1
  592. package/es/styles/theme/generateColorPalette.mjs.map +1 -1
  593. package/es/styles/theme/token/base.mjs.map +1 -1
  594. package/es/styles/theme/token/dark.mjs.map +1 -1
  595. package/es/styles/theme/token/light.mjs.map +1 -1
  596. package/package.json +79 -1
@@ -1 +1 @@
1
- {"version":3,"file":"style.mjs","names":["cssVar","lobeStaticStylish"],"sources":["../../src/Highlighter/style.ts"],"sourcesContent":["import { createStaticStyles, cx } from 'antd-style';\nimport { cva } from 'class-variance-authority';\n\nimport { lobeStaticStylish } from '@/styles';\n\n// 动态类名常量(用于 className)\nexport const actionsHoverCls = 'ant-highlighter-highlighter-hover-actions';\nexport const langHoverCls = 'ant-highlighter-highlighter-hover-lang';\nexport const expandCls = 'ant-highlighter-highlighter-body-expand';\nexport const prefix = 'ant-highlighter';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => {\n return {\n actions: cx(\n actionsHoverCls,\n css`\n position: absolute;\n z-index: 2;\n inset-block-start: 8px;\n inset-inline-end: 8px;\n\n opacity: 0;\n `,\n ),\n bodyCollapsed: css`\n height: 0;\n opacity: 0;\n `,\n bodyExpand: cx(expandCls),\n bodyRoot: css`\n overflow: hidden;\n transition: opacity 0.25s ${cssVar.motionEaseOut};\n `,\n borderless: lobeStaticStylish.variantBorderlessWithoutHover,\n filled: cx(\n lobeStaticStylish.variantFilledWithoutHover,\n css`\n background: ${cssVar.colorFillQuaternary};\n `,\n ),\n headerBorderless: css`\n padding-inline: 0;\n `,\n\n headerFilled: css`\n background: transparent;\n `,\n\n headerOutlined: css`\n & + .${expandCls} {\n border-block-start: 1px solid ${cssVar.colorFillQuaternary};\n }\n `,\n\n headerRoot: css`\n cursor: pointer;\n position: relative;\n padding: 4px;\n `,\n\n lang: cx(\n langHoverCls,\n lobeStaticStylish.blur,\n css`\n position: absolute;\n z-index: 2;\n inset-block-end: 8px;\n inset-inline-end: 8px;\n\n font-family: ${cssVar.fontFamilyCode};\n color: ${cssVar.colorTextSecondary};\n\n opacity: 0;\n background: ${cssVar.colorFillQuaternary};\n\n transition: opacity 0.1s;\n `,\n ),\n nowrap: css`\n pre,\n code {\n text-wrap: nowrap;\n }\n `,\n outlined: lobeStaticStylish.variantOutlinedWithoutHover,\n root: cx(\n prefix,\n css`\n position: relative;\n\n overflow: hidden;\n\n width: 100%;\n border-radius: ${cssVar.borderRadius};\n\n transition: background-color 100ms ${cssVar.motionEaseOut};\n\n .languageTitle {\n opacity: 0.5;\n filter: grayscale(100%);\n transition:\n opacity,\n grayscale 0.2s ${cssVar.motionEaseInOut};\n }\n\n .panel-actions {\n opacity: 0;\n transition: opacity 0.2s ${cssVar.motionEaseInOut};\n }\n\n &:hover {\n .languageTitle {\n opacity: 1;\n filter: grayscale(0%);\n }\n\n .panel-actions {\n opacity: 1;\n }\n\n .${actionsHoverCls} {\n opacity: 1;\n }\n\n .${langHoverCls} {\n opacity: 1;\n }\n }\n\n pre {\n height: 100%;\n font-size: 12px;\n }\n\n code {\n background: transparent !important;\n }\n `,\n ),\n shadow: lobeStaticStylish.shadow,\n wrap: css`\n pre,\n code {\n text-wrap: wrap;\n }\n `,\n };\n});\n\nexport const variants = cva(styles.root, {\n defaultVariants: {\n shadow: false,\n variant: 'filled',\n wrap: false,\n },\n /* eslint-disable sort-keys-fix/sort-keys-fix */\n variants: {\n variant: {\n filled: styles.filled,\n outlined: styles.outlined,\n borderless: styles.borderless,\n },\n shadow: {\n false: null,\n true: styles.shadow,\n },\n wrap: {\n false: styles.nowrap,\n true: styles.wrap,\n },\n },\n /* eslint-enable sort-keys-fix/sort-keys-fix */\n});\n\nexport const headerVariants = cva(styles.headerRoot, {\n defaultVariants: {\n variant: 'filled',\n },\n /* eslint-disable sort-keys-fix/sort-keys-fix */\n variants: {\n variant: {\n filled: cx(styles.headerFilled, styles.headerOutlined),\n outlined: styles.headerOutlined,\n borderless: styles.headerBorderless,\n },\n },\n /* eslint-enable sort-keys-fix/sort-keys-fix */\n});\n\nexport const bodyVariants = cva(styles.bodyRoot, {\n defaultVariants: {\n expand: true,\n },\n variants: {\n expand: {\n false: styles.bodyCollapsed,\n true: styles.bodyExpand,\n },\n },\n});\n"],"mappings":";;;;;AAMA,MAAa,kBAAkB;AAC/B,MAAa,eAAe;AAC5B,MAAa,YAAY;AACzB,MAAa,SAAS;AAEtB,MAAa,SAAS,oBAAoB,EAAE,YAAK,uBAAa;AAC5D,QAAO;EACL,SAAS,GACP,iBACA,KAAG;;;;;;;QAQJ;EACD,eAAe,KAAG;;;;EAIlB,YAAY,GAAG,UAAU;EACzB,UAAU,KAAG;;kCAEiBA,SAAO,cAAc;;EAEnD,YAAYC,cAAkB;EAC9B,QAAQ,GACNA,cAAkB,2BAClB,KAAG;sBACaD,SAAO,oBAAoB;QAE5C;EACD,kBAAkB,KAAG;;;EAIrB,cAAc,KAAG;;;EAIjB,gBAAgB,KAAG;aACV,UAAU;wCACiBA,SAAO,oBAAoB;;;EAI/D,YAAY,KAAG;;;;;EAMf,MAAM,GACJ,cACAC,cAAkB,MAClB,KAAG;;;;;;uBAMcD,SAAO,eAAe;iBAC5BA,SAAO,mBAAmB;;;sBAGrBA,SAAO,oBAAoB;;;QAI5C;EACD,QAAQ,KAAG;;;;;;EAMX,UAAUC,cAAkB;EAC5B,MAAM,GACJ,QACA,KAAG;;;;;;yBAMgBD,SAAO,aAAa;;6CAEAA,SAAO,cAAc;;;;;;;6BAOrCA,SAAO,gBAAgB;;;;;qCAKfA,SAAO,gBAAgB;;;;;;;;;;;;;aAa/C,gBAAgB;;;;aAIhB,aAAa;;;;;;;;;;;;;QAcrB;EACD,QAAQC,cAAkB;EAC1B,MAAM,KAAG;;;;;;EAMV;EACD;AAEF,MAAa,WAAW,IAAI,OAAO,MAAM;CACvC,iBAAiB;EACf,QAAQ;EACR,SAAS;EACT,MAAM;EACP;CAED,UAAU;EACR,SAAS;GACP,QAAQ,OAAO;GACf,UAAU,OAAO;GACjB,YAAY,OAAO;GACpB;EACD,QAAQ;GACN,OAAO;GACP,MAAM,OAAO;GACd;EACD,MAAM;GACJ,OAAO,OAAO;GACd,MAAM,OAAO;GACd;EACF;CAEF,CAAC;AAEF,MAAa,iBAAiB,IAAI,OAAO,YAAY;CACnD,iBAAiB,EACf,SAAS,UACV;CAED,UAAU,EACR,SAAS;EACP,QAAQ,GAAG,OAAO,cAAc,OAAO,eAAe;EACtD,UAAU,OAAO;EACjB,YAAY,OAAO;EACpB,EACF;CAEF,CAAC;AAEF,MAAa,eAAe,IAAI,OAAO,UAAU;CAC/C,iBAAiB,EACf,QAAQ,MACT;CACD,UAAU,EACR,QAAQ;EACN,OAAO,OAAO;EACd,MAAM,OAAO;EACd,EACF;CACF,CAAC"}
1
+ {"version":3,"file":"style.mjs","names":["cssVar","lobeStaticStylish"],"sources":["../../src/Highlighter/style.ts"],"sourcesContent":["import { createStaticStyles, cx } from 'antd-style';\nimport { cva } from 'class-variance-authority';\n\nimport { lobeStaticStylish } from '@/styles';\n\n// 动态类名常量(用于 className)\nexport const actionsHoverCls = 'ant-highlighter-highlighter-hover-actions';\nexport const langHoverCls = 'ant-highlighter-highlighter-hover-lang';\nexport const expandCls = 'ant-highlighter-highlighter-body-expand';\nexport const prefix = 'ant-highlighter';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => {\n return {\n actions: cx(\n actionsHoverCls,\n css`\n position: absolute;\n z-index: 2;\n inset-block-start: 8px;\n inset-inline-end: 8px;\n\n opacity: 0;\n `,\n ),\n bodyCollapsed: css`\n height: 0;\n opacity: 0;\n `,\n bodyExpand: cx(expandCls),\n bodyRoot: css`\n overflow: hidden;\n transition: opacity 0.25s ${cssVar.motionEaseOut};\n `,\n borderless: lobeStaticStylish.variantBorderlessWithoutHover,\n filled: cx(\n lobeStaticStylish.variantFilledWithoutHover,\n css`\n background: ${cssVar.colorFillQuaternary};\n `,\n ),\n headerBorderless: css`\n padding-inline: 0;\n `,\n\n headerFilled: css`\n background: transparent;\n `,\n\n headerOutlined: css`\n & + .${expandCls} {\n border-block-start: 1px solid ${cssVar.colorFillQuaternary};\n }\n `,\n\n headerRoot: css`\n cursor: pointer;\n position: relative;\n padding: 4px;\n `,\n\n lang: cx(\n langHoverCls,\n lobeStaticStylish.blur,\n css`\n position: absolute;\n z-index: 2;\n inset-block-end: 8px;\n inset-inline-end: 8px;\n\n font-family: ${cssVar.fontFamilyCode};\n color: ${cssVar.colorTextSecondary};\n\n opacity: 0;\n background: ${cssVar.colorFillQuaternary};\n\n transition: opacity 0.1s;\n `,\n ),\n nowrap: css`\n pre,\n code {\n text-wrap: nowrap;\n }\n `,\n outlined: lobeStaticStylish.variantOutlinedWithoutHover,\n root: cx(\n prefix,\n css`\n position: relative;\n\n overflow: hidden;\n\n width: 100%;\n border-radius: ${cssVar.borderRadius};\n\n transition: background-color 100ms ${cssVar.motionEaseOut};\n\n .languageTitle {\n opacity: 0.5;\n filter: grayscale(100%);\n transition:\n opacity,\n grayscale 0.2s ${cssVar.motionEaseInOut};\n }\n\n .panel-actions {\n opacity: 0;\n transition: opacity 0.2s ${cssVar.motionEaseInOut};\n }\n\n &:hover {\n .languageTitle {\n opacity: 1;\n filter: grayscale(0%);\n }\n\n .panel-actions {\n opacity: 1;\n }\n\n .${actionsHoverCls} {\n opacity: 1;\n }\n\n .${langHoverCls} {\n opacity: 1;\n }\n }\n\n pre {\n height: 100%;\n font-size: 12px;\n }\n\n code {\n background: transparent !important;\n }\n `,\n ),\n shadow: lobeStaticStylish.shadow,\n wrap: css`\n pre,\n code {\n text-wrap: wrap;\n }\n `,\n };\n});\n\nexport const variants = cva(styles.root, {\n defaultVariants: {\n shadow: false,\n variant: 'filled',\n wrap: false,\n },\n\n variants: {\n variant: {\n filled: styles.filled,\n outlined: styles.outlined,\n borderless: styles.borderless,\n },\n shadow: {\n false: null,\n true: styles.shadow,\n },\n wrap: {\n false: styles.nowrap,\n true: styles.wrap,\n },\n },\n});\n\nexport const headerVariants = cva(styles.headerRoot, {\n defaultVariants: {\n variant: 'filled',\n },\n\n variants: {\n variant: {\n filled: cx(styles.headerFilled, styles.headerOutlined),\n outlined: styles.headerOutlined,\n borderless: styles.headerBorderless,\n },\n },\n});\n\nexport const bodyVariants = cva(styles.bodyRoot, {\n defaultVariants: {\n expand: true,\n },\n variants: {\n expand: {\n false: styles.bodyCollapsed,\n true: styles.bodyExpand,\n },\n },\n});\n"],"mappings":";;;;;AAMA,MAAa,kBAAkB;AAC/B,MAAa,eAAe;AAC5B,MAAa,YAAY;AACzB,MAAa,SAAS;AAEtB,MAAa,SAAS,oBAAoB,EAAE,YAAK,uBAAa;AAC5D,QAAO;EACL,SAAS,GACP,iBACA,KAAG;;;;;;;QAQJ;EACD,eAAe,KAAG;;;;EAIlB,YAAY,GAAG,UAAU;EACzB,UAAU,KAAG;;kCAEiBA,SAAO,cAAc;;EAEnD,YAAYC,cAAkB;EAC9B,QAAQ,GACNA,cAAkB,2BAClB,KAAG;sBACaD,SAAO,oBAAoB;QAE5C;EACD,kBAAkB,KAAG;;;EAIrB,cAAc,KAAG;;;EAIjB,gBAAgB,KAAG;aACV,UAAU;wCACiBA,SAAO,oBAAoB;;;EAI/D,YAAY,KAAG;;;;;EAMf,MAAM,GACJ,cACAC,cAAkB,MAClB,KAAG;;;;;;uBAMcD,SAAO,eAAe;iBAC5BA,SAAO,mBAAmB;;;sBAGrBA,SAAO,oBAAoB;;;QAI5C;EACD,QAAQ,KAAG;;;;;;EAMX,UAAUC,cAAkB;EAC5B,MAAM,GACJ,QACA,KAAG;;;;;;yBAMgBD,SAAO,aAAa;;6CAEAA,SAAO,cAAc;;;;;;;6BAOrCA,SAAO,gBAAgB;;;;;qCAKfA,SAAO,gBAAgB;;;;;;;;;;;;;aAa/C,gBAAgB;;;;aAIhB,aAAa;;;;;;;;;;;;;QAcrB;EACD,QAAQC,cAAkB;EAC1B,MAAM,KAAG;;;;;;EAMV;EACD;AAEF,MAAa,WAAW,IAAI,OAAO,MAAM;CACvC,iBAAiB;EACf,QAAQ;EACR,SAAS;EACT,MAAM;EACP;CAED,UAAU;EACR,SAAS;GACP,QAAQ,OAAO;GACf,UAAU,OAAO;GACjB,YAAY,OAAO;GACpB;EACD,QAAQ;GACN,OAAO;GACP,MAAM,OAAO;GACd;EACD,MAAM;GACJ,OAAO,OAAO;GACd,MAAM,OAAO;GACd;EACF;CACF,CAAC;AAEF,MAAa,iBAAiB,IAAI,OAAO,YAAY;CACnD,iBAAiB,EACf,SAAS,UACV;CAED,UAAU,EACR,SAAS;EACP,QAAQ,GAAG,OAAO,cAAc,OAAO,eAAe;EACtD,UAAU,OAAO;EACjB,YAAY,OAAO;EACpB,EACF;CACF,CAAC;AAEF,MAAa,eAAe,IAAI,OAAO,UAAU;CAC/C,iBAAiB,EACf,QAAQ,MACT;CACD,UAAU,EACR,QAAQ;EACN,OAAO,OAAO;EACd,MAAM,OAAO;EACd,EACF;CACF,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { HotkeyProps } from "./type.mjs";
2
- import * as react58 from "react";
2
+ import * as react46 from "react";
3
3
 
4
4
  //#region src/Hotkey/Hotkey.d.ts
5
- declare const Hotkey: react58.NamedExoticComponent<HotkeyProps>;
5
+ declare const Hotkey: react46.NamedExoticComponent<HotkeyProps>;
6
6
  //#endregion
7
7
  export { Hotkey };
8
8
  //# sourceMappingURL=Hotkey.d.mts.map
@@ -107,31 +107,31 @@ const Hotkey = memo(({ variant = "filled", classNames, styles: customStyles, key
107
107
  }, [keys]);
108
108
  const mapping = useMemo(() => mappingKey(isAppleDevice), [isAppleDevice]);
109
109
  return /* @__PURE__ */ jsx(FlexBasic_default, {
110
+ horizontal: true,
110
111
  align: "center",
111
112
  className,
112
113
  gap: isBorderless ? 6 : 2,
113
- horizontal: true,
114
114
  style,
115
115
  ...rest,
116
116
  children: compact || isBorderless ? /* @__PURE__ */ jsx(Center_default, {
117
+ horizontal: true,
117
118
  as: "kbd",
119
+ gap: 6,
120
+ style: customStyles?.kbdStyle,
118
121
  className: cx(variants({
119
122
  inverseTheme,
120
123
  isDarkMode,
121
124
  variant
122
125
  }), classNames?.kbdClassName),
123
- gap: 6,
124
- horizontal: true,
125
- style: customStyles?.kbdStyle,
126
126
  children: keysGroup.map((key, index) => /* @__PURE__ */ jsx("div", { children: mapping[key] ?? startCase(key) }, index))
127
127
  }) : keysGroup.map((key, index) => /* @__PURE__ */ jsx(Center_default, {
128
128
  as: "kbd",
129
+ style: customStyles?.kbdStyle,
129
130
  className: cx(variants({
130
131
  inverseTheme,
131
132
  isDarkMode,
132
133
  variant
133
134
  }), classNames?.kbdClassName),
134
- style: customStyles?.kbdStyle,
135
135
  children: mapping[key] ?? startCase(key)
136
136
  }, index))
137
137
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Hotkey.mjs","names":["Icon","LeftClickIcon","RightClickIcon","RightDoubleClickIcon","LeftDoubleClickIcon","mapping: Record<string, any>","Flexbox","Center"],"sources":["../../src/Hotkey/Hotkey.tsx"],"sourcesContent":["'use client';\n\nimport { cx, useThemeMode } from 'antd-style';\nimport {\n ArrowBigUpIcon,\n ArrowDownIcon,\n ArrowLeftIcon,\n ArrowRightIcon,\n ArrowRightToLineIcon,\n ArrowUpIcon,\n ChevronUpIcon,\n Command,\n CornerDownLeftIcon,\n Delete,\n Grid2X2Icon,\n MouseIcon,\n Option,\n SpaceIcon,\n} from 'lucide-react';\nimport { memo, useEffect, useMemo, useState } from 'react';\n\nimport { Center, Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\nimport LeftClickIcon from '@/icons/lucideExtra/LeftClickIcon';\nimport LeftDoubleClickIcon from '@/icons/lucideExtra/LeftDoubleClickIcon';\nimport RightClickIcon from '@/icons/lucideExtra/RightClickIcon';\nimport RightDoubleClickIcon from '@/icons/lucideExtra/RightDoubleClickIcon';\n\nimport { KeyMapEnum } from './const';\nimport { variants } from './style';\nimport type { HotkeyProps } from './type';\nimport { checkIsAppleDevice, splitKeysByPlus, startCase } from './utils';\n\nconst mappingKey = (isAppleDevice: boolean) => ({\n [KeyMapEnum.Alt]: isAppleDevice ? <Icon icon={Option} size={{ size: '0.95em' }} /> : 'Alt',\n [KeyMapEnum.Backspace]: isAppleDevice ? <Icon icon={Delete} /> : 'Backspace',\n [KeyMapEnum.CommandOrControl]: isAppleDevice ? (\n <Icon icon={Command} size={{ size: '0.95em' }} />\n ) : (\n 'Ctrl'\n ),\n [KeyMapEnum.Ctrl]: isAppleDevice ? <Icon icon={ChevronUpIcon} /> : 'Ctrl',\n [KeyMapEnum.Control]: isAppleDevice ? <Icon icon={ChevronUpIcon} /> : 'Ctrl',\n [KeyMapEnum.Down]: <Icon icon={ArrowDownIcon} />,\n [KeyMapEnum.Enter]: isAppleDevice ? <Icon icon={CornerDownLeftIcon} /> : 'Enter',\n [KeyMapEnum.LeftClick]: <Icon icon={LeftClickIcon} size={{ size: '1.2em', strokeWidth: 1.75 }} />,\n [KeyMapEnum.Left]: <Icon icon={ArrowLeftIcon} />,\n [KeyMapEnum.Meta]: isAppleDevice ? (\n <Icon icon={Command} size={{ size: '0.95em' }} />\n ) : (\n <Icon icon={Grid2X2Icon} />\n ),\n [KeyMapEnum.MiddleClick]: <Icon icon={MouseIcon} size={{ size: '1.2em', strokeWidth: 1.75 }} />,\n [KeyMapEnum.Mod]: isAppleDevice ? <Icon icon={Command} size={{ size: '0.95em' }} /> : 'Ctrl',\n [KeyMapEnum.RightClick]: (\n <Icon icon={RightClickIcon} size={{ size: '1.2em', strokeWidth: 1.75 }} />\n ),\n [KeyMapEnum.RightDoubleClick]: (\n <Icon icon={RightDoubleClickIcon} size={{ size: '1.2em', strokeWidth: 1.75 }} />\n ),\n [KeyMapEnum.LeftDoubleClick]: (\n <Icon icon={LeftDoubleClickIcon} size={{ size: '1.2em', strokeWidth: 1.75 }} />\n ),\n [KeyMapEnum.Right]: <Icon icon={ArrowRightIcon} />,\n [KeyMapEnum.Shift]: isAppleDevice ? (\n <Icon icon={ArrowBigUpIcon} size={{ size: '1.15em', strokeWidth: 1.75 }} />\n ) : (\n 'Shift'\n ),\n [KeyMapEnum.Space]: <Icon icon={SpaceIcon} />,\n [KeyMapEnum.Tab]: isAppleDevice ? <Icon icon={ArrowRightToLineIcon} /> : 'Tab',\n [KeyMapEnum.Up]: <Icon icon={ArrowUpIcon} />,\n [KeyMapEnum.Comma]: ',',\n [KeyMapEnum.Period]: '.',\n [KeyMapEnum.Slash]: '?',\n [KeyMapEnum.Semicolon]: ';',\n [KeyMapEnum.Quote]: \"'\",\n [KeyMapEnum.Backquote]: '`',\n [KeyMapEnum.Backslash]: '\\\\',\n [KeyMapEnum.BracketLeft]: '[',\n [KeyMapEnum.BracketRight]: ']',\n [KeyMapEnum.Minus]: '-',\n [KeyMapEnum.Equal]: '+',\n});\n\nconst Hotkey = memo<HotkeyProps>(\n ({\n variant = 'filled',\n classNames,\n styles: customStyles,\n keys,\n inverseTheme,\n isApple,\n compact,\n className,\n style,\n ...rest\n }) => {\n const { isDarkMode } = useThemeMode();\n const isBorderless = variant === 'borderless';\n const [keysGroup, setKeysGroup] = useState(() => splitKeysByPlus(keys));\n const isAppleDevice = useMemo(() => checkIsAppleDevice(isApple), [isApple]);\n\n useEffect(() => {\n const newValue = splitKeysByPlus(keys);\n setKeysGroup(newValue);\n }, [keys]);\n\n const mapping: Record<string, any> = useMemo(() => mappingKey(isAppleDevice), [isAppleDevice]);\n\n return (\n <Flexbox\n align={'center'}\n className={className}\n gap={isBorderless ? 6 : 2}\n horizontal\n style={style}\n {...rest}\n >\n {compact || isBorderless ? (\n <Center\n as={'kbd'}\n className={cx(\n variants({ inverseTheme, isDarkMode, variant }),\n classNames?.kbdClassName,\n )}\n gap={6}\n horizontal\n style={customStyles?.kbdStyle}\n >\n {keysGroup.map((key, index) => (\n <div key={index}>{mapping[key] ?? startCase(key)}</div>\n ))}\n </Center>\n ) : (\n keysGroup.map((key, index) => (\n <Center\n as={'kbd'}\n className={cx(\n variants({ inverseTheme, isDarkMode, variant }),\n classNames?.kbdClassName,\n )}\n key={index}\n style={customStyles?.kbdStyle}\n >\n {mapping[key] ?? startCase(key)}\n </Center>\n ))\n )}\n </Flexbox>\n );\n },\n);\n\nHotkey.displayName = 'Hotkey';\n\nexport default Hotkey;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Hotkey.mjs","names":["Icon","LeftClickIcon","RightClickIcon","RightDoubleClickIcon","LeftDoubleClickIcon","mapping: Record<string, any>","Flexbox","Center"],"sources":["../../src/Hotkey/Hotkey.tsx"],"sourcesContent":["'use client';\n\nimport { cx, useThemeMode } from 'antd-style';\nimport {\n ArrowBigUpIcon,\n ArrowDownIcon,\n ArrowLeftIcon,\n ArrowRightIcon,\n ArrowRightToLineIcon,\n ArrowUpIcon,\n ChevronUpIcon,\n Command,\n CornerDownLeftIcon,\n Delete,\n Grid2X2Icon,\n MouseIcon,\n Option,\n SpaceIcon,\n} from 'lucide-react';\nimport { memo, useEffect, useMemo, useState } from 'react';\n\nimport { Center, Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\nimport LeftClickIcon from '@/icons/lucideExtra/LeftClickIcon';\nimport LeftDoubleClickIcon from '@/icons/lucideExtra/LeftDoubleClickIcon';\nimport RightClickIcon from '@/icons/lucideExtra/RightClickIcon';\nimport RightDoubleClickIcon from '@/icons/lucideExtra/RightDoubleClickIcon';\n\nimport { KeyMapEnum } from './const';\nimport { variants } from './style';\nimport type { HotkeyProps } from './type';\nimport { checkIsAppleDevice, splitKeysByPlus, startCase } from './utils';\n\nconst mappingKey = (isAppleDevice: boolean) => ({\n [KeyMapEnum.Alt]: isAppleDevice ? <Icon icon={Option} size={{ size: '0.95em' }} /> : 'Alt',\n [KeyMapEnum.Backspace]: isAppleDevice ? <Icon icon={Delete} /> : 'Backspace',\n [KeyMapEnum.CommandOrControl]: isAppleDevice ? (\n <Icon icon={Command} size={{ size: '0.95em' }} />\n ) : (\n 'Ctrl'\n ),\n [KeyMapEnum.Ctrl]: isAppleDevice ? <Icon icon={ChevronUpIcon} /> : 'Ctrl',\n [KeyMapEnum.Control]: isAppleDevice ? <Icon icon={ChevronUpIcon} /> : 'Ctrl',\n [KeyMapEnum.Down]: <Icon icon={ArrowDownIcon} />,\n [KeyMapEnum.Enter]: isAppleDevice ? <Icon icon={CornerDownLeftIcon} /> : 'Enter',\n [KeyMapEnum.LeftClick]: <Icon icon={LeftClickIcon} size={{ size: '1.2em', strokeWidth: 1.75 }} />,\n [KeyMapEnum.Left]: <Icon icon={ArrowLeftIcon} />,\n [KeyMapEnum.Meta]: isAppleDevice ? (\n <Icon icon={Command} size={{ size: '0.95em' }} />\n ) : (\n <Icon icon={Grid2X2Icon} />\n ),\n [KeyMapEnum.MiddleClick]: <Icon icon={MouseIcon} size={{ size: '1.2em', strokeWidth: 1.75 }} />,\n [KeyMapEnum.Mod]: isAppleDevice ? <Icon icon={Command} size={{ size: '0.95em' }} /> : 'Ctrl',\n [KeyMapEnum.RightClick]: (\n <Icon icon={RightClickIcon} size={{ size: '1.2em', strokeWidth: 1.75 }} />\n ),\n [KeyMapEnum.RightDoubleClick]: (\n <Icon icon={RightDoubleClickIcon} size={{ size: '1.2em', strokeWidth: 1.75 }} />\n ),\n [KeyMapEnum.LeftDoubleClick]: (\n <Icon icon={LeftDoubleClickIcon} size={{ size: '1.2em', strokeWidth: 1.75 }} />\n ),\n [KeyMapEnum.Right]: <Icon icon={ArrowRightIcon} />,\n [KeyMapEnum.Shift]: isAppleDevice ? (\n <Icon icon={ArrowBigUpIcon} size={{ size: '1.15em', strokeWidth: 1.75 }} />\n ) : (\n 'Shift'\n ),\n [KeyMapEnum.Space]: <Icon icon={SpaceIcon} />,\n [KeyMapEnum.Tab]: isAppleDevice ? <Icon icon={ArrowRightToLineIcon} /> : 'Tab',\n [KeyMapEnum.Up]: <Icon icon={ArrowUpIcon} />,\n [KeyMapEnum.Comma]: ',',\n [KeyMapEnum.Period]: '.',\n [KeyMapEnum.Slash]: '?',\n [KeyMapEnum.Semicolon]: ';',\n [KeyMapEnum.Quote]: \"'\",\n [KeyMapEnum.Backquote]: '`',\n [KeyMapEnum.Backslash]: '\\\\',\n [KeyMapEnum.BracketLeft]: '[',\n [KeyMapEnum.BracketRight]: ']',\n [KeyMapEnum.Minus]: '-',\n [KeyMapEnum.Equal]: '+',\n});\n\nconst Hotkey = memo<HotkeyProps>(\n ({\n variant = 'filled',\n classNames,\n styles: customStyles,\n keys,\n inverseTheme,\n isApple,\n compact,\n className,\n style,\n ...rest\n }) => {\n const { isDarkMode } = useThemeMode();\n const isBorderless = variant === 'borderless';\n const [keysGroup, setKeysGroup] = useState(() => splitKeysByPlus(keys));\n const isAppleDevice = useMemo(() => checkIsAppleDevice(isApple), [isApple]);\n\n useEffect(() => {\n const newValue = splitKeysByPlus(keys);\n setKeysGroup(newValue);\n }, [keys]);\n\n const mapping: Record<string, any> = useMemo(() => mappingKey(isAppleDevice), [isAppleDevice]);\n\n return (\n <Flexbox\n horizontal\n align={'center'}\n className={className}\n gap={isBorderless ? 6 : 2}\n style={style}\n {...rest}\n >\n {compact || isBorderless ? (\n <Center\n horizontal\n as={'kbd'}\n gap={6}\n style={customStyles?.kbdStyle}\n className={cx(\n variants({ inverseTheme, isDarkMode, variant }),\n classNames?.kbdClassName,\n )}\n >\n {keysGroup.map((key, index) => (\n <div key={index}>{mapping[key] ?? startCase(key)}</div>\n ))}\n </Center>\n ) : (\n keysGroup.map((key, index) => (\n <Center\n as={'kbd'}\n key={index}\n style={customStyles?.kbdStyle}\n className={cx(\n variants({ inverseTheme, isDarkMode, variant }),\n classNames?.kbdClassName,\n )}\n >\n {mapping[key] ?? startCase(key)}\n </Center>\n ))\n )}\n </Flexbox>\n );\n },\n);\n\nHotkey.displayName = 'Hotkey';\n\nexport default Hotkey;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"style.mjs","names":["lobeStaticStylish","cssVar"],"sources":["../../src/Hotkey/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\nimport { cva } from 'class-variance-authority';\n\nimport { lobeStaticStylish } from '@/styles';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => {\n return {\n borderless: css`\n ${lobeStaticStylish.variantBorderlessWithoutHover};\n padding-inline: 4px;\n `,\n filled: lobeStaticStylish.variantFilledWithoutHover,\n inverseThemeDark: css`\n color: ${cssVar.colorTextTertiary};\n background: color-mix(in srgb, ${cssVar.colorBgContainer} 8%, transparent);\n `,\n inverseThemeLight: css`\n color: ${cssVar.colorTextTertiary};\n background: color-mix(in srgb, ${cssVar.colorBgContainer} 16%, transparent);\n `,\n outlined: lobeStaticStylish.variantOutlinedWithoutHover,\n root: css`\n overflow: hidden;\n\n min-width: 1.8em;\n height: 1.8em;\n padding-block: 0;\n padding-inline: 8px;\n border: none;\n border-radius: ${cssVar.borderRadiusSM};\n\n font-family: ${cssVar.fontFamily};\n font-size: 12px;\n line-height: 1.1;\n color: ${cssVar.colorTextSecondary};\n text-align: center;\n white-space: nowrap;\n `,\n };\n});\n\nexport const variants = cva(styles.root, {\n compoundVariants: [\n {\n class: styles.inverseThemeDark,\n inverseTheme: true,\n isDarkMode: true,\n },\n {\n class: styles.inverseThemeLight,\n inverseTheme: true,\n isDarkMode: false,\n },\n ],\n defaultVariants: {\n inverseTheme: false,\n isDarkMode: false,\n variant: 'filled',\n },\n /* eslint-disable sort-keys-fix/sort-keys-fix */\n variants: {\n inverseTheme: {\n false: null,\n true: null,\n },\n isDarkMode: {\n false: null,\n true: null,\n },\n variant: {\n borderless: styles.borderless,\n filled: styles.filled,\n outlined: styles.outlined,\n },\n },\n /* eslint-enable sort-keys-fix/sort-keys-fix */\n});\n"],"mappings":";;;;;AAKA,MAAa,SAAS,oBAAoB,EAAE,YAAK,uBAAa;AAC5D,QAAO;EACL,YAAY,KAAG;QACXA,cAAkB,8BAA8B;;;EAGpD,QAAQA,cAAkB;EAC1B,kBAAkB,KAAG;eACVC,SAAO,kBAAkB;uCACDA,SAAO,iBAAiB;;EAE3D,mBAAmB,KAAG;eACXA,SAAO,kBAAkB;uCACDA,SAAO,iBAAiB;;EAE3D,UAAUD,cAAkB;EAC5B,MAAM,KAAG;;;;;;;;uBAQUC,SAAO,eAAe;;qBAExBA,SAAO,WAAW;;;eAGxBA,SAAO,mBAAmB;;;;EAItC;EACD;AAEF,MAAa,WAAW,IAAI,OAAO,MAAM;CACvC,kBAAkB,CAChB;EACE,OAAO,OAAO;EACd,cAAc;EACd,YAAY;EACb,EACD;EACE,OAAO,OAAO;EACd,cAAc;EACd,YAAY;EACb,CACF;CACD,iBAAiB;EACf,cAAc;EACd,YAAY;EACZ,SAAS;EACV;CAED,UAAU;EACR,cAAc;GACZ,OAAO;GACP,MAAM;GACP;EACD,YAAY;GACV,OAAO;GACP,MAAM;GACP;EACD,SAAS;GACP,YAAY,OAAO;GACnB,QAAQ,OAAO;GACf,UAAU,OAAO;GAClB;EACF;CAEF,CAAC"}
1
+ {"version":3,"file":"style.mjs","names":["lobeStaticStylish","cssVar"],"sources":["../../src/Hotkey/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\nimport { cva } from 'class-variance-authority';\n\nimport { lobeStaticStylish } from '@/styles';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => {\n return {\n borderless: css`\n ${lobeStaticStylish.variantBorderlessWithoutHover};\n padding-inline: 4px;\n `,\n filled: lobeStaticStylish.variantFilledWithoutHover,\n inverseThemeDark: css`\n color: ${cssVar.colorTextTertiary};\n background: color-mix(in srgb, ${cssVar.colorBgContainer} 8%, transparent);\n `,\n inverseThemeLight: css`\n color: ${cssVar.colorTextTertiary};\n background: color-mix(in srgb, ${cssVar.colorBgContainer} 16%, transparent);\n `,\n outlined: lobeStaticStylish.variantOutlinedWithoutHover,\n root: css`\n overflow: hidden;\n\n min-width: 1.8em;\n height: 1.8em;\n padding-block: 0;\n padding-inline: 8px;\n border: none;\n border-radius: ${cssVar.borderRadiusSM};\n\n font-family: ${cssVar.fontFamily};\n font-size: 12px;\n line-height: 1.1;\n color: ${cssVar.colorTextSecondary};\n text-align: center;\n white-space: nowrap;\n `,\n };\n});\n\nexport const variants = cva(styles.root, {\n compoundVariants: [\n {\n class: styles.inverseThemeDark,\n inverseTheme: true,\n isDarkMode: true,\n },\n {\n class: styles.inverseThemeLight,\n inverseTheme: true,\n isDarkMode: false,\n },\n ],\n defaultVariants: {\n inverseTheme: false,\n isDarkMode: false,\n variant: 'filled',\n },\n\n variants: {\n inverseTheme: {\n false: null,\n true: null,\n },\n isDarkMode: {\n false: null,\n true: null,\n },\n variant: {\n borderless: styles.borderless,\n filled: styles.filled,\n outlined: styles.outlined,\n },\n },\n});\n"],"mappings":";;;;;AAKA,MAAa,SAAS,oBAAoB,EAAE,YAAK,uBAAa;AAC5D,QAAO;EACL,YAAY,KAAG;QACXA,cAAkB,8BAA8B;;;EAGpD,QAAQA,cAAkB;EAC1B,kBAAkB,KAAG;eACVC,SAAO,kBAAkB;uCACDA,SAAO,iBAAiB;;EAE3D,mBAAmB,KAAG;eACXA,SAAO,kBAAkB;uCACDA,SAAO,iBAAiB;;EAE3D,UAAUD,cAAkB;EAC5B,MAAM,KAAG;;;;;;;;uBAQUC,SAAO,eAAe;;qBAExBA,SAAO,WAAW;;;eAGxBA,SAAO,mBAAmB;;;;EAItC;EACD;AAEF,MAAa,WAAW,IAAI,OAAO,MAAM;CACvC,kBAAkB,CAChB;EACE,OAAO,OAAO;EACd,cAAc;EACd,YAAY;EACb,EACD;EACE,OAAO,OAAO;EACd,cAAc;EACd,YAAY;EACb,CACF;CACD,iBAAiB;EACf,cAAc;EACd,YAAY;EACZ,SAAS;EACV;CAED,UAAU;EACR,cAAc;GACZ,OAAO;GACP,MAAM;GACP;EACD,YAAY;GACV,OAAO;GACP,MAAM;GACP;EACD,SAAS;GACP,YAAY,OAAO;GACnB,QAAQ,OAAO;GACf,UAAU,OAAO;GAClB;EACF;CACF,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { HotkeyInputProps } from "./type.mjs";
2
- import * as react59 from "react";
2
+ import * as react50 from "react";
3
3
 
4
4
  //#region src/HotkeyInput/HotkeyInput.d.ts
5
- declare const HotkeyInput: react59.NamedExoticComponent<HotkeyInputProps>;
5
+ declare const HotkeyInput: react50.NamedExoticComponent<HotkeyInputProps>;
6
6
  //#endregion
7
7
  export { HotkeyInput };
8
8
  //# sourceMappingURL=HotkeyInput.d.mts.map
@@ -10,7 +10,7 @@ import { styles, variants } from "./style.mjs";
10
10
  import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
11
11
  import { jsx, jsxs } from "react/jsx-runtime";
12
12
  import { cx, useThemeMode } from "antd-style";
13
- import useControlledState from "use-merge-value";
13
+ import useMergeState from "use-merge-value";
14
14
  import { isEqual } from "es-toolkit/compat";
15
15
  import { Undo2Icon } from "lucide-react";
16
16
  import { useHotkeys, useRecordHotkeys } from "react-hotkeys-hook";
@@ -24,7 +24,7 @@ const HotkeyInput = memo(({ value = "", defaultValue = "", resetValue = "", onCh
24
24
  const { isDarkMode } = useThemeMode();
25
25
  const { t } = useTranslation(hotkey_default);
26
26
  const isAppleDevice = useMemo(() => checkIsAppleDevice(isApple), [isApple]);
27
- const [hotkeyValue, setHotkeyValue] = useControlledState(defaultValue, {
27
+ const [hotkeyValue, setHotkeyValue] = useMergeState(defaultValue, {
28
28
  defaultValue,
29
29
  onChange,
30
30
  value
@@ -136,7 +136,9 @@ const HotkeyInput = memo(({ value = "", defaultValue = "", resetValue = "", onCh
136
136
  },
137
137
  children: [
138
138
  /* @__PURE__ */ jsxs(FlexBasic_default, {
139
+ horizontal: true,
139
140
  align: "center",
141
+ justify: "space-between",
140
142
  className: cx(variants({
141
143
  disabled,
142
144
  error: hasConflict || hasInvalidCombination,
@@ -144,8 +146,6 @@ const HotkeyInput = memo(({ value = "", defaultValue = "", resetValue = "", onCh
144
146
  shadow,
145
147
  variant: variant || (isDarkMode ? "filled" : "outlined")
146
148
  })),
147
- horizontal: true,
148
- justify: "space-between",
149
149
  onClick: handleClick,
150
150
  children: [
151
151
  /* @__PURE__ */ jsx("div", {
@@ -159,20 +159,20 @@ const HotkeyInput = memo(({ value = "", defaultValue = "", resetValue = "", onCh
159
159
  })
160
160
  }),
161
161
  /* @__PURE__ */ jsx("input", {
162
+ readOnly: true,
162
163
  className: styles.hiddenInput,
163
164
  disabled,
164
- onBlur: handleBlur,
165
- onFocus: handleFocus,
166
- readOnly: true,
167
165
  ref: inputRef,
168
- style: { pointerEvents: "none" }
166
+ style: { pointerEvents: "none" },
167
+ onBlur: handleBlur,
168
+ onFocus: handleFocus
169
169
  }),
170
170
  !isFocused && allowReset && hotkeyValue && hotkeyValue !== resetValue && !disabled && /* @__PURE__ */ jsx(ActionIcon_default, {
171
171
  icon: Undo2Icon,
172
- onClick: handleReset,
173
172
  size: "small",
174
173
  title: resetTitle,
175
- variant: "filled"
174
+ variant: "filled",
175
+ onClick: handleReset
176
176
  })
177
177
  ]
178
178
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"HotkeyInput.mjs","names":["hotkeyMessages","modifiers: string[]","normalKeys: string[]","normalizedKey: any","Flexbox","Hotkey","ActionIcon"],"sources":["../../src/HotkeyInput/HotkeyInput.tsx"],"sourcesContent":["'use client';\n\nimport type { InputRef } from 'antd';\nimport { cx, useThemeMode } from 'antd-style';\nimport { isEqual } from 'es-toolkit/compat';\nimport { Undo2Icon } from 'lucide-react';\nimport {\n type FocusEvent,\n type MouseEvent,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useHotkeys, useRecordHotkeys } from 'react-hotkeys-hook';\nimport useControlledState from 'use-merge-value';\n\nimport ActionIcon from '@/ActionIcon';\nimport { Flexbox } from '@/Flex';\nimport Hotkey from '@/Hotkey';\nimport { NORMATIVE_MODIFIER, checkIsAppleDevice, splitKeysByPlus } from '@/Hotkey/utils';\nimport hotkeyMessages from '@/i18n/resources/en/hotkey';\nimport { useTranslation } from '@/i18n/useTranslation';\n\nimport { styles, variants } from './style';\nimport type { HotkeyInputProps } from './type';\n\nconst HotkeyInput = memo<HotkeyInputProps>(\n ({\n value = '',\n defaultValue = '',\n resetValue = '',\n onChange,\n onConflict,\n placeholder,\n disabled,\n shadow,\n allowReset = true,\n style,\n className,\n hotkeyConflicts = [],\n variant,\n texts,\n isApple,\n onBlur,\n onReset,\n onFocus,\n }) => {\n const [isFocused, setIsFocused] = useState(false);\n const [hasConflict, setHasConflict] = useState(false);\n const [hasInvalidCombination, setHasInvalidCombination] = useState(false);\n const inputRef = useRef<InputRef>(null);\n const { isDarkMode } = useThemeMode();\n const { t } = useTranslation(hotkeyMessages);\n const isAppleDevice = useMemo(() => checkIsAppleDevice(isApple), [isApple]);\n const [hotkeyValue, setHotkeyValue] = useControlledState(defaultValue, {\n defaultValue,\n onChange,\n value,\n });\n\n // 使用 useRecordHotkeys 处理快捷键录入\n const [recordedKeys, { start, stop, isRecording, resetKeys }] = useRecordHotkeys();\n\n useHotkeys(\n '*',\n () => {\n inputRef.current?.blur();\n },\n {\n enableOnContentEditable: true,\n enableOnFormTags: true,\n enabled: isRecording && !disabled,\n keydown: false,\n keyup: true,\n preventDefault: true,\n },\n );\n\n // 处理按键,保证格式正确:修饰键在前,最多一个非修饰键在后\n const formatKeys = useCallback((keysSet: Set<string>) => {\n const modifiers: string[] = [];\n const normalKeys: string[] = [];\n\n for (const key of keysSet) {\n // 处理不同表示的修饰键\n const normalizedKey: any = key.toLowerCase();\n if (NORMATIVE_MODIFIER.includes(normalizedKey)) {\n // 统一修饰键表示\n if (\n (!isAppleDevice && normalizedKey === 'ctrl') ||\n (isAppleDevice && normalizedKey === 'meta')\n ) {\n if (!modifiers.includes('mod')) modifiers.push('mod');\n } else if (!modifiers.includes(normalizedKey)) {\n modifiers.push(normalizedKey);\n }\n } else {\n normalKeys.push(key);\n }\n }\n\n // 至少需要一个修饰键\n if (modifiers.length === 0 && normalKeys.length > 0) {\n return { isValid: false, keys: [] };\n }\n\n // 只允许一个非修饰键,如果有多个,只保留最后一个\n const finalKey = normalKeys.length > 0 ? [normalKeys.at(-1)] : [];\n const shortcuts = [modifiers, finalKey];\n\n return {\n // 组合必须包含至少一个按键\n isValid: shortcuts.every((k) => k.length > 0),\n keys: shortcuts.flat(),\n };\n }, []);\n\n // 获取格式化后的按键字符串\n const { isValid, keys } = formatKeys(recordedKeys);\n const keysString = keys.join('+');\n\n // 检查快捷键冲突\n const checkHotkeyConflict = useCallback(\n (newHotkey: string): boolean => {\n return hotkeyConflicts\n .filter((conflictKey) => conflictKey !== resetValue)\n .some((conflictKey) => {\n const newKeys = splitKeysByPlus(newHotkey);\n const conflictKeys = splitKeysByPlus(conflictKey);\n return isEqual(newKeys, conflictKeys);\n });\n },\n [hotkeyConflicts],\n );\n\n // 当按键组合完成时处理结果\n useEffect(() => {\n if (recordedKeys.size > 0 && !isRecording) {\n if (!isValid) {\n setHasInvalidCombination(true);\n setHasConflict(false);\n return;\n }\n\n setHasInvalidCombination(false);\n const newKeysString = keysString;\n\n // 检查冲突\n const conflict = checkHotkeyConflict(newKeysString);\n if (conflict) {\n setHasConflict(true);\n onConflict?.(newKeysString);\n } else {\n setHasConflict(false);\n setHotkeyValue?.(newKeysString);\n }\n }\n }, [\n recordedKeys,\n isRecording,\n isValid,\n keysString,\n checkHotkeyConflict,\n setHotkeyValue,\n onConflict,\n ]);\n\n // 处理输入框焦点\n const handleFocus = (e: FocusEvent<HTMLInputElement>) => {\n if (disabled) return;\n setIsFocused(true);\n setHasConflict(false);\n setHasInvalidCombination(false);\n start(); // 开始记录\n onFocus?.(e);\n };\n\n const handleBlur = (e: FocusEvent<HTMLInputElement>) => {\n setIsFocused(false);\n stop(); // 停止记录\n onBlur?.(e);\n };\n\n // 重置功能\n const handleReset = (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setHotkeyValue?.(resetValue);\n resetKeys();\n setHasConflict(false);\n setHasInvalidCombination(false);\n setIsFocused(false);\n stop(); // 停止记录\n onReset?.(hotkeyValue, resetValue);\n };\n\n const handleClick = (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n if (disabled || isFocused) return;\n inputRef.current?.focus();\n };\n\n const placeholderText = placeholder ?? t('hotkey.placeholder');\n const resetTitle = texts?.reset ?? t('hotkey.reset');\n const conflictText = texts?.conflicts ?? t('hotkey.conflict');\n const invalidText = texts?.invalidCombination ?? t('hotkey.invalidCombination');\n\n return (\n <Flexbox\n className={className}\n gap={8}\n style={{\n position: 'relative',\n ...style,\n }}\n >\n <Flexbox\n align={'center'}\n className={cx(\n variants({\n disabled,\n error: hasConflict || hasInvalidCombination,\n focused: isFocused,\n shadow,\n variant: variant || (isDarkMode ? 'filled' : 'outlined'),\n }),\n )}\n horizontal\n justify={'space-between'}\n onClick={handleClick}\n >\n <div style={{ pointerEvents: 'none' }}>\n {isRecording ? (\n <span className={styles.placeholder}>\n {keys.length > 0 ? <Hotkey keys={keysString} /> : placeholderText}\n </span>\n ) : hotkeyValue ? (\n <Hotkey keys={hotkeyValue} />\n ) : (\n <span className={styles.placeholder}>{placeholderText}</span>\n )}\n </div>\n\n {/* 隐藏的输入框,用于接收焦点 */}\n <input\n className={styles.hiddenInput}\n disabled={disabled}\n onBlur={handleBlur}\n onFocus={handleFocus}\n readOnly\n ref={inputRef as any}\n style={{ pointerEvents: 'none' }}\n />\n\n {!isFocused && allowReset && hotkeyValue && hotkeyValue !== resetValue && !disabled && (\n <ActionIcon\n icon={Undo2Icon}\n onClick={handleReset}\n size={'small'}\n title={resetTitle}\n variant={'filled'}\n />\n )}\n </Flexbox>\n {hasConflict && <div className={styles.errorText}>{conflictText}</div>}\n {hasInvalidCombination && <div className={styles.errorText}>{invalidText}</div>}\n </Flexbox>\n );\n },\n);\n\nHotkeyInput.displayName = 'HotkeyInput';\n\nexport default HotkeyInput;\n"],"mappings":"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"}
1
+ {"version":3,"file":"HotkeyInput.mjs","names":["hotkeyMessages","useControlledState","modifiers: string[]","normalKeys: string[]","normalizedKey: any","Flexbox","Hotkey","ActionIcon"],"sources":["../../src/HotkeyInput/HotkeyInput.tsx"],"sourcesContent":["'use client';\n\nimport { type InputRef } from 'antd';\nimport { cx, useThemeMode } from 'antd-style';\nimport { isEqual } from 'es-toolkit/compat';\nimport { Undo2Icon } from 'lucide-react';\nimport {\n type FocusEvent,\n memo,\n type MouseEvent,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useHotkeys, useRecordHotkeys } from 'react-hotkeys-hook';\nimport useControlledState from 'use-merge-value';\n\nimport ActionIcon from '@/ActionIcon';\nimport { Flexbox } from '@/Flex';\nimport Hotkey from '@/Hotkey';\nimport { checkIsAppleDevice, NORMATIVE_MODIFIER, splitKeysByPlus } from '@/Hotkey/utils';\nimport hotkeyMessages from '@/i18n/resources/en/hotkey';\nimport { useTranslation } from '@/i18n/useTranslation';\n\nimport { styles, variants } from './style';\nimport { type HotkeyInputProps } from './type';\n\nconst HotkeyInput = memo<HotkeyInputProps>(\n ({\n value = '',\n defaultValue = '',\n resetValue = '',\n onChange,\n onConflict,\n placeholder,\n disabled,\n shadow,\n allowReset = true,\n style,\n className,\n hotkeyConflicts = [],\n variant,\n texts,\n isApple,\n onBlur,\n onReset,\n onFocus,\n }) => {\n const [isFocused, setIsFocused] = useState(false);\n const [hasConflict, setHasConflict] = useState(false);\n const [hasInvalidCombination, setHasInvalidCombination] = useState(false);\n const inputRef = useRef<InputRef>(null);\n const { isDarkMode } = useThemeMode();\n const { t } = useTranslation(hotkeyMessages);\n const isAppleDevice = useMemo(() => checkIsAppleDevice(isApple), [isApple]);\n const [hotkeyValue, setHotkeyValue] = useControlledState(defaultValue, {\n defaultValue,\n onChange,\n value,\n });\n\n // 使用 useRecordHotkeys 处理快捷键录入\n const [recordedKeys, { start, stop, isRecording, resetKeys }] = useRecordHotkeys();\n\n useHotkeys(\n '*',\n () => {\n inputRef.current?.blur();\n },\n {\n enableOnContentEditable: true,\n enableOnFormTags: true,\n enabled: isRecording && !disabled,\n keydown: false,\n keyup: true,\n preventDefault: true,\n },\n );\n\n // 处理按键,保证格式正确:修饰键在前,最多一个非修饰键在后\n const formatKeys = useCallback((keysSet: Set<string>) => {\n const modifiers: string[] = [];\n const normalKeys: string[] = [];\n\n for (const key of keysSet) {\n // 处理不同表示的修饰键\n const normalizedKey: any = key.toLowerCase();\n if (NORMATIVE_MODIFIER.includes(normalizedKey)) {\n // 统一修饰键表示\n if (\n (!isAppleDevice && normalizedKey === 'ctrl') ||\n (isAppleDevice && normalizedKey === 'meta')\n ) {\n if (!modifiers.includes('mod')) modifiers.push('mod');\n } else if (!modifiers.includes(normalizedKey)) {\n modifiers.push(normalizedKey);\n }\n } else {\n normalKeys.push(key);\n }\n }\n\n // 至少需要一个修饰键\n if (modifiers.length === 0 && normalKeys.length > 0) {\n return { isValid: false, keys: [] };\n }\n\n // 只允许一个非修饰键,如果有多个,只保留最后一个\n const finalKey = normalKeys.length > 0 ? [normalKeys.at(-1)] : [];\n const shortcuts = [modifiers, finalKey];\n\n return {\n // 组合必须包含至少一个按键\n isValid: shortcuts.every((k) => k.length > 0),\n keys: shortcuts.flat(),\n };\n }, []);\n\n // 获取格式化后的按键字符串\n const { isValid, keys } = formatKeys(recordedKeys);\n const keysString = keys.join('+');\n\n // 检查快捷键冲突\n const checkHotkeyConflict = useCallback(\n (newHotkey: string): boolean => {\n return hotkeyConflicts\n .filter((conflictKey) => conflictKey !== resetValue)\n .some((conflictKey) => {\n const newKeys = splitKeysByPlus(newHotkey);\n const conflictKeys = splitKeysByPlus(conflictKey);\n return isEqual(newKeys, conflictKeys);\n });\n },\n [hotkeyConflicts],\n );\n\n // 当按键组合完成时处理结果\n useEffect(() => {\n if (recordedKeys.size > 0 && !isRecording) {\n if (!isValid) {\n setHasInvalidCombination(true);\n setHasConflict(false);\n return;\n }\n\n setHasInvalidCombination(false);\n const newKeysString = keysString;\n\n // 检查冲突\n const conflict = checkHotkeyConflict(newKeysString);\n if (conflict) {\n setHasConflict(true);\n onConflict?.(newKeysString);\n } else {\n setHasConflict(false);\n setHotkeyValue?.(newKeysString);\n }\n }\n }, [\n recordedKeys,\n isRecording,\n isValid,\n keysString,\n checkHotkeyConflict,\n setHotkeyValue,\n onConflict,\n ]);\n\n // 处理输入框焦点\n const handleFocus = (e: FocusEvent<HTMLInputElement>) => {\n if (disabled) return;\n setIsFocused(true);\n setHasConflict(false);\n setHasInvalidCombination(false);\n start(); // 开始记录\n onFocus?.(e);\n };\n\n const handleBlur = (e: FocusEvent<HTMLInputElement>) => {\n setIsFocused(false);\n stop(); // 停止记录\n onBlur?.(e);\n };\n\n // 重置功能\n const handleReset = (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setHotkeyValue?.(resetValue);\n resetKeys();\n setHasConflict(false);\n setHasInvalidCombination(false);\n setIsFocused(false);\n stop(); // 停止记录\n onReset?.(hotkeyValue, resetValue);\n };\n\n const handleClick = (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n if (disabled || isFocused) return;\n inputRef.current?.focus();\n };\n\n const placeholderText = placeholder ?? t('hotkey.placeholder');\n const resetTitle = texts?.reset ?? t('hotkey.reset');\n const conflictText = texts?.conflicts ?? t('hotkey.conflict');\n const invalidText = texts?.invalidCombination ?? t('hotkey.invalidCombination');\n\n return (\n <Flexbox\n className={className}\n gap={8}\n style={{\n position: 'relative',\n ...style,\n }}\n >\n <Flexbox\n horizontal\n align={'center'}\n justify={'space-between'}\n className={cx(\n variants({\n disabled,\n error: hasConflict || hasInvalidCombination,\n focused: isFocused,\n shadow,\n variant: variant || (isDarkMode ? 'filled' : 'outlined'),\n }),\n )}\n onClick={handleClick}\n >\n <div style={{ pointerEvents: 'none' }}>\n {isRecording ? (\n <span className={styles.placeholder}>\n {keys.length > 0 ? <Hotkey keys={keysString} /> : placeholderText}\n </span>\n ) : hotkeyValue ? (\n <Hotkey keys={hotkeyValue} />\n ) : (\n <span className={styles.placeholder}>{placeholderText}</span>\n )}\n </div>\n\n {/* 隐藏的输入框,用于接收焦点 */}\n <input\n readOnly\n className={styles.hiddenInput}\n disabled={disabled}\n ref={inputRef as any}\n style={{ pointerEvents: 'none' }}\n onBlur={handleBlur}\n onFocus={handleFocus}\n />\n\n {!isFocused && allowReset && hotkeyValue && hotkeyValue !== resetValue && !disabled && (\n <ActionIcon\n icon={Undo2Icon}\n size={'small'}\n title={resetTitle}\n variant={'filled'}\n onClick={handleReset}\n />\n )}\n </Flexbox>\n {hasConflict && <div className={styles.errorText}>{conflictText}</div>}\n {hasInvalidCombination && <div className={styles.errorText}>{invalidText}</div>}\n </Flexbox>\n );\n },\n);\n\nHotkeyInput.displayName = 'HotkeyInput';\n\nexport default HotkeyInput;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"style.mjs","names":["lobeStaticStylish","cssVar"],"sources":["../../src/HotkeyInput/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\nimport { cva } from 'class-variance-authority';\n\nimport { lobeStaticStylish } from '@/styles';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => {\n return {\n borderless: lobeStaticStylish.variantBorderless,\n disabled: lobeStaticStylish.disabled,\n error: css`\n border: 1px solid ${cssVar.colorError};\n `,\n errorText: css`\n font-size: 12px;\n color: ${cssVar.colorError};\n `,\n filled: lobeStaticStylish.variantFilled,\n focused: css`\n background: ${cssVar.colorFillSecondary} !important;\n `,\n hiddenInput: css`\n cursor: text;\n\n position: absolute;\n z-index: -1;\n inset-block-start: 0;\n inset-inline-start: 0;\n\n width: 100%;\n height: 100%;\n\n opacity: 0;\n `,\n outlined: lobeStaticStylish.variantOutlined,\n placeholder: css`\n color: ${cssVar.colorTextDescription};\n `,\n root: css`\n cursor: pointer;\n\n position: relative;\n\n max-width: 100%;\n height: 36px;\n padding-block: 0;\n padding-inline: 12px;\n border-radius: ${cssVar.borderRadius};\n `,\n shadow: lobeStaticStylish.shadow,\n };\n});\n\nexport const variants = cva(styles.root, {\n defaultVariants: {\n disabled: false,\n error: false,\n shadow: false,\n variant: 'outlined',\n },\n /* eslint-disable sort-keys-fix/sort-keys-fix */\n variants: {\n variant: {\n filled: styles.filled,\n outlined: styles.outlined,\n borderless: styles.borderless,\n },\n shadow: {\n false: null,\n true: styles.shadow,\n },\n focused: {\n false: null,\n true: styles.focused,\n },\n error: {\n fales: null,\n true: styles.error,\n },\n disabled: {\n false: null,\n true: styles.disabled,\n },\n },\n /* eslint-enable sort-keys-fix/sort-keys-fix */\n});\n"],"mappings":";;;;;AAKA,MAAa,SAAS,oBAAoB,EAAE,YAAK,uBAAa;AAC5D,QAAO;EACL,YAAYA,cAAkB;EAC9B,UAAUA,cAAkB;EAC5B,OAAO,KAAG;0BACYC,SAAO,WAAW;;EAExC,WAAW,KAAG;;eAEHA,SAAO,WAAW;;EAE7B,QAAQD,cAAkB;EAC1B,SAAS,KAAG;oBACIC,SAAO,mBAAmB;;EAE1C,aAAa,KAAG;;;;;;;;;;;;;EAahB,UAAUD,cAAkB;EAC5B,aAAa,KAAG;eACLC,SAAO,qBAAqB;;EAEvC,MAAM,KAAG;;;;;;;;;uBASUA,SAAO,aAAa;;EAEvC,QAAQD,cAAkB;EAC3B;EACD;AAEF,MAAa,WAAW,IAAI,OAAO,MAAM;CACvC,iBAAiB;EACf,UAAU;EACV,OAAO;EACP,QAAQ;EACR,SAAS;EACV;CAED,UAAU;EACR,SAAS;GACP,QAAQ,OAAO;GACf,UAAU,OAAO;GACjB,YAAY,OAAO;GACpB;EACD,QAAQ;GACN,OAAO;GACP,MAAM,OAAO;GACd;EACD,SAAS;GACP,OAAO;GACP,MAAM,OAAO;GACd;EACD,OAAO;GACL,OAAO;GACP,MAAM,OAAO;GACd;EACD,UAAU;GACR,OAAO;GACP,MAAM,OAAO;GACd;EACF;CAEF,CAAC"}
1
+ {"version":3,"file":"style.mjs","names":["lobeStaticStylish","cssVar"],"sources":["../../src/HotkeyInput/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\nimport { cva } from 'class-variance-authority';\n\nimport { lobeStaticStylish } from '@/styles';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => {\n return {\n borderless: lobeStaticStylish.variantBorderless,\n disabled: lobeStaticStylish.disabled,\n error: css`\n border: 1px solid ${cssVar.colorError};\n `,\n errorText: css`\n font-size: 12px;\n color: ${cssVar.colorError};\n `,\n filled: lobeStaticStylish.variantFilled,\n focused: css`\n background: ${cssVar.colorFillSecondary} !important;\n `,\n hiddenInput: css`\n cursor: text;\n\n position: absolute;\n z-index: -1;\n inset-block-start: 0;\n inset-inline-start: 0;\n\n width: 100%;\n height: 100%;\n\n opacity: 0;\n `,\n outlined: lobeStaticStylish.variantOutlined,\n placeholder: css`\n color: ${cssVar.colorTextDescription};\n `,\n root: css`\n cursor: pointer;\n\n position: relative;\n\n max-width: 100%;\n height: 36px;\n padding-block: 0;\n padding-inline: 12px;\n border-radius: ${cssVar.borderRadius};\n `,\n shadow: lobeStaticStylish.shadow,\n };\n});\n\nexport const variants = cva(styles.root, {\n defaultVariants: {\n disabled: false,\n error: false,\n shadow: false,\n variant: 'outlined',\n },\n\n variants: {\n variant: {\n filled: styles.filled,\n outlined: styles.outlined,\n borderless: styles.borderless,\n },\n shadow: {\n false: null,\n true: styles.shadow,\n },\n focused: {\n false: null,\n true: styles.focused,\n },\n error: {\n fales: null,\n true: styles.error,\n },\n disabled: {\n false: null,\n true: styles.disabled,\n },\n },\n});\n"],"mappings":";;;;;AAKA,MAAa,SAAS,oBAAoB,EAAE,YAAK,uBAAa;AAC5D,QAAO;EACL,YAAYA,cAAkB;EAC9B,UAAUA,cAAkB;EAC5B,OAAO,KAAG;0BACYC,SAAO,WAAW;;EAExC,WAAW,KAAG;;eAEHA,SAAO,WAAW;;EAE7B,QAAQD,cAAkB;EAC1B,SAAS,KAAG;oBACIC,SAAO,mBAAmB;;EAE1C,aAAa,KAAG;;;;;;;;;;;;;EAahB,UAAUD,cAAkB;EAC5B,aAAa,KAAG;eACLC,SAAO,qBAAqB;;EAEvC,MAAM,KAAG;;;;;;;;;uBASUA,SAAO,aAAa;;EAEvC,QAAQD,cAAkB;EAC3B;EACD;AAEF,MAAa,WAAW,IAAI,OAAO,MAAM;CACvC,iBAAiB;EACf,UAAU;EACV,OAAO;EACP,QAAQ;EACR,SAAS;EACV;CAED,UAAU;EACR,SAAS;GACP,QAAQ,OAAO;GACf,UAAU,OAAO;GACjB,YAAY,OAAO;GACpB;EACD,QAAQ;GACN,OAAO;GACP,MAAM,OAAO;GACd;EACD,SAAS;GACP,OAAO;GACP,MAAM,OAAO;GACd;EACD,OAAO;GACL,OAAO;GACP,MAAM,OAAO;GACd;EACD,UAAU;GACR,OAAO;GACP,MAAM,OAAO;GACd;EACF;CACF,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { IconProps } from "./type.mjs";
2
- import * as react55 from "react";
2
+ import * as react43 from "react";
3
3
 
4
4
  //#region src/Icon/Icon.d.ts
5
- declare const Icon: react55.NamedExoticComponent<IconProps>;
5
+ declare const Icon: react43.NamedExoticComponent<IconProps>;
6
6
  //#endregion
7
7
  export { Icon };
8
8
  //# sourceMappingURL=Icon.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.mjs","names":[],"sources":["../../src/Icon/Icon.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { LucideIcon } from 'lucide-react';\nimport { isValidElement, memo, useMemo } from 'react';\n\nimport { useIconContext } from './components/IconProvider';\nimport { calcSize } from './components/utils';\nimport { variants } from './style';\nimport type { IconProps } from './type';\n\nconst Icon = memo<IconProps>(\n ({\n icon,\n size: iconSize,\n color,\n fill = 'transparent',\n className,\n focusable,\n spin,\n fillRule,\n fillOpacity,\n ref,\n ...rest\n }) => {\n const {\n color: colorConfig,\n fill: fillConfig,\n fillOpacity: fillOpacityConfig,\n fillRule: fillRuleConfig,\n focusable: focusableConfig,\n className: classNameConfig,\n size: sizeConfig,\n ...restConfig\n } = useIconContext();\n\n const { size, strokeWidth } = useMemo(\n () => calcSize(iconSize || sizeConfig),\n [iconSize, sizeConfig],\n );\n\n const SvgIcon = icon as LucideIcon;\n\n return (\n <span\n className={cx(variants({ spin }), classNameConfig, className)}\n role=\"img\"\n {...restConfig}\n {...rest}\n >\n {icon &&\n (isValidElement(icon) ? (\n icon\n ) : (\n <SvgIcon\n color={color || colorConfig}\n fill={fill || fillConfig}\n fillOpacity={fillOpacity || fillOpacityConfig}\n fillRule={fillRule || fillRuleConfig}\n focusable={focusable || focusableConfig}\n height={size}\n ref={ref}\n size={size}\n strokeWidth={strokeWidth}\n width={size}\n />\n ))}\n </span>\n );\n },\n);\n\nIcon.displayName = 'Icon';\n\nexport default Icon;\n"],"mappings":";;;;;;;;;;AAWA,MAAM,OAAO,MACV,EACC,MACA,MAAM,UACN,OACA,OAAO,eACP,WACA,WACA,MACA,UACA,aACA,KACA,GAAG,WACC;CACJ,MAAM,EACJ,OAAO,aACP,MAAM,YACN,aAAa,mBACb,UAAU,gBACV,WAAW,iBACX,WAAW,iBACX,MAAM,YACN,GAAG,eACD,gBAAgB;CAEpB,MAAM,EAAE,MAAM,gBAAgB,cACtB,SAAS,YAAY,WAAW,EACtC,CAAC,UAAU,WAAW,CACvB;CAED,MAAM,UAAU;AAEhB,QACE,oBAAC;EACC,WAAW,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,iBAAiB,UAAU;EAC7D,MAAK;EACL,GAAI;EACJ,GAAI;YAEH,SACE,eAAe,KAAK,GACnB,OAEA,oBAAC;GACC,OAAO,SAAS;GAChB,MAAM,QAAQ;GACd,aAAa,eAAe;GAC5B,UAAU,YAAY;GACtB,WAAW,aAAa;GACxB,QAAQ;GACH;GACC;GACO;GACb,OAAO;IACP;GAED;EAGZ;AAED,KAAK,cAAc;AAEnB,mBAAe"}
1
+ {"version":3,"file":"Icon.mjs","names":[],"sources":["../../src/Icon/Icon.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport type { LucideIcon } from 'lucide-react';\nimport { isValidElement, memo, useMemo } from 'react';\n\nimport { useIconContext } from './components/IconProvider';\nimport { calcSize } from './components/utils';\nimport { variants } from './style';\nimport type { IconProps } from './type';\n\nconst Icon = memo<IconProps>(\n ({\n icon,\n size: iconSize,\n color,\n fill = 'transparent',\n className,\n focusable,\n spin,\n fillRule,\n fillOpacity,\n ref,\n ...rest\n }) => {\n const {\n color: colorConfig,\n fill: fillConfig,\n fillOpacity: fillOpacityConfig,\n fillRule: fillRuleConfig,\n focusable: focusableConfig,\n className: classNameConfig,\n size: sizeConfig,\n ...restConfig\n } = useIconContext();\n\n const { size, strokeWidth } = useMemo(\n () => calcSize(iconSize || sizeConfig),\n [iconSize, sizeConfig],\n );\n\n const SvgIcon = icon as LucideIcon;\n\n return (\n <span\n className={cx(variants({ spin }), classNameConfig, className)}\n role=\"img\"\n {...restConfig}\n {...rest}\n >\n {icon &&\n (isValidElement(icon) ? (\n icon\n ) : (\n <SvgIcon\n color={color || colorConfig}\n fill={fill || fillConfig}\n fillOpacity={fillOpacity || fillOpacityConfig}\n fillRule={fillRule || fillRuleConfig}\n focusable={focusable || focusableConfig}\n height={size}\n ref={ref}\n size={size}\n strokeWidth={strokeWidth}\n width={size}\n />\n ))}\n </span>\n );\n },\n);\n\nIcon.displayName = 'Icon';\n\nexport default Icon;\n"],"mappings":";;;;;;;;;;AAWA,MAAM,OAAO,MACV,EACC,MACA,MAAM,UACN,OACA,OAAO,eACP,WACA,WACA,MACA,UACA,aACA,KACA,GAAG,WACC;CACJ,MAAM,EACJ,OAAO,aACP,MAAM,YACN,aAAa,mBACb,UAAU,gBACV,WAAW,iBACX,WAAW,iBACX,MAAM,YACN,GAAG,eACD,gBAAgB;CAEpB,MAAM,EAAE,MAAM,gBAAgB,cACtB,SAAS,YAAY,WAAW,EACtC,CAAC,UAAU,WAAW,CACvB;CAED,MAAM,UAAU;AAEhB,QACE,oBAAC;EACC,WAAW,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,iBAAiB,UAAU;EAC7D,MAAK;EACL,GAAI;EACJ,GAAI;YAEH,SACE,eAAe,KAAK,GACnB,OAEA,oBAAC;GACC,OAAO,SAAS;GAChB,MAAM,QAAQ;GACd,aAAa,eAAe;GAC5B,UAAU,YAAY;GACtB,WAAW,aAAa;GACxB,QAAQ;GACH;GACC;GACO;GACb,OAAO;IACP;GAED;EAGZ;AAED,KAAK,cAAc;AAEnB,mBAAe"}
@@ -1,11 +1,11 @@
1
1
  import { IconProps } from "../type.mjs";
2
- import * as react53 from "react";
2
+ import * as react44 from "react";
3
3
  import { ReactNode } from "react";
4
4
 
5
5
  //#region src/Icon/components/IconProvider.d.ts
6
6
  type IconContentConfig = Omit<IconProps, 'icon' | 'ref'>;
7
- declare const IconContext: react53.Context<IconContentConfig>;
8
- declare const IconProvider: react53.NamedExoticComponent<{
7
+ declare const IconContext: react44.Context<IconContentConfig>;
8
+ declare const IconProvider: react44.NamedExoticComponent<{
9
9
  children: ReactNode;
10
10
  config?: IconContentConfig;
11
11
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"IconProvider.mjs","names":[],"sources":["../../../src/Icon/components/IconProvider.tsx"],"sourcesContent":["'use client';\n\nimport { type ReactNode, createContext, memo, use } from 'react';\n\nimport type { IconProps } from '../type';\n\nexport type IconContentConfig = Omit<IconProps, 'icon' | 'ref'>;\n\nexport const IconContext = createContext<IconContentConfig>({});\n\nexport const IconProvider = memo<{ children: ReactNode; config?: IconContentConfig }>(\n ({ children, config = {} }) => {\n return <IconContext value={config}>{children}</IconContext>;\n },\n);\n\nexport const useIconContext = () => {\n return use(IconContext);\n};\n"],"mappings":";;;;;;AAQA,MAAa,cAAc,cAAiC,EAAE,CAAC;AAE/D,MAAa,eAAe,MACzB,EAAE,UAAU,SAAS,EAAE,OAAO;AAC7B,QAAO,oBAAC;EAAY,OAAO;EAAS;GAAuB;EAE9D;AAED,MAAa,uBAAuB;AAClC,QAAO,IAAI,YAAY"}
1
+ {"version":3,"file":"IconProvider.mjs","names":[],"sources":["../../../src/Icon/components/IconProvider.tsx"],"sourcesContent":["'use client';\n\nimport { createContext, memo, type ReactNode, use } from 'react';\n\nimport { type IconProps } from '../type';\n\nexport type IconContentConfig = Omit<IconProps, 'icon' | 'ref'>;\n\nexport const IconContext = createContext<IconContentConfig>({});\n\nexport const IconProvider = memo<{ children: ReactNode; config?: IconContentConfig }>(\n ({ children, config = {} }) => {\n return <IconContext value={config}>{children}</IconContext>;\n },\n);\n\nexport const useIconContext = () => {\n return use(IconContext);\n};\n"],"mappings":";;;;;;AAQA,MAAa,cAAc,cAAiC,EAAE,CAAC;AAE/D,MAAa,eAAe,MACzB,EAAE,UAAU,SAAS,EAAE,OAAO;AAC7B,QAAO,oBAAC;EAAY,OAAO;EAAS;GAAuB;EAE9D;AAED,MAAa,uBAAuB;AAClC,QAAO,IAAI,YAAY"}
@@ -1 +1 @@
1
- {"version":3,"file":"style.mjs","names":[],"sources":["../../src/Icon/style.ts"],"sourcesContent":["import { createStaticStyles, keyframes } from 'antd-style';\nimport { cva } from 'class-variance-authority';\n\nconst spin = keyframes`\n 0% {\n rotate: 0deg;\n }\n 100% {\n rotate: 360deg;\n }\n`;\n\nexport const styles = createStaticStyles(({ css }) => {\n return {\n spin: css`\n animation: ${spin} 1s linear infinite;\n `,\n };\n});\n\nexport const variants = cva('anticon', {\n defaultVariants: {\n spin: false,\n },\n /* eslint-disable sort-keys-fix/sort-keys-fix */\n variants: {\n spin: {\n false: null,\n true: styles.spin,\n },\n },\n /* eslint-enable sort-keys-fix/sort-keys-fix */\n});\n"],"mappings":";;;;AAGA,MAAM,OAAO,SAAS;;;;;;;;AAStB,MAAa,SAAS,oBAAoB,EAAE,iBAAU;AACpD,QAAO,EACL,MAAM,KAAG;mBACM,KAAK;OAErB;EACD;AAEF,MAAa,WAAW,IAAI,WAAW;CACrC,iBAAiB,EACf,MAAM,OACP;CAED,UAAU,EACR,MAAM;EACJ,OAAO;EACP,MAAM,OAAO;EACd,EACF;CAEF,CAAC"}
1
+ {"version":3,"file":"style.mjs","names":[],"sources":["../../src/Icon/style.ts"],"sourcesContent":["import { createStaticStyles, keyframes } from 'antd-style';\nimport { cva } from 'class-variance-authority';\n\nconst spin = keyframes`\n 0% {\n rotate: 0deg;\n }\n 100% {\n rotate: 360deg;\n }\n`;\n\nexport const styles = createStaticStyles(({ css }) => {\n return {\n spin: css`\n animation: ${spin} 1s linear infinite;\n `,\n };\n});\n\nexport const variants = cva('anticon', {\n defaultVariants: {\n spin: false,\n },\n\n variants: {\n spin: {\n false: null,\n true: styles.spin,\n },\n },\n});\n"],"mappings":";;;;AAGA,MAAM,OAAO,SAAS;;;;;;;;AAStB,MAAa,SAAS,oBAAoB,EAAE,iBAAU;AACpD,QAAO,EACL,MAAM,KAAG;mBACM,KAAK;OAErB;EACD;AAEF,MAAa,WAAW,IAAI,WAAW;CACrC,iBAAiB,EACf,MAAM,OACP;CAED,UAAU,EACR,MAAM;EACJ,OAAO;EACP,MAAM,OAAO;EACd,EACF;CACF,CAAC"}
@@ -37,12 +37,12 @@ const Image$1 = memo(({ ref, style, preview, isLoading, maxHeight = "100%", maxW
37
37
  children: actions
38
38
  }), /* @__PURE__ */ jsx(Image, {
39
39
  className: cx(styles.image, classNames?.image),
40
- classNames: { root: cx(styles.wrapper, classNames?.wrapper) },
41
40
  fallback: isDarkMode ? FALLBACK_DARK : FALLBACK_LIGHT,
42
41
  height,
43
42
  loading: "lazy",
44
- onClick,
45
43
  preview: preview === false ? false : mergePreivew,
44
+ width,
45
+ classNames: { root: cx(styles.wrapper, classNames?.wrapper) },
46
46
  style: {
47
47
  maxHeight,
48
48
  maxWidth,
@@ -52,7 +52,7 @@ const Image$1 = memo(({ ref, style, preview, isLoading, maxHeight = "100%", maxW
52
52
  ...customStyles?.image
53
53
  },
54
54
  styles: { root: customStyles?.wrapper },
55
- width,
55
+ onClick,
56
56
  ...rest
57
57
  })]
58
58
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Image.mjs","names":["Image","usePreview","Flexbox","AntImage"],"sources":["../../src/Image/Image.tsx"],"sourcesContent":["'use client';\n\nimport { Image as AntImage, Skeleton } from 'antd';\nimport { cssVar, cx, useThemeMode } from 'antd-style';\nimport { memo } from 'react';\n\nimport { Flexbox } from '@/Flex';\n\nimport usePreview from './components/usePreview';\nimport { FALLBACK_DARK, FALLBACK_LIGHT, styles, variants } from './style';\nimport type { ImageProps } from './type';\n\nconst Image = memo<ImageProps>(\n ({\n ref,\n style,\n preview,\n isLoading,\n maxHeight = '100%',\n maxWidth = '100%',\n minHeight,\n minWidth,\n actions,\n className,\n alwaysShowActions,\n variant = 'filled',\n objectFit = 'cover',\n classNames,\n styles: customStyles,\n onClick,\n width,\n height,\n ...rest\n }) => {\n const { isDarkMode } = useThemeMode();\n const actionsClassName = alwaysShowActions ? styles.actionsVisible : styles.actionsHidden;\n const mergePreivew = usePreview(preview);\n\n if (isLoading)\n return (\n <div onClick={onClick}>\n <Skeleton.Avatar\n active\n style={{\n borderRadius: cssVar.borderRadius,\n height,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n width,\n }}\n />\n </div>\n );\n\n return (\n <Flexbox className={cx(variants({ variant }), className)} ref={ref} style={style}>\n {actions && (\n <div className={cx(actionsClassName, alwaysShowActions ? '' : 'actions-hidden')}>\n {actions}\n </div>\n )}\n <AntImage\n className={cx(styles.image, classNames?.image)}\n classNames={{\n root: cx(styles.wrapper, classNames?.wrapper),\n }}\n fallback={isDarkMode ? FALLBACK_DARK : FALLBACK_LIGHT}\n height={height}\n loading={'lazy'}\n onClick={onClick}\n preview={preview === false ? false : (mergePreivew as any)}\n style={{\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n objectFit: objectFit || 'cover',\n ...customStyles?.image,\n }}\n styles={{\n root: customStyles?.wrapper,\n }}\n width={width}\n {...rest}\n />\n </Flexbox>\n );\n },\n);\n\nImage.displayName = 'Image';\n\nexport default Image;\n"],"mappings":";;;;;;;;;;;AAYA,MAAMA,UAAQ,MACX,EACC,KACA,OACA,SACA,WACA,YAAY,QACZ,WAAW,QACX,WACA,UACA,SACA,WACA,mBACA,UAAU,UACV,YAAY,SACZ,YACA,QAAQ,cACR,SACA,OACA,QACA,GAAG,WACC;CACJ,MAAM,EAAE,eAAe,cAAc;CACrC,MAAM,mBAAmB,oBAAoB,OAAO,iBAAiB,OAAO;CAC5E,MAAM,eAAeC,mBAAW,QAAQ;AAExC,KAAI,UACF,QACE,oBAAC;EAAa;YACZ,oBAAC,SAAS;GACR;GACA,OAAO;IACL,cAAc,OAAO;IACrB;IACA;IACA;IACA;IACA;IACA;IACD;IACD;GACE;AAGV,QACE,qBAACC;EAAQ,WAAW,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,UAAU;EAAO;EAAY;aACxE,WACC,oBAAC;GAAI,WAAW,GAAG,kBAAkB,oBAAoB,KAAK,iBAAiB;aAC5E;IACG,EAER,oBAACC;GACC,WAAW,GAAG,OAAO,OAAO,YAAY,MAAM;GAC9C,YAAY,EACV,MAAM,GAAG,OAAO,SAAS,YAAY,QAAQ,EAC9C;GACD,UAAU,aAAa,gBAAgB;GAC/B;GACR,SAAS;GACA;GACT,SAAS,YAAY,QAAQ,QAAS;GACtC,OAAO;IACL;IACA;IACA;IACA;IACA,WAAW,aAAa;IACxB,GAAG,cAAc;IAClB;GACD,QAAQ,EACN,MAAM,cAAc,SACrB;GACM;GACP,GAAI;IACJ;GACM;EAGf;AAED,QAAM,cAAc;AAEpB,oBAAeH"}
1
+ {"version":3,"file":"Image.mjs","names":["Image","usePreview","Flexbox","AntImage"],"sources":["../../src/Image/Image.tsx"],"sourcesContent":["'use client';\n\nimport { Image as AntImage, Skeleton } from 'antd';\nimport { cssVar, cx, useThemeMode } from 'antd-style';\nimport { memo } from 'react';\n\nimport { Flexbox } from '@/Flex';\n\nimport usePreview from './components/usePreview';\nimport { FALLBACK_DARK, FALLBACK_LIGHT, styles, variants } from './style';\nimport type { ImageProps } from './type';\n\nconst Image = memo<ImageProps>(\n ({\n ref,\n style,\n preview,\n isLoading,\n maxHeight = '100%',\n maxWidth = '100%',\n minHeight,\n minWidth,\n actions,\n className,\n alwaysShowActions,\n variant = 'filled',\n objectFit = 'cover',\n classNames,\n styles: customStyles,\n onClick,\n width,\n height,\n ...rest\n }) => {\n const { isDarkMode } = useThemeMode();\n const actionsClassName = alwaysShowActions ? styles.actionsVisible : styles.actionsHidden;\n const mergePreivew = usePreview(preview);\n\n if (isLoading)\n return (\n <div onClick={onClick}>\n <Skeleton.Avatar\n active\n style={{\n borderRadius: cssVar.borderRadius,\n height,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n width,\n }}\n />\n </div>\n );\n\n return (\n <Flexbox className={cx(variants({ variant }), className)} ref={ref} style={style}>\n {actions && (\n <div className={cx(actionsClassName, alwaysShowActions ? '' : 'actions-hidden')}>\n {actions}\n </div>\n )}\n <AntImage\n className={cx(styles.image, classNames?.image)}\n fallback={isDarkMode ? FALLBACK_DARK : FALLBACK_LIGHT}\n height={height}\n loading={'lazy'}\n preview={preview === false ? false : (mergePreivew as any)}\n width={width}\n classNames={{\n root: cx(styles.wrapper, classNames?.wrapper),\n }}\n style={{\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n objectFit: objectFit || 'cover',\n ...customStyles?.image,\n }}\n styles={{\n root: customStyles?.wrapper,\n }}\n onClick={onClick}\n {...rest}\n />\n </Flexbox>\n );\n },\n);\n\nImage.displayName = 'Image';\n\nexport default Image;\n"],"mappings":";;;;;;;;;;;AAYA,MAAMA,UAAQ,MACX,EACC,KACA,OACA,SACA,WACA,YAAY,QACZ,WAAW,QACX,WACA,UACA,SACA,WACA,mBACA,UAAU,UACV,YAAY,SACZ,YACA,QAAQ,cACR,SACA,OACA,QACA,GAAG,WACC;CACJ,MAAM,EAAE,eAAe,cAAc;CACrC,MAAM,mBAAmB,oBAAoB,OAAO,iBAAiB,OAAO;CAC5E,MAAM,eAAeC,mBAAW,QAAQ;AAExC,KAAI,UACF,QACE,oBAAC;EAAa;YACZ,oBAAC,SAAS;GACR;GACA,OAAO;IACL,cAAc,OAAO;IACrB;IACA;IACA;IACA;IACA;IACA;IACD;IACD;GACE;AAGV,QACE,qBAACC;EAAQ,WAAW,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,UAAU;EAAO;EAAY;aACxE,WACC,oBAAC;GAAI,WAAW,GAAG,kBAAkB,oBAAoB,KAAK,iBAAiB;aAC5E;IACG,EAER,oBAACC;GACC,WAAW,GAAG,OAAO,OAAO,YAAY,MAAM;GAC9C,UAAU,aAAa,gBAAgB;GAC/B;GACR,SAAS;GACT,SAAS,YAAY,QAAQ,QAAS;GAC/B;GACP,YAAY,EACV,MAAM,GAAG,OAAO,SAAS,YAAY,QAAQ,EAC9C;GACD,OAAO;IACL;IACA;IACA;IACA;IACA,WAAW,aAAa;IACxB,GAAG,cAAc;IAClB;GACD,QAAQ,EACN,MAAM,cAAc,SACrB;GACQ;GACT,GAAI;IACJ;GACM;EAGf;AAED,QAAM,cAAc;AAEpB,oBAAeH"}
@@ -1,8 +1,8 @@
1
1
  import { PreviewGroupProps } from "./type.mjs";
2
- import * as react56 from "react";
2
+ import * as react47 from "react";
3
3
 
4
4
  //#region src/Image/PreviewGroup.d.ts
5
- declare const PreviewGroup: react56.NamedExoticComponent<PreviewGroupProps>;
5
+ declare const PreviewGroup: react47.NamedExoticComponent<PreviewGroupProps>;
6
6
  //#endregion
7
7
  export { PreviewGroup };
8
8
  //# sourceMappingURL=PreviewGroup.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PreviewGroup.mjs","names":["usePreviewGroup"],"sources":["../../src/Image/PreviewGroup.tsx"],"sourcesContent":["'use client';\n\nimport { Image } from 'antd';\nimport { memo } from 'react';\n\nimport usePreviewGroup from './components/usePreviewGroup';\nimport { PreviewGroupProps } from './type';\n\nconst { PreviewGroup: AntdPreviewGroup } = Image;\n\nconst PreviewGroup = memo<PreviewGroupProps>(({ items, children, enable = true, preview }) => {\n const mergePreview = usePreviewGroup(preview);\n\n if (!enable) return children;\n\n return (\n <AntdPreviewGroup items={items} preview={mergePreview}>\n {children}\n </AntdPreviewGroup>\n );\n});\n\nPreviewGroup.displayName = 'PreviewGroup';\n\nexport default PreviewGroup;\n"],"mappings":";;;;;;;;AAQA,MAAM,EAAE,cAAc,qBAAqB;AAE3C,MAAM,eAAe,MAAyB,EAAE,OAAO,UAAU,SAAS,MAAM,cAAc;CAC5F,MAAM,eAAeA,wBAAgB,QAAQ;AAE7C,KAAI,CAAC,OAAQ,QAAO;AAEpB,QACE,oBAAC;EAAwB;EAAO,SAAS;EACtC;GACgB;EAErB;AAEF,aAAa,cAAc;AAE3B,2BAAe"}
1
+ {"version":3,"file":"PreviewGroup.mjs","names":["usePreviewGroup"],"sources":["../../src/Image/PreviewGroup.tsx"],"sourcesContent":["'use client';\n\nimport { Image } from 'antd';\nimport { memo } from 'react';\n\nimport usePreviewGroup from './components/usePreviewGroup';\nimport type { PreviewGroupProps } from './type';\n\nconst { PreviewGroup: AntdPreviewGroup } = Image;\n\nconst PreviewGroup = memo<PreviewGroupProps>(({ items, children, enable = true, preview }) => {\n const mergePreview = usePreviewGroup(preview);\n\n if (!enable) return children;\n\n return (\n <AntdPreviewGroup items={items} preview={mergePreview}>\n {children}\n </AntdPreviewGroup>\n );\n});\n\nPreviewGroup.displayName = 'PreviewGroup';\n\nexport default PreviewGroup;\n"],"mappings":";;;;;;;;AAQA,MAAM,EAAE,cAAc,qBAAqB;AAE3C,MAAM,eAAe,MAAyB,EAAE,OAAO,UAAU,SAAS,MAAM,cAAc;CAC5F,MAAM,eAAeA,wBAAgB,QAAQ;AAE7C,KAAI,CAAC,OAAQ,QAAO;AAEpB,QACE,oBAAC;EAAwB;EAAO,SAAS;EACtC;GACgB;EAErB;AAEF,aAAa,cAAc;AAE3B,2BAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"Preview.mjs","names":[],"sources":["../../../src/Image/components/Preview.tsx"],"sourcesContent":["'use client';\n\nimport { type PropsWithChildren, memo, useEffect, useRef } from 'react';\n\ninterface PreviewProps extends PropsWithChildren {\n visible?: boolean;\n}\n\nconst Preview = memo<PreviewProps>(({ children, visible }) => {\n const ref = useRef<HTMLDivElement>(null);\n useEffect(() => {\n if (!ref.current) return;\n\n const handleDisableZoom = (event: any) => {\n event.preventDefault();\n };\n\n if (visible) {\n ref.current.addEventListener('wheel', handleDisableZoom, { passive: false });\n } else {\n ref.current.removeEventListener('wheel', handleDisableZoom);\n }\n }, [visible]);\n\n return <div ref={ref}>{children}</div>;\n});\n\nexport default Preview;\n"],"mappings":";;;;;;AAQA,MAAM,UAAU,MAAoB,EAAE,UAAU,cAAc;CAC5D,MAAM,MAAM,OAAuB,KAAK;AACxC,iBAAgB;AACd,MAAI,CAAC,IAAI,QAAS;EAElB,MAAM,qBAAqB,UAAe;AACxC,SAAM,gBAAgB;;AAGxB,MAAI,QACF,KAAI,QAAQ,iBAAiB,SAAS,mBAAmB,EAAE,SAAS,OAAO,CAAC;MAE5E,KAAI,QAAQ,oBAAoB,SAAS,kBAAkB;IAE5D,CAAC,QAAQ,CAAC;AAEb,QAAO,oBAAC;EAAS;EAAM;GAAe;EACtC;AAEF,sBAAe"}
1
+ {"version":3,"file":"Preview.mjs","names":[],"sources":["../../../src/Image/components/Preview.tsx"],"sourcesContent":["'use client';\n\nimport { memo, type PropsWithChildren, useEffect, useRef } from 'react';\n\ninterface PreviewProps extends PropsWithChildren {\n visible?: boolean;\n}\n\nconst Preview = memo<PreviewProps>(({ children, visible }) => {\n const ref = useRef<HTMLDivElement>(null);\n useEffect(() => {\n if (!ref.current) return;\n\n const handleDisableZoom = (event: any) => {\n event.preventDefault();\n };\n\n if (visible) {\n ref.current.addEventListener('wheel', handleDisableZoom, { passive: false });\n } else {\n ref.current.removeEventListener('wheel', handleDisableZoom);\n }\n }, [visible]);\n\n return <div ref={ref}>{children}</div>;\n});\n\nexport default Preview;\n"],"mappings":";;;;;;AAQA,MAAM,UAAU,MAAoB,EAAE,UAAU,cAAc;CAC5D,MAAM,MAAM,OAAuB,KAAK;AACxC,iBAAgB;AACd,MAAI,CAAC,IAAI,QAAS;EAElB,MAAM,qBAAqB,UAAe;AACxC,SAAM,gBAAgB;;AAGxB,MAAI,QACF,KAAI,QAAQ,iBAAiB,SAAS,mBAAmB,EAAE,SAAS,OAAO,CAAC;MAE5E,KAAI,QAAQ,oBAAoB,SAAS,kBAAkB;IAE5D,CAAC,QAAQ,CAAC;AAEb,QAAO,oBAAC;EAAS;EAAM;GAAe;EACtC;AAEF,sBAAe"}
@@ -9,9 +9,9 @@ import { FlipHorizontal, FlipVertical, RotateCcw, RotateCw, ZoomIn, ZoomOut } fr
9
9
  const Toolbar = memo(({ children, info, minScale, maxScale }) => {
10
10
  const { transform: { scale }, actions: { onFlipY, onFlipX, onRotateLeft, onRotateRight, onZoomOut, onZoomIn } } = info;
11
11
  return /* @__PURE__ */ jsxs(FlexBasic_default, {
12
+ horizontal: true,
12
13
  className: styles.toolbar,
13
14
  gap: 4,
14
- horizontal: true,
15
15
  children: [
16
16
  /* @__PURE__ */ jsx(ActionIcon_default, {
17
17
  icon: FlipHorizontal,
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.mjs","names":["Flexbox","ActionIcon"],"sources":["../../../src/Image/components/Toolbar.tsx"],"sourcesContent":["import { FlipHorizontal, FlipVertical, RotateCcw, RotateCw, ZoomIn, ZoomOut } from 'lucide-react';\nimport type { ToolbarRenderInfoType } from 'rc-image/lib/Preview';\nimport { type ReactNode, memo } from 'react';\n\nimport ActionIcon from '@/ActionIcon';\nimport { Flexbox } from '@/Flex';\n\nimport { styles } from '../style';\n\nexport interface ToolbarProps {\n children?: ReactNode;\n info: Omit<ToolbarRenderInfoType, 'current' | 'total'>;\n maxScale: number;\n minScale: number;\n}\n\nconst Toolbar = memo<ToolbarProps>(({ children, info, minScale, maxScale }) => {\n const {\n transform: { scale },\n actions: { onFlipY, onFlipX, onRotateLeft, onRotateRight, onZoomOut, onZoomIn },\n } = info;\n\n return (\n <Flexbox className={styles.toolbar} gap={4} horizontal>\n <ActionIcon icon={FlipHorizontal} onClick={onFlipX} />\n <ActionIcon icon={FlipVertical} onClick={onFlipY} />\n <ActionIcon icon={RotateCcw} onClick={onRotateLeft} />\n <ActionIcon icon={RotateCw} onClick={onRotateRight} />\n <ActionIcon disabled={scale === minScale} icon={ZoomOut} onClick={onZoomOut} />\n <ActionIcon disabled={scale === maxScale} icon={ZoomIn} onClick={onZoomIn} />\n {children}\n </Flexbox>\n );\n});\n\nexport default Toolbar;\n"],"mappings":";;;;;;;;AAgBA,MAAM,UAAU,MAAoB,EAAE,UAAU,MAAM,UAAU,eAAe;CAC7E,MAAM,EACJ,WAAW,EAAE,SACb,SAAS,EAAE,SAAS,SAAS,cAAc,eAAe,WAAW,eACnE;AAEJ,QACE,qBAACA;EAAQ,WAAW,OAAO;EAAS,KAAK;EAAG;;GAC1C,oBAACC;IAAW,MAAM;IAAgB,SAAS;KAAW;GACtD,oBAACA;IAAW,MAAM;IAAc,SAAS;KAAW;GACpD,oBAACA;IAAW,MAAM;IAAW,SAAS;KAAgB;GACtD,oBAACA;IAAW,MAAM;IAAU,SAAS;KAAiB;GACtD,oBAACA;IAAW,UAAU,UAAU;IAAU,MAAM;IAAS,SAAS;KAAa;GAC/E,oBAACA;IAAW,UAAU,UAAU;IAAU,MAAM;IAAQ,SAAS;KAAY;GAC5E;;GACO;EAEZ;AAEF,sBAAe"}
1
+ {"version":3,"file":"Toolbar.mjs","names":["Flexbox","ActionIcon"],"sources":["../../../src/Image/components/Toolbar.tsx"],"sourcesContent":["import { FlipHorizontal, FlipVertical, RotateCcw, RotateCw, ZoomIn, ZoomOut } from 'lucide-react';\nimport { type ToolbarRenderInfoType } from 'rc-image/lib/Preview';\nimport { memo, type ReactNode } from 'react';\n\nimport ActionIcon from '@/ActionIcon';\nimport { Flexbox } from '@/Flex';\n\nimport { styles } from '../style';\n\nexport interface ToolbarProps {\n children?: ReactNode;\n info: Omit<ToolbarRenderInfoType, 'current' | 'total'>;\n maxScale: number;\n minScale: number;\n}\n\nconst Toolbar = memo<ToolbarProps>(({ children, info, minScale, maxScale }) => {\n const {\n transform: { scale },\n actions: { onFlipY, onFlipX, onRotateLeft, onRotateRight, onZoomOut, onZoomIn },\n } = info;\n\n return (\n <Flexbox horizontal className={styles.toolbar} gap={4}>\n <ActionIcon icon={FlipHorizontal} onClick={onFlipX} />\n <ActionIcon icon={FlipVertical} onClick={onFlipY} />\n <ActionIcon icon={RotateCcw} onClick={onRotateLeft} />\n <ActionIcon icon={RotateCw} onClick={onRotateRight} />\n <ActionIcon disabled={scale === minScale} icon={ZoomOut} onClick={onZoomOut} />\n <ActionIcon disabled={scale === maxScale} icon={ZoomIn} onClick={onZoomIn} />\n {children}\n </Flexbox>\n );\n});\n\nexport default Toolbar;\n"],"mappings":";;;;;;;;AAgBA,MAAM,UAAU,MAAoB,EAAE,UAAU,MAAM,UAAU,eAAe;CAC7E,MAAM,EACJ,WAAW,EAAE,SACb,SAAS,EAAE,SAAS,SAAS,cAAc,eAAe,WAAW,eACnE;AAEJ,QACE,qBAACA;EAAQ;EAAW,WAAW,OAAO;EAAS,KAAK;;GAClD,oBAACC;IAAW,MAAM;IAAgB,SAAS;KAAW;GACtD,oBAACA;IAAW,MAAM;IAAc,SAAS;KAAW;GACpD,oBAACA;IAAW,MAAM;IAAW,SAAS;KAAgB;GACtD,oBAACA;IAAW,MAAM;IAAU,SAAS;KAAiB;GACtD,oBAACA;IAAW,UAAU,UAAU;IAAU,MAAM;IAAS,SAAS;KAAa;GAC/E,oBAACA;IAAW,UAAU,UAAU;IAAU,MAAM;IAAQ,SAAS;KAAY;GAC5E;;GACO;EAEZ;AAEF,sBAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePreviewGroup.mjs","names":["Toolbar","Icon","Preview","componentStyles"],"sources":["../../../src/Image/components/usePreviewGroup.tsx"],"sourcesContent":["import { cx } from 'antd-style';\nimport type { GroupPreviewConfig } from 'antd/es/image/PreviewGroup';\nimport { X } from 'lucide-react';\nimport { useMemo, useState } from 'react';\n\nimport Icon from '@/Icon';\n\nimport { styles as componentStyles, styles } from '../style';\nimport type { PreviewGroupPreviewOptions } from '../type';\nimport Preview from './Preview';\nimport Toolbar from './Toolbar';\n\nexport const usePreview = (\n props: PreviewGroupPreviewOptions | boolean | undefined,\n): GroupPreviewConfig | boolean => {\n const [visible, setVisible] = useState(false);\n\n return useMemo(() => {\n if (props === false) return props;\n\n const {\n onVisibleChange,\n onOpenChange,\n minScale = 0.32,\n maxScale = 32,\n toolbarAddon,\n rootClassName,\n imageRender,\n toolbarRender,\n ...rest\n }: PreviewGroupPreviewOptions = (\n props === true ? {} : props || {}\n ) as PreviewGroupPreviewOptions;\n\n return {\n actionsRender: (_, info) => {\n const originalNode = (\n <Toolbar info={info} maxScale={maxScale} minScale={minScale}>\n {toolbarAddon}\n </Toolbar>\n );\n if (toolbarRender) return toolbarRender(originalNode, info);\n return originalNode;\n },\n closeIcon: <Icon color={'#fff'} icon={X} />,\n\n imageRender: (originalNode, info) => {\n const node = <Preview visible={visible}>{originalNode}</Preview>;\n if (imageRender) return imageRender(node, info);\n return node;\n },\n maxScale,\n minScale,\n onOpenChange: (open: boolean, info: { current: number }) => {\n setVisible(open);\n // 支持新的 onOpenChange\n onOpenChange?.(open, info);\n // 向后兼容旧的 onVisibleChange (注意参数差异)\n onVisibleChange?.(open, !open, info.current);\n },\n rootClassName: cx(styles.preview, rootClassName),\n ...rest,\n } satisfies GroupPreviewConfig;\n }, [props, visible, componentStyles]);\n};\n\nexport default usePreview;\n"],"mappings":";;;;;;;;;;AAYA,MAAa,cACX,UACiC;CACjC,MAAM,CAAC,SAAS,cAAc,SAAS,MAAM;AAE7C,QAAO,cAAc;AACnB,MAAI,UAAU,MAAO,QAAO;EAE5B,MAAM,EACJ,iBACA,cACA,WAAW,KACX,WAAW,IACX,cACA,eACA,aACA,eACA,GAAG,SAEH,UAAU,OAAO,EAAE,GAAG,SAAS,EAAE;AAGnC,SAAO;GACL,gBAAgB,GAAG,SAAS;IAC1B,MAAM,eACJ,oBAACA;KAAc;KAAgB;KAAoB;eAChD;MACO;AAEZ,QAAI,cAAe,QAAO,cAAc,cAAc,KAAK;AAC3D,WAAO;;GAET,WAAW,oBAACC;IAAK,OAAO;IAAQ,MAAM;KAAK;GAE3C,cAAc,cAAc,SAAS;IACnC,MAAM,OAAO,oBAACC;KAAiB;eAAU;MAAuB;AAChE,QAAI,YAAa,QAAO,YAAY,MAAM,KAAK;AAC/C,WAAO;;GAET;GACA;GACA,eAAe,MAAe,SAA8B;AAC1D,eAAW,KAAK;AAEhB,mBAAe,MAAM,KAAK;AAE1B,sBAAkB,MAAM,CAAC,MAAM,KAAK,QAAQ;;GAE9C,eAAe,GAAG,OAAO,SAAS,cAAc;GAChD,GAAG;GACJ;IACA;EAAC;EAAO;EAASC;EAAgB,CAAC;;AAGvC,8BAAe"}
1
+ {"version":3,"file":"usePreviewGroup.mjs","names":["Toolbar","Icon","Preview","componentStyles"],"sources":["../../../src/Image/components/usePreviewGroup.tsx"],"sourcesContent":["import { type GroupPreviewConfig } from 'antd/es/image/PreviewGroup';\nimport { cx } from 'antd-style';\nimport { X } from 'lucide-react';\nimport { useMemo, useState } from 'react';\n\nimport Icon from '@/Icon';\n\nimport { styles as componentStyles, styles } from '../style';\nimport { type PreviewGroupPreviewOptions } from '../type';\nimport Preview from './Preview';\nimport Toolbar from './Toolbar';\n\nexport const usePreview = (\n props: PreviewGroupPreviewOptions | boolean | undefined,\n): GroupPreviewConfig | boolean => {\n const [visible, setVisible] = useState(false);\n\n return useMemo(() => {\n if (props === false) return props;\n\n const {\n onVisibleChange,\n onOpenChange,\n minScale = 0.32,\n maxScale = 32,\n toolbarAddon,\n rootClassName,\n imageRender,\n toolbarRender,\n ...rest\n }: PreviewGroupPreviewOptions = (\n props === true ? {} : props || {}\n ) as PreviewGroupPreviewOptions;\n\n return {\n actionsRender: (_, info) => {\n const originalNode = (\n <Toolbar info={info} maxScale={maxScale} minScale={minScale}>\n {toolbarAddon}\n </Toolbar>\n );\n if (toolbarRender) return toolbarRender(originalNode, info);\n return originalNode;\n },\n closeIcon: <Icon color={'#fff'} icon={X} />,\n\n imageRender: (originalNode, info) => {\n const node = <Preview visible={visible}>{originalNode}</Preview>;\n if (imageRender) return imageRender(node, info);\n return node;\n },\n maxScale,\n minScale,\n onOpenChange: (open: boolean, info: { current: number }) => {\n setVisible(open);\n // 支持新的 onOpenChange\n onOpenChange?.(open, info);\n // 向后兼容旧的 onVisibleChange (注意参数差异)\n onVisibleChange?.(open, !open, info.current);\n },\n rootClassName: cx(styles.preview, rootClassName),\n ...rest,\n } satisfies GroupPreviewConfig;\n }, [props, visible, componentStyles]);\n};\n\nexport default usePreview;\n"],"mappings":";;;;;;;;;;AAYA,MAAa,cACX,UACiC;CACjC,MAAM,CAAC,SAAS,cAAc,SAAS,MAAM;AAE7C,QAAO,cAAc;AACnB,MAAI,UAAU,MAAO,QAAO;EAE5B,MAAM,EACJ,iBACA,cACA,WAAW,KACX,WAAW,IACX,cACA,eACA,aACA,eACA,GAAG,SAEH,UAAU,OAAO,EAAE,GAAG,SAAS,EAAE;AAGnC,SAAO;GACL,gBAAgB,GAAG,SAAS;IAC1B,MAAM,eACJ,oBAACA;KAAc;KAAgB;KAAoB;eAChD;MACO;AAEZ,QAAI,cAAe,QAAO,cAAc,cAAc,KAAK;AAC3D,WAAO;;GAET,WAAW,oBAACC;IAAK,OAAO;IAAQ,MAAM;KAAK;GAE3C,cAAc,cAAc,SAAS;IACnC,MAAM,OAAO,oBAACC;KAAiB;eAAU;MAAuB;AAChE,QAAI,YAAa,QAAO,YAAY,MAAM,KAAK;AAC/C,WAAO;;GAET;GACA;GACA,eAAe,MAAe,SAA8B;AAC1D,eAAW,KAAK;AAEhB,mBAAe,MAAM,KAAK;AAE1B,sBAAkB,MAAM,CAAC,MAAM,KAAK,QAAQ;;GAE9C,eAAe,GAAG,OAAO,SAAS,cAAc;GAChD,GAAG;GACJ;IACA;EAAC;EAAO;EAASC;EAAgB,CAAC;;AAGvC,8BAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"style.mjs","names":["lobeStaticStylish","cssVar"],"sources":["../../src/Image/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\nimport { cva } from 'class-variance-authority';\n\nimport { lobeStaticStylish } from '@/styles';\n\nconst prefixCls = 'ant';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => {\n return {\n actionsHidden: css`\n cursor: pointer;\n\n position: absolute;\n z-index: 1;\n inset-block-start: 0;\n inset-inline-end: 0;\n\n opacity: 0;\n `,\n actionsVisible: css`\n cursor: pointer;\n\n position: absolute;\n z-index: 1;\n inset-block-start: 0;\n inset-inline-end: 0;\n\n opacity: 1;\n `,\n borderless: lobeStaticStylish.variantBorderlessWithoutHover,\n filled: css`\n ${lobeStaticStylish.variantOutlinedWithoutHover};\n ${lobeStaticStylish.variantFilledWithoutHover};\n `,\n image: css`\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: auto;\n height: auto;\n `,\n mask: css`\n ${lobeStaticStylish.blur};\n backdrop-filter: blur(8px);\n `,\n outlined: lobeStaticStylish.variantOutlinedWithoutHover,\n preview: css`\n .${prefixCls}-image-preview-mask {\n background: color-mix(in srgb, ${cssVar.colorBgLayout} 90%, transparent);\n }\n\n .${prefixCls}-image-preview-close {\n color: ${cssVar.colorTextDescription};\n background: ${cssVar.colorBgContainer};\n box-shadow: ${cssVar.boxShadowTertiary};\n\n svg {\n stroke: ${cssVar.colorTextDescription};\n }\n\n &:hover {\n color: ${cssVar.colorText};\n background: ${cssVar.colorBgContainer};\n\n svg {\n stroke: ${cssVar.colorText};\n }\n }\n }\n\n .${prefixCls}-image-preview-img {\n width: 100%;\n }\n\n .${prefixCls}-image-preview-switch {\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 32px;\n height: 32px;\n padding: 0;\n\n color: ${cssVar.colorTextDescription};\n\n background: ${cssVar.colorBgContainer};\n box-shadow: ${cssVar.boxShadowTertiary};\n\n svg {\n transform: scale(0.75);\n }\n\n &:hover {\n color: ${cssVar.colorText};\n background: ${cssVar.colorBgContainer};\n }\n }\n\n .${prefixCls}-image-preview-switch-disabled {\n display: none;\n }\n\n .ant-image-preview-progress {\n color: ${cssVar.colorTextDescription};\n }\n\n img {\n min-width: 100%;\n }\n `,\n root: css`\n cursor: pointer;\n user-select: none;\n\n position: relative;\n\n overflow: hidden;\n\n width: fit-content;\n border-radius: ${cssVar.borderRadius};\n\n line-height: 1;\n\n .${prefixCls}-image-cover {\n display: none !important;\n }\n\n &:hover {\n .actions-hidden {\n opacity: 1;\n }\n }\n `,\n toolbar: css`\n ${lobeStaticStylish.variantOutlinedWithoutHover};\n padding: 4px;\n border-color: ${cssVar.colorFillTertiary};\n border-radius: ${cssVar.borderRadiusLG};\n `,\n\n wrapper: css`\n position: relative;\n overflow: hidden;\n max-width: 100%;\n height: auto;\n `,\n };\n});\n\nexport const variants = cva(styles.root, {\n defaultVariants: {\n variant: 'filled',\n },\n /* eslint-disable sort-keys-fix/sort-keys-fix */\n variants: {\n variant: {\n filled: styles.filled,\n outlined: styles.outlined,\n borderless: styles.borderless,\n },\n },\n /* eslint-enable sort-keys-fix/sort-keys-fix */\n});\n\nexport const FALLBACK_DARK =\n 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgdmlld0JveD0iMCAwIDI1NiAyNTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2IiBmaWxsPSIjM0IzQjNCIi8+CjxwYXRoIGQ9Ik0xNTYuODg4IDkxLjAwMkgxMDAuMTEyQzk1LjYzMjkgOTEuMDAyIDkyLjAwMTUgOTQuNjMzNCA5Mi4wMDE1IDk5LjExMjdWMTU1Ljg4OEM5Mi4wMDE1IDE2MC4zNjcgOTUuNjMyOSAxNjMuOTk5IDEwMC4xMTIgMTYzLjk5OUgxNTYuODg4QzE2MS4zNjcgMTYzLjk5OSAxNjQuOTk4IDE2MC4zNjcgMTY0Ljk5OCAxNTUuODg4Vjk5LjExMjdDMTY0Ljk5OCA5NC42MzM0IDE2MS4zNjcgOTEuMDAyIDE1Ni44ODggOTEuMDAyWiIgc3Ryb2tlPSIjNjI2MjYyIiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTY0Ljk5OCAxMzkuNjY4TDE1Mi40ODQgMTI3LjE1M0MxNTAuOTYyIDEyNS42MzIgMTQ4LjkgMTI0Ljc3OCAxNDYuNzQ5IDEyNC43NzhDMTQ0LjU5OSAxMjQuNzc4IDE0Mi41MzYgMTI1LjYzMiAxNDEuMDE1IDEyNy4xNTNMMTA0LjE2OCAxNjRNMTE2LjMzNCAxMjMuNDQ1QzEyMC44MTMgMTIzLjQ0NSAxMjQuNDQ1IDExOS44MTQgMTI0LjQ0NSAxMTUuMzM0QzEyNC40NDUgMTEwLjg1NSAxMjAuODEzIDEwNy4yMjQgMTE2LjMzNCAxMDcuMjI0QzExMS44NTUgMTA3LjIyNCAxMDguMjIzIDExMC44NTUgMTA4LjIyMyAxMTUuMzM0QzEwOC4yMjMgMTE5LjgxNCAxMTEuODU1IDEyMy40NDUgMTE2LjMzNCAxMjMuNDQ1WiIgc3Ryb2tlPSIjNjI2MjYyIiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K';\nexport const FALLBACK_LIGHT =\n 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgdmlld0JveD0iMCAwIDI1NiAyNTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2IiBmaWxsPSIjRUNFQ0VDIi8+CjxwYXRoIGQ9Ik0xNTYuODg4IDkxLjAwMkgxMDAuMTEyQzk1LjYzMjkgOTEuMDAyIDkyLjAwMTUgOTQuNjMzNCA5Mi4wMDE1IDk5LjExMjdWMTU1Ljg4OEM5Mi4wMDE1IDE2MC4zNjcgOTUuNjMyOSAxNjMuOTk5IDEwMC4xMTIgMTYzLjk5OUgxNTYuODg4QzE2MS4zNjcgMTYzLjk5OSAxNjQuOTk4IDE2MC4zNjcgMTY0Ljk5OCAxNTUuODg4Vjk5LjExMjdDMTY0Ljk5OCA5NC42MzM0IDE2MS4zNjcgOTEuMDAyIDE1Ni44ODggOTEuMDAyWiIgc3Ryb2tlPSIjRDdEN0Q3IiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTY0Ljk5OCAxMzkuNjY4TDE1Mi40ODQgMTI3LjE1M0MxNTAuOTYyIDEyNS42MzIgMTQ4LjkgMTI0Ljc3OCAxNDYuNzQ5IDEyNC43NzhDMTQ0LjU5OSAxMjQuNzc4IDE0Mi41MzYgMTI1LjYzMiAxNDEuMDE1IDEyNy4xNTNMMTA0LjE2OCAxNjRNMTE2LjMzNCAxMjMuNDQ1QzEyMC44MTMgMTIzLjQ0NSAxMjQuNDQ1IDExOS44MTQgMTI0LjQ0NSAxMTUuMzM0QzEyNC40NDUgMTEwLjg1NSAxMjAuODEzIDEwNy4yMjQgMTE2LjMzNCAxMDcuMjI0QzExMS44NTUgMTA3LjIyNCAxMDguMjIzIDExMC44NTUgMTA4LjIyMyAxMTUuMzM0QzEwOC4yMjMgMTE5LjgxNCAxMTEuODU1IDEyMy40NDUgMTE2LjMzNCAxMjMuNDQ1WiIgc3Ryb2tlPSIjRDdEN0Q3IiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K';\n"],"mappings":";;;;;AAKA,MAAM,YAAY;AAElB,MAAa,SAAS,oBAAoB,EAAE,YAAK,uBAAa;AAC5D,QAAO;EACL,eAAe,KAAG;;;;;;;;;;EAUlB,gBAAgB,KAAG;;;;;;;;;;EAUnB,YAAYA,cAAkB;EAC9B,QAAQ,KAAG;QACPA,cAAkB,4BAA4B;QAC9CA,cAAkB,0BAA0B;;EAEhD,OAAO,KAAG;;;;;;;;EAQV,MAAM,KAAG;QACLA,cAAkB,KAAK;;;EAG3B,UAAUA,cAAkB;EAC5B,SAAS,KAAG;SACP,UAAU;yCACsBC,SAAO,cAAc;;;SAGrD,UAAU;iBACFA,SAAO,qBAAqB;sBACvBA,SAAO,iBAAiB;sBACxBA,SAAO,kBAAkB;;;oBAG3BA,SAAO,qBAAqB;;;;mBAI7BA,SAAO,UAAU;wBACZA,SAAO,iBAAiB;;;sBAG1BA,SAAO,UAAU;;;;;SAK9B,UAAU;;;;SAIV,UAAU;;;;;;;;;iBASFA,SAAO,qBAAqB;;sBAEvBA,SAAO,iBAAiB;sBACxBA,SAAO,kBAAkB;;;;;;;mBAO5BA,SAAO,UAAU;wBACZA,SAAO,iBAAiB;;;;SAIvC,UAAU;;;;;iBAKFA,SAAO,qBAAqB;;;;;;;EAOzC,MAAM,KAAG;;;;;;;;;uBASUA,SAAO,aAAa;;;;SAIlC,UAAU;;;;;;;;;;EAUf,SAAS,KAAG;QACRD,cAAkB,4BAA4B;;sBAEhCC,SAAO,kBAAkB;uBACxBA,SAAO,eAAe;;EAGzC,SAAS,KAAG;;;;;;EAMb;EACD;AAEF,MAAa,WAAW,IAAI,OAAO,MAAM;CACvC,iBAAiB,EACf,SAAS,UACV;CAED,UAAU,EACR,SAAS;EACP,QAAQ,OAAO;EACf,UAAU,OAAO;EACjB,YAAY,OAAO;EACpB,EACF;CAEF,CAAC;AAEF,MAAa,gBACX;AACF,MAAa,iBACX"}
1
+ {"version":3,"file":"style.mjs","names":["lobeStaticStylish","cssVar"],"sources":["../../src/Image/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\nimport { cva } from 'class-variance-authority';\n\nimport { lobeStaticStylish } from '@/styles';\n\nconst prefixCls = 'ant';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => {\n return {\n actionsHidden: css`\n cursor: pointer;\n\n position: absolute;\n z-index: 1;\n inset-block-start: 0;\n inset-inline-end: 0;\n\n opacity: 0;\n `,\n actionsVisible: css`\n cursor: pointer;\n\n position: absolute;\n z-index: 1;\n inset-block-start: 0;\n inset-inline-end: 0;\n\n opacity: 1;\n `,\n borderless: lobeStaticStylish.variantBorderlessWithoutHover,\n filled: css`\n ${lobeStaticStylish.variantOutlinedWithoutHover};\n ${lobeStaticStylish.variantFilledWithoutHover};\n `,\n image: css`\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: auto;\n height: auto;\n `,\n mask: css`\n ${lobeStaticStylish.blur};\n backdrop-filter: blur(8px);\n `,\n outlined: lobeStaticStylish.variantOutlinedWithoutHover,\n preview: css`\n .${prefixCls}-image-preview-mask {\n background: color-mix(in srgb, ${cssVar.colorBgLayout} 90%, transparent);\n }\n\n .${prefixCls}-image-preview-close {\n color: ${cssVar.colorTextDescription};\n background: ${cssVar.colorBgContainer};\n box-shadow: ${cssVar.boxShadowTertiary};\n\n svg {\n stroke: ${cssVar.colorTextDescription};\n }\n\n &:hover {\n color: ${cssVar.colorText};\n background: ${cssVar.colorBgContainer};\n\n svg {\n stroke: ${cssVar.colorText};\n }\n }\n }\n\n .${prefixCls}-image-preview-img {\n width: 100%;\n }\n\n .${prefixCls}-image-preview-switch {\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 32px;\n height: 32px;\n padding: 0;\n\n color: ${cssVar.colorTextDescription};\n\n background: ${cssVar.colorBgContainer};\n box-shadow: ${cssVar.boxShadowTertiary};\n\n svg {\n transform: scale(0.75);\n }\n\n &:hover {\n color: ${cssVar.colorText};\n background: ${cssVar.colorBgContainer};\n }\n }\n\n .${prefixCls}-image-preview-switch-disabled {\n display: none;\n }\n\n .ant-image-preview-progress {\n color: ${cssVar.colorTextDescription};\n }\n\n img {\n min-width: 100%;\n }\n `,\n root: css`\n cursor: pointer;\n user-select: none;\n\n position: relative;\n\n overflow: hidden;\n\n width: fit-content;\n border-radius: ${cssVar.borderRadius};\n\n line-height: 1;\n\n .${prefixCls}-image-cover {\n display: none !important;\n }\n\n &:hover {\n .actions-hidden {\n opacity: 1;\n }\n }\n `,\n toolbar: css`\n ${lobeStaticStylish.variantOutlinedWithoutHover};\n padding: 4px;\n border-color: ${cssVar.colorFillTertiary};\n border-radius: ${cssVar.borderRadiusLG};\n `,\n\n wrapper: css`\n position: relative;\n overflow: hidden;\n max-width: 100%;\n height: auto;\n `,\n };\n});\n\nexport const variants = cva(styles.root, {\n defaultVariants: {\n variant: 'filled',\n },\n\n variants: {\n variant: {\n filled: styles.filled,\n outlined: styles.outlined,\n borderless: styles.borderless,\n },\n },\n});\n\nexport const FALLBACK_DARK =\n 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgdmlld0JveD0iMCAwIDI1NiAyNTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2IiBmaWxsPSIjM0IzQjNCIi8+CjxwYXRoIGQ9Ik0xNTYuODg4IDkxLjAwMkgxMDAuMTEyQzk1LjYzMjkgOTEuMDAyIDkyLjAwMTUgOTQuNjMzNCA5Mi4wMDE1IDk5LjExMjdWMTU1Ljg4OEM5Mi4wMDE1IDE2MC4zNjcgOTUuNjMyOSAxNjMuOTk5IDEwMC4xMTIgMTYzLjk5OUgxNTYuODg4QzE2MS4zNjcgMTYzLjk5OSAxNjQuOTk4IDE2MC4zNjcgMTY0Ljk5OCAxNTUuODg4Vjk5LjExMjdDMTY0Ljk5OCA5NC42MzM0IDE2MS4zNjcgOTEuMDAyIDE1Ni44ODggOTEuMDAyWiIgc3Ryb2tlPSIjNjI2MjYyIiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTY0Ljk5OCAxMzkuNjY4TDE1Mi40ODQgMTI3LjE1M0MxNTAuOTYyIDEyNS42MzIgMTQ4LjkgMTI0Ljc3OCAxNDYuNzQ5IDEyNC43NzhDMTQ0LjU5OSAxMjQuNzc4IDE0Mi41MzYgMTI1LjYzMiAxNDEuMDE1IDEyNy4xNTNMMTA0LjE2OCAxNjRNMTE2LjMzNCAxMjMuNDQ1QzEyMC44MTMgMTIzLjQ0NSAxMjQuNDQ1IDExOS44MTQgMTI0LjQ0NSAxMTUuMzM0QzEyNC40NDUgMTEwLjg1NSAxMjAuODEzIDEwNy4yMjQgMTE2LjMzNCAxMDcuMjI0QzExMS44NTUgMTA3LjIyNCAxMDguMjIzIDExMC44NTUgMTA4LjIyMyAxMTUuMzM0QzEwOC4yMjMgMTE5LjgxNCAxMTEuODU1IDEyMy40NDUgMTE2LjMzNCAxMjMuNDQ1WiIgc3Ryb2tlPSIjNjI2MjYyIiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K';\nexport const FALLBACK_LIGHT =\n 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgdmlld0JveD0iMCAwIDI1NiAyNTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2IiBmaWxsPSIjRUNFQ0VDIi8+CjxwYXRoIGQ9Ik0xNTYuODg4IDkxLjAwMkgxMDAuMTEyQzk1LjYzMjkgOTEuMDAyIDkyLjAwMTUgOTQuNjMzNCA5Mi4wMDE1IDk5LjExMjdWMTU1Ljg4OEM5Mi4wMDE1IDE2MC4zNjcgOTUuNjMyOSAxNjMuOTk5IDEwMC4xMTIgMTYzLjk5OUgxNTYuODg4QzE2MS4zNjcgMTYzLjk5OSAxNjQuOTk4IDE2MC4zNjcgMTY0Ljk5OCAxNTUuODg4Vjk5LjExMjdDMTY0Ljk5OCA5NC42MzM0IDE2MS4zNjcgOTEuMDAyIDE1Ni44ODggOTEuMDAyWiIgc3Ryb2tlPSIjRDdEN0Q3IiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTY0Ljk5OCAxMzkuNjY4TDE1Mi40ODQgMTI3LjE1M0MxNTAuOTYyIDEyNS42MzIgMTQ4LjkgMTI0Ljc3OCAxNDYuNzQ5IDEyNC43NzhDMTQ0LjU5OSAxMjQuNzc4IDE0Mi41MzYgMTI1LjYzMiAxNDEuMDE1IDEyNy4xNTNMMTA0LjE2OCAxNjRNMTE2LjMzNCAxMjMuNDQ1QzEyMC44MTMgMTIzLjQ0NSAxMjQuNDQ1IDExOS44MTQgMTI0LjQ0NSAxMTUuMzM0QzEyNC40NDUgMTEwLjg1NSAxMjAuODEzIDEwNy4yMjQgMTE2LjMzNCAxMDcuMjI0QzExMS44NTUgMTA3LjIyNCAxMDguMjIzIDExMC44NTUgMTA4LjIyMyAxMTUuMzM0QzEwOC4yMjMgMTE5LjgxNCAxMTEuODU1IDEyMy40NDUgMTE2LjMzNCAxMjMuNDQ1WiIgc3Ryb2tlPSIjRDdEN0Q3IiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K';\n"],"mappings":";;;;;AAKA,MAAM,YAAY;AAElB,MAAa,SAAS,oBAAoB,EAAE,YAAK,uBAAa;AAC5D,QAAO;EACL,eAAe,KAAG;;;;;;;;;;EAUlB,gBAAgB,KAAG;;;;;;;;;;EAUnB,YAAYA,cAAkB;EAC9B,QAAQ,KAAG;QACPA,cAAkB,4BAA4B;QAC9CA,cAAkB,0BAA0B;;EAEhD,OAAO,KAAG;;;;;;;;EAQV,MAAM,KAAG;QACLA,cAAkB,KAAK;;;EAG3B,UAAUA,cAAkB;EAC5B,SAAS,KAAG;SACP,UAAU;yCACsBC,SAAO,cAAc;;;SAGrD,UAAU;iBACFA,SAAO,qBAAqB;sBACvBA,SAAO,iBAAiB;sBACxBA,SAAO,kBAAkB;;;oBAG3BA,SAAO,qBAAqB;;;;mBAI7BA,SAAO,UAAU;wBACZA,SAAO,iBAAiB;;;sBAG1BA,SAAO,UAAU;;;;;SAK9B,UAAU;;;;SAIV,UAAU;;;;;;;;;iBASFA,SAAO,qBAAqB;;sBAEvBA,SAAO,iBAAiB;sBACxBA,SAAO,kBAAkB;;;;;;;mBAO5BA,SAAO,UAAU;wBACZA,SAAO,iBAAiB;;;;SAIvC,UAAU;;;;;iBAKFA,SAAO,qBAAqB;;;;;;;EAOzC,MAAM,KAAG;;;;;;;;;uBASUA,SAAO,aAAa;;;;SAIlC,UAAU;;;;;;;;;;EAUf,SAAS,KAAG;QACRD,cAAkB,4BAA4B;;sBAEhCC,SAAO,kBAAkB;uBACxBA,SAAO,eAAe;;EAGzC,SAAS,KAAG;;;;;;EAMb;EACD;AAEF,MAAa,WAAW,IAAI,OAAO,MAAM;CACvC,iBAAiB,EACf,SAAS,UACV;CAED,UAAU,EACR,SAAS;EACP,QAAQ,OAAO;EACf,UAAU,OAAO;EACjB,YAAY,OAAO;EACpB,EACF;CACF,CAAC;AAEF,MAAa,gBACX;AACF,MAAa,iBACX"}
@@ -1,8 +1,8 @@
1
1
  import { ImageSelectProps } from "./type.mjs";
2
- import * as react124 from "react";
2
+ import * as react125 from "react";
3
3
 
4
4
  //#region src/ImageSelect/ImageSelect.d.ts
5
- declare const ImageSelect: react124.NamedExoticComponent<ImageSelectProps>;
5
+ declare const ImageSelect: react125.NamedExoticComponent<ImageSelectProps>;
6
6
  //#endregion
7
7
  export { ImageSelect };
8
8
  //# sourceMappingURL=ImageSelect.d.mts.map
@@ -7,19 +7,19 @@ import { styles } from "./styles.mjs";
7
7
  import { memo } from "react";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
9
  import { cx } from "antd-style";
10
- import useControlledState from "use-merge-value";
10
+ import useMergeState from "use-merge-value";
11
11
 
12
12
  //#region src/ImageSelect/ImageSelect.tsx
13
13
  const ImageSelect = memo(({ ref, className, style, value, defaultValue, onChange, options, width = 144, height = 86, styles: customStyles, classNames, unoptimized, ...rest }) => {
14
- const [currentValue, setCurrentValue] = useControlledState(defaultValue, {
14
+ const [currentValue, setCurrentValue] = useMergeState(defaultValue, {
15
15
  defaultValue,
16
16
  onChange,
17
17
  value
18
18
  });
19
19
  return /* @__PURE__ */ jsx(FlexBasic_default, {
20
+ horizontal: true,
20
21
  className,
21
22
  gap: 16,
22
- horizontal: true,
23
23
  ref,
24
24
  style,
25
25
  ...rest,
@@ -35,17 +35,17 @@ const ImageSelect = memo(({ ref, className, style, value, defaultValue, onChange
35
35
  className: cx(styles.img, isActive && styles.imgActive, classNames?.img),
36
36
  height,
37
37
  src: item.img,
38
+ unoptimized,
39
+ width,
38
40
  style: {
39
41
  ...customStyles?.img,
40
42
  height,
41
43
  width
42
- },
43
- unoptimized,
44
- width
44
+ }
45
45
  }), /* @__PURE__ */ jsxs(FlexBasic_default, {
46
+ horizontal: true,
46
47
  align: "center",
47
48
  gap: 4,
48
- horizontal: true,
49
49
  children: [item.icon && /* @__PURE__ */ jsx(Icon_default, { icon: item.icon }), item.label]
50
50
  })]
51
51
  }, item.value);
@@ -1 +1 @@
1
- {"version":3,"file":"ImageSelect.mjs","names":["Flexbox","Img","Icon"],"sources":["../../src/ImageSelect/ImageSelect.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { memo } from 'react';\nimport useControlledState from 'use-merge-value';\n\nimport { Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\nimport Img from '@/Img';\n\nimport { styles } from './styles';\nimport type { ImageSelectProps } from './type';\n\nconst ImageSelect = memo<ImageSelectProps>(\n ({\n ref,\n className,\n style,\n value,\n defaultValue,\n onChange,\n options,\n width = 144,\n height = 86,\n styles: customStyles,\n classNames,\n unoptimized,\n ...rest\n }) => {\n const [currentValue, setCurrentValue] = useControlledState<string>(defaultValue, {\n defaultValue,\n onChange,\n value,\n });\n\n return (\n <Flexbox className={className} gap={16} horizontal ref={ref} style={style} {...rest}>\n {options?.map((item) => {\n const isActive = item.value === currentValue;\n return (\n <Flexbox\n align={'center'}\n className={cx(styles.container, isActive && styles.active)}\n gap={4}\n key={item.value}\n onClick={() => setCurrentValue(item.value)}\n >\n <Img\n alt={item.alt || item.value}\n className={cx(styles.img, isActive && styles.imgActive, classNames?.img)}\n height={height}\n src={item.img}\n style={{\n ...customStyles?.img,\n height,\n width,\n }}\n unoptimized={unoptimized}\n width={width}\n />\n\n <Flexbox align={'center'} gap={4} horizontal>\n {item.icon && <Icon icon={item.icon} />}\n {item.label}\n </Flexbox>\n </Flexbox>\n );\n })}\n </Flexbox>\n );\n },\n);\n\nImageSelect.displayName = 'ImageSelect';\n\nexport default ImageSelect;\n"],"mappings":";;;;;;;;;;;;AAaA,MAAM,cAAc,MACjB,EACC,KACA,WACA,OACA,OACA,cACA,UACA,SACA,QAAQ,KACR,SAAS,IACT,QAAQ,cACR,YACA,aACA,GAAG,WACC;CACJ,MAAM,CAAC,cAAc,mBAAmB,mBAA2B,cAAc;EAC/E;EACA;EACA;EACD,CAAC;AAEF,QACE,oBAACA;EAAmB;EAAW,KAAK;EAAI;EAAgB;EAAY;EAAO,GAAI;YAC5E,SAAS,KAAK,SAAS;GACtB,MAAM,WAAW,KAAK,UAAU;AAChC,UACE,qBAACA;IACC,OAAO;IACP,WAAW,GAAG,OAAO,WAAW,YAAY,OAAO,OAAO;IAC1D,KAAK;IAEL,eAAe,gBAAgB,KAAK,MAAM;eAE1C,oBAACC;KACC,KAAK,KAAK,OAAO,KAAK;KACtB,WAAW,GAAG,OAAO,KAAK,YAAY,OAAO,WAAW,YAAY,IAAI;KAChE;KACR,KAAK,KAAK;KACV,OAAO;MACL,GAAG,cAAc;MACjB;MACA;MACD;KACY;KACN;MACP,EAEF,qBAACD;KAAQ,OAAO;KAAU,KAAK;KAAG;gBAC/B,KAAK,QAAQ,oBAACE,gBAAK,MAAM,KAAK,OAAQ,EACtC,KAAK;MACE;MApBL,KAAK,MAqBF;IAEZ;GACM;EAGf;AAED,YAAY,cAAc;AAE1B,0BAAe"}
1
+ {"version":3,"file":"ImageSelect.mjs","names":["useControlledState","Flexbox","Img","Icon"],"sources":["../../src/ImageSelect/ImageSelect.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { memo } from 'react';\nimport useControlledState from 'use-merge-value';\n\nimport { Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\nimport Img from '@/Img';\n\nimport { styles } from './styles';\nimport type { ImageSelectProps } from './type';\n\nconst ImageSelect = memo<ImageSelectProps>(\n ({\n ref,\n className,\n style,\n value,\n defaultValue,\n onChange,\n options,\n width = 144,\n height = 86,\n styles: customStyles,\n classNames,\n unoptimized,\n ...rest\n }) => {\n const [currentValue, setCurrentValue] = useControlledState<string>(defaultValue, {\n defaultValue,\n onChange,\n value,\n });\n\n return (\n <Flexbox horizontal className={className} gap={16} ref={ref} style={style} {...rest}>\n {options?.map((item) => {\n const isActive = item.value === currentValue;\n return (\n <Flexbox\n align={'center'}\n className={cx(styles.container, isActive && styles.active)}\n gap={4}\n key={item.value}\n onClick={() => setCurrentValue(item.value)}\n >\n <Img\n alt={item.alt || item.value}\n className={cx(styles.img, isActive && styles.imgActive, classNames?.img)}\n height={height}\n src={item.img}\n unoptimized={unoptimized}\n width={width}\n style={{\n ...customStyles?.img,\n height,\n width,\n }}\n />\n\n <Flexbox horizontal align={'center'} gap={4}>\n {item.icon && <Icon icon={item.icon} />}\n {item.label}\n </Flexbox>\n </Flexbox>\n );\n })}\n </Flexbox>\n );\n },\n);\n\nImageSelect.displayName = 'ImageSelect';\n\nexport default ImageSelect;\n"],"mappings":";;;;;;;;;;;;AAaA,MAAM,cAAc,MACjB,EACC,KACA,WACA,OACA,OACA,cACA,UACA,SACA,QAAQ,KACR,SAAS,IACT,QAAQ,cACR,YACA,aACA,GAAG,WACC;CACJ,MAAM,CAAC,cAAc,mBAAmBA,cAA2B,cAAc;EAC/E;EACA;EACA;EACD,CAAC;AAEF,QACE,oBAACC;EAAQ;EAAsB;EAAW,KAAK;EAAS;EAAY;EAAO,GAAI;YAC5E,SAAS,KAAK,SAAS;GACtB,MAAM,WAAW,KAAK,UAAU;AAChC,UACE,qBAACA;IACC,OAAO;IACP,WAAW,GAAG,OAAO,WAAW,YAAY,OAAO,OAAO;IAC1D,KAAK;IAEL,eAAe,gBAAgB,KAAK,MAAM;eAE1C,oBAACC;KACC,KAAK,KAAK,OAAO,KAAK;KACtB,WAAW,GAAG,OAAO,KAAK,YAAY,OAAO,WAAW,YAAY,IAAI;KAChE;KACR,KAAK,KAAK;KACG;KACN;KACP,OAAO;MACL,GAAG,cAAc;MACjB;MACA;MACD;MACD,EAEF,qBAACD;KAAQ;KAAW,OAAO;KAAU,KAAK;gBACvC,KAAK,QAAQ,oBAACE,gBAAK,MAAM,KAAK,OAAQ,EACtC,KAAK;MACE;MApBL,KAAK,MAqBF;IAEZ;GACM;EAGf;AAED,YAAY,cAAc;AAE1B,0BAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["Img: FC<ImgProps>"],"sources":["../../src/Img/index.tsx"],"sourcesContent":["'use client';\n\nimport type { ImageProps } from 'antd';\nimport { type ElementType, type FC, type Ref, createElement, memo, use, useMemo } from 'react';\n\nimport { ConfigContext } from '@/ConfigProvider';\nimport type { ImgProps as HtmlImgeProps } from '@/types';\n\nconst createContainer = (as: ElementType) => memo((props: any) => createElement(as, props));\n\ntype ImgProps = HtmlImgeProps & ImageProps & { ref?: Ref<HTMLImageElement>; unoptimized?: boolean };\n\nconst Img: FC<ImgProps> = ({ unoptimized, ...rest }) => {\n const config = use(ConfigContext);\n const render = config?.imgAs || 'img';\n\n const ImgContainer = useMemo(() => createContainer(render), [render]);\n\n return (\n <ImgContainer\n unoptimized={unoptimized === undefined ? config?.imgUnoptimized : unoptimized}\n {...rest}\n />\n );\n};\n\nImg.displayName = 'Img';\n\nexport default Img;\n"],"mappings":";;;;;;;AAQA,MAAM,mBAAmB,OAAoB,MAAM,UAAe,cAAc,IAAI,MAAM,CAAC;AAI3F,MAAMA,OAAqB,EAAE,aAAa,GAAG,WAAW;CACtD,MAAM,SAAS,IAAI,cAAc;CACjC,MAAM,SAAS,QAAQ,SAAS;AAIhC,QACE,oBAHmB,cAAc,gBAAgB,OAAO,EAAE,CAAC,OAAO,CAAC;EAIjE,aAAa,gBAAgB,SAAY,QAAQ,iBAAiB;EAClE,GAAI;GACJ;;AAIN,IAAI,cAAc;AAElB,kBAAe"}
1
+ {"version":3,"file":"index.mjs","names":["Img: FC<ImgProps>"],"sources":["../../src/Img/index.tsx"],"sourcesContent":["'use client';\n\nimport { type ImageProps } from 'antd';\nimport { createElement, type ElementType, type FC, memo, type Ref, use, useMemo } from 'react';\n\nimport { ConfigContext } from '@/ConfigProvider';\nimport { type ImgProps as HtmlImgeProps } from '@/types';\n\nconst createContainer = (as: ElementType) => memo((props: any) => createElement(as, props));\n\ntype ImgProps = HtmlImgeProps & ImageProps & { ref?: Ref<HTMLImageElement>; unoptimized?: boolean };\n\nconst Img: FC<ImgProps> = ({ unoptimized, ...rest }) => {\n const config = use(ConfigContext);\n const render = config?.imgAs || 'img';\n\n const ImgContainer = useMemo(() => createContainer(render), [render]);\n\n return (\n <ImgContainer\n unoptimized={unoptimized === undefined ? config?.imgUnoptimized : unoptimized}\n {...rest}\n />\n );\n};\n\nImg.displayName = 'Img';\n\nexport default Img;\n"],"mappings":";;;;;;;AAQA,MAAM,mBAAmB,OAAoB,MAAM,UAAe,cAAc,IAAI,MAAM,CAAC;AAI3F,MAAMA,OAAqB,EAAE,aAAa,GAAG,WAAW;CACtD,MAAM,SAAS,IAAI,cAAc;CACjC,MAAM,SAAS,QAAQ,SAAS;AAIhC,QACE,oBAHmB,cAAc,gBAAgB,OAAO,EAAE,CAAC,OAAO,CAAC;EAIjE,aAAa,gBAAgB,SAAY,QAAQ,iBAAiB;EAClE,GAAI;GACJ;;AAIN,IAAI,cAAc;AAElB,kBAAe"}