@lobehub/ui 4.33.4 → 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 (591) 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 +1 -1
  5. package/es/Accordion/Accordion.mjs.map +1 -1
  6. package/es/Accordion/AccordionItem.d.mts +2 -2
  7. package/es/Accordion/AccordionItem.mjs +13 -13
  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 +6 -6
  43. package/es/Checkbox/Checkbox.mjs.map +1 -1
  44. package/es/Checkbox/CheckboxGroup.mjs +2 -2
  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 +3 -3
  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 +9 -9
  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 +2 -2
  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 +7 -7
  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 +5 -5
  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 +3 -3
  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 +14 -14
  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 +20 -20
  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.mjs +5 -5
  144. package/es/Form/components/FormGroup.mjs.map +1 -1
  145. package/es/Form/components/FormProvider.mjs.map +1 -1
  146. package/es/Form/components/FormSubmitFooter.mjs +5 -5
  147. package/es/Form/components/FormSubmitFooter.mjs.map +1 -1
  148. package/es/Form/components/FormTitle.mjs +1 -1
  149. package/es/Form/components/FormTitle.mjs.map +1 -1
  150. package/es/Form/components/merge.mjs.map +1 -1
  151. package/es/Form/index.mjs +1 -1
  152. package/es/Form/index.mjs.map +1 -1
  153. package/es/Form/style.mjs.map +1 -1
  154. package/es/Form/type.d.mts +1 -1
  155. package/es/FormModal/FormModal.d.mts +2 -2
  156. package/es/FormModal/FormModal.mjs +10 -10
  157. package/es/FormModal/FormModal.mjs.map +1 -1
  158. package/es/GroupAvatar/style.mjs.map +1 -1
  159. package/es/GroupAvatar/type.d.mts +1 -1
  160. package/es/GuideCard/style.mjs.map +1 -1
  161. package/es/Header/Header.d.mts +2 -2
  162. package/es/Header/Header.mjs +5 -5
  163. package/es/Header/Header.mjs.map +1 -1
  164. package/es/Highlighter/FullFeatured.mjs +9 -9
  165. package/es/Highlighter/FullFeatured.mjs.map +1 -1
  166. package/es/Highlighter/Highlighter.d.mts +2 -2
  167. package/es/Highlighter/Highlighter.mjs +4 -4
  168. package/es/Highlighter/Highlighter.mjs.map +1 -1
  169. package/es/Highlighter/LangSelect.mjs +6 -6
  170. package/es/Highlighter/LangSelect.mjs.map +1 -1
  171. package/es/Highlighter/SyntaxHighlighter/StaticRenderer.mjs +2 -2
  172. package/es/Highlighter/SyntaxHighlighter/StaticRenderer.mjs.map +1 -1
  173. package/es/Highlighter/SyntaxHighlighter/index.d.mts +2 -2
  174. package/es/Highlighter/SyntaxHighlighter/style.mjs.map +1 -1
  175. package/es/Highlighter/style.mjs.map +1 -1
  176. package/es/Hotkey/Hotkey.d.mts +2 -2
  177. package/es/Hotkey/Hotkey.mjs +5 -5
  178. package/es/Hotkey/Hotkey.mjs.map +1 -1
  179. package/es/Hotkey/style.mjs.map +1 -1
  180. package/es/HotkeyInput/HotkeyInput.d.mts +2 -2
  181. package/es/HotkeyInput/HotkeyInput.mjs +8 -8
  182. package/es/HotkeyInput/HotkeyInput.mjs.map +1 -1
  183. package/es/HotkeyInput/style.mjs.map +1 -1
  184. package/es/Icon/Icon.d.mts +2 -2
  185. package/es/Icon/Icon.mjs.map +1 -1
  186. package/es/Icon/components/IconProvider.d.mts +3 -3
  187. package/es/Icon/components/IconProvider.mjs.map +1 -1
  188. package/es/Icon/style.mjs.map +1 -1
  189. package/es/Image/Image.mjs +3 -3
  190. package/es/Image/Image.mjs.map +1 -1
  191. package/es/Image/PreviewGroup.d.mts +2 -2
  192. package/es/Image/PreviewGroup.mjs.map +1 -1
  193. package/es/Image/components/Preview.mjs.map +1 -1
  194. package/es/Image/components/Toolbar.mjs +1 -1
  195. package/es/Image/components/Toolbar.mjs.map +1 -1
  196. package/es/Image/components/usePreviewGroup.mjs.map +1 -1
  197. package/es/Image/style.mjs.map +1 -1
  198. package/es/ImageSelect/ImageSelect.mjs +5 -5
  199. package/es/ImageSelect/ImageSelect.mjs.map +1 -1
  200. package/es/Img/index.mjs.map +1 -1
  201. package/es/Input/Input.d.mts +2 -2
  202. package/es/Input/Input.mjs +2 -2
  203. package/es/Input/Input.mjs.map +1 -1
  204. package/es/Input/InputNumber.d.mts +2 -2
  205. package/es/Input/InputNumber.mjs +2 -2
  206. package/es/Input/InputNumber.mjs.map +1 -1
  207. package/es/Input/InputOPT.mjs +2 -2
  208. package/es/Input/InputOPT.mjs.map +1 -1
  209. package/es/Input/InputPassword.d.mts +2 -2
  210. package/es/Input/InputPassword.mjs +2 -2
  211. package/es/Input/InputPassword.mjs.map +1 -1
  212. package/es/Input/TextArea.d.mts +2 -2
  213. package/es/Input/TextArea.mjs +2 -2
  214. package/es/Input/TextArea.mjs.map +1 -1
  215. package/es/Input/style.mjs.map +1 -1
  216. package/es/Layout/Layout.mjs +1 -1
  217. package/es/Layout/Layout.mjs.map +1 -1
  218. package/es/Layout/components/LayoutFooter.d.mts +2 -2
  219. package/es/Layout/components/LayoutHeader.d.mts +2 -2
  220. package/es/Layout/components/LayoutMain.d.mts +2 -2
  221. package/es/Layout/components/LayoutSidebar.d.mts +2 -2
  222. package/es/Layout/components/LayoutSidebarInner.d.mts +2 -2
  223. package/es/Layout/components/LayoutToc.d.mts +2 -2
  224. package/es/Layout/index.mjs.map +1 -1
  225. package/es/List/List.mjs +6 -6
  226. package/es/List/List.mjs.map +1 -1
  227. package/es/List/ListItem/index.d.mts +2 -2
  228. package/es/List/ListItem/index.mjs +11 -11
  229. package/es/List/ListItem/index.mjs.map +1 -1
  230. package/es/LobeSelect/LobeSelect.d.mts +2 -2
  231. package/es/LobeSelect/LobeSelect.mjs +16 -16
  232. package/es/LobeSelect/LobeSelect.mjs.map +1 -1
  233. package/es/LobeSelect/atoms.d.mts +19 -19
  234. package/es/LobeSelect/atoms.mjs +1 -1
  235. package/es/LobeSelect/atoms.mjs.map +1 -1
  236. package/es/LobeSwitch/LobeSwitch.d.mts +2 -2
  237. package/es/LobeSwitch/LobeSwitch.mjs +2 -2
  238. package/es/LobeSwitch/LobeSwitch.mjs.map +1 -1
  239. package/es/LobeSwitch/atoms.d.mts +4 -4
  240. package/es/LobeSwitch/atoms.mjs +8 -8
  241. package/es/LobeSwitch/atoms.mjs.map +1 -1
  242. package/es/Markdown/Markdown.d.mts +2 -2
  243. package/es/Markdown/Markdown.mjs +3 -3
  244. package/es/Markdown/Markdown.mjs.map +1 -1
  245. package/es/Markdown/SyntaxMarkdown/StreamdownRender.mjs.map +1 -1
  246. package/es/Markdown/Typography.d.mts +2 -2
  247. package/es/Markdown/components/CodeBlock.mjs.map +1 -1
  248. package/es/Markdown/components/Footnotes.mjs +3 -3
  249. package/es/Markdown/components/Footnotes.mjs.map +1 -1
  250. package/es/Markdown/components/MarkdownProvider.mjs.map +1 -1
  251. package/es/Markdown/components/SearchResultCards/SearchResultCard.mjs +3 -3
  252. package/es/Markdown/components/SearchResultCards/SearchResultCard.mjs.map +1 -1
  253. package/es/Markdown/components/SearchResultCards/index.d.mts +2 -2
  254. package/es/Markdown/components/SearchResultCards/index.mjs +1 -1
  255. package/es/Markdown/components/SearchResultCards/index.mjs.map +1 -1
  256. package/es/Markdown/plugins/rehypeCustomFootnotes.mjs.map +1 -1
  257. package/es/Markdown/plugins/rehypeKatexDir.mjs.map +1 -1
  258. package/es/Markdown/plugins/rehypeStreamAnimated.mjs.map +1 -1
  259. package/es/Markdown/plugins/remarkColor.mjs +1 -1
  260. package/es/Markdown/plugins/remarkColor.mjs.map +1 -1
  261. package/es/Markdown/plugins/remarkCustomFootnotes.mjs.map +1 -1
  262. package/es/Markdown/plugins/remarkVideo.mjs +3 -3
  263. package/es/Markdown/plugins/remarkVideo.mjs.map +1 -1
  264. package/es/Markdown/style.mjs.map +1 -1
  265. package/es/MaskShadow/MaskShadow.d.mts +2 -2
  266. package/es/MaskShadow/style.mjs.map +1 -1
  267. package/es/Menu/Menu.d.mts +2 -2
  268. package/es/Menu/Menu.mjs.map +1 -1
  269. package/es/Menu/checkboxItem.d.mts +1 -0
  270. package/es/Menu/index.d.mts +2 -2
  271. package/es/Menu/renderUtils.d.mts +4 -1
  272. package/es/Menu/renderUtils.mjs.map +1 -1
  273. package/es/Menu/sharedStyle.d.mts +4 -0
  274. package/es/Menu/sharedStyle.mjs +24 -0
  275. package/es/Menu/sharedStyle.mjs.map +1 -1
  276. package/es/Menu/style.mjs.map +1 -1
  277. package/es/Menu/switchItem.d.mts +1 -0
  278. package/es/Menu/type.d.mts +3 -1
  279. package/es/Mermaid/FullFeatured.mjs +7 -7
  280. package/es/Mermaid/FullFeatured.mjs.map +1 -1
  281. package/es/Mermaid/Mermaid.d.mts +2 -2
  282. package/es/Mermaid/Mermaid.mjs +1 -1
  283. package/es/Mermaid/Mermaid.mjs.map +1 -1
  284. package/es/Mermaid/SyntaxMermaid/StaticMermaid.mjs +3 -3
  285. package/es/Mermaid/SyntaxMermaid/StaticMermaid.mjs.map +1 -1
  286. package/es/Mermaid/SyntaxMermaid/StreamMermaid.mjs +3 -3
  287. package/es/Mermaid/SyntaxMermaid/StreamMermaid.mjs.map +1 -1
  288. package/es/Mermaid/SyntaxMermaid/index.d.mts +2 -2
  289. package/es/Mermaid/SyntaxMermaid/style.mjs.map +1 -1
  290. package/es/Modal/Modal.d.mts +2 -2
  291. package/es/Modal/Modal.mjs +25 -25
  292. package/es/Modal/Modal.mjs.map +1 -1
  293. package/es/Modal/ModalProvider.d.mts +2 -2
  294. package/es/Modal/ModalStackItem.mjs +1 -1
  295. package/es/Modal/ModalStackItem.mjs.map +1 -1
  296. package/es/Modal/imperative.d.mts +2 -2
  297. package/es/Modal/imperative.mjs +5 -5
  298. package/es/Modal/imperative.mjs.map +1 -1
  299. package/es/MotionProvider/index.d.mts +2 -2
  300. package/es/MotionProvider/index.mjs.map +1 -1
  301. package/es/Popover/ArrowIcon.d.mts +2 -2
  302. package/es/Popover/Popover.mjs +2 -2
  303. package/es/Popover/Popover.mjs.map +1 -1
  304. package/es/Popover/PopoverGroup.mjs +2 -2
  305. package/es/Popover/PopoverGroup.mjs.map +1 -1
  306. package/es/Popover/PopoverInGroup.mjs +2 -2
  307. package/es/Popover/PopoverInGroup.mjs.map +1 -1
  308. package/es/Popover/PopoverStandalone.mjs +1 -1
  309. package/es/Popover/PopoverStandalone.mjs.map +1 -1
  310. package/es/Popover/atoms.d.mts +2 -2
  311. package/es/Popover/atoms.mjs +1 -1
  312. package/es/Popover/atoms.mjs.map +1 -1
  313. package/es/Popover/context.d.mts +2 -2
  314. package/es/Popover/context.mjs.map +1 -1
  315. package/es/Popover/groupContext.mjs.map +1 -1
  316. package/es/ScrollArea/atoms.d.mts +7 -7
  317. package/es/ScrollArea/type.d.mts +1 -1
  318. package/es/ScrollShadow/style.mjs.map +1 -1
  319. package/es/ScrollShadow/useScrollOverflow.mjs.map +1 -1
  320. package/es/SearchBar/SearchBar.d.mts +2 -2
  321. package/es/SearchBar/SearchBar.mjs +12 -12
  322. package/es/SearchBar/SearchBar.mjs.map +1 -1
  323. package/es/Segmented/Segmented.d.mts +2 -2
  324. package/es/Segmented/style.mjs.map +1 -1
  325. package/es/Select/Select.d.mts +2 -2
  326. package/es/Select/Select.mjs +2 -2
  327. package/es/Select/Select.mjs.map +1 -1
  328. package/es/Select/style.mjs.map +1 -1
  329. package/es/SideNav/SideNav.d.mts +2 -2
  330. package/es/Skeleton/Skeleton.mjs +1 -1
  331. package/es/Skeleton/Skeleton.mjs.map +1 -1
  332. package/es/Skeleton/SkeletonBlock.mjs.map +1 -1
  333. package/es/Skeleton/SkeletonTags.mjs +3 -3
  334. package/es/Skeleton/SkeletonTags.mjs.map +1 -1
  335. package/es/Skeleton/SkeletonTitle.mjs +1 -1
  336. package/es/Skeleton/SkeletonTitle.mjs.map +1 -1
  337. package/es/SliderWithInput/SliderWithInput.d.mts +2 -2
  338. package/es/SliderWithInput/SliderWithInput.mjs +3 -3
  339. package/es/SliderWithInput/SliderWithInput.mjs.map +1 -1
  340. package/es/Snippet/Snippet.mjs +1 -1
  341. package/es/Snippet/Snippet.mjs.map +1 -1
  342. package/es/Snippet/style.mjs.map +1 -1
  343. package/es/SortableList/SortableList.mjs +1 -1
  344. package/es/SortableList/SortableList.mjs.map +1 -1
  345. package/es/SortableList/components/DragHandle.d.mts +2 -2
  346. package/es/SortableList/components/DragHandle.mjs +3 -3
  347. package/es/SortableList/components/DragHandle.mjs.map +1 -1
  348. package/es/SortableList/components/SortableItem.d.mts +2 -2
  349. package/es/SortableList/components/SortableItem.mjs +1 -1
  350. package/es/SortableList/components/SortableItem.mjs.map +1 -1
  351. package/es/SortableList/components/SortableOverlay.mjs.map +1 -1
  352. package/es/SortableList/style.mjs.map +1 -1
  353. package/es/SortableList/type.d.mts +2 -2
  354. package/es/Tabs/style.mjs.map +1 -1
  355. package/es/Tag/Tag.mjs +2 -2
  356. package/es/Tag/Tag.mjs.map +1 -1
  357. package/es/Tag/styles.mjs.map +1 -1
  358. package/es/Text/Text.mjs +23 -24
  359. package/es/Text/Text.mjs.map +1 -1
  360. package/es/ThemeProvider/ConfigProvider.mjs.map +1 -1
  361. package/es/ThemeProvider/GlobalStyle/antdOverride.mjs.map +1 -1
  362. package/es/ThemeProvider/GlobalStyle/global.mjs.map +1 -1
  363. package/es/ThemeProvider/ThemeProvider.d.mts +2 -2
  364. package/es/ThemeProvider/ThemeProvider.mjs.map +1 -1
  365. package/es/ThemeSwitch/ThemeSwitch.mjs +4 -4
  366. package/es/ThemeSwitch/ThemeSwitch.mjs.map +1 -1
  367. package/es/Toast/Toast.mjs +3 -3
  368. package/es/Toast/Toast.mjs.map +1 -1
  369. package/es/Toast/imperative.d.mts +3 -3
  370. package/es/Toast/imperative.mjs +1 -1
  371. package/es/Toast/imperative.mjs.map +1 -1
  372. package/es/Toc/Toc.d.mts +2 -2
  373. package/es/Toc/Toc.mjs.map +1 -1
  374. package/es/Toc/TocMobile.mjs +4 -4
  375. package/es/Toc/TocMobile.mjs.map +1 -1
  376. package/es/Toc/utils.mjs.map +1 -1
  377. package/es/Tooltip/Tooltip.mjs +2 -2
  378. package/es/Tooltip/Tooltip.mjs.map +1 -1
  379. package/es/Tooltip/TooltipContent.mjs.map +1 -1
  380. package/es/Tooltip/TooltipGroup.mjs +3 -3
  381. package/es/Tooltip/TooltipGroup.mjs.map +1 -1
  382. package/es/Tooltip/TooltipInGroup.mjs +3 -3
  383. package/es/Tooltip/TooltipInGroup.mjs.map +1 -1
  384. package/es/Tooltip/TooltipStandalone.mjs +2 -2
  385. package/es/Tooltip/TooltipStandalone.mjs.map +1 -1
  386. package/es/Tooltip/groupContext.mjs.map +1 -1
  387. package/es/Tooltip/type.d.mts +1 -1
  388. package/es/Video/index.d.mts +2 -2
  389. package/es/Video/index.mjs +8 -8
  390. package/es/Video/index.mjs.map +1 -1
  391. package/es/Video/style.mjs.map +1 -1
  392. package/es/awesome/BottomGradientButton/BottomGradientButton.d.mts +2 -2
  393. package/es/awesome/BottomGradientButton/BottomGradientButton.mjs +1 -1
  394. package/es/awesome/BottomGradientButton/BottomGradientButton.mjs.map +1 -1
  395. package/es/awesome/Features/FeatureItem.mjs +1 -1
  396. package/es/awesome/Features/FeatureItem.mjs.map +1 -1
  397. package/es/awesome/Features/Features.d.mts +2 -2
  398. package/es/awesome/Features/Features.mjs +4 -4
  399. package/es/awesome/Features/Features.mjs.map +1 -1
  400. package/es/awesome/Features/type.d.mts +1 -1
  401. package/es/awesome/Giscus/Giscus.d.mts +2 -2
  402. package/es/awesome/GradientButton/GradientButton.d.mts +2 -2
  403. package/es/awesome/GradientButton/GradientButton.mjs +2 -2
  404. package/es/awesome/GradientButton/GradientButton.mjs.map +1 -1
  405. package/es/awesome/GridBackground/GridBackground.d.mts +2 -2
  406. package/es/awesome/GridBackground/GridShowcase.d.mts +2 -2
  407. package/es/awesome/GridBackground/GridShowcase.mjs +5 -5
  408. package/es/awesome/GridBackground/GridShowcase.mjs.map +1 -1
  409. package/es/awesome/GridBackground/components/Grid.mjs.map +1 -1
  410. package/es/awesome/Hero/Hero.d.mts +2 -2
  411. package/es/awesome/Hero/Hero.mjs +3 -3
  412. package/es/awesome/Hero/Hero.mjs.map +1 -1
  413. package/es/awesome/Hero/type.d.mts +1 -1
  414. package/es/awesome/Spline/ParentSize.mjs.map +1 -1
  415. package/es/awesome/Spline/Spine.d.mts +2 -2
  416. package/es/awesome/Spline/Spine.mjs +2 -2
  417. package/es/awesome/Spline/Spine.mjs.map +1 -1
  418. package/es/awesome/Spotlight/Spotlight.d.mts +2 -2
  419. package/es/awesome/SpotlightCard/SpotlightCard.d.mts +2 -2
  420. package/es/brand/BrandLoading/index.mjs.map +1 -1
  421. package/es/brand/LobeChat/index.d.mts +2 -2
  422. package/es/brand/LobeChat/index.mjs +3 -3
  423. package/es/brand/LobeChat/index.mjs.map +1 -1
  424. package/es/brand/LobeChatText/index.mjs.map +1 -1
  425. package/es/brand/LobeHub/index.d.mts +2 -2
  426. package/es/brand/LobeHub/index.mjs +3 -3
  427. package/es/brand/LobeHub/index.mjs.map +1 -1
  428. package/es/brand/LobeHubText/index.mjs.map +1 -1
  429. package/es/brand/Logo3d/index.mjs.map +1 -1
  430. package/es/brand/LogoThree/Loading.mjs +2 -2
  431. package/es/brand/LogoThree/Loading.mjs.map +1 -1
  432. package/es/brand/LogoThree/LogoSpline.d.mts +2 -2
  433. package/es/brand/LogoThree/LogoSpline.mjs +1 -1
  434. package/es/brand/LogoThree/LogoSpline.mjs.map +1 -1
  435. package/es/brand/LogoThree/index.d.mts +2 -2
  436. package/es/brand/LogoThree/index.mjs +4 -4
  437. package/es/brand/LogoThree/index.mjs.map +1 -1
  438. package/es/brand/components/Divider.mjs.map +1 -1
  439. package/es/chat/BackBottom/BackBottom.d.mts +2 -2
  440. package/es/chat/BackBottom/BackBottom.mjs +2 -2
  441. package/es/chat/BackBottom/BackBottom.mjs.map +1 -1
  442. package/es/chat/ChatHeader/ChatHeader.mjs +6 -6
  443. package/es/chat/ChatHeader/ChatHeader.mjs.map +1 -1
  444. package/es/chat/ChatHeader/ChatHeaderTitle.mjs +4 -4
  445. package/es/chat/ChatHeader/ChatHeaderTitle.mjs.map +1 -1
  446. package/es/chat/ChatInputArea/ChatInputArea.mjs +3 -3
  447. package/es/chat/ChatInputArea/ChatInputArea.mjs.map +1 -1
  448. package/es/chat/ChatInputArea/components/ChatInputActionBar.mjs +3 -3
  449. package/es/chat/ChatInputArea/components/ChatInputActionBar.mjs.map +1 -1
  450. package/es/chat/ChatInputArea/components/ChatInputAreaInner.d.mts +2 -2
  451. package/es/chat/ChatInputArea/components/ChatInputAreaInner.mjs +3 -3
  452. package/es/chat/ChatInputArea/components/ChatInputAreaInner.mjs.map +1 -1
  453. package/es/chat/ChatInputArea/components/ChatSendButton.mjs +5 -5
  454. package/es/chat/ChatInputArea/components/ChatSendButton.mjs.map +1 -1
  455. package/es/chat/ChatItem/ChatItem.mjs +9 -9
  456. package/es/chat/ChatItem/ChatItem.mjs.map +1 -1
  457. package/es/chat/ChatItem/components/Actions.mjs.map +1 -1
  458. package/es/chat/ChatItem/components/Avatar.mjs +2 -2
  459. package/es/chat/ChatItem/components/Avatar.mjs.map +1 -1
  460. package/es/chat/ChatItem/components/ErrorContent.mjs +1 -1
  461. package/es/chat/ChatItem/components/ErrorContent.mjs.map +1 -1
  462. package/es/chat/ChatItem/components/Loading.mjs +2 -2
  463. package/es/chat/ChatItem/components/Loading.mjs.map +1 -1
  464. package/es/chat/ChatItem/components/MessageContent.mjs +4 -4
  465. package/es/chat/ChatItem/components/MessageContent.mjs.map +1 -1
  466. package/es/chat/ChatItem/components/Title.mjs.map +1 -1
  467. package/es/chat/ChatList/ChatList.d.mts +2 -2
  468. package/es/chat/ChatList/components/ChatListItem.mjs +14 -14
  469. package/es/chat/ChatList/components/ChatListItem.mjs.map +1 -1
  470. package/es/chat/ChatList/type.d.mts +1 -1
  471. package/es/chat/EditableMessage/EditableMessage.d.mts +2 -2
  472. package/es/chat/EditableMessage/EditableMessage.mjs +15 -15
  473. package/es/chat/EditableMessage/EditableMessage.mjs.map +1 -1
  474. package/es/chat/EditableMessageList/EditableMessageList.d.mts +2 -2
  475. package/es/chat/EditableMessageList/EditableMessageList.mjs +17 -17
  476. package/es/chat/EditableMessageList/EditableMessageList.mjs.map +1 -1
  477. package/es/chat/MessageInput/MessageInput.d.mts +2 -2
  478. package/es/chat/MessageInput/MessageInput.mjs +8 -8
  479. package/es/chat/MessageInput/MessageInput.mjs.map +1 -1
  480. package/es/chat/MessageModal/MessageModal.d.mts +2 -2
  481. package/es/chat/MessageModal/MessageModal.mjs +12 -12
  482. package/es/chat/MessageModal/MessageModal.mjs.map +1 -1
  483. package/es/chat/TokenTag/TokenTag.mjs +2 -2
  484. package/es/chat/TokenTag/TokenTag.mjs.map +1 -1
  485. package/es/chat/types/error.mjs.map +1 -1
  486. package/es/color/ColorScales/ScaleRow.mjs +3 -3
  487. package/es/color/ColorScales/ScaleRow.mjs.map +1 -1
  488. package/es/color/ColorScales/index.d.mts +2 -2
  489. package/es/color/ColorScales/index.mjs +4 -4
  490. package/es/color/ColorScales/index.mjs.map +1 -1
  491. package/es/color/CssVar/ScaleRow.mjs +4 -4
  492. package/es/color/CssVar/ScaleRow.mjs.map +1 -1
  493. package/es/color/CssVar/VarRow.mjs +2 -2
  494. package/es/color/CssVar/VarRow.mjs.map +1 -1
  495. package/es/color/CssVar/index.d.mts +2 -2
  496. package/es/color/CssVar/index.mjs +4 -4
  497. package/es/color/CssVar/index.mjs.map +1 -1
  498. package/es/color/colors/blue.mjs.map +1 -1
  499. package/es/color/colors/cyan.mjs.map +1 -1
  500. package/es/color/colors/geekblue.mjs.map +1 -1
  501. package/es/color/colors/gold.mjs.map +1 -1
  502. package/es/color/colors/gray.mjs.map +1 -1
  503. package/es/color/colors/green.mjs.map +1 -1
  504. package/es/color/colors/lime.mjs.map +1 -1
  505. package/es/color/colors/magenta.mjs.map +1 -1
  506. package/es/color/colors/orange.mjs.map +1 -1
  507. package/es/color/colors/primary.mjs.map +1 -1
  508. package/es/color/colors/purple.mjs.map +1 -1
  509. package/es/color/colors/red.mjs.map +1 -1
  510. package/es/color/colors/volcano.mjs.map +1 -1
  511. package/es/color/colors/yellow.mjs.map +1 -1
  512. package/es/color/neutrals/mauve.mjs.map +1 -1
  513. package/es/color/neutrals/olive.mjs.map +1 -1
  514. package/es/color/neutrals/sage.mjs.map +1 -1
  515. package/es/color/neutrals/sand.mjs.map +1 -1
  516. package/es/color/neutrals/slate.mjs.map +1 -1
  517. package/es/hooks/useFloatingLayer.mjs +2 -2
  518. package/es/hooks/useFloatingLayer.mjs.map +1 -1
  519. package/es/hooks/useHighlight.mjs.map +1 -1
  520. package/es/hooks/useMarkdown/latex.mjs +12 -12
  521. package/es/hooks/useMarkdown/latex.mjs.map +1 -1
  522. package/es/hooks/useMarkdown/useMarkdownComponents.mjs +1 -1
  523. package/es/hooks/useMarkdown/useMarkdownComponents.mjs.map +1 -1
  524. package/es/hooks/useMarkdown/utils.mjs +4 -4
  525. package/es/hooks/useMarkdown/utils.mjs.map +1 -1
  526. package/es/hooks/useNativeButton.mjs.map +1 -1
  527. package/es/hooks/useStreamHighlight.mjs.map +1 -1
  528. package/es/i18n/context.d.mts +3 -3
  529. package/es/i18n/context.mjs.map +1 -1
  530. package/es/icons/Authelia/components/Color.mjs.map +1 -1
  531. package/es/icons/lucideExtra/BotPromptIcon.d.mts +2 -2
  532. package/es/icons/lucideExtra/CreateBotIcon.d.mts +3 -3
  533. package/es/icons/lucideExtra/DiscordIcon.d.mts +2 -2
  534. package/es/icons/lucideExtra/GlobeOffIcon.d.mts +2 -2
  535. package/es/icons/lucideExtra/GroupBotIcon.d.mts +2 -2
  536. package/es/icons/lucideExtra/GroupBotSquareIcon.d.mts +3 -3
  537. package/es/icons/lucideExtra/LeftClickIcon.d.mts +3 -3
  538. package/es/icons/lucideExtra/LeftDoubleClickIcon.d.mts +3 -3
  539. package/es/icons/lucideExtra/McpIcon.d.mts +3 -3
  540. package/es/icons/lucideExtra/ProviderIcon.d.mts +3 -3
  541. package/es/icons/lucideExtra/RightClickIcon.d.mts +3 -3
  542. package/es/icons/lucideExtra/RightDoubleClickIcon.d.mts +3 -3
  543. package/es/icons/lucideExtra/ShapesUploadIcon.d.mts +3 -3
  544. package/es/icons/lucideExtra/TreeDownRightIcon.d.mts +2 -2
  545. package/es/icons/lucideExtra/TreeUpDownRightIcon.d.mts +3 -3
  546. package/es/mdx/Callout/index.mjs +1 -1
  547. package/es/mdx/Callout/index.mjs.map +1 -1
  548. package/es/mdx/Cards/Card.mjs +2 -2
  549. package/es/mdx/Cards/Card.mjs.map +1 -1
  550. package/es/mdx/FileTree/File.mjs +1 -1
  551. package/es/mdx/FileTree/File.mjs.map +1 -1
  552. package/es/mdx/FileTree/Folder.mjs +1 -1
  553. package/es/mdx/FileTree/Folder.mjs.map +1 -1
  554. package/es/mdx/FileTree/index.mjs.map +1 -1
  555. package/es/mdx/Mdx/index.d.mts +2 -2
  556. package/es/mdx/Mdx/index.mjs +3 -3
  557. package/es/mdx/Mdx/index.mjs.map +1 -1
  558. package/es/mdx/Steps/index.mjs.map +1 -1
  559. package/es/mdx/Tabs/Tab.mjs.map +1 -1
  560. package/es/mdx/Tabs/index.mjs +1 -1
  561. package/es/mdx/Tabs/index.mjs.map +1 -1
  562. package/es/mdx/mdxComponents/Citation/PopoverPanel.mjs +3 -3
  563. package/es/mdx/mdxComponents/Citation/PopoverPanel.mjs.map +1 -1
  564. package/es/mdx/mdxComponents/Citation/index.mjs.map +1 -1
  565. package/es/mdx/mdxComponents/Link.mjs +1 -1
  566. package/es/mdx/mdxComponents/Link.mjs.map +1 -1
  567. package/es/mobile/ChatHeader/ChatHeader.mjs +4 -4
  568. package/es/mobile/ChatHeader/ChatHeader.mjs.map +1 -1
  569. package/es/mobile/ChatHeader/ChatHeaderTitle.d.mts +2 -2
  570. package/es/mobile/ChatHeader/ChatHeaderTitle.mjs +5 -5
  571. package/es/mobile/ChatHeader/ChatHeaderTitle.mjs.map +1 -1
  572. package/es/mobile/ChatInputArea/ChatInputArea.mjs +9 -9
  573. package/es/mobile/ChatInputArea/ChatInputArea.mjs.map +1 -1
  574. package/es/mobile/ChatInputArea/components/ChatSendButton.d.mts +2 -2
  575. package/es/mobile/ChatInputArea/components/ChatSendButton.mjs +2 -2
  576. package/es/mobile/ChatInputArea/components/ChatSendButton.mjs.map +1 -1
  577. package/es/mobile/SafeArea/SafeArea.mjs.map +1 -1
  578. package/es/mobile/TabBar/TabBar.mjs +1 -1
  579. package/es/mobile/TabBar/TabBar.mjs.map +1 -1
  580. package/es/storybook/StoryBook/index.d.mts +2 -2
  581. package/es/storybook/StoryBook/index.mjs.map +1 -1
  582. package/es/styles/theme/algorithms/darkAlgorithm.mjs.map +1 -1
  583. package/es/styles/theme/algorithms/lightAlgorithm.mjs.map +1 -1
  584. package/es/styles/theme/antdTheme.mjs.map +1 -1
  585. package/es/styles/theme/customStylish.mjs.map +1 -1
  586. package/es/styles/theme/customToken.mjs.map +1 -1
  587. package/es/styles/theme/generateColorPalette.mjs.map +1 -1
  588. package/es/styles/theme/token/base.mjs.map +1 -1
  589. package/es/styles/theme/token/dark.mjs.map +1 -1
  590. package/es/styles/theme/token/light.mjs.map +1 -1
  591. package/package.json +79 -1
@@ -1 +1 @@
1
- {"version":3,"file":"style.mjs","names":["cssVar","lobeStaticStylish"],"sources":["../../src/CodeDiff/style.ts"],"sourcesContent":["import { createStaticStyles, cx } from 'antd-style';\nimport { cva } from 'class-variance-authority';\n\nimport { lobeStaticStylish } from '@/styles';\n\nexport const prefix = 'lobe-code-diff';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => {\n return {\n actions: css`\n position: absolute;\n z-index: 2;\n inset-block-start: 8px;\n inset-inline-end: 8px;\n\n opacity: 0;\n transition: opacity 0.2s ${cssVar.motionEaseInOut};\n `,\n additions: css`\n color: ${cssVar.colorSuccess};\n font-family: ${cssVar.fontFamilyCode};\n font-size: 12px;\n `,\n body: css`\n overflow: auto;\n\n width: 100%;\n\n font-family: ${cssVar.fontFamilyCode};\n font-size: 13px;\n line-height: 1.6;\n\n /* Override @pierre/diffs shadow DOM CSS variables */\n --pdiff-font-family: ${cssVar.fontFamilyCode};\n --pdiff-font-size: 13px;\n --pdiff-line-height: 1.6;\n --pdiff-bg-color: transparent;\n --pdiff-border-color: ${cssVar.colorBorderSecondary};\n --pdiff-gutter-bg: ${cssVar.colorFillQuaternary};\n --pdiff-gutter-color: ${cssVar.colorTextQuaternary};\n --pdiff-added-bg: ${cssVar.colorSuccessBgHover};\n --pdiff-added-highlight-bg: ${cssVar.colorSuccessBg};\n --pdiff-removed-bg: ${cssVar.colorErrorBgHover};\n --pdiff-removed-highlight-bg: ${cssVar.colorErrorBg};\n --pdiff-info-bg: ${cssVar.colorInfoBg};\n `,\n borderless: lobeStaticStylish.variantBorderlessWithoutHover,\n deletions: css`\n color: ${cssVar.colorError};\n font-family: ${cssVar.fontFamilyCode};\n font-size: 12px;\n `,\n filled: cx(\n lobeStaticStylish.variantFilledWithoutHover,\n css`\n background: ${cssVar.colorFillQuaternary};\n `,\n ),\n header: css`\n display: flex;\n gap: 8px;\n align-items: center;\n justify-content: space-between;\n\n padding: 8px 12px;\n\n font-family: ${cssVar.fontFamilyCode};\n font-size: 13px;\n color: ${cssVar.colorTextSecondary};\n\n border-block-end: 1px solid ${cssVar.colorBorderSecondary};\n `,\n headerBorderless: css`\n padding-inline: 0;\n border-block-end: none;\n `,\n headerFilled: css`\n background: transparent;\n `,\n headerOutlined: css`\n background: ${cssVar.colorFillQuaternary};\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 &:hover {\n .${prefix}-actions {\n opacity: 1;\n }\n }\n `,\n ),\n stats: css`\n display: flex;\n gap: 8px;\n align-items: center;\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 headerVariants = cva(styles.header, {\n defaultVariants: {\n variant: 'filled',\n },\n /* eslint-disable sort-keys-fix/sort-keys-fix */\n variants: {\n variant: {\n filled: styles.headerFilled,\n outlined: styles.headerOutlined,\n borderless: styles.headerBorderless,\n },\n },\n /* eslint-enable sort-keys-fix/sort-keys-fix */\n});\n"],"mappings":";;;;;AAKA,MAAa,SAAS;AAEtB,MAAa,SAAS,oBAAoB,EAAE,YAAK,uBAAa;AAC5D,QAAO;EACL,SAAS,KAAG;;;;;;;iCAOiBA,SAAO,gBAAgB;;EAEpD,WAAW,KAAG;eACHA,SAAO,aAAa;qBACdA,SAAO,eAAe;;;EAGvC,MAAM,KAAG;;;;;qBAKQA,SAAO,eAAe;;;;;6BAKdA,SAAO,eAAe;;;;8BAIrBA,SAAO,qBAAqB;2BAC/BA,SAAO,oBAAoB;8BACxBA,SAAO,oBAAoB;0BAC/BA,SAAO,oBAAoB;oCACjBA,SAAO,eAAe;4BAC9BA,SAAO,kBAAkB;sCACfA,SAAO,aAAa;yBACjCA,SAAO,YAAY;;EAExC,YAAYC,cAAkB;EAC9B,WAAW,KAAG;eACHD,SAAO,WAAW;qBACZA,SAAO,eAAe;;;EAGvC,QAAQ,GACNC,cAAkB,2BAClB,KAAG;sBACaD,SAAO,oBAAoB;QAE5C;EACD,QAAQ,KAAG;;;;;;;;qBAQMA,SAAO,eAAe;;eAE5BA,SAAO,mBAAmB;;oCAELA,SAAO,qBAAqB;;EAE5D,kBAAkB,KAAG;;;;EAIrB,cAAc,KAAG;;;EAGjB,gBAAgB,KAAG;oBACHA,SAAO,oBAAoB;;EAE3C,UAAUC,cAAkB;EAC5B,MAAM,GACJ,QACA,KAAG;;;;;;yBAMgBD,SAAO,aAAa;;6CAEAA,SAAO,cAAc;;;aAGrD,OAAO;;;;QAKf;EACD,OAAO,KAAG;;;;;EAKX;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,iBAAiB,IAAI,OAAO,QAAQ;CAC/C,iBAAiB,EACf,SAAS,UACV;CAED,UAAU,EACR,SAAS;EACP,QAAQ,OAAO;EACf,UAAU,OAAO;EACjB,YAAY,OAAO;EACpB,EACF;CAEF,CAAC"}
1
+ {"version":3,"file":"style.mjs","names":["cssVar","lobeStaticStylish"],"sources":["../../src/CodeDiff/style.ts"],"sourcesContent":["import { createStaticStyles, cx } from 'antd-style';\nimport { cva } from 'class-variance-authority';\n\nimport { lobeStaticStylish } from '@/styles';\n\nexport const prefix = 'lobe-code-diff';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => {\n return {\n actions: css`\n position: absolute;\n z-index: 2;\n inset-block-start: 8px;\n inset-inline-end: 8px;\n\n opacity: 0;\n transition: opacity 0.2s ${cssVar.motionEaseInOut};\n `,\n additions: css`\n color: ${cssVar.colorSuccess};\n font-family: ${cssVar.fontFamilyCode};\n font-size: 12px;\n `,\n body: css`\n overflow: auto;\n\n width: 100%;\n\n font-family: ${cssVar.fontFamilyCode};\n font-size: 13px;\n line-height: 1.6;\n\n /* Override @pierre/diffs shadow DOM CSS variables */\n --pdiff-font-family: ${cssVar.fontFamilyCode};\n --pdiff-font-size: 13px;\n --pdiff-line-height: 1.6;\n --pdiff-bg-color: transparent;\n --pdiff-border-color: ${cssVar.colorBorderSecondary};\n --pdiff-gutter-bg: ${cssVar.colorFillQuaternary};\n --pdiff-gutter-color: ${cssVar.colorTextQuaternary};\n --pdiff-added-bg: ${cssVar.colorSuccessBgHover};\n --pdiff-added-highlight-bg: ${cssVar.colorSuccessBg};\n --pdiff-removed-bg: ${cssVar.colorErrorBgHover};\n --pdiff-removed-highlight-bg: ${cssVar.colorErrorBg};\n --pdiff-info-bg: ${cssVar.colorInfoBg};\n `,\n borderless: lobeStaticStylish.variantBorderlessWithoutHover,\n deletions: css`\n color: ${cssVar.colorError};\n font-family: ${cssVar.fontFamilyCode};\n font-size: 12px;\n `,\n filled: cx(\n lobeStaticStylish.variantFilledWithoutHover,\n css`\n background: ${cssVar.colorFillQuaternary};\n `,\n ),\n header: css`\n display: flex;\n gap: 8px;\n align-items: center;\n justify-content: space-between;\n\n padding: 8px 12px;\n\n font-family: ${cssVar.fontFamilyCode};\n font-size: 13px;\n color: ${cssVar.colorTextSecondary};\n\n border-block-end: 1px solid ${cssVar.colorBorderSecondary};\n `,\n headerBorderless: css`\n padding-inline: 0;\n border-block-end: none;\n `,\n headerFilled: css`\n background: transparent;\n `,\n headerOutlined: css`\n background: ${cssVar.colorFillQuaternary};\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 &:hover {\n .${prefix}-actions {\n opacity: 1;\n }\n }\n `,\n ),\n stats: css`\n display: flex;\n gap: 8px;\n align-items: center;\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 headerVariants = cva(styles.header, {\n defaultVariants: {\n variant: 'filled',\n },\n\n variants: {\n variant: {\n filled: styles.headerFilled,\n outlined: styles.headerOutlined,\n borderless: styles.headerBorderless,\n },\n },\n});\n"],"mappings":";;;;;AAKA,MAAa,SAAS;AAEtB,MAAa,SAAS,oBAAoB,EAAE,YAAK,uBAAa;AAC5D,QAAO;EACL,SAAS,KAAG;;;;;;;iCAOiBA,SAAO,gBAAgB;;EAEpD,WAAW,KAAG;eACHA,SAAO,aAAa;qBACdA,SAAO,eAAe;;;EAGvC,MAAM,KAAG;;;;;qBAKQA,SAAO,eAAe;;;;;6BAKdA,SAAO,eAAe;;;;8BAIrBA,SAAO,qBAAqB;2BAC/BA,SAAO,oBAAoB;8BACxBA,SAAO,oBAAoB;0BAC/BA,SAAO,oBAAoB;oCACjBA,SAAO,eAAe;4BAC9BA,SAAO,kBAAkB;sCACfA,SAAO,aAAa;yBACjCA,SAAO,YAAY;;EAExC,YAAYC,cAAkB;EAC9B,WAAW,KAAG;eACHD,SAAO,WAAW;qBACZA,SAAO,eAAe;;;EAGvC,QAAQ,GACNC,cAAkB,2BAClB,KAAG;sBACaD,SAAO,oBAAoB;QAE5C;EACD,QAAQ,KAAG;;;;;;;;qBAQMA,SAAO,eAAe;;eAE5BA,SAAO,mBAAmB;;oCAELA,SAAO,qBAAqB;;EAE5D,kBAAkB,KAAG;;;;EAIrB,cAAc,KAAG;;;EAGjB,gBAAgB,KAAG;oBACHA,SAAO,oBAAoB;;EAE3C,UAAUC,cAAkB;EAC5B,MAAM,GACJ,QACA,KAAG;;;;;;yBAMgBD,SAAO,aAAa;;6CAEAA,SAAO,cAAc;;;aAGrD,OAAO;;;;QAKf;EACD,OAAO,KAAG;;;;;EAKX;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,iBAAiB,IAAI,OAAO,QAAQ;CAC/C,iBAAiB,EACf,SAAS,UACV;CAED,UAAU,EACR,SAAS;EACP,QAAQ,OAAO;EACf,UAAU,OAAO;EACjB,YAAY,OAAO;EACpB,EACF;CACF,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { CodeEditorProps } from "./type.mjs";
2
- import * as react8 from "react";
2
+ import * as react25 from "react";
3
3
 
4
4
  //#region src/CodeEditor/CodeEditor.d.ts
5
- declare const CodeEditor: react8.NamedExoticComponent<CodeEditorProps>;
5
+ declare const CodeEditor: react25.NamedExoticComponent<CodeEditorProps>;
6
6
  //#endregion
7
7
  export { CodeEditor };
8
8
  //# sourceMappingURL=CodeEditor.d.mts.map
@@ -38,13 +38,13 @@ const CodeEditor = memo(({ autoFocus, classNames, styles: customStyles, defaultV
38
38
  autoFocus,
39
39
  className: cx(styles.textarea, classNames?.textarea),
40
40
  "data-gramm": false,
41
+ ref,
42
+ style: customStyles?.textarea,
43
+ value: code,
41
44
  onChange: (e) => {
42
45
  onChange?.(e);
43
46
  setCode(e.target.value);
44
47
  },
45
- ref,
46
- style: customStyles?.textarea,
47
- value: code,
48
48
  ...rest
49
49
  })]
50
50
  });
@@ -1 +1 @@
1
- {"version":3,"file":"CodeEditor.mjs","names":["Flexbox","SyntaxHighlighter"],"sources":["../../src/CodeEditor/CodeEditor.tsx"],"sourcesContent":["'use client';\n\nimport { cssVar, cx } from 'antd-style';\nimport { memo } from 'react';\nimport useMergeState from 'use-merge-value';\n\nimport { styles, variants } from '@/CodeEditor/style';\nimport { Flexbox } from '@/Flex';\nimport SyntaxHighlighter from '@/Highlighter/SyntaxHighlighter';\n\nimport { CodeEditorProps } from './type';\n\nconst CodeEditor = memo<CodeEditorProps>(\n ({\n autoFocus,\n classNames,\n styles: customStyles,\n defaultValue = '',\n onChange,\n placeholder = '',\n style,\n className,\n onValueChange,\n value,\n language = 'markdown',\n variant = 'borderless',\n width,\n height,\n flex,\n ref,\n ...rest\n }) => {\n const [code, setCode] = useMergeState(defaultValue, {\n defaultValue,\n onChange: onValueChange,\n value,\n });\n\n return (\n <Flexbox\n className={cx(variants({ variant }), className)}\n flex={flex}\n height={height}\n style={style}\n width={width}\n >\n {value ? (\n <SyntaxHighlighter\n className={cx(styles.highlight, classNames?.highlight)}\n language={language}\n style={customStyles?.highlight}\n variant={variant}\n >\n {value}\n </SyntaxHighlighter>\n ) : (\n <pre\n className={cx(styles.highlight, classNames?.highlight)}\n style={{\n color: cssVar.colorTextDescription,\n }}\n >\n {placeholder || ' '}\n </pre>\n )}\n\n <textarea\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n autoFocus={autoFocus}\n className={cx(styles.textarea, classNames?.textarea)}\n data-gramm={false}\n onChange={(e) => {\n onChange?.(e);\n setCode(e.target.value);\n }}\n ref={ref}\n style={customStyles?.textarea}\n value={code}\n {...rest}\n />\n </Flexbox>\n );\n },\n);\n\nCodeEditor.displayName = 'CodeEditor';\n\nexport default CodeEditor;\n"],"mappings":";;;;;;;;;;;AAYA,MAAM,aAAa,MAChB,EACC,WACA,YACA,QAAQ,cACR,eAAe,IACf,UACA,cAAc,IACd,OACA,WACA,eACA,OACA,WAAW,YACX,UAAU,cACV,OACA,QACA,MACA,KACA,GAAG,WACC;CACJ,MAAM,CAAC,MAAM,WAAW,cAAc,cAAc;EAClD;EACA,UAAU;EACV;EACD,CAAC;AAEF,QACE,qBAACA;EACC,WAAW,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,UAAU;EACzC;EACE;EACD;EACA;aAEN,QACC,oBAACC;GACC,WAAW,GAAG,OAAO,WAAW,YAAY,UAAU;GAC5C;GACV,OAAO,cAAc;GACZ;aAER;IACiB,GAEpB,oBAAC;GACC,WAAW,GAAG,OAAO,WAAW,YAAY,UAAU;GACtD,OAAO,EACL,OAAO,OAAO,sBACf;aAEA,eAAe;IACZ,EAGR,oBAAC;GACC,gBAAe;GACf,cAAa;GACb,aAAY;GACD;GACX,WAAW,GAAG,OAAO,UAAU,YAAY,SAAS;GACpD,cAAY;GACZ,WAAW,MAAM;AACf,eAAW,EAAE;AACb,YAAQ,EAAE,OAAO,MAAM;;GAEpB;GACL,OAAO,cAAc;GACrB,OAAO;GACP,GAAI;IACJ;GACM;EAGf;AAED,WAAW,cAAc;AAEzB,yBAAe"}
1
+ {"version":3,"file":"CodeEditor.mjs","names":["Flexbox","SyntaxHighlighter"],"sources":["../../src/CodeEditor/CodeEditor.tsx"],"sourcesContent":["'use client';\n\nimport { cssVar, cx } from 'antd-style';\nimport { memo } from 'react';\nimport useMergeState from 'use-merge-value';\n\nimport { styles, variants } from '@/CodeEditor/style';\nimport { Flexbox } from '@/Flex';\nimport SyntaxHighlighter from '@/Highlighter/SyntaxHighlighter';\n\nimport type { CodeEditorProps } from './type';\n\nconst CodeEditor = memo<CodeEditorProps>(\n ({\n autoFocus,\n classNames,\n styles: customStyles,\n defaultValue = '',\n onChange,\n placeholder = '',\n style,\n className,\n onValueChange,\n value,\n language = 'markdown',\n variant = 'borderless',\n width,\n height,\n flex,\n ref,\n ...rest\n }) => {\n const [code, setCode] = useMergeState(defaultValue, {\n defaultValue,\n onChange: onValueChange,\n value,\n });\n\n return (\n <Flexbox\n className={cx(variants({ variant }), className)}\n flex={flex}\n height={height}\n style={style}\n width={width}\n >\n {value ? (\n <SyntaxHighlighter\n className={cx(styles.highlight, classNames?.highlight)}\n language={language}\n style={customStyles?.highlight}\n variant={variant}\n >\n {value}\n </SyntaxHighlighter>\n ) : (\n <pre\n className={cx(styles.highlight, classNames?.highlight)}\n style={{\n color: cssVar.colorTextDescription,\n }}\n >\n {placeholder || ' '}\n </pre>\n )}\n\n <textarea\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n autoFocus={autoFocus}\n className={cx(styles.textarea, classNames?.textarea)}\n data-gramm={false}\n ref={ref}\n style={customStyles?.textarea}\n value={code}\n onChange={(e) => {\n onChange?.(e);\n setCode(e.target.value);\n }}\n {...rest}\n />\n </Flexbox>\n );\n },\n);\n\nCodeEditor.displayName = 'CodeEditor';\n\nexport default CodeEditor;\n"],"mappings":";;;;;;;;;;;AAYA,MAAM,aAAa,MAChB,EACC,WACA,YACA,QAAQ,cACR,eAAe,IACf,UACA,cAAc,IACd,OACA,WACA,eACA,OACA,WAAW,YACX,UAAU,cACV,OACA,QACA,MACA,KACA,GAAG,WACC;CACJ,MAAM,CAAC,MAAM,WAAW,cAAc,cAAc;EAClD;EACA,UAAU;EACV;EACD,CAAC;AAEF,QACE,qBAACA;EACC,WAAW,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,UAAU;EACzC;EACE;EACD;EACA;aAEN,QACC,oBAACC;GACC,WAAW,GAAG,OAAO,WAAW,YAAY,UAAU;GAC5C;GACV,OAAO,cAAc;GACZ;aAER;IACiB,GAEpB,oBAAC;GACC,WAAW,GAAG,OAAO,WAAW,YAAY,UAAU;GACtD,OAAO,EACL,OAAO,OAAO,sBACf;aAEA,eAAe;IACZ,EAGR,oBAAC;GACC,gBAAe;GACf,cAAa;GACb,aAAY;GACD;GACX,WAAW,GAAG,OAAO,UAAU,YAAY,SAAS;GACpD,cAAY;GACP;GACL,OAAO,cAAc;GACrB,OAAO;GACP,WAAW,MAAM;AACf,eAAW,EAAE;AACb,YAAQ,EAAE,OAAO,MAAM;;GAEzB,GAAI;IACJ;GACM;EAGf;AAED,WAAW,cAAc;AAEzB,yBAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"style.mjs","names":["lobeStaticStylish","cssVar"],"sources":["../../src/CodeEditor/style.ts"],"sourcesContent":["import { createStaticStyles, cx } 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: cx(\n lobeStaticStylish.variantBorderlessWithoutHover,\n css`\n border-radius: 0;\n\n pre,\n textarea {\n padding: 0;\n }\n `,\n ),\n filled: lobeStaticStylish.variantFilledWithoutHover,\n highlight: css`\n pointer-events: none;\n `,\n outlined: lobeStaticStylish.variantOutlinedWithoutHover,\n root: css`\n position: relative;\n\n overflow: hidden auto;\n\n width: 100%;\n height: fit-content;\n border-radius: ${cssVar.borderRadius};\n\n font-size: 12px;\n\n pre,\n textarea {\n margin: 0;\n padding: 16px;\n }\n\n textarea,\n pre,\n code {\n overflow: hidden;\n\n font-family: ${cssVar.fontFamilyCode};\n font-size: inherit;\n line-height: inherit;\n word-break: inherit;\n word-wrap: break-word;\n white-space: pre-wrap;\n }\n `,\n textarea: css`\n resize: none;\n\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n\n overflow: hidden;\n\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n padding: 0;\n border: none;\n\n color: transparent;\n text-align: start;\n\n background: transparent;\n outline: none;\n caret-color: ${cssVar.colorText};\n\n &::placeholder {\n color: ${cssVar.colorTextQuaternary};\n }\n\n &:focus {\n border: none;\n outline: none;\n box-shadow: none;\n }\n `,\n };\n});\n\nexport const variants = cva(styles.root, {\n defaultVariants: {\n variant: 'borderless',\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"],"mappings":";;;;;AAKA,MAAa,SAAS,oBAAoB,EAAE,YAAK,uBAAa;AAC5D,QAAO;EACL,YAAY,GACVA,cAAkB,+BAClB,KAAG;;;;;;;QAQJ;EACD,QAAQA,cAAkB;EAC1B,WAAW,KAAG;;;EAGd,UAAUA,cAAkB;EAC5B,MAAM,KAAG;;;;;;;uBAOUC,SAAO,aAAa;;;;;;;;;;;;;;;uBAepBA,SAAO,eAAe;;;;;;;;EAQzC,UAAU,KAAG;;;;;;;;;;;;;;;;;;;;qBAoBIA,SAAO,UAAU;;;iBAGrBA,SAAO,oBAAoB;;;;;;;;;EASzC;EACD;AAEF,MAAa,WAAW,IAAI,OAAO,MAAM;CACvC,iBAAiB,EACf,SAAS,cACV;CAED,UAAU,EACR,SAAS;EACP,QAAQ,OAAO;EACf,UAAU,OAAO;EACjB,YAAY,OAAO;EACpB,EACF;CAEF,CAAC"}
1
+ {"version":3,"file":"style.mjs","names":["lobeStaticStylish","cssVar"],"sources":["../../src/CodeEditor/style.ts"],"sourcesContent":["import { createStaticStyles, cx } 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: cx(\n lobeStaticStylish.variantBorderlessWithoutHover,\n css`\n border-radius: 0;\n\n pre,\n textarea {\n padding: 0;\n }\n `,\n ),\n filled: lobeStaticStylish.variantFilledWithoutHover,\n highlight: css`\n pointer-events: none;\n `,\n outlined: lobeStaticStylish.variantOutlinedWithoutHover,\n root: css`\n position: relative;\n\n overflow: hidden auto;\n\n width: 100%;\n height: fit-content;\n border-radius: ${cssVar.borderRadius};\n\n font-size: 12px;\n\n pre,\n textarea {\n margin: 0;\n padding: 16px;\n }\n\n textarea,\n pre,\n code {\n overflow: hidden;\n\n font-family: ${cssVar.fontFamilyCode};\n font-size: inherit;\n line-height: inherit;\n word-break: inherit;\n word-wrap: break-word;\n white-space: pre-wrap;\n }\n `,\n textarea: css`\n resize: none;\n\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n\n overflow: hidden;\n\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n padding: 0;\n border: none;\n\n color: transparent;\n text-align: start;\n\n background: transparent;\n outline: none;\n caret-color: ${cssVar.colorText};\n\n &::placeholder {\n color: ${cssVar.colorTextQuaternary};\n }\n\n &:focus {\n border: none;\n outline: none;\n box-shadow: none;\n }\n `,\n };\n});\n\nexport const variants = cva(styles.root, {\n defaultVariants: {\n variant: 'borderless',\n },\n\n variants: {\n variant: {\n filled: styles.filled,\n outlined: styles.outlined,\n borderless: styles.borderless,\n },\n },\n});\n"],"mappings":";;;;;AAKA,MAAa,SAAS,oBAAoB,EAAE,YAAK,uBAAa;AAC5D,QAAO;EACL,YAAY,GACVA,cAAkB,+BAClB,KAAG;;;;;;;QAQJ;EACD,QAAQA,cAAkB;EAC1B,WAAW,KAAG;;;EAGd,UAAUA,cAAkB;EAC5B,MAAM,KAAG;;;;;;;uBAOUC,SAAO,aAAa;;;;;;;;;;;;;;;uBAepBA,SAAO,eAAe;;;;;;;;EAQzC,UAAU,KAAG;;;;;;;;;;;;;;;;;;;;qBAoBIA,SAAO,UAAU;;;iBAGrBA,SAAO,oBAAoB;;;;;;;;;EASzC;EACD;AAEF,MAAa,WAAW,IAAI,OAAO,MAAM;CACvC,iBAAiB,EACf,SAAS,cACV;CAED,UAAU,EACR,SAAS;EACP,QAAQ,OAAO;EACf,UAAU,OAAO;EACjB,YAAY,OAAO;EACpB,EACF;CACF,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { CollapseProps } from "./type.mjs";
2
- import * as react7 from "react";
2
+ import * as react23 from "react";
3
3
 
4
4
  //#region src/Collapse/Collapse.d.ts
5
- declare const Collapse: react7.NamedExoticComponent<CollapseProps>;
5
+ declare const Collapse: react23.NamedExoticComponent<CollapseProps>;
6
6
  //#endregion
7
7
  export { Collapse };
8
8
  //# sourceMappingURL=Collapse.d.mts.map
@@ -22,9 +22,9 @@ const Collapse$1 = memo(({ style, variant = "filled", gap = 0, className, paddin
22
22
  children: label
23
23
  });
24
24
  if (icon) content = /* @__PURE__ */ jsxs(FlexBasic_default, {
25
+ horizontal: true,
25
26
  className: cx(styles.title, !desc && classNames?.header),
26
27
  gap: 8,
27
- horizontal: true,
28
28
  style: desc ? void 0 : customStyles?.header,
29
29
  children: [isValidElement(icon) ? icon : /* @__PURE__ */ jsx(Icon_default, {
30
30
  icon,
@@ -56,6 +56,7 @@ const Collapse$1 = memo(({ style, variant = "filled", gap = 0, className, paddin
56
56
  headerPadding: getPadding(typeof padding === "object" ? padding?.header : padding)
57
57
  } } },
58
58
  children: /* @__PURE__ */ jsx(Collapse, {
59
+ ghost: true,
59
60
  className: cx(variants({
60
61
  collapsible,
61
62
  gap: !!gap,
@@ -63,16 +64,15 @@ const Collapse$1 = memo(({ style, variant = "filled", gap = 0, className, paddin
63
64
  variant
64
65
  }), className),
65
66
  collapsible: collapsible ? "header" : "icon",
67
+ items: antdItems,
68
+ ref,
69
+ size,
66
70
  expandIcon: ({ isActive }) => /* @__PURE__ */ jsx(Icon_default, {
67
71
  className: styles.icon,
68
72
  icon: ChevronDown,
69
73
  size: 16,
70
74
  style: { rotate: isActive ? void 0 : "-90deg" }
71
75
  }),
72
- ghost: true,
73
- items: antdItems,
74
- ref,
75
- size,
76
76
  style: {
77
77
  gap,
78
78
  ...style
@@ -1 +1 @@
1
- {"version":3,"file":"Collapse.mjs","names":["Collapse","Flexbox","Icon","AntdCollapse"],"sources":["../../src/Collapse/Collapse.tsx"],"sourcesContent":["'use client';\n\nimport { Collapse as AntdCollapse, ConfigProvider } from 'antd';\nimport { cx, useThemeMode } from 'antd-style';\nimport { ChevronDown } from 'lucide-react';\nimport { isValidElement, memo, useMemo } from 'react';\n\nimport { Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\n\nimport { DEFAULT_PADDING, getPadding, styles, variants } from './style';\nimport type { CollapseProps } from './type';\n\nconst Collapse = memo<CollapseProps>(\n ({\n style,\n variant = 'filled',\n gap = 0,\n className,\n padding = DEFAULT_PADDING,\n size,\n collapsible = true,\n items,\n styles: customStyles,\n classNames,\n ref,\n ...rest\n }) => {\n const { isDarkMode } = useThemeMode();\n\n const antdItems = useMemo(\n () =>\n items.map(({ icon, desc, label, ...itemRest }) => {\n let content = (\n <div\n className={cx(styles.title, !icon && !desc && classNames?.header, classNames?.title)}\n style={{\n ...(!icon && !desc ? customStyles?.header : {}),\n ...customStyles?.title,\n }}\n >\n {label}\n </div>\n );\n\n if (icon) {\n content = (\n <Flexbox\n className={cx(styles.title, !desc && classNames?.header)}\n gap={8}\n horizontal\n style={desc ? undefined : customStyles?.header}\n >\n {isValidElement(icon) ? icon : <Icon icon={icon} size={{ size: '1.1em' }} />}\n {content}\n </Flexbox>\n );\n }\n\n if (desc) {\n content = (\n <Flexbox className={classNames?.header} style={customStyles?.header}>\n {content}\n <div className={cx(styles.desc, classNames?.desc)} style={customStyles?.desc}>\n {desc}\n </div>\n </Flexbox>\n );\n }\n\n return {\n label: content,\n ...itemRest,\n };\n }),\n [items, classNames, customStyles, styles],\n );\n\n return (\n <ConfigProvider\n theme={{\n components: {\n Collapse: {\n contentPadding: getPadding(typeof padding === 'object' ? padding?.body : padding),\n headerPadding: getPadding(typeof padding === 'object' ? padding?.header : padding),\n },\n },\n }}\n >\n <AntdCollapse\n className={cx(variants({ collapsible, gap: !!gap, isDarkMode, variant }), className)}\n collapsible={collapsible ? 'header' : 'icon'}\n expandIcon={({ isActive }) => (\n <Icon\n className={styles.icon}\n icon={ChevronDown}\n size={16}\n style={{ rotate: isActive ? undefined : '-90deg' }}\n />\n )}\n ghost\n items={antdItems}\n ref={ref}\n size={size}\n style={{\n gap,\n ...style,\n }}\n {...rest}\n />\n </ConfigProvider>\n );\n },\n);\n\nCollapse.displayName = 'Collapse';\n\nexport default Collapse;\n"],"mappings":";;;;;;;;;;;;AAaA,MAAMA,aAAW,MACd,EACC,OACA,UAAU,UACV,MAAM,GACN,WACA,UAAU,iBACV,MACA,cAAc,MACd,OACA,QAAQ,cACR,YACA,KACA,GAAG,WACC;CACJ,MAAM,EAAE,eAAe,cAAc;CAErC,MAAM,YAAY,cAEd,MAAM,KAAK,EAAE,MAAM,MAAM,OAAO,GAAG,eAAe;EAChD,IAAI,UACF,oBAAC;GACC,WAAW,GAAG,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,YAAY,QAAQ,YAAY,MAAM;GACpF,OAAO;IACL,GAAI,CAAC,QAAQ,CAAC,OAAO,cAAc,SAAS,EAAE;IAC9C,GAAG,cAAc;IAClB;aAEA;IACG;AAGR,MAAI,KACF,WACE,qBAACC;GACC,WAAW,GAAG,OAAO,OAAO,CAAC,QAAQ,YAAY,OAAO;GACxD,KAAK;GACL;GACA,OAAO,OAAO,SAAY,cAAc;cAEvC,eAAe,KAAK,GAAG,OAAO,oBAACC;IAAW;IAAM,MAAM,EAAE,MAAM,SAAS;KAAI,EAC3E;IACO;AAId,MAAI,KACF,WACE,qBAACD;GAAQ,WAAW,YAAY;GAAQ,OAAO,cAAc;cAC1D,SACD,oBAAC;IAAI,WAAW,GAAG,OAAO,MAAM,YAAY,KAAK;IAAE,OAAO,cAAc;cACrE;KACG;IACE;AAId,SAAO;GACL,OAAO;GACP,GAAG;GACJ;GACD,EACJ;EAAC;EAAO;EAAY;EAAc;EAAO,CAC1C;AAED,QACE,oBAAC;EACC,OAAO,EACL,YAAY,EACV,UAAU;GACR,gBAAgB,WAAW,OAAO,YAAY,WAAW,SAAS,OAAO,QAAQ;GACjF,eAAe,WAAW,OAAO,YAAY,WAAW,SAAS,SAAS,QAAQ;GACnF,EACF,EACF;YAED,oBAACE;GACC,WAAW,GAAG,SAAS;IAAE;IAAa,KAAK,CAAC,CAAC;IAAK;IAAY;IAAS,CAAC,EAAE,UAAU;GACpF,aAAa,cAAc,WAAW;GACtC,aAAa,EAAE,eACb,oBAACD;IACC,WAAW,OAAO;IAClB,MAAM;IACN,MAAM;IACN,OAAO,EAAE,QAAQ,WAAW,SAAY,UAAU;KAClD;GAEJ;GACA,OAAO;GACF;GACC;GACN,OAAO;IACL;IACA,GAAG;IACJ;GACD,GAAI;IACJ;GACa;EAGtB;AAED,WAAS,cAAc;AAEvB,uBAAeF"}
1
+ {"version":3,"file":"Collapse.mjs","names":["Collapse","Flexbox","Icon","AntdCollapse"],"sources":["../../src/Collapse/Collapse.tsx"],"sourcesContent":["'use client';\n\nimport { Collapse as AntdCollapse, ConfigProvider } from 'antd';\nimport { cx, useThemeMode } from 'antd-style';\nimport { ChevronDown } from 'lucide-react';\nimport { isValidElement, memo, useMemo } from 'react';\n\nimport { Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\n\nimport { DEFAULT_PADDING, getPadding, styles, variants } from './style';\nimport type { CollapseProps } from './type';\n\nconst Collapse = memo<CollapseProps>(\n ({\n style,\n variant = 'filled',\n gap = 0,\n className,\n padding = DEFAULT_PADDING,\n size,\n collapsible = true,\n items,\n styles: customStyles,\n classNames,\n ref,\n ...rest\n }) => {\n const { isDarkMode } = useThemeMode();\n\n const antdItems = useMemo(\n () =>\n items.map(({ icon, desc, label, ...itemRest }) => {\n let content = (\n <div\n className={cx(styles.title, !icon && !desc && classNames?.header, classNames?.title)}\n style={{\n ...(!icon && !desc ? customStyles?.header : {}),\n ...customStyles?.title,\n }}\n >\n {label}\n </div>\n );\n\n if (icon) {\n content = (\n <Flexbox\n horizontal\n className={cx(styles.title, !desc && classNames?.header)}\n gap={8}\n style={desc ? undefined : customStyles?.header}\n >\n {isValidElement(icon) ? icon : <Icon icon={icon} size={{ size: '1.1em' }} />}\n {content}\n </Flexbox>\n );\n }\n\n if (desc) {\n content = (\n <Flexbox className={classNames?.header} style={customStyles?.header}>\n {content}\n <div className={cx(styles.desc, classNames?.desc)} style={customStyles?.desc}>\n {desc}\n </div>\n </Flexbox>\n );\n }\n\n return {\n label: content,\n ...itemRest,\n };\n }),\n [items, classNames, customStyles, styles],\n );\n\n return (\n <ConfigProvider\n theme={{\n components: {\n Collapse: {\n contentPadding: getPadding(typeof padding === 'object' ? padding?.body : padding),\n headerPadding: getPadding(typeof padding === 'object' ? padding?.header : padding),\n },\n },\n }}\n >\n <AntdCollapse\n ghost\n className={cx(variants({ collapsible, gap: !!gap, isDarkMode, variant }), className)}\n collapsible={collapsible ? 'header' : 'icon'}\n items={antdItems}\n ref={ref}\n size={size}\n expandIcon={({ isActive }) => (\n <Icon\n className={styles.icon}\n icon={ChevronDown}\n size={16}\n style={{ rotate: isActive ? undefined : '-90deg' }}\n />\n )}\n style={{\n gap,\n ...style,\n }}\n {...rest}\n />\n </ConfigProvider>\n );\n },\n);\n\nCollapse.displayName = 'Collapse';\n\nexport default Collapse;\n"],"mappings":";;;;;;;;;;;;AAaA,MAAMA,aAAW,MACd,EACC,OACA,UAAU,UACV,MAAM,GACN,WACA,UAAU,iBACV,MACA,cAAc,MACd,OACA,QAAQ,cACR,YACA,KACA,GAAG,WACC;CACJ,MAAM,EAAE,eAAe,cAAc;CAErC,MAAM,YAAY,cAEd,MAAM,KAAK,EAAE,MAAM,MAAM,OAAO,GAAG,eAAe;EAChD,IAAI,UACF,oBAAC;GACC,WAAW,GAAG,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,YAAY,QAAQ,YAAY,MAAM;GACpF,OAAO;IACL,GAAI,CAAC,QAAQ,CAAC,OAAO,cAAc,SAAS,EAAE;IAC9C,GAAG,cAAc;IAClB;aAEA;IACG;AAGR,MAAI,KACF,WACE,qBAACC;GACC;GACA,WAAW,GAAG,OAAO,OAAO,CAAC,QAAQ,YAAY,OAAO;GACxD,KAAK;GACL,OAAO,OAAO,SAAY,cAAc;cAEvC,eAAe,KAAK,GAAG,OAAO,oBAACC;IAAW;IAAM,MAAM,EAAE,MAAM,SAAS;KAAI,EAC3E;IACO;AAId,MAAI,KACF,WACE,qBAACD;GAAQ,WAAW,YAAY;GAAQ,OAAO,cAAc;cAC1D,SACD,oBAAC;IAAI,WAAW,GAAG,OAAO,MAAM,YAAY,KAAK;IAAE,OAAO,cAAc;cACrE;KACG;IACE;AAId,SAAO;GACL,OAAO;GACP,GAAG;GACJ;GACD,EACJ;EAAC;EAAO;EAAY;EAAc;EAAO,CAC1C;AAED,QACE,oBAAC;EACC,OAAO,EACL,YAAY,EACV,UAAU;GACR,gBAAgB,WAAW,OAAO,YAAY,WAAW,SAAS,OAAO,QAAQ;GACjF,eAAe,WAAW,OAAO,YAAY,WAAW,SAAS,SAAS,QAAQ;GACnF,EACF,EACF;YAED,oBAACE;GACC;GACA,WAAW,GAAG,SAAS;IAAE;IAAa,KAAK,CAAC,CAAC;IAAK;IAAY;IAAS,CAAC,EAAE,UAAU;GACpF,aAAa,cAAc,WAAW;GACtC,OAAO;GACF;GACC;GACN,aAAa,EAAE,eACb,oBAACD;IACC,WAAW,OAAO;IAClB,MAAM;IACN,MAAM;IACN,OAAO,EAAE,QAAQ,WAAW,SAAY,UAAU;KAClD;GAEJ,OAAO;IACL;IACA,GAAG;IACJ;GACD,GAAI;IACJ;GACa;EAGtB;AAED,WAAS,cAAc;AAEvB,uBAAeF"}
@@ -1 +1 @@
1
- {"version":3,"file":"style.mjs","names":["cssVar","lobeStaticStylish"],"sources":["../../src/Collapse/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\nimport { cva } from 'class-variance-authority';\n\nimport { lobeStaticStylish } from '@/styles';\n\nexport const DEFAULT_PADDING = '12px 16px';\n\nexport const getPadding = (padding?: number | string) =>\n !padding && padding !== 0\n ? DEFAULT_PADDING\n : `${typeof padding === 'string' ? padding : `${padding}px`} !important`;\n\nconst prefixCls = 'ant';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => {\n return {\n borderless: css`\n &.${prefixCls}-collapse {\n .${prefixCls}-collapse-header {\n padding-inline: 0;\n }\n .${prefixCls}-collapse-panel {\n padding-inline: 0;\n .${prefixCls}-collapse-body {\n padding-inline: 0;\n }\n }\n }\n `,\n desc: css`\n font-size: 12px;\n color: ${cssVar.colorTextDescription};\n `,\n filledDark: css`\n &.${prefixCls}-collapse {\n .${prefixCls}-collapse-item {\n background: ${cssVar.colorBgLayout};\n .${prefixCls}-collapse-panel {\n margin-inline: 3px;\n margin-block-end: 3px;\n border-radius: ${cssVar.borderRadius};\n ${lobeStaticStylish.variantOutlinedWithoutHover};\n }\n }\n }\n `,\n filledLight: css`\n &.${prefixCls}-collapse {\n .${prefixCls}-collapse-item {\n background: ${cssVar.colorFillQuaternary};\n .${prefixCls}-collapse-panel {\n margin-inline: 3px;\n margin-block-end: 3px;\n border-radius: ${cssVar.borderRadius};\n ${lobeStaticStylish.variantOutlinedWithoutHover};\n background: ${cssVar.colorBgContainer};\n ${lobeStaticStylish.shadow};\n }\n }\n }\n `,\n gapOutlined: css`\n &.${prefixCls}-collapse {\n border: none;\n background: transparent;\n .${prefixCls}-collapse-item {\n border: 1px solid ${cssVar.colorFillSecondary};\n background: ${cssVar.colorBgContainer};\n }\n\n .${prefixCls}-collapse-item:not(:first-child) {\n .${prefixCls}-collapse-header {\n border-block-start: none;\n }\n }\n }\n `,\n gapRoot: css`\n &.${prefixCls}-collapse {\n display: flex;\n flex-direction: column;\n border: none;\n box-shadow: none;\n .${prefixCls}-collapse-item {\n border: none;\n border-radius: ${cssVar.borderRadiusLG};\n }\n }\n `,\n hideCollapsibleIcon: css`\n .${prefixCls}-collapse-expand-icon {\n display: none !important;\n }\n `,\n icon: css`\n cursor: pointer;\n transition: all 100ms ${cssVar.motionEaseOut};\n `,\n outlined: css`\n &.${prefixCls}-collapse {\n border: 1px solid ${cssVar.colorFillSecondary};\n background: ${cssVar.colorBgContainer};\n .${prefixCls}-collapse-item .${prefixCls}-collapse-header {\n transition: none;\n }\n .${prefixCls}-collapse-item-active .${prefixCls}-collapse-header {\n border-block-end: 1px solid ${cssVar.colorFillTertiary};\n }\n .${prefixCls}-collapse-item:not(:first-child) {\n .${prefixCls}-collapse-header {\n border-block-start: 1px solid ${cssVar.colorFillTertiary};\n }\n }\n }\n `,\n root: css`\n &.${prefixCls}-collapse {\n display: flex;\n flex-direction: column;\n background: transparent;\n\n .${prefixCls}-collapse-header {\n overflow: hidden;\n display: flex;\n flex: none;\n gap: 0.75em;\n align-items: flex-start;\n\n border-radius: 0 !important;\n\n .${prefixCls}-collapse-header-text {\n flex: 1;\n }\n\n .${prefixCls}-collapse-expand-icon {\n align-items: center;\n min-height: 28px;\n margin: 0;\n padding: 0;\n }\n\n .${prefixCls}-collapse-extra {\n display: flex;\n align-items: center;\n min-height: 28px;\n }\n }\n\n .${prefixCls}-collapse-panel {\n background: transparent;\n }\n }\n `,\n title: css`\n font-size: 16px;\n font-weight: 500;\n line-height: 28px;\n `,\n };\n});\n\nexport const variants = cva(styles.root, {\n compoundVariants: [\n {\n class: styles.gapOutlined,\n gap: true,\n variant: 'outlined',\n },\n {\n class: styles.filledDark,\n isDarkMode: true,\n variant: 'filled',\n },\n {\n class: styles.filledLight,\n isDarkMode: false,\n variant: 'filled',\n },\n ],\n defaultVariants: {\n collapsible: true,\n gap: false,\n isDarkMode: false,\n },\n /* eslint-disable sort-keys-fix/sort-keys-fix */\n variants: {\n collapsible: {\n false: styles.hideCollapsibleIcon,\n true: null,\n },\n gap: {\n false: null,\n true: styles.gapRoot,\n },\n isDarkMode: {\n false: null,\n true: null,\n },\n variant: {\n borderless: styles.borderless,\n filled: null,\n outlined: styles.outlined,\n },\n },\n /* eslint-enable sort-keys-fix/sort-keys-fix */\n});\n"],"mappings":";;;;;AAKA,MAAa,kBAAkB;AAE/B,MAAa,cAAc,YACzB,CAAC,WAAW,YAAY,IACpB,kBACA,GAAG,OAAO,YAAY,WAAW,UAAU,GAAG,QAAQ,IAAI;AAEhE,MAAM,YAAY;AAElB,MAAa,SAAS,oBAAoB,EAAE,YAAK,uBAAa;AAC5D,QAAO;EACL,YAAY,KAAG;UACT,UAAU;WACT,UAAU;;;WAGV,UAAU;;aAER,UAAU;;;;;;EAMnB,MAAM,KAAG;;eAEEA,SAAO,qBAAqB;;EAEvC,YAAY,KAAG;UACT,UAAU;WACT,UAAU;wBACGA,SAAO,cAAc;aAChC,UAAU;;;6BAGMA,SAAO,aAAa;cACnCC,cAAkB,4BAA4B;;;;;EAKxD,aAAa,KAAG;UACV,UAAU;WACT,UAAU;wBACGD,SAAO,oBAAoB;aACtC,UAAU;;;6BAGMA,SAAO,aAAa;cACnCC,cAAkB,4BAA4B;0BAClCD,SAAO,iBAAiB;cACpCC,cAAkB,OAAO;;;;;EAKnC,aAAa,KAAG;UACV,UAAU;;;WAGT,UAAU;8BACSD,SAAO,mBAAmB;wBAChCA,SAAO,iBAAiB;;;WAGrC,UAAU;aACR,UAAU;;;;;;EAMnB,SAAS,KAAG;UACN,UAAU;;;;;WAKT,UAAU;;2BAEMA,SAAO,eAAe;;;;EAI7C,qBAAqB,KAAG;SACnB,UAAU;;;;EAIf,MAAM,KAAG;;8BAEiBA,SAAO,cAAc;;EAE/C,UAAU,KAAG;UACP,UAAU;4BACQA,SAAO,mBAAmB;sBAChCA,SAAO,iBAAiB;WACnC,UAAU,kBAAkB,UAAU;;;WAGtC,UAAU,yBAAyB,UAAU;wCAChBA,SAAO,kBAAkB;;WAEtD,UAAU;aACR,UAAU;4CACqBA,SAAO,kBAAkB;;;;;EAKjE,MAAM,KAAG;UACH,UAAU;;;;;WAKT,UAAU;;;;;;;;;aASR,UAAU;;;;aAIV,UAAU;;;;;;;aAOV,UAAU;;;;;;;WAOZ,UAAU;;;;;EAKjB,OAAO,KAAG;;;;;EAKX;EACD;AAEF,MAAa,WAAW,IAAI,OAAO,MAAM;CACvC,kBAAkB;EAChB;GACE,OAAO,OAAO;GACd,KAAK;GACL,SAAS;GACV;EACD;GACE,OAAO,OAAO;GACd,YAAY;GACZ,SAAS;GACV;EACD;GACE,OAAO,OAAO;GACd,YAAY;GACZ,SAAS;GACV;EACF;CACD,iBAAiB;EACf,aAAa;EACb,KAAK;EACL,YAAY;EACb;CAED,UAAU;EACR,aAAa;GACX,OAAO,OAAO;GACd,MAAM;GACP;EACD,KAAK;GACH,OAAO;GACP,MAAM,OAAO;GACd;EACD,YAAY;GACV,OAAO;GACP,MAAM;GACP;EACD,SAAS;GACP,YAAY,OAAO;GACnB,QAAQ;GACR,UAAU,OAAO;GAClB;EACF;CAEF,CAAC"}
1
+ {"version":3,"file":"style.mjs","names":["cssVar","lobeStaticStylish"],"sources":["../../src/Collapse/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\nimport { cva } from 'class-variance-authority';\n\nimport { lobeStaticStylish } from '@/styles';\n\nexport const DEFAULT_PADDING = '12px 16px';\n\nexport const getPadding = (padding?: number | string) =>\n !padding && padding !== 0\n ? DEFAULT_PADDING\n : `${typeof padding === 'string' ? padding : `${padding}px`} !important`;\n\nconst prefixCls = 'ant';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => {\n return {\n borderless: css`\n &.${prefixCls}-collapse {\n .${prefixCls}-collapse-header {\n padding-inline: 0;\n }\n .${prefixCls}-collapse-panel {\n padding-inline: 0;\n .${prefixCls}-collapse-body {\n padding-inline: 0;\n }\n }\n }\n `,\n desc: css`\n font-size: 12px;\n color: ${cssVar.colorTextDescription};\n `,\n filledDark: css`\n &.${prefixCls}-collapse {\n .${prefixCls}-collapse-item {\n background: ${cssVar.colorBgLayout};\n .${prefixCls}-collapse-panel {\n margin-inline: 3px;\n margin-block-end: 3px;\n border-radius: ${cssVar.borderRadius};\n ${lobeStaticStylish.variantOutlinedWithoutHover};\n }\n }\n }\n `,\n filledLight: css`\n &.${prefixCls}-collapse {\n .${prefixCls}-collapse-item {\n background: ${cssVar.colorFillQuaternary};\n .${prefixCls}-collapse-panel {\n margin-inline: 3px;\n margin-block-end: 3px;\n border-radius: ${cssVar.borderRadius};\n ${lobeStaticStylish.variantOutlinedWithoutHover};\n background: ${cssVar.colorBgContainer};\n ${lobeStaticStylish.shadow};\n }\n }\n }\n `,\n gapOutlined: css`\n &.${prefixCls}-collapse {\n border: none;\n background: transparent;\n .${prefixCls}-collapse-item {\n border: 1px solid ${cssVar.colorFillSecondary};\n background: ${cssVar.colorBgContainer};\n }\n\n .${prefixCls}-collapse-item:not(:first-child) {\n .${prefixCls}-collapse-header {\n border-block-start: none;\n }\n }\n }\n `,\n gapRoot: css`\n &.${prefixCls}-collapse {\n display: flex;\n flex-direction: column;\n border: none;\n box-shadow: none;\n .${prefixCls}-collapse-item {\n border: none;\n border-radius: ${cssVar.borderRadiusLG};\n }\n }\n `,\n hideCollapsibleIcon: css`\n .${prefixCls}-collapse-expand-icon {\n display: none !important;\n }\n `,\n icon: css`\n cursor: pointer;\n transition: all 100ms ${cssVar.motionEaseOut};\n `,\n outlined: css`\n &.${prefixCls}-collapse {\n border: 1px solid ${cssVar.colorFillSecondary};\n background: ${cssVar.colorBgContainer};\n .${prefixCls}-collapse-item .${prefixCls}-collapse-header {\n transition: none;\n }\n .${prefixCls}-collapse-item-active .${prefixCls}-collapse-header {\n border-block-end: 1px solid ${cssVar.colorFillTertiary};\n }\n .${prefixCls}-collapse-item:not(:first-child) {\n .${prefixCls}-collapse-header {\n border-block-start: 1px solid ${cssVar.colorFillTertiary};\n }\n }\n }\n `,\n root: css`\n &.${prefixCls}-collapse {\n display: flex;\n flex-direction: column;\n background: transparent;\n\n .${prefixCls}-collapse-header {\n overflow: hidden;\n display: flex;\n flex: none;\n gap: 0.75em;\n align-items: flex-start;\n\n border-radius: 0 !important;\n\n .${prefixCls}-collapse-header-text {\n flex: 1;\n }\n\n .${prefixCls}-collapse-expand-icon {\n align-items: center;\n min-height: 28px;\n margin: 0;\n padding: 0;\n }\n\n .${prefixCls}-collapse-extra {\n display: flex;\n align-items: center;\n min-height: 28px;\n }\n }\n\n .${prefixCls}-collapse-panel {\n background: transparent;\n }\n }\n `,\n title: css`\n font-size: 16px;\n font-weight: 500;\n line-height: 28px;\n `,\n };\n});\n\nexport const variants = cva(styles.root, {\n compoundVariants: [\n {\n class: styles.gapOutlined,\n gap: true,\n variant: 'outlined',\n },\n {\n class: styles.filledDark,\n isDarkMode: true,\n variant: 'filled',\n },\n {\n class: styles.filledLight,\n isDarkMode: false,\n variant: 'filled',\n },\n ],\n defaultVariants: {\n collapsible: true,\n gap: false,\n isDarkMode: false,\n },\n\n variants: {\n collapsible: {\n false: styles.hideCollapsibleIcon,\n true: null,\n },\n gap: {\n false: null,\n true: styles.gapRoot,\n },\n isDarkMode: {\n false: null,\n true: null,\n },\n variant: {\n borderless: styles.borderless,\n filled: null,\n outlined: styles.outlined,\n },\n },\n});\n"],"mappings":";;;;;AAKA,MAAa,kBAAkB;AAE/B,MAAa,cAAc,YACzB,CAAC,WAAW,YAAY,IACpB,kBACA,GAAG,OAAO,YAAY,WAAW,UAAU,GAAG,QAAQ,IAAI;AAEhE,MAAM,YAAY;AAElB,MAAa,SAAS,oBAAoB,EAAE,YAAK,uBAAa;AAC5D,QAAO;EACL,YAAY,KAAG;UACT,UAAU;WACT,UAAU;;;WAGV,UAAU;;aAER,UAAU;;;;;;EAMnB,MAAM,KAAG;;eAEEA,SAAO,qBAAqB;;EAEvC,YAAY,KAAG;UACT,UAAU;WACT,UAAU;wBACGA,SAAO,cAAc;aAChC,UAAU;;;6BAGMA,SAAO,aAAa;cACnCC,cAAkB,4BAA4B;;;;;EAKxD,aAAa,KAAG;UACV,UAAU;WACT,UAAU;wBACGD,SAAO,oBAAoB;aACtC,UAAU;;;6BAGMA,SAAO,aAAa;cACnCC,cAAkB,4BAA4B;0BAClCD,SAAO,iBAAiB;cACpCC,cAAkB,OAAO;;;;;EAKnC,aAAa,KAAG;UACV,UAAU;;;WAGT,UAAU;8BACSD,SAAO,mBAAmB;wBAChCA,SAAO,iBAAiB;;;WAGrC,UAAU;aACR,UAAU;;;;;;EAMnB,SAAS,KAAG;UACN,UAAU;;;;;WAKT,UAAU;;2BAEMA,SAAO,eAAe;;;;EAI7C,qBAAqB,KAAG;SACnB,UAAU;;;;EAIf,MAAM,KAAG;;8BAEiBA,SAAO,cAAc;;EAE/C,UAAU,KAAG;UACP,UAAU;4BACQA,SAAO,mBAAmB;sBAChCA,SAAO,iBAAiB;WACnC,UAAU,kBAAkB,UAAU;;;WAGtC,UAAU,yBAAyB,UAAU;wCAChBA,SAAO,kBAAkB;;WAEtD,UAAU;aACR,UAAU;4CACqBA,SAAO,kBAAkB;;;;;EAKjE,MAAM,KAAG;UACH,UAAU;;;;;WAKT,UAAU;;;;;;;;;aASR,UAAU;;;;aAIV,UAAU;;;;;;;aAOV,UAAU;;;;;;;WAOZ,UAAU;;;;;EAKjB,OAAO,KAAG;;;;;EAKX;EACD;AAEF,MAAa,WAAW,IAAI,OAAO,MAAM;CACvC,kBAAkB;EAChB;GACE,OAAO,OAAO;GACd,KAAK;GACL,SAAS;GACV;EACD;GACE,OAAO,OAAO;GACd,YAAY;GACZ,SAAS;GACV;EACD;GACE,OAAO,OAAO;GACd,YAAY;GACZ,SAAS;GACV;EACF;CACD,iBAAiB;EACf,aAAa;EACb,KAAK;EACL,YAAY;EACb;CAED,UAAU;EACR,aAAa;GACX,OAAO,OAAO;GACd,MAAM;GACP;EACD,KAAK;GACH,OAAO;GACP,MAAM,OAAO;GACd;EACD,YAAY;GACV,OAAO;GACP,MAAM;GACP;EACD,SAAS;GACP,YAAY,OAAO;GACnB,QAAQ;GACR,UAAU,OAAO;GAClB;EACF;CACF,CAAC"}
@@ -25,8 +25,8 @@ const ColorSwatches = ({ enableColorPicker, enableColorSwatches = true, defaultV
25
25
  const cssVariables = useMemo(() => ({ "--color-swatches-size": `${size}px` }), [size]);
26
26
  const isCustomActive = useMemo(() => active && active !== cssVar.colorPrimary && !colors.some((c) => c.color === active), [active, colors]);
27
27
  return /* @__PURE__ */ jsxs(FlexBasic_default, {
28
- gap: 6,
29
28
  horizontal: true,
29
+ gap: 6,
30
30
  ref,
31
31
  style: {
32
32
  ...cssVariables,
@@ -49,11 +49,11 @@ const ColorSwatches = ({ enableColorPicker, enableColorSwatches = true, defaultV
49
49
  title: c.title,
50
50
  children: /* @__PURE__ */ jsx(Center_default, {
51
51
  className: cx(styles.container, isTransparent && styles.transparent, isActive && styles.active),
52
- onClick: () => setActive(c.color || void 0),
53
52
  style: {
54
53
  background: isTransparent ? void 0 : color,
55
54
  borderRadius: shape === "circle" ? "50%" : cssVar.borderRadius
56
55
  },
56
+ onClick: () => setActive(c.color || void 0),
57
57
  children: isActive && /* @__PURE__ */ jsx(Icon_default, {
58
58
  color: rgba(safeReadableColor(actualColorForReadable), .33),
59
59
  icon: CheckIcon,
@@ -68,21 +68,21 @@ const ColorSwatches = ({ enableColorPicker, enableColorSwatches = true, defaultV
68
68
  }), enableColorPicker && /* @__PURE__ */ jsx(Tooltip_default, {
69
69
  title: texts?.custom || "Custom",
70
70
  children: /* @__PURE__ */ jsx(ColorPicker, {
71
+ disabledAlpha: true,
71
72
  arrow: false,
72
- className: cx(styles.picker, enableColorSwatches && styles.conic, isCustomActive && styles.active),
73
73
  defaultValue: cssVar.colorPrimary,
74
- disabledAlpha: true,
75
74
  format: "hex",
76
- onChangeComplete: (c) => {
77
- if (c.toHexString() === cssVar.colorPrimary) setActive("");
78
- else setActive(c.toHexString());
79
- },
75
+ value: enableColorSwatches ? void 0 : active,
76
+ className: cx(styles.picker, enableColorSwatches && styles.conic, isCustomActive && styles.active),
80
77
  presets: enableColorSwatches ? void 0 : [{
81
78
  colors: colors.map((c) => c.color),
82
79
  label: texts?.presets || "Presets"
83
80
  }],
84
81
  style: { borderRadius: shape === "circle" ? "50%" : cssVar.borderRadius },
85
- value: enableColorSwatches ? void 0 : active
82
+ onChangeComplete: (c) => {
83
+ if (c.toHexString() === cssVar.colorPrimary) setActive("");
84
+ else setActive(c.toHexString());
85
+ }
86
86
  })
87
87
  })]
88
88
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ColorSwatches.mjs","names":["ColorSwatches: FC<ColorSwatchesProps>","Flexbox","Tooltip","Center","Icon"],"sources":["../../src/ColorSwatches/ColorSwatches.tsx"],"sourcesContent":["'use client';\n\nimport { ColorPicker } from 'antd';\nimport { cssVar, cx } from 'antd-style';\nimport chroma from 'chroma-js';\nimport { CheckIcon } from 'lucide-react';\nimport { rgba } from 'polished';\nimport { type FC, useMemo } from 'react';\nimport useMergeState from 'use-merge-value';\n\nimport { Center, Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\nimport Tooltip from '@/Tooltip';\nimport { safeReadableColor } from '@/utils/safeReadableColor';\n\nimport { styles } from './style';\nimport type { ColorSwatchesProps } from './type';\n\nconst ColorSwatches: FC<ColorSwatchesProps> = ({\n enableColorPicker,\n enableColorSwatches = true,\n defaultValue,\n value,\n style,\n colors,\n onChange,\n size = 24,\n shape = 'circle',\n texts,\n ref,\n ...rest\n}) => {\n const [active, setActive] = useMergeState(defaultValue, {\n defaultValue,\n onChange,\n value,\n });\n\n // Convert size prop to CSS variable\n const cssVariables = useMemo<Record<string, string>>(\n () => ({\n '--color-swatches-size': `${size}px`,\n }),\n [size],\n );\n\n const isCustomActive = useMemo(\n () => active && active !== cssVar.colorPrimary && !colors.some((c) => c.color === active),\n [active, colors],\n );\n\n return (\n <Flexbox\n gap={6}\n horizontal\n ref={ref}\n style={{\n ...cssVariables,\n flexWrap: 'wrap',\n ...style,\n }}\n {...rest}\n >\n {enableColorSwatches &&\n colors.map((c, i) => {\n const color = c.color || cssVar.colorPrimary;\n const isActive = (!active && !c.color) || color === active;\n // Check if color is transparent or CSS variable (which chroma can't parse)\n const isTransparent =\n c.color === 'transparent' ||\n (c.color &&\n !c.color.startsWith('var(') &&\n (() => {\n try {\n return chroma(c.color).alpha() === 0;\n } catch {\n return false;\n }\n })());\n // Get actual color value for readableColor (CSS variables can't be parsed)\n const actualColorForReadable = c.color?.startsWith('var(') ? cssVar.colorPrimary : color;\n return (\n <Tooltip key={c?.key || i} title={c.title}>\n <Center\n className={cx(\n styles.container,\n isTransparent && styles.transparent,\n isActive && styles.active,\n )}\n onClick={() => setActive(c.color || undefined)}\n style={{\n background: isTransparent ? undefined : color,\n borderRadius: shape === 'circle' ? '50%' : cssVar.borderRadius,\n }}\n >\n {isActive && (\n <Icon\n color={rgba(safeReadableColor(actualColorForReadable), 0.33)}\n icon={CheckIcon}\n size={{ size: 14, strokeWidth: 4 }}\n style={{\n pointerEvents: 'none',\n }}\n />\n )}\n </Center>\n </Tooltip>\n );\n })}\n {enableColorPicker && (\n <Tooltip title={texts?.custom || 'Custom'}>\n <ColorPicker\n arrow={false}\n className={cx(\n styles.picker,\n enableColorSwatches && styles.conic,\n isCustomActive && styles.active,\n )}\n defaultValue={cssVar.colorPrimary}\n disabledAlpha\n format={'hex'}\n onChangeComplete={(c) => {\n if (c.toHexString() === cssVar.colorPrimary) {\n setActive('');\n } else {\n setActive(c.toHexString());\n }\n }}\n presets={\n enableColorSwatches\n ? undefined\n : [\n {\n colors: colors.map((c) => c.color),\n label: texts?.presets || 'Presets',\n },\n ]\n }\n style={{\n borderRadius: shape === 'circle' ? '50%' : cssVar.borderRadius,\n }}\n value={enableColorSwatches ? undefined : active}\n />\n </Tooltip>\n )}\n </Flexbox>\n );\n};\n\nColorSwatches.displayName = 'ColorSwatches';\n\nexport default ColorSwatches;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAkBA,MAAMA,iBAAyC,EAC7C,mBACA,sBAAsB,MACtB,cACA,OACA,OACA,QACA,UACA,OAAO,IACP,QAAQ,UACR,OACA,KACA,GAAG,WACC;CACJ,MAAM,CAAC,QAAQ,aAAa,cAAc,cAAc;EACtD;EACA;EACA;EACD,CAAC;CAGF,MAAM,eAAe,eACZ,EACL,yBAAyB,GAAG,KAAK,KAClC,GACD,CAAC,KAAK,CACP;CAED,MAAM,iBAAiB,cACf,UAAU,WAAW,OAAO,gBAAgB,CAAC,OAAO,MAAM,MAAM,EAAE,UAAU,OAAO,EACzF,CAAC,QAAQ,OAAO,CACjB;AAED,QACE,qBAACC;EACC,KAAK;EACL;EACK;EACL,OAAO;GACL,GAAG;GACH,UAAU;GACV,GAAG;GACJ;EACD,GAAI;aAEH,uBACC,OAAO,KAAK,GAAG,MAAM;GACnB,MAAM,QAAQ,EAAE,SAAS,OAAO;GAChC,MAAM,WAAY,CAAC,UAAU,CAAC,EAAE,SAAU,UAAU;GAEpD,MAAM,gBACJ,EAAE,UAAU,iBACX,EAAE,SACD,CAAC,EAAE,MAAM,WAAW,OAAO,WACpB;AACL,QAAI;AACF,YAAO,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK;YAC7B;AACN,YAAO;;OAEP;GAER,MAAM,yBAAyB,EAAE,OAAO,WAAW,OAAO,GAAG,OAAO,eAAe;AACnF,UACE,oBAACC;IAA0B,OAAO,EAAE;cAClC,oBAACC;KACC,WAAW,GACT,OAAO,WACP,iBAAiB,OAAO,aACxB,YAAY,OAAO,OACpB;KACD,eAAe,UAAU,EAAE,SAAS,OAAU;KAC9C,OAAO;MACL,YAAY,gBAAgB,SAAY;MACxC,cAAc,UAAU,WAAW,QAAQ,OAAO;MACnD;eAEA,YACC,oBAACC;MACC,OAAO,KAAK,kBAAkB,uBAAuB,EAAE,IAAK;MAC5D,MAAM;MACN,MAAM;OAAE,MAAM;OAAI,aAAa;OAAG;MAClC,OAAO,EACL,eAAe,QAChB;OACD;MAEG;MAvBG,GAAG,OAAO,EAwBd;IAEZ,EACH,qBACC,oBAACF;GAAQ,OAAO,OAAO,UAAU;aAC/B,oBAAC;IACC,OAAO;IACP,WAAW,GACT,OAAO,QACP,uBAAuB,OAAO,OAC9B,kBAAkB,OAAO,OAC1B;IACD,cAAc,OAAO;IACrB;IACA,QAAQ;IACR,mBAAmB,MAAM;AACvB,SAAI,EAAE,aAAa,KAAK,OAAO,aAC7B,WAAU,GAAG;SAEb,WAAU,EAAE,aAAa,CAAC;;IAG9B,SACE,sBACI,SACA,CACE;KACE,QAAQ,OAAO,KAAK,MAAM,EAAE,MAAM;KAClC,OAAO,OAAO,WAAW;KAC1B,CACF;IAEP,OAAO,EACL,cAAc,UAAU,WAAW,QAAQ,OAAO,cACnD;IACD,OAAO,sBAAsB,SAAY;KACzC;IACM;GAEJ;;AAId,cAAc,cAAc;AAE5B,4BAAe"}
1
+ {"version":3,"file":"ColorSwatches.mjs","names":["ColorSwatches: FC<ColorSwatchesProps>","Flexbox","Tooltip","Center","Icon"],"sources":["../../src/ColorSwatches/ColorSwatches.tsx"],"sourcesContent":["'use client';\n\nimport { ColorPicker } from 'antd';\nimport { cssVar, cx } from 'antd-style';\nimport chroma from 'chroma-js';\nimport { CheckIcon } from 'lucide-react';\nimport { rgba } from 'polished';\nimport { type FC, useMemo } from 'react';\nimport useMergeState from 'use-merge-value';\n\nimport { Center, Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\nimport Tooltip from '@/Tooltip';\nimport { safeReadableColor } from '@/utils/safeReadableColor';\n\nimport { styles } from './style';\nimport type { ColorSwatchesProps } from './type';\n\nconst ColorSwatches: FC<ColorSwatchesProps> = ({\n enableColorPicker,\n enableColorSwatches = true,\n defaultValue,\n value,\n style,\n colors,\n onChange,\n size = 24,\n shape = 'circle',\n texts,\n ref,\n ...rest\n}) => {\n const [active, setActive] = useMergeState(defaultValue, {\n defaultValue,\n onChange,\n value,\n });\n\n // Convert size prop to CSS variable\n const cssVariables = useMemo<Record<string, string>>(\n () => ({\n '--color-swatches-size': `${size}px`,\n }),\n [size],\n );\n\n const isCustomActive = useMemo(\n () => active && active !== cssVar.colorPrimary && !colors.some((c) => c.color === active),\n [active, colors],\n );\n\n return (\n <Flexbox\n horizontal\n gap={6}\n ref={ref}\n style={{\n ...cssVariables,\n flexWrap: 'wrap',\n ...style,\n }}\n {...rest}\n >\n {enableColorSwatches &&\n colors.map((c, i) => {\n const color = c.color || cssVar.colorPrimary;\n const isActive = (!active && !c.color) || color === active;\n // Check if color is transparent or CSS variable (which chroma can't parse)\n const isTransparent =\n c.color === 'transparent' ||\n (c.color &&\n !c.color.startsWith('var(') &&\n (() => {\n try {\n return chroma(c.color).alpha() === 0;\n } catch {\n return false;\n }\n })());\n // Get actual color value for readableColor (CSS variables can't be parsed)\n const actualColorForReadable = c.color?.startsWith('var(') ? cssVar.colorPrimary : color;\n return (\n <Tooltip key={c?.key || i} title={c.title}>\n <Center\n className={cx(\n styles.container,\n isTransparent && styles.transparent,\n isActive && styles.active,\n )}\n style={{\n background: isTransparent ? undefined : color,\n borderRadius: shape === 'circle' ? '50%' : cssVar.borderRadius,\n }}\n onClick={() => setActive(c.color || undefined)}\n >\n {isActive && (\n <Icon\n color={rgba(safeReadableColor(actualColorForReadable), 0.33)}\n icon={CheckIcon}\n size={{ size: 14, strokeWidth: 4 }}\n style={{\n pointerEvents: 'none',\n }}\n />\n )}\n </Center>\n </Tooltip>\n );\n })}\n {enableColorPicker && (\n <Tooltip title={texts?.custom || 'Custom'}>\n <ColorPicker\n disabledAlpha\n arrow={false}\n defaultValue={cssVar.colorPrimary}\n format={'hex'}\n value={enableColorSwatches ? undefined : active}\n className={cx(\n styles.picker,\n enableColorSwatches && styles.conic,\n isCustomActive && styles.active,\n )}\n presets={\n enableColorSwatches\n ? undefined\n : [\n {\n colors: colors.map((c) => c.color),\n label: texts?.presets || 'Presets',\n },\n ]\n }\n style={{\n borderRadius: shape === 'circle' ? '50%' : cssVar.borderRadius,\n }}\n onChangeComplete={(c) => {\n if (c.toHexString() === cssVar.colorPrimary) {\n setActive('');\n } else {\n setActive(c.toHexString());\n }\n }}\n />\n </Tooltip>\n )}\n </Flexbox>\n );\n};\n\nColorSwatches.displayName = 'ColorSwatches';\n\nexport default ColorSwatches;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAkBA,MAAMA,iBAAyC,EAC7C,mBACA,sBAAsB,MACtB,cACA,OACA,OACA,QACA,UACA,OAAO,IACP,QAAQ,UACR,OACA,KACA,GAAG,WACC;CACJ,MAAM,CAAC,QAAQ,aAAa,cAAc,cAAc;EACtD;EACA;EACA;EACD,CAAC;CAGF,MAAM,eAAe,eACZ,EACL,yBAAyB,GAAG,KAAK,KAClC,GACD,CAAC,KAAK,CACP;CAED,MAAM,iBAAiB,cACf,UAAU,WAAW,OAAO,gBAAgB,CAAC,OAAO,MAAM,MAAM,EAAE,UAAU,OAAO,EACzF,CAAC,QAAQ,OAAO,CACjB;AAED,QACE,qBAACC;EACC;EACA,KAAK;EACA;EACL,OAAO;GACL,GAAG;GACH,UAAU;GACV,GAAG;GACJ;EACD,GAAI;aAEH,uBACC,OAAO,KAAK,GAAG,MAAM;GACnB,MAAM,QAAQ,EAAE,SAAS,OAAO;GAChC,MAAM,WAAY,CAAC,UAAU,CAAC,EAAE,SAAU,UAAU;GAEpD,MAAM,gBACJ,EAAE,UAAU,iBACX,EAAE,SACD,CAAC,EAAE,MAAM,WAAW,OAAO,WACpB;AACL,QAAI;AACF,YAAO,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK;YAC7B;AACN,YAAO;;OAEP;GAER,MAAM,yBAAyB,EAAE,OAAO,WAAW,OAAO,GAAG,OAAO,eAAe;AACnF,UACE,oBAACC;IAA0B,OAAO,EAAE;cAClC,oBAACC;KACC,WAAW,GACT,OAAO,WACP,iBAAiB,OAAO,aACxB,YAAY,OAAO,OACpB;KACD,OAAO;MACL,YAAY,gBAAgB,SAAY;MACxC,cAAc,UAAU,WAAW,QAAQ,OAAO;MACnD;KACD,eAAe,UAAU,EAAE,SAAS,OAAU;eAE7C,YACC,oBAACC;MACC,OAAO,KAAK,kBAAkB,uBAAuB,EAAE,IAAK;MAC5D,MAAM;MACN,MAAM;OAAE,MAAM;OAAI,aAAa;OAAG;MAClC,OAAO,EACL,eAAe,QAChB;OACD;MAEG;MAvBG,GAAG,OAAO,EAwBd;IAEZ,EACH,qBACC,oBAACF;GAAQ,OAAO,OAAO,UAAU;aAC/B,oBAAC;IACC;IACA,OAAO;IACP,cAAc,OAAO;IACrB,QAAQ;IACR,OAAO,sBAAsB,SAAY;IACzC,WAAW,GACT,OAAO,QACP,uBAAuB,OAAO,OAC9B,kBAAkB,OAAO,OAC1B;IACD,SACE,sBACI,SACA,CACE;KACE,QAAQ,OAAO,KAAK,MAAM,EAAE,MAAM;KAClC,OAAO,OAAO,WAAW;KAC1B,CACF;IAEP,OAAO,EACL,cAAc,UAAU,WAAW,QAAQ,OAAO,cACnD;IACD,mBAAmB,MAAM;AACvB,SAAI,EAAE,aAAa,KAAK,OAAO,aAC7B,WAAU,GAAG;SAEb,WAAU,EAAE,aAAa,CAAC;;KAG9B;IACM;GAEJ;;AAId,cAAc,cAAc;AAE5B,4BAAe"}
@@ -1,7 +1,7 @@
1
- import { MotionComponentType } from "../MotionProvider/index.mjs";
2
1
  import { TranslationResourcesInput } from "../i18n/types.mjs";
2
+ import { MotionComponentType } from "../MotionProvider/index.mjs";
3
3
  import { CDN, CdnApi } from "../utils/genCdnUrl.mjs";
4
- import * as react79 from "react";
4
+ import * as react82 from "react";
5
5
  import { ElementType, ReactNode } from "react";
6
6
 
7
7
  //#region src/ConfigProvider/index.d.ts
@@ -19,7 +19,7 @@ interface ConfigProviderProps {
19
19
  motion: MotionComponentType;
20
20
  resources?: TranslationResourcesInput;
21
21
  }
22
- declare const ConfigProvider: react79.NamedExoticComponent<ConfigProviderProps>;
22
+ declare const ConfigProvider: react82.NamedExoticComponent<ConfigProviderProps>;
23
23
  type CdnFn = ({
24
24
  pkg,
25
25
  version,
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["cdnFallback: CdnFn"],"sources":["../../src/ConfigProvider/index.tsx"],"sourcesContent":["'use client';\n\nimport {\n ElementType,\n ReactNode,\n createContext,\n memo,\n use,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { MotionComponent, type MotionComponentType } from '@/MotionProvider';\nimport type {\n I18nContextValue,\n TranslationKey,\n TranslationResourcesInput,\n TranslationResourcesMap,\n} from '@/i18n/types';\nimport { CDN, CdnApi, genCdnUrl } from '@/utils/genCdnUrl';\n\nexport interface Config {\n aAs?: ElementType;\n customCdnFn?: CdnFn;\n imgAs?: ElementType;\n imgUnoptimized?: boolean;\n proxy?: CDN | 'custom';\n}\n\nexport const ConfigContext = createContext<Config | null>(null);\n\n// Internal i18n context\nconst I18nContextInternal = createContext<I18nContextValue>({\n locale: 'en',\n t: (key: TranslationKey) => key,\n});\n\nexport interface ConfigProviderProps {\n children: ReactNode;\n config?: Config;\n // i18n props - flattened at top level\n locale?: string;\n motion: MotionComponentType;\n resources?: TranslationResourcesInput;\n}\n\nconst isThenable = (value: unknown): value is Promise<TranslationResourcesMap> =>\n typeof (value as { then?: unknown })?.then === 'function';\n\nconst ConfigProvider = memo<ConfigProviderProps>(\n ({ children, config, locale, resources, motion }) => {\n const fallbackLocale = locale ?? 'en';\n const [resolvedResources, setResolvedResources] = useState<TranslationResourcesMap | undefined>(\n () => (resources && !isThenable(resources) ? resources : undefined),\n );\n const [resolvedLocale, setResolvedLocale] = useState(fallbackLocale);\n const latestRequestId = useRef(0);\n\n useEffect(() => {\n const requestId = ++latestRequestId.current;\n\n if (!resources) {\n setResolvedResources(undefined);\n setResolvedLocale(fallbackLocale);\n return;\n }\n\n if (isThenable(resources)) {\n const targetLocale = fallbackLocale;\n resources\n .then((nextResources) => {\n if (latestRequestId.current !== requestId) return;\n setResolvedResources(nextResources);\n setResolvedLocale(targetLocale);\n })\n .catch(() => {\n if (latestRequestId.current !== requestId) return;\n });\n return;\n }\n\n setResolvedResources(resources);\n setResolvedLocale(fallbackLocale);\n }, [fallbackLocale, resources]);\n\n const currentResources = isThenable(resources) ? resolvedResources : resources;\n const currentLocale = isThenable(resources) ? resolvedLocale : fallbackLocale;\n\n const i18nValue = useMemo((): I18nContextValue => {\n const resourceList = Array.isArray(currentResources)\n ? currentResources\n : currentResources\n ? Object.values(currentResources)\n : [];\n const mergedResources = Object.assign({}, ...resourceList);\n const t = (key: TranslationKey): string => mergedResources[key] || key;\n return { locale: currentLocale, t };\n }, [currentLocale, currentResources]);\n\n return (\n <I18nContextInternal value={i18nValue}>\n <ConfigContext value={config ?? null}>\n <MotionComponent value={motion}>{children}</MotionComponent>\n </ConfigContext>\n </I18nContextInternal>\n );\n },\n);\n\n// useCdnFn\nexport type CdnFn = ({ pkg, version, path }: CdnApi) => string;\n\nconst cdnFallback: CdnFn = ({ pkg, version, path }) =>\n genCdnUrl({ path, pkg, proxy: 'aliyun', version });\n\nexport const useCdnFn = (): CdnFn => {\n const config = use(ConfigContext);\n if (!config) return cdnFallback;\n if (config?.proxy !== 'custom')\n return ({ pkg, version, path }) =>\n genCdnUrl({ path, pkg, proxy: config.proxy as any, version });\n return config?.customCdnFn || cdnFallback;\n};\n\n// useI18n hook\nexport const useI18n = () => use(I18nContextInternal);\n\n// Export I18nContext for external reference\nexport { I18nContextInternal as I18nContext };\n\nexport default ConfigProvider;\n"],"mappings":";;;;;;;;AA+BA,MAAa,gBAAgB,cAA6B,KAAK;AAG/D,MAAM,sBAAsB,cAAgC;CAC1D,QAAQ;CACR,IAAI,QAAwB;CAC7B,CAAC;AAWF,MAAM,cAAc,UAClB,OAAQ,OAA8B,SAAS;AAEjD,MAAM,iBAAiB,MACpB,EAAE,UAAU,QAAQ,QAAQ,WAAW,aAAa;CACnD,MAAM,iBAAiB,UAAU;CACjC,MAAM,CAAC,mBAAmB,wBAAwB,eACzC,aAAa,CAAC,WAAW,UAAU,GAAG,YAAY,OAC1D;CACD,MAAM,CAAC,gBAAgB,qBAAqB,SAAS,eAAe;CACpE,MAAM,kBAAkB,OAAO,EAAE;AAEjC,iBAAgB;EACd,MAAM,YAAY,EAAE,gBAAgB;AAEpC,MAAI,CAAC,WAAW;AACd,wBAAqB,OAAU;AAC/B,qBAAkB,eAAe;AACjC;;AAGF,MAAI,WAAW,UAAU,EAAE;GACzB,MAAM,eAAe;AACrB,aACG,MAAM,kBAAkB;AACvB,QAAI,gBAAgB,YAAY,UAAW;AAC3C,yBAAqB,cAAc;AACnC,sBAAkB,aAAa;KAC/B,CACD,YAAY;AACX,QAAI,gBAAgB,YAAY,UAAW;KAC3C;AACJ;;AAGF,uBAAqB,UAAU;AAC/B,oBAAkB,eAAe;IAChC,CAAC,gBAAgB,UAAU,CAAC;CAE/B,MAAM,mBAAmB,WAAW,UAAU,GAAG,oBAAoB;CACrE,MAAM,gBAAgB,WAAW,UAAU,GAAG,iBAAiB;AAa/D,QACE,oBAAC;EAAoB,OAZL,cAAgC;GAChD,MAAM,eAAe,MAAM,QAAQ,iBAAiB,GAChD,mBACA,mBACE,OAAO,OAAO,iBAAiB,GAC/B,EAAE;GACR,MAAM,kBAAkB,OAAO,OAAO,EAAE,EAAE,GAAG,aAAa;GAC1D,MAAM,KAAK,QAAgC,gBAAgB,QAAQ;AACnE,UAAO;IAAE,QAAQ;IAAe;IAAG;KAClC,CAAC,eAAe,iBAAiB,CAAC;YAIjC,oBAAC;GAAc,OAAO,UAAU;aAC9B,oBAAC;IAAgB,OAAO;IAAS;KAA2B;IAC9C;GACI;EAG3B;AAKD,MAAMA,eAAsB,EAAE,KAAK,SAAS,WAC1C,UAAU;CAAE;CAAM;CAAK,OAAO;CAAU;CAAS,CAAC;AAEpD,MAAa,iBAAwB;CACnC,MAAM,SAAS,IAAI,cAAc;AACjC,KAAI,CAAC,OAAQ,QAAO;AACpB,KAAI,QAAQ,UAAU,SACpB,SAAQ,EAAE,KAAK,SAAS,WACtB,UAAU;EAAE;EAAM;EAAK,OAAO,OAAO;EAAc;EAAS,CAAC;AACjE,QAAO,QAAQ,eAAe;;AAIhC,MAAa,gBAAgB,IAAI,oBAAoB;AAKrD,6BAAe"}
1
+ {"version":3,"file":"index.mjs","names":["cdnFallback: CdnFn"],"sources":["../../src/ConfigProvider/index.tsx"],"sourcesContent":["'use client';\n\nimport {\n createContext,\n type ElementType,\n memo,\n type ReactNode,\n use,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport {\n type I18nContextValue,\n type TranslationKey,\n type TranslationResourcesInput,\n type TranslationResourcesMap,\n} from '@/i18n/types';\nimport { MotionComponent, type MotionComponentType } from '@/MotionProvider';\nimport { type CDN, type CdnApi, genCdnUrl } from '@/utils/genCdnUrl';\n\nexport interface Config {\n aAs?: ElementType;\n customCdnFn?: CdnFn;\n imgAs?: ElementType;\n imgUnoptimized?: boolean;\n proxy?: CDN | 'custom';\n}\n\nexport const ConfigContext = createContext<Config | null>(null);\n\n// Internal i18n context\nconst I18nContextInternal = createContext<I18nContextValue>({\n locale: 'en',\n t: (key: TranslationKey) => key,\n});\n\nexport interface ConfigProviderProps {\n children: ReactNode;\n config?: Config;\n // i18n props - flattened at top level\n locale?: string;\n motion: MotionComponentType;\n resources?: TranslationResourcesInput;\n}\n\nconst isThenable = (value: unknown): value is Promise<TranslationResourcesMap> =>\n typeof (value as { then?: unknown })?.then === 'function';\n\nconst ConfigProvider = memo<ConfigProviderProps>(\n ({ children, config, locale, resources, motion }) => {\n const fallbackLocale = locale ?? 'en';\n const [resolvedResources, setResolvedResources] = useState<TranslationResourcesMap | undefined>(\n () => (resources && !isThenable(resources) ? resources : undefined),\n );\n const [resolvedLocale, setResolvedLocale] = useState(fallbackLocale);\n const latestRequestId = useRef(0);\n\n useEffect(() => {\n const requestId = ++latestRequestId.current;\n\n if (!resources) {\n setResolvedResources(undefined);\n setResolvedLocale(fallbackLocale);\n return;\n }\n\n if (isThenable(resources)) {\n const targetLocale = fallbackLocale;\n resources\n .then((nextResources) => {\n if (latestRequestId.current !== requestId) return;\n setResolvedResources(nextResources);\n setResolvedLocale(targetLocale);\n })\n .catch(() => {\n if (latestRequestId.current !== requestId) return;\n });\n return;\n }\n\n setResolvedResources(resources);\n setResolvedLocale(fallbackLocale);\n }, [fallbackLocale, resources]);\n\n const currentResources = isThenable(resources) ? resolvedResources : resources;\n const currentLocale = isThenable(resources) ? resolvedLocale : fallbackLocale;\n\n const i18nValue = useMemo((): I18nContextValue => {\n const resourceList = Array.isArray(currentResources)\n ? currentResources\n : currentResources\n ? Object.values(currentResources)\n : [];\n const mergedResources = Object.assign({}, ...resourceList);\n const t = (key: TranslationKey): string => mergedResources[key] || key;\n return { locale: currentLocale, t };\n }, [currentLocale, currentResources]);\n\n return (\n <I18nContextInternal value={i18nValue}>\n <ConfigContext value={config ?? null}>\n <MotionComponent value={motion}>{children}</MotionComponent>\n </ConfigContext>\n </I18nContextInternal>\n );\n },\n);\n\n// useCdnFn\nexport type CdnFn = ({ pkg, version, path }: CdnApi) => string;\n\nconst cdnFallback: CdnFn = ({ pkg, version, path }) =>\n genCdnUrl({ path, pkg, proxy: 'aliyun', version });\n\nexport const useCdnFn = (): CdnFn => {\n const config = use(ConfigContext);\n if (!config) return cdnFallback;\n if (config?.proxy !== 'custom')\n return ({ pkg, version, path }) =>\n genCdnUrl({ path, pkg, proxy: config.proxy as any, version });\n return config?.customCdnFn || cdnFallback;\n};\n\n// useI18n hook\nexport const useI18n = () => use(I18nContextInternal);\n\n// Export I18nContext for external reference\nexport { I18nContextInternal as I18nContext };\n\nexport default ConfigProvider;\n"],"mappings":";;;;;;;;AA+BA,MAAa,gBAAgB,cAA6B,KAAK;AAG/D,MAAM,sBAAsB,cAAgC;CAC1D,QAAQ;CACR,IAAI,QAAwB;CAC7B,CAAC;AAWF,MAAM,cAAc,UAClB,OAAQ,OAA8B,SAAS;AAEjD,MAAM,iBAAiB,MACpB,EAAE,UAAU,QAAQ,QAAQ,WAAW,aAAa;CACnD,MAAM,iBAAiB,UAAU;CACjC,MAAM,CAAC,mBAAmB,wBAAwB,eACzC,aAAa,CAAC,WAAW,UAAU,GAAG,YAAY,OAC1D;CACD,MAAM,CAAC,gBAAgB,qBAAqB,SAAS,eAAe;CACpE,MAAM,kBAAkB,OAAO,EAAE;AAEjC,iBAAgB;EACd,MAAM,YAAY,EAAE,gBAAgB;AAEpC,MAAI,CAAC,WAAW;AACd,wBAAqB,OAAU;AAC/B,qBAAkB,eAAe;AACjC;;AAGF,MAAI,WAAW,UAAU,EAAE;GACzB,MAAM,eAAe;AACrB,aACG,MAAM,kBAAkB;AACvB,QAAI,gBAAgB,YAAY,UAAW;AAC3C,yBAAqB,cAAc;AACnC,sBAAkB,aAAa;KAC/B,CACD,YAAY;AACX,QAAI,gBAAgB,YAAY,UAAW;KAC3C;AACJ;;AAGF,uBAAqB,UAAU;AAC/B,oBAAkB,eAAe;IAChC,CAAC,gBAAgB,UAAU,CAAC;CAE/B,MAAM,mBAAmB,WAAW,UAAU,GAAG,oBAAoB;CACrE,MAAM,gBAAgB,WAAW,UAAU,GAAG,iBAAiB;AAa/D,QACE,oBAAC;EAAoB,OAZL,cAAgC;GAChD,MAAM,eAAe,MAAM,QAAQ,iBAAiB,GAChD,mBACA,mBACE,OAAO,OAAO,iBAAiB,GAC/B,EAAE;GACR,MAAM,kBAAkB,OAAO,OAAO,EAAE,EAAE,GAAG,aAAa;GAC1D,MAAM,KAAK,QAAgC,gBAAgB,QAAQ;AACnE,UAAO;IAAE,QAAQ;IAAe;IAAG;KAClC,CAAC,eAAe,iBAAiB,CAAC;YAIjC,oBAAC;GAAc,OAAO,UAAU;aAC9B,oBAAC;IAAgB,OAAO;IAAS;KAA2B;IAC9C;GACI;EAG3B;AAKD,MAAMA,eAAsB,EAAE,KAAK,SAAS,WAC1C,UAAU;CAAE;CAAM;CAAK,OAAO;CAAU;CAAS,CAAC;AAEpD,MAAa,iBAAwB;CACnC,MAAM,SAAS,IAAI,cAAc;AACjC,KAAI,CAAC,OAAQ,QAAO;AACpB,KAAI,QAAQ,UAAU,SACpB,SAAQ,EAAE,KAAK,SAAS,WACtB,UAAU;EAAE;EAAM;EAAK,OAAO,OAAO;EAAc;EAAS,CAAC;AACjE,QAAO,QAAQ,eAAe;;AAIhC,MAAa,gBAAgB,IAAI,oBAAoB;AAKrD,6BAAe"}
@@ -1,8 +1,8 @@
1
1
  import * as react124 from "react";
2
- import * as react_jsx_runtime57 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime60 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/ContextMenu/ContextMenuHost.d.ts
5
- declare const ContextMenuHost: react124.MemoExoticComponent<() => react_jsx_runtime57.JSX.Element | null>;
5
+ declare const ContextMenuHost: react124.MemoExoticComponent<() => react_jsx_runtime60.JSX.Element | null>;
6
6
  //#endregion
7
7
  export { ContextMenuHost };
8
8
  //# sourceMappingURL=ContextMenuHost.d.mts.map
@@ -3,8 +3,8 @@
3
3
  import { useIsClient } from "../hooks/useIsClient.mjs";
4
4
  import { LOBE_THEME_APP_ID } from "../ThemeProvider/constants.mjs";
5
5
  import { preventDefaultAndStopPropagation } from "../utils/dom.mjs";
6
- import { styles } from "../Menu/sharedStyle.mjs";
7
6
  import { usePortalContainer } from "../hooks/usePortalContainer.mjs";
7
+ import { styles } from "../Menu/sharedStyle.mjs";
8
8
  import { registerDevSingleton } from "../utils/devSingleton.mjs";
9
9
  import { renderContextMenuItems } from "./renderItems.mjs";
10
10
  import { closeContextMenu, getServerSnapshot, getSnapshot, setContextMenuState, subscribe, updateLastPointer } from "./store.mjs";
@@ -33,12 +33,20 @@ const ContextMenuHost = memo(() => {
33
33
  window.removeEventListener("contextmenu", handler, true);
34
34
  };
35
35
  }, []);
36
- const menuItems = useMemo(() => renderContextMenuItems(state.items, [], { iconSpaceMode: state.iconSpaceMode }), [state.items, state.iconSpaceMode]);
36
+ const menuItems = useMemo(() => renderContextMenuItems(state.items, [], {
37
+ iconAlign: state.iconAlign,
38
+ iconSpaceMode: state.iconSpaceMode
39
+ }), [
40
+ state.items,
41
+ state.iconAlign,
42
+ state.iconSpaceMode
43
+ ]);
37
44
  const portalContainer = usePortalContainer(CONTEXT_MENU_CONTAINER_ATTR);
38
45
  if (!isClient) return null;
39
46
  if (!state.open && state.items.length === 0) return null;
40
47
  if (!portalContainer) return null;
41
48
  return /* @__PURE__ */ jsx(ContextMenu.Root, {
49
+ open: state.open,
42
50
  onOpenChange: (open) => {
43
51
  if (open) {
44
52
  setContextMenuState({ open });
@@ -46,7 +54,6 @@ const ContextMenuHost = memo(() => {
46
54
  }
47
55
  closeContextMenu();
48
56
  },
49
- open: state.open,
50
57
  children: /* @__PURE__ */ jsx(ContextMenu.Portal, {
51
58
  container: portalContainer,
52
59
  children: /* @__PURE__ */ jsx(ContextMenu.Positioner, {
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenuHost.mjs","names":[],"sources":["../../src/ContextMenu/ContextMenuHost.tsx"],"sourcesContent":["'use client';\n\nimport { ContextMenu } from '@base-ui/react/context-menu';\nimport { memo, useEffect, useMemo, useSyncExternalStore } from 'react';\n\nimport { LOBE_THEME_APP_ID } from '@/ThemeProvider';\nimport { useIsClient } from '@/hooks/useIsClient';\nimport { usePortalContainer } from '@/hooks/usePortalContainer';\nimport { registerDevSingleton } from '@/utils/devSingleton';\nimport { preventDefaultAndStopPropagation } from '@/utils/dom';\n\nimport { renderContextMenuItems } from './renderItems';\nimport {\n closeContextMenu,\n getServerSnapshot,\n getSnapshot,\n setContextMenuState,\n subscribe,\n updateLastPointer,\n} from './store';\nimport { styles } from './style';\n\nconst CONTEXT_MENU_CONTAINER_ATTR = 'data-lobe-ui-context-menu-container';\n\nexport const ContextMenuHost = memo(() => {\n const isClient = useIsClient();\n const state = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n\n useEffect(() => {\n const DEV = process.env.NODE_ENV === 'development';\n if (!isClient || !DEV) return;\n // Enforce singleton per portal container (dev-only).\n const themeApp = document.querySelector<HTMLElement>(`#${LOBE_THEME_APP_ID}`);\n const contextMenuContainer = document.querySelector<HTMLElement>(\n `[${CONTEXT_MENU_CONTAINER_ATTR}=\"true\"]`,\n );\n const scope = themeApp ?? contextMenuContainer ?? document.body;\n return registerDevSingleton('ContextMenuHost', scope);\n }, [isClient]);\n\n useEffect(() => {\n const handler = (event: MouseEvent | PointerEvent) => updateLastPointer(event);\n window.addEventListener('pointerdown', handler, true);\n window.addEventListener('contextmenu', handler, true);\n return () => {\n window.removeEventListener('pointerdown', handler, true);\n window.removeEventListener('contextmenu', handler, true);\n };\n }, []);\n\n const menuItems = useMemo(\n () => renderContextMenuItems(state.items, [], { iconSpaceMode: state.iconSpaceMode }),\n [state.items, state.iconSpaceMode],\n );\n const portalContainer = usePortalContainer(CONTEXT_MENU_CONTAINER_ATTR);\n\n if (!isClient) return null;\n if (!state.open && state.items.length === 0) return null;\n if (!portalContainer) return null;\n\n return (\n <ContextMenu.Root\n onOpenChange={(open) => {\n if (open) {\n setContextMenuState({ open });\n return;\n }\n closeContextMenu();\n }}\n open={state.open}\n >\n <ContextMenu.Portal container={portalContainer}>\n <ContextMenu.Positioner\n anchor={state.anchor ?? undefined}\n className={styles.positioner}\n sideOffset={6}\n >\n <ContextMenu.Popup\n className={styles.popup}\n onContextMenu={preventDefaultAndStopPropagation}\n >\n {menuItems}\n </ContextMenu.Popup>\n </ContextMenu.Positioner>\n </ContextMenu.Portal>\n </ContextMenu.Root>\n );\n});\n\nContextMenuHost.displayName = 'ContextMenuHost';\n"],"mappings":";;;;;;;;;;;;;;;AAsBA,MAAM,8BAA8B;AAEpC,MAAa,kBAAkB,WAAW;CACxC,MAAM,WAAW,aAAa;CAC9B,MAAM,QAAQ,qBAAqB,WAAW,aAAa,kBAAkB;AAE7E,iBAAgB;EACd,MAAM,MAAM,QAAQ,IAAI,aAAa;AACrC,MAAI,CAAC,YAAY,CAAC,IAAK;EAEvB,MAAM,WAAW,SAAS,cAA2B,IAAI,oBAAoB;EAC7E,MAAM,uBAAuB,SAAS,cACpC,IAAI,4BAA4B,UACjC;AAED,SAAO,qBAAqB,mBADd,YAAY,wBAAwB,SAAS,KACN;IACpD,CAAC,SAAS,CAAC;AAEd,iBAAgB;EACd,MAAM,WAAW,UAAqC,kBAAkB,MAAM;AAC9E,SAAO,iBAAiB,eAAe,SAAS,KAAK;AACrD,SAAO,iBAAiB,eAAe,SAAS,KAAK;AACrD,eAAa;AACX,UAAO,oBAAoB,eAAe,SAAS,KAAK;AACxD,UAAO,oBAAoB,eAAe,SAAS,KAAK;;IAEzD,EAAE,CAAC;CAEN,MAAM,YAAY,cACV,uBAAuB,MAAM,OAAO,EAAE,EAAE,EAAE,eAAe,MAAM,eAAe,CAAC,EACrF,CAAC,MAAM,OAAO,MAAM,cAAc,CACnC;CACD,MAAM,kBAAkB,mBAAmB,4BAA4B;AAEvE,KAAI,CAAC,SAAU,QAAO;AACtB,KAAI,CAAC,MAAM,QAAQ,MAAM,MAAM,WAAW,EAAG,QAAO;AACpD,KAAI,CAAC,gBAAiB,QAAO;AAE7B,QACE,oBAAC,YAAY;EACX,eAAe,SAAS;AACtB,OAAI,MAAM;AACR,wBAAoB,EAAE,MAAM,CAAC;AAC7B;;AAEF,qBAAkB;;EAEpB,MAAM,MAAM;YAEZ,oBAAC,YAAY;GAAO,WAAW;aAC7B,oBAAC,YAAY;IACX,QAAQ,MAAM,UAAU;IACxB,WAAW,OAAO;IAClB,YAAY;cAEZ,oBAAC,YAAY;KACX,WAAW,OAAO;KAClB,eAAe;eAEd;MACiB;KACG;IACN;GACJ;EAErB;AAEF,gBAAgB,cAAc"}
1
+ {"version":3,"file":"ContextMenuHost.mjs","names":[],"sources":["../../src/ContextMenu/ContextMenuHost.tsx"],"sourcesContent":["'use client';\n\nimport { ContextMenu } from '@base-ui/react/context-menu';\nimport { memo, useEffect, useMemo, useSyncExternalStore } from 'react';\n\nimport { useIsClient } from '@/hooks/useIsClient';\nimport { usePortalContainer } from '@/hooks/usePortalContainer';\nimport { LOBE_THEME_APP_ID } from '@/ThemeProvider';\nimport { registerDevSingleton } from '@/utils/devSingleton';\nimport { preventDefaultAndStopPropagation } from '@/utils/dom';\n\nimport { renderContextMenuItems } from './renderItems';\nimport {\n closeContextMenu,\n getServerSnapshot,\n getSnapshot,\n setContextMenuState,\n subscribe,\n updateLastPointer,\n} from './store';\nimport { styles } from './style';\n\nconst CONTEXT_MENU_CONTAINER_ATTR = 'data-lobe-ui-context-menu-container';\n\nexport const ContextMenuHost = memo(() => {\n const isClient = useIsClient();\n const state = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n\n useEffect(() => {\n const DEV = process.env.NODE_ENV === 'development';\n if (!isClient || !DEV) return;\n // Enforce singleton per portal container (dev-only).\n const themeApp = document.querySelector<HTMLElement>(`#${LOBE_THEME_APP_ID}`);\n const contextMenuContainer = document.querySelector<HTMLElement>(\n `[${CONTEXT_MENU_CONTAINER_ATTR}=\"true\"]`,\n );\n const scope = themeApp ?? contextMenuContainer ?? document.body;\n return registerDevSingleton('ContextMenuHost', scope);\n }, [isClient]);\n\n useEffect(() => {\n const handler = (event: MouseEvent | PointerEvent) => updateLastPointer(event);\n window.addEventListener('pointerdown', handler, true);\n window.addEventListener('contextmenu', handler, true);\n return () => {\n window.removeEventListener('pointerdown', handler, true);\n window.removeEventListener('contextmenu', handler, true);\n };\n }, []);\n\n const menuItems = useMemo(\n () =>\n renderContextMenuItems(state.items, [], {\n iconAlign: state.iconAlign,\n iconSpaceMode: state.iconSpaceMode,\n }),\n [state.items, state.iconAlign, state.iconSpaceMode],\n );\n const portalContainer = usePortalContainer(CONTEXT_MENU_CONTAINER_ATTR);\n\n if (!isClient) return null;\n if (!state.open && state.items.length === 0) return null;\n if (!portalContainer) return null;\n\n return (\n <ContextMenu.Root\n open={state.open}\n onOpenChange={(open) => {\n if (open) {\n setContextMenuState({ open });\n return;\n }\n closeContextMenu();\n }}\n >\n <ContextMenu.Portal container={portalContainer}>\n <ContextMenu.Positioner\n anchor={state.anchor ?? undefined}\n className={styles.positioner}\n sideOffset={6}\n >\n <ContextMenu.Popup\n className={styles.popup}\n onContextMenu={preventDefaultAndStopPropagation}\n >\n {menuItems}\n </ContextMenu.Popup>\n </ContextMenu.Positioner>\n </ContextMenu.Portal>\n </ContextMenu.Root>\n );\n});\n\nContextMenuHost.displayName = 'ContextMenuHost';\n"],"mappings":";;;;;;;;;;;;;;;AAsBA,MAAM,8BAA8B;AAEpC,MAAa,kBAAkB,WAAW;CACxC,MAAM,WAAW,aAAa;CAC9B,MAAM,QAAQ,qBAAqB,WAAW,aAAa,kBAAkB;AAE7E,iBAAgB;EACd,MAAM,MAAM,QAAQ,IAAI,aAAa;AACrC,MAAI,CAAC,YAAY,CAAC,IAAK;EAEvB,MAAM,WAAW,SAAS,cAA2B,IAAI,oBAAoB;EAC7E,MAAM,uBAAuB,SAAS,cACpC,IAAI,4BAA4B,UACjC;AAED,SAAO,qBAAqB,mBADd,YAAY,wBAAwB,SAAS,KACN;IACpD,CAAC,SAAS,CAAC;AAEd,iBAAgB;EACd,MAAM,WAAW,UAAqC,kBAAkB,MAAM;AAC9E,SAAO,iBAAiB,eAAe,SAAS,KAAK;AACrD,SAAO,iBAAiB,eAAe,SAAS,KAAK;AACrD,eAAa;AACX,UAAO,oBAAoB,eAAe,SAAS,KAAK;AACxD,UAAO,oBAAoB,eAAe,SAAS,KAAK;;IAEzD,EAAE,CAAC;CAEN,MAAM,YAAY,cAEd,uBAAuB,MAAM,OAAO,EAAE,EAAE;EACtC,WAAW,MAAM;EACjB,eAAe,MAAM;EACtB,CAAC,EACJ;EAAC,MAAM;EAAO,MAAM;EAAW,MAAM;EAAc,CACpD;CACD,MAAM,kBAAkB,mBAAmB,4BAA4B;AAEvE,KAAI,CAAC,SAAU,QAAO;AACtB,KAAI,CAAC,MAAM,QAAQ,MAAM,MAAM,WAAW,EAAG,QAAO;AACpD,KAAI,CAAC,gBAAiB,QAAO;AAE7B,QACE,oBAAC,YAAY;EACX,MAAM,MAAM;EACZ,eAAe,SAAS;AACtB,OAAI,MAAM;AACR,wBAAoB,EAAE,MAAM,CAAC;AAC7B;;AAEF,qBAAkB;;YAGpB,oBAAC,YAAY;GAAO,WAAW;aAC7B,oBAAC,YAAY;IACX,QAAQ,MAAM,UAAU;IACxB,WAAW,OAAO;IAClB,YAAY;cAEZ,oBAAC,YAAY;KACX,WAAW,OAAO;KAClB,eAAe;eAEd;MACiB;KACG;IACN;GACJ;EAErB;AAEF,gBAAgB,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenuTrigger.mjs","names":[],"sources":["../../src/ContextMenu/ContextMenuTrigger.tsx"],"sourcesContent":["'use client';\n\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport clsx from 'clsx';\nimport React, {\n type HTMLAttributes,\n type MouseEvent,\n type ReactNode,\n cloneElement,\n isValidElement,\n memo,\n useCallback,\n useId,\n useSyncExternalStore,\n} from 'react';\n\nimport { CLASSNAMES } from '@/styles/classNames';\n\nimport { getServerSnapshot, getSnapshot, showContextMenu, subscribe } from './store';\nimport type { ContextMenuItem } from './type';\n\nexport type ContextMenuTriggerProps = {\n children: ReactNode;\n /**\n * Menu items to display. Supports lazy rendering via function.\n * When provided, context menu will be automatically shown on right-click.\n */\n items?: ContextMenuItem[] | (() => ContextMenuItem[]);\n /**\n * Custom context menu handler. If `items` is provided, this is optional.\n */\n onContextMenu?: (event: MouseEvent<HTMLElement>) => void;\n} & Omit<HTMLAttributes<HTMLElement>, 'onContextMenu' | 'children'>;\n\nconst styles = {\n trigger: {\n display: 'contents',\n },\n};\n\nexport const ContextMenuTrigger = memo<ContextMenuTriggerProps>(\n ({ children, items, onContextMenu, ...rest }) => {\n const triggerId = useId();\n const state = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n const open = state.open && state.triggerId === triggerId;\n\n const handleContextMenu = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n if (items) {\n event.preventDefault();\n const resolvedItems = typeof items === 'function' ? items() : items;\n showContextMenu(resolvedItems);\n }\n onContextMenu?.(event);\n },\n [items, onContextMenu],\n );\n\n const triggerProps = {\n ...rest,\n 'aria-expanded': open || undefined,\n 'className': clsx(CLASSNAMES.ContextTrigger, rest.className),\n 'data-contextmenu-trigger': triggerId,\n 'data-popup-open': open ? '' : undefined,\n 'data-state': open ? 'open' : undefined,\n 'onContextMenu': handleContextMenu,\n };\n\n if (isValidElement(children) && React.Children.only(children)) {\n return cloneElement(children, mergeProps(children.props as any, triggerProps));\n }\n\n return (\n <span style={styles.trigger} {...triggerProps}>\n {children}\n </span>\n );\n },\n);\n\nContextMenuTrigger.displayName = 'ContextMenuTrigger';\n"],"mappings":";;;;;;;;;;AAkCA,MAAM,SAAS,EACb,SAAS,EACP,SAAS,YACV,EACF;AAED,MAAa,qBAAqB,MAC/B,EAAE,UAAU,OAAO,eAAe,GAAG,WAAW;CAC/C,MAAM,YAAY,OAAO;CACzB,MAAM,QAAQ,qBAAqB,WAAW,aAAa,kBAAkB;CAC7E,MAAM,OAAO,MAAM,QAAQ,MAAM,cAAc;CAE/C,MAAM,oBAAoB,aACvB,UAAmC;AAClC,MAAI,OAAO;AACT,SAAM,gBAAgB;AAEtB,mBADsB,OAAO,UAAU,aAAa,OAAO,GAAG,MAChC;;AAEhC,kBAAgB,MAAM;IAExB,CAAC,OAAO,cAAc,CACvB;CAED,MAAM,eAAe;EACnB,GAAG;EACH,iBAAiB,QAAQ;EACzB,aAAa,KAAK,WAAW,gBAAgB,KAAK,UAAU;EAC5D,4BAA4B;EAC5B,mBAAmB,OAAO,KAAK;EAC/B,cAAc,OAAO,SAAS;EAC9B,iBAAiB;EAClB;AAED,KAAI,eAAe,SAAS,IAAI,MAAM,SAAS,KAAK,SAAS,CAC3D,QAAO,aAAa,UAAU,WAAW,SAAS,OAAc,aAAa,CAAC;AAGhF,QACE,oBAAC;EAAK,OAAO,OAAO;EAAS,GAAI;EAC9B;GACI;EAGZ;AAED,mBAAmB,cAAc"}
1
+ {"version":3,"file":"ContextMenuTrigger.mjs","names":[],"sources":["../../src/ContextMenu/ContextMenuTrigger.tsx"],"sourcesContent":["'use client';\n\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport clsx from 'clsx';\nimport React, {\n cloneElement,\n type HTMLAttributes,\n isValidElement,\n memo,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useId,\n useSyncExternalStore,\n} from 'react';\n\nimport { CLASSNAMES } from '@/styles/classNames';\n\nimport { getServerSnapshot, getSnapshot, showContextMenu, subscribe } from './store';\nimport { type ContextMenuItem } from './type';\n\nexport type ContextMenuTriggerProps = {\n children: ReactNode;\n /**\n * Menu items to display. Supports lazy rendering via function.\n * When provided, context menu will be automatically shown on right-click.\n */\n items?: ContextMenuItem[] | (() => ContextMenuItem[]);\n /**\n * Custom context menu handler. If `items` is provided, this is optional.\n */\n onContextMenu?: (event: MouseEvent<HTMLElement>) => void;\n} & Omit<HTMLAttributes<HTMLElement>, 'onContextMenu' | 'children'>;\n\nconst styles = {\n trigger: {\n display: 'contents',\n },\n};\n\nexport const ContextMenuTrigger = memo<ContextMenuTriggerProps>(\n ({ children, items, onContextMenu, ...rest }) => {\n const triggerId = useId();\n const state = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n const open = state.open && state.triggerId === triggerId;\n\n const handleContextMenu = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n if (items) {\n event.preventDefault();\n const resolvedItems = typeof items === 'function' ? items() : items;\n showContextMenu(resolvedItems);\n }\n onContextMenu?.(event);\n },\n [items, onContextMenu],\n );\n\n const triggerProps = {\n ...rest,\n 'aria-expanded': open || undefined,\n 'className': clsx(CLASSNAMES.ContextTrigger, rest.className),\n 'data-contextmenu-trigger': triggerId,\n 'data-popup-open': open ? '' : undefined,\n 'data-state': open ? 'open' : undefined,\n 'onContextMenu': handleContextMenu,\n };\n\n if (isValidElement(children) && React.Children.only(children)) {\n return cloneElement(children, mergeProps(children.props as any, triggerProps));\n }\n\n return (\n <span style={styles.trigger} {...triggerProps}>\n {children}\n </span>\n );\n },\n);\n\nContextMenuTrigger.displayName = 'ContextMenuTrigger';\n"],"mappings":";;;;;;;;;;AAkCA,MAAM,SAAS,EACb,SAAS,EACP,SAAS,YACV,EACF;AAED,MAAa,qBAAqB,MAC/B,EAAE,UAAU,OAAO,eAAe,GAAG,WAAW;CAC/C,MAAM,YAAY,OAAO;CACzB,MAAM,QAAQ,qBAAqB,WAAW,aAAa,kBAAkB;CAC7E,MAAM,OAAO,MAAM,QAAQ,MAAM,cAAc;CAE/C,MAAM,oBAAoB,aACvB,UAAmC;AAClC,MAAI,OAAO;AACT,SAAM,gBAAgB;AAEtB,mBADsB,OAAO,UAAU,aAAa,OAAO,GAAG,MAChC;;AAEhC,kBAAgB,MAAM;IAExB,CAAC,OAAO,cAAc,CACvB;CAED,MAAM,eAAe;EACnB,GAAG;EACH,iBAAiB,QAAQ;EACzB,aAAa,KAAK,WAAW,gBAAgB,KAAK,UAAU;EAC5D,4BAA4B;EAC5B,mBAAmB,OAAO,KAAK;EAC/B,cAAc,OAAO,SAAS;EAC9B,iBAAiB;EAClB;AAED,KAAI,eAAe,SAAS,IAAI,MAAM,SAAS,KAAK,SAAS,CAC3D,QAAO,aAAa,UAAU,WAAW,SAAS,OAAc,aAAa,CAAC;AAGhF,QACE,oBAAC;EAAK,OAAO,OAAO;EAAS,GAAI;EAC9B;GACI;EAGZ;AAED,mBAAmB,cAAc"}
@@ -1,4 +1,4 @@
1
- import { IconSpaceMode } from "../Menu/renderUtils.mjs";
1
+ import { IconAlign, IconSpaceMode } from "../Menu/renderUtils.mjs";
2
2
  import "../Menu/index.mjs";
3
3
  import "./type.mjs";
4
4
  import { ReactNode } from "react";
@@ -15,8 +15,8 @@ import { ContextMenu } from "@base-ui/react/context-menu";
15
15
  const EmptyMenuItem = memo(() => {
16
16
  const { t } = useTranslation(common_default);
17
17
  return /* @__PURE__ */ jsx(ContextMenu.Item, {
18
- className: cx(styles.item, styles.empty),
19
18
  disabled: true,
19
+ className: cx(styles.item, styles.empty),
20
20
  children: /* @__PURE__ */ jsx("div", {
21
21
  className: styles.itemContent,
22
22
  children: /* @__PURE__ */ jsx("span", {
@@ -47,32 +47,44 @@ const ContextMenuSwitchItemInternal = ({ checked: checkedProp, children, closeOn
47
47
  children: [children, /* @__PURE__ */ jsx(Switch, {
48
48
  checked,
49
49
  disabled,
50
- onChange: handleCheckedChange,
51
- onClick: (_, e) => e.stopPropagation(),
52
50
  size: "small",
53
- style: { marginInlineStart: 16 }
51
+ style: { marginInlineStart: 16 },
52
+ onChange: handleCheckedChange,
53
+ onClick: (_, e) => e.stopPropagation()
54
54
  })]
55
55
  });
56
56
  };
57
57
  const renderItemContent = (item, options, iconNode) => {
58
58
  const label = getItemLabel(item);
59
+ const desc = "desc" in item ? item.desc : void 0;
59
60
  const extra = "extra" in item ? item.extra : void 0;
60
61
  const indicatorOnRight = options?.indicatorOnRight;
62
+ const alignStart = Boolean(desc) && options?.iconAlign === "start";
61
63
  const hasCustomIcon = iconNode !== void 0 && !indicatorOnRight;
62
64
  const hasIcon = hasCustomIcon ? Boolean(iconNode) : Boolean(item.icon);
63
65
  const shouldRenderIcon = hasCustomIcon ? Boolean(options?.reserveIconSpace || iconNode) : Boolean(hasIcon || options?.reserveIconSpace);
66
+ const labelNode = desc ? /* @__PURE__ */ jsxs("div", {
67
+ className: styles.labelGroup,
68
+ children: [/* @__PURE__ */ jsx("span", {
69
+ className: styles.label,
70
+ children: label
71
+ }), /* @__PURE__ */ jsx("span", {
72
+ className: styles.desc,
73
+ children: desc
74
+ })]
75
+ }) : /* @__PURE__ */ jsx("span", {
76
+ className: styles.label,
77
+ children: label
78
+ });
64
79
  return /* @__PURE__ */ jsxs("div", {
65
- className: styles.itemContent,
80
+ className: cx(styles.itemContent, alignStart && styles.itemContentAlignStart),
66
81
  children: [
67
82
  shouldRenderIcon ? /* @__PURE__ */ jsx("span", {
68
83
  "aria-hidden": !hasIcon,
69
- className: styles.icon,
84
+ className: cx(styles.icon, alignStart && styles.iconAlignStart),
70
85
  children: hasCustomIcon ? iconNode : hasIcon ? renderIcon(item.icon, "small") : null
71
86
  }) : null,
72
- /* @__PURE__ */ jsx("span", {
73
- className: styles.label,
74
- children: label
75
- }),
87
+ labelNode,
76
88
  extra ? /* @__PURE__ */ jsx("span", {
77
89
  className: styles.extra,
78
90
  children: extra
@@ -97,6 +109,7 @@ const invokeItemClick = (item, keyPath, event) => {
97
109
  item.onClick(info);
98
110
  };
99
111
  const renderContextMenuItems = (items, keyPath = [], options) => {
112
+ const iconAlign = options?.iconAlign;
100
113
  const iconSpaceMode = options?.iconSpaceMode ?? "global";
101
114
  const reserveIconSpace = options?.reserveIconSpace ?? hasAnyIcon(items, iconSpaceMode === "global");
102
115
  const indicatorOnRight = options?.indicatorOnRight ?? hasCheckboxAndIcon(items);
@@ -122,6 +135,7 @@ const renderContextMenuItems = (items, keyPath = [], options) => {
122
135
  label: labelText$1,
123
136
  onCheckedChange: (checked) => checkboxItem.onCheckedChange?.(checked),
124
137
  children: renderItemContent(checkboxItem, {
138
+ iconAlign,
125
139
  indicatorOnRight,
126
140
  reserveIconSpace
127
141
  }, indicator)
@@ -140,7 +154,10 @@ const renderContextMenuItems = (items, keyPath = [], options) => {
140
154
  disabled: switchItem.disabled,
141
155
  label: labelText$1,
142
156
  onCheckedChange: switchItem.onCheckedChange,
143
- children: renderItemContent(switchItem, { reserveIconSpace })
157
+ children: renderItemContent(switchItem, {
158
+ iconAlign,
159
+ reserveIconSpace
160
+ })
144
161
  }, itemKey);
145
162
  }
146
163
  if (item.type === "divider") return /* @__PURE__ */ jsx(ContextMenu.Separator, { className: styles.separator }, itemKey);
@@ -152,6 +169,7 @@ const renderContextMenuItems = (items, keyPath = [], options) => {
152
169
  className: styles.groupLabel,
153
170
  children: group.label
154
171
  }) : null, group.children ? renderContextMenuItems(group.children, nextKeyPath, {
172
+ iconAlign,
155
173
  iconSpaceMode,
156
174
  indicatorOnRight: groupIndicatorOnRight,
157
175
  reserveIconSpace: groupReserveIconSpace
@@ -167,6 +185,7 @@ const renderContextMenuItems = (items, keyPath = [], options) => {
167
185
  disabled: submenu.disabled,
168
186
  label: labelText$1,
169
187
  children: renderItemContent(submenu, {
188
+ iconAlign,
170
189
  reserveIconSpace,
171
190
  submenu: true
172
191
  })
@@ -174,11 +193,14 @@ const renderContextMenuItems = (items, keyPath = [], options) => {
174
193
  alignOffset: -4,
175
194
  className: styles.positioner,
176
195
  "data-submenu": "",
177
- onContextMenu: preventDefaultAndStopPropagation,
178
196
  sideOffset: -1,
197
+ onContextMenu: preventDefaultAndStopPropagation,
179
198
  children: /* @__PURE__ */ jsx(ContextMenu.Popup, {
180
199
  className: styles.popup,
181
- children: submenu.children && submenu.children.length > 0 ? renderContextMenuItems(submenu.children, nextKeyPath, { iconSpaceMode }) : /* @__PURE__ */ jsx(EmptyMenuItem, {})
200
+ children: submenu.children && submenu.children.length > 0 ? renderContextMenuItems(submenu.children, nextKeyPath, {
201
+ iconAlign,
202
+ iconSpaceMode
203
+ }) : /* @__PURE__ */ jsx(EmptyMenuItem, {})
182
204
  })
183
205
  }) })] }, itemKey);
184
206
  }
@@ -192,7 +214,10 @@ const renderContextMenuItems = (items, keyPath = [], options) => {
192
214
  disabled: menuItem.disabled,
193
215
  label: labelText,
194
216
  onClick: (event) => invokeItemClick(menuItem, nextKeyPath, event),
195
- children: renderItemContent(menuItem, { reserveIconSpace })
217
+ children: renderItemContent(menuItem, {
218
+ iconAlign,
219
+ reserveIconSpace
220
+ })
196
221
  }, itemKey);
197
222
  });
198
223
  };