@lobehub/ui 5.51.2 → 5.53.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 (325) hide show
  1. package/es/Accordion/Accordion.mjs +1 -1
  2. package/es/Accordion/Accordion.mjs.map +1 -1
  3. package/es/ActionIconGroup/type.d.mts +2 -1
  4. package/es/Alert/Alert.mjs +1 -1
  5. package/es/AutoComplete/Select.mjs +1 -1
  6. package/es/Avatar/Avatar.mjs +2 -2
  7. package/es/Burger/Burger.mjs +2 -2
  8. package/es/Burger/Burger.mjs.map +1 -1
  9. package/es/Button/Button.mjs +1 -1
  10. package/es/CodeDiff/DiffPanel.mjs +1 -1
  11. package/es/CodeDiff/DiffPanel.mjs.map +1 -1
  12. package/es/Collapse/Collapse.mjs +1 -1
  13. package/es/ColorSwatches/ColorSwatches.mjs +21 -21
  14. package/es/ColorSwatches/ColorSwatches.mjs.map +1 -1
  15. package/es/ColorSwatches/style.mjs +3 -12
  16. package/es/ColorSwatches/style.mjs.map +1 -1
  17. package/es/DatePicker/DatePicker.mjs +1 -1
  18. package/es/DraggablePanel/DraggablePanel.mjs +1 -1
  19. package/es/Drawer/Drawer.mjs +1 -1
  20. package/es/EditableText/ControlInput.d.mts +2 -2
  21. package/es/EditableText/ControlInput.mjs +1 -1
  22. package/es/EditableText/ControlInput.mjs.map +1 -1
  23. package/es/EditableText/EditableText.mjs +1 -0
  24. package/es/EditableText/EditableText.mjs.map +1 -1
  25. package/es/EditableText/type.d.mts +5 -1
  26. package/es/EmojiPicker/AvatarUploader.mjs +76 -71
  27. package/es/EmojiPicker/AvatarUploader.mjs.map +1 -1
  28. package/es/EmojiPicker/EmojiPicker.mjs +12 -6
  29. package/es/EmojiPicker/EmojiPicker.mjs.map +1 -1
  30. package/es/EmojiPicker/style.mjs +32 -9
  31. package/es/EmojiPicker/style.mjs.map +1 -1
  32. package/es/EmojiPicker/type.d.mts +2 -1
  33. package/es/Form/Form.mjs +1 -1
  34. package/es/Form/components/FormDivider.mjs +1 -1
  35. package/es/Form/components/FormItem.mjs +1 -1
  36. package/es/Form/components/FormSubmitFooter.mjs +1 -1
  37. package/es/Form/components/FormTitle.mjs +1 -1
  38. package/es/GroupAvatar/GroupAvatar.mjs +1 -1
  39. package/es/GroupAvatar/GroupAvatar.mjs.map +1 -1
  40. package/es/GroupAvatar/type.d.mts +2 -1
  41. package/es/Highlighter/Highlighter.mjs +1 -1
  42. package/es/Highlighter/Highlighter.mjs.map +1 -1
  43. package/es/Highlighter/LangSelect.mjs +23 -13
  44. package/es/Highlighter/LangSelect.mjs.map +1 -1
  45. package/es/Highlighter/style.mjs +1 -1
  46. package/es/Highlighter/style.mjs.map +1 -1
  47. package/es/HtmlPreview/HtmlPreview.mjs +28 -1
  48. package/es/HtmlPreview/HtmlPreview.mjs.map +1 -1
  49. package/es/Image/viewer/ImageViewer.mjs +1 -1
  50. package/es/Image/viewer/ImageViewer.mjs.map +1 -1
  51. package/es/Image/viewer/Toolbar.mjs +1 -1
  52. package/es/Input/Input.mjs +1 -1
  53. package/es/Input/InputNumber.mjs +1 -1
  54. package/es/Input/InputOPT.mjs +1 -1
  55. package/es/Input/InputPassword.mjs +1 -1
  56. package/es/Input/TextArea.mjs +1 -1
  57. package/es/Menu/Menu.mjs +1 -1
  58. package/es/Menu/index.d.mts +2 -1
  59. package/es/Menu/index.mjs +1 -1
  60. package/es/Menu/itemInterface.d.mts +71 -0
  61. package/es/Menu/type.d.mts +8 -8
  62. package/es/Mermaid/Mermaid.mjs +1 -1
  63. package/es/Mermaid/Mermaid.mjs.map +1 -1
  64. package/es/Modal/Modal.mjs +1 -1
  65. package/es/SearchBar/SearchBar.mjs +1 -1
  66. package/es/SearchBar/SearchBar.mjs.map +1 -1
  67. package/es/SearchBar/type.d.mts +2 -2
  68. package/es/Segmented/Segmented.mjs +1 -1
  69. package/es/Select/Select.mjs +1 -1
  70. package/es/SliderWithInput/SliderWithInput.mjs +1 -1
  71. package/es/Tabs/Tabs.mjs +1 -1
  72. package/es/Tag/Tag.mjs +1 -1
  73. package/es/ThemeProvider/ConfigProvider.mjs +1 -1
  74. package/es/ThemeProvider/ThemeProvider.mjs +1 -1
  75. package/es/ThemeSwitch/ThemeSwitch.mjs +1 -1
  76. package/es/Toc/Toc.mjs +1 -1
  77. package/es/Toc/TocMobile.mjs +1 -1
  78. package/es/awesome/AgentSkillCard/AgentSkillCard.mjs +1 -1
  79. package/es/awesome/Hero/Hero.mjs +1 -1
  80. package/es/awesome/LandingSection/LandingSection.mjs +1 -1
  81. package/es/base-ui/Anchor/Anchor.d.mts +6 -0
  82. package/es/base-ui/Anchor/Anchor.mjs +141 -0
  83. package/es/base-ui/Anchor/Anchor.mjs.map +1 -0
  84. package/es/base-ui/Anchor/index.d.mts +3 -0
  85. package/es/base-ui/Anchor/style.mjs +80 -0
  86. package/es/base-ui/Anchor/style.mjs.map +1 -0
  87. package/es/base-ui/Anchor/type.d.mts +20 -0
  88. package/es/base-ui/AutoComplete/AutoComplete.mjs.map +1 -1
  89. package/es/base-ui/Avatar/Avatar.mjs +1 -1
  90. package/es/base-ui/Breadcrumb/Breadcrumb.d.mts +6 -0
  91. package/es/base-ui/Breadcrumb/Breadcrumb.mjs +58 -0
  92. package/es/base-ui/Breadcrumb/Breadcrumb.mjs.map +1 -0
  93. package/es/base-ui/Breadcrumb/index.d.mts +3 -0
  94. package/es/base-ui/Breadcrumb/style.mjs +65 -0
  95. package/es/base-ui/Breadcrumb/style.mjs.map +1 -0
  96. package/es/base-ui/Breadcrumb/type.d.mts +24 -0
  97. package/es/base-ui/Burger/Burger.d.mts +6 -0
  98. package/es/base-ui/Burger/Burger.mjs +69 -0
  99. package/es/base-ui/Burger/Burger.mjs.map +1 -0
  100. package/es/base-ui/Burger/index.d.mts +3 -0
  101. package/es/base-ui/Burger/style.mjs +63 -0
  102. package/es/base-ui/Burger/style.mjs.map +1 -0
  103. package/es/base-ui/Burger/type.d.mts +23 -0
  104. package/es/base-ui/Carousel/Carousel.d.mts +6 -0
  105. package/es/base-ui/Carousel/Carousel.mjs +157 -0
  106. package/es/base-ui/Carousel/Carousel.mjs.map +1 -0
  107. package/es/base-ui/Carousel/index.d.mts +3 -0
  108. package/es/base-ui/Carousel/style.mjs +88 -0
  109. package/es/base-ui/Carousel/style.mjs.map +1 -0
  110. package/es/base-ui/Carousel/type.d.mts +23 -0
  111. package/es/base-ui/ColorPicker/ColorPicker.d.mts +6 -0
  112. package/es/base-ui/ColorPicker/ColorPicker.mjs +227 -0
  113. package/es/base-ui/ColorPicker/ColorPicker.mjs.map +1 -0
  114. package/es/base-ui/ColorPicker/SaturationArea.mjs +64 -0
  115. package/es/base-ui/ColorPicker/SaturationArea.mjs.map +1 -0
  116. package/es/base-ui/ColorPicker/color.mjs +28 -0
  117. package/es/base-ui/ColorPicker/color.mjs.map +1 -0
  118. package/es/base-ui/ColorPicker/index.d.mts +3 -0
  119. package/es/base-ui/ColorPicker/style.mjs +180 -0
  120. package/es/base-ui/ColorPicker/style.mjs.map +1 -0
  121. package/es/base-ui/ColorPicker/type.d.mts +20 -0
  122. package/es/base-ui/ContextMenu/ContextMenuHost.mjs.map +1 -1
  123. package/es/base-ui/ContextMenu/renderItems.d.mts +0 -1
  124. package/es/base-ui/ContextMenu/renderItems.mjs.map +1 -1
  125. package/es/base-ui/DatePicker/CalendarPanel.mjs +188 -0
  126. package/es/base-ui/DatePicker/CalendarPanel.mjs.map +1 -0
  127. package/es/base-ui/DatePicker/DatePicker.d.mts +6 -0
  128. package/es/base-ui/DatePicker/DatePicker.mjs +88 -0
  129. package/es/base-ui/DatePicker/DatePicker.mjs.map +1 -0
  130. package/es/base-ui/DatePicker/DateRangePicker.d.mts +6 -0
  131. package/es/base-ui/DatePicker/DateRangePicker.mjs +128 -0
  132. package/es/base-ui/DatePicker/DateRangePicker.mjs.map +1 -0
  133. package/es/base-ui/DatePicker/PickerShell.mjs +43 -0
  134. package/es/base-ui/DatePicker/PickerShell.mjs.map +1 -0
  135. package/es/base-ui/DatePicker/calendar.d.mts +5 -0
  136. package/es/base-ui/DatePicker/calendar.mjs +46 -0
  137. package/es/base-ui/DatePicker/calendar.mjs.map +1 -0
  138. package/es/base-ui/DatePicker/index.d.mts +5 -0
  139. package/es/base-ui/DatePicker/style.mjs +193 -0
  140. package/es/base-ui/DatePicker/style.mjs.map +1 -0
  141. package/es/base-ui/DatePicker/type.d.mts +35 -0
  142. package/es/base-ui/Descriptions/Descriptions.d.mts +6 -0
  143. package/es/base-ui/Descriptions/Descriptions.mjs +62 -0
  144. package/es/base-ui/Descriptions/Descriptions.mjs.map +1 -0
  145. package/es/base-ui/Descriptions/index.d.mts +3 -0
  146. package/es/base-ui/Descriptions/style.mjs +64 -0
  147. package/es/base-ui/Descriptions/style.mjs.map +1 -0
  148. package/es/base-ui/Descriptions/type.d.mts +28 -0
  149. package/es/base-ui/Divider/Divider.d.mts +6 -0
  150. package/es/base-ui/Divider/Divider.mjs +30 -0
  151. package/es/base-ui/Divider/Divider.mjs.map +1 -0
  152. package/es/base-ui/Divider/index.d.mts +3 -0
  153. package/es/base-ui/Divider/style.mjs +59 -0
  154. package/es/base-ui/Divider/style.mjs.map +1 -0
  155. package/es/base-ui/Divider/type.d.mts +12 -0
  156. package/es/base-ui/Drawer/atoms.mjs.map +1 -1
  157. package/es/base-ui/DropdownMenu/atoms.mjs +1 -1
  158. package/es/base-ui/DropdownMenu/atoms.mjs.map +1 -1
  159. package/es/base-ui/DropdownMenu/renderItems.d.mts +0 -1
  160. package/es/base-ui/DropdownMenu/renderItems.mjs.map +1 -1
  161. package/es/base-ui/Form/components/FormTitle.mjs +1 -1
  162. package/es/base-ui/Form/components/FormTitle.mjs.map +1 -1
  163. package/es/base-ui/Form/type.d.mts +2 -2
  164. package/es/base-ui/Input/ClearButton.mjs +32 -0
  165. package/es/base-ui/Input/ClearButton.mjs.map +1 -0
  166. package/es/base-ui/Input/Input.mjs +30 -4
  167. package/es/base-ui/Input/Input.mjs.map +1 -1
  168. package/es/base-ui/Input/InputNumber.mjs +43 -22
  169. package/es/base-ui/Input/InputNumber.mjs.map +1 -1
  170. package/es/base-ui/Input/TextArea.mjs +50 -13
  171. package/es/base-ui/Input/TextArea.mjs.map +1 -1
  172. package/es/base-ui/Input/clearNativeValue.mjs +12 -0
  173. package/es/base-ui/Input/clearNativeValue.mjs.map +1 -0
  174. package/es/base-ui/Input/pressEnter.mjs +6 -0
  175. package/es/base-ui/Input/pressEnter.mjs.map +1 -0
  176. package/es/base-ui/Input/style.d.mts +5 -1
  177. package/es/base-ui/Input/style.mjs +67 -4
  178. package/es/base-ui/Input/style.mjs.map +1 -1
  179. package/es/base-ui/Input/type.d.mts +13 -2
  180. package/es/base-ui/List/List.d.mts +6 -0
  181. package/es/base-ui/List/List.mjs +50 -0
  182. package/es/base-ui/List/List.mjs.map +1 -0
  183. package/es/base-ui/List/ListRow.mjs +74 -0
  184. package/es/base-ui/List/ListRow.mjs.map +1 -0
  185. package/es/base-ui/List/index.d.mts +3 -0
  186. package/es/base-ui/List/style.mjs +146 -0
  187. package/es/base-ui/List/style.mjs.map +1 -0
  188. package/es/base-ui/List/type.d.mts +48 -0
  189. package/es/base-ui/Modal/atoms.mjs.map +1 -1
  190. package/es/base-ui/Modal/imperative.mjs +1 -1
  191. package/es/base-ui/Modal/imperative.mjs.map +1 -1
  192. package/es/base-ui/Modal/type.d.mts +1 -0
  193. package/es/base-ui/Popover/PopoverPortal.mjs.map +1 -1
  194. package/es/base-ui/Progress/Progress.mjs +16 -14
  195. package/es/base-ui/Progress/Progress.mjs.map +1 -1
  196. package/es/base-ui/Progress/style.mjs +16 -25
  197. package/es/base-ui/Progress/style.mjs.map +1 -1
  198. package/es/base-ui/QRCode/QRCode.d.mts +6 -0
  199. package/es/base-ui/QRCode/QRCode.mjs +105 -0
  200. package/es/base-ui/QRCode/QRCode.mjs.map +1 -0
  201. package/es/base-ui/QRCode/index.d.mts +3 -0
  202. package/es/base-ui/QRCode/qrPath.mjs +16 -0
  203. package/es/base-ui/QRCode/qrPath.mjs.map +1 -0
  204. package/es/base-ui/QRCode/style.mjs +52 -0
  205. package/es/base-ui/QRCode/style.mjs.map +1 -0
  206. package/es/base-ui/QRCode/type.d.mts +19 -0
  207. package/es/base-ui/Rate/Rate.d.mts +6 -0
  208. package/es/base-ui/Rate/Rate.mjs +111 -0
  209. package/es/base-ui/Rate/Rate.mjs.map +1 -0
  210. package/es/base-ui/Rate/index.d.mts +3 -0
  211. package/es/base-ui/Rate/style.mjs +81 -0
  212. package/es/base-ui/Rate/style.mjs.map +1 -0
  213. package/es/base-ui/Rate/type.d.mts +19 -0
  214. package/es/base-ui/Select/atoms.mjs.map +1 -1
  215. package/es/base-ui/Select/hooks.mjs.map +1 -1
  216. package/es/base-ui/Statistic/Statistic.d.mts +6 -0
  217. package/es/base-ui/Statistic/Statistic.mjs +42 -0
  218. package/es/base-ui/Statistic/Statistic.mjs.map +1 -0
  219. package/es/base-ui/Statistic/formatValue.d.mts +5 -0
  220. package/es/base-ui/Statistic/formatValue.mjs +23 -0
  221. package/es/base-ui/Statistic/formatValue.mjs.map +1 -0
  222. package/es/base-ui/Statistic/index.d.mts +4 -0
  223. package/es/base-ui/Statistic/style.mjs +34 -0
  224. package/es/base-ui/Statistic/style.mjs.map +1 -0
  225. package/es/base-ui/Statistic/type.d.mts +23 -0
  226. package/es/base-ui/Steps/Steps.d.mts +6 -0
  227. package/es/base-ui/Steps/Steps.mjs +74 -0
  228. package/es/base-ui/Steps/Steps.mjs.map +1 -0
  229. package/es/base-ui/Steps/index.d.mts +3 -0
  230. package/es/base-ui/Steps/style.mjs +155 -0
  231. package/es/base-ui/Steps/style.mjs.map +1 -0
  232. package/es/base-ui/Steps/type.d.mts +32 -0
  233. package/es/base-ui/Table/FilterMenu.mjs +45 -0
  234. package/es/base-ui/Table/FilterMenu.mjs.map +1 -0
  235. package/es/base-ui/Table/Table.d.mts +10 -0
  236. package/es/base-ui/Table/Table.mjs +134 -0
  237. package/es/base-ui/Table/Table.mjs.map +1 -0
  238. package/es/base-ui/Table/TableBody.mjs +59 -0
  239. package/es/base-ui/Table/TableBody.mjs.map +1 -0
  240. package/es/base-ui/Table/TableHead.mjs +50 -0
  241. package/es/base-ui/Table/TableHead.mjs.map +1 -0
  242. package/es/base-ui/Table/features.mjs +12 -0
  243. package/es/base-ui/Table/features.mjs.map +1 -0
  244. package/es/base-ui/Table/fixedOffsets.mjs +29 -0
  245. package/es/base-ui/Table/fixedOffsets.mjs.map +1 -0
  246. package/es/base-ui/Table/index.d.mts +3 -0
  247. package/es/base-ui/Table/style.mjs +168 -0
  248. package/es/base-ui/Table/style.mjs.map +1 -0
  249. package/es/base-ui/Table/toColumnDefs.mjs +26 -0
  250. package/es/base-ui/Table/toColumnDefs.mjs.map +1 -0
  251. package/es/base-ui/Table/type.d.mts +68 -0
  252. package/es/base-ui/Table/useTableState.mjs +99 -0
  253. package/es/base-ui/Table/useTableState.mjs.map +1 -0
  254. package/es/base-ui/Toast/imperative.mjs.map +1 -1
  255. package/es/base-ui/Tooltip/TooltipGroup.mjs.map +1 -1
  256. package/es/base-ui/Tooltip/TooltipStandalone.mjs.map +1 -1
  257. package/es/base-ui/index.d.mts +66 -21
  258. package/es/base-ui/index.mjs +42 -26
  259. package/es/base-ui/panelStyles.mjs +95 -0
  260. package/es/base-ui/panelStyles.mjs.map +1 -0
  261. package/es/chat/ChatList/components/HistoryDivider.mjs +9 -6
  262. package/es/chat/ChatList/components/HistoryDivider.mjs.map +1 -1
  263. package/es/chat/MessageModal/MessageModal.mjs +1 -1
  264. package/es/chat/TokenTag/TokenTag.mjs +1 -1
  265. package/es/color/CssVar/VarRow.mjs +1 -1
  266. package/es/color/CssVar/index.mjs +1 -1
  267. package/es/dashboard/FilterSidebar/FilterSidebar.mjs +1 -1
  268. package/es/eslint/index.mjs +100 -0
  269. package/es/eslint/index.mjs.map +1 -1
  270. package/es/i18n/resources/en/burger.d.mts +8 -0
  271. package/es/i18n/resources/en/burger.mjs +9 -0
  272. package/es/i18n/resources/en/burger.mjs.map +1 -0
  273. package/es/i18n/resources/en/colorPicker.d.mts +12 -0
  274. package/es/i18n/resources/en/colorPicker.mjs +13 -0
  275. package/es/i18n/resources/en/colorPicker.mjs.map +1 -0
  276. package/es/i18n/resources/en/common.d.mts +1 -0
  277. package/es/i18n/resources/en/common.mjs +1 -0
  278. package/es/i18n/resources/en/common.mjs.map +1 -1
  279. package/es/i18n/resources/en/datePicker.d.mts +13 -0
  280. package/es/i18n/resources/en/datePicker.mjs +14 -0
  281. package/es/i18n/resources/en/datePicker.mjs.map +1 -0
  282. package/es/i18n/resources/en/index.d.mts +15 -11
  283. package/es/i18n/resources/en/index.mjs +9 -1
  284. package/es/i18n/resources/en/index.mjs.map +1 -1
  285. package/es/i18n/resources/en/qrCode.d.mts +9 -0
  286. package/es/i18n/resources/en/qrCode.mjs +10 -0
  287. package/es/i18n/resources/en/qrCode.mjs.map +1 -0
  288. package/es/i18n/resources/zhCn/burger.d.mts +8 -0
  289. package/es/i18n/resources/zhCn/burger.mjs +9 -0
  290. package/es/i18n/resources/zhCn/burger.mjs.map +1 -0
  291. package/es/i18n/resources/zhCn/colorPicker.d.mts +12 -0
  292. package/es/i18n/resources/zhCn/colorPicker.mjs +13 -0
  293. package/es/i18n/resources/zhCn/colorPicker.mjs.map +1 -0
  294. package/es/i18n/resources/zhCn/common.d.mts +1 -0
  295. package/es/i18n/resources/zhCn/common.mjs +1 -0
  296. package/es/i18n/resources/zhCn/common.mjs.map +1 -1
  297. package/es/i18n/resources/zhCn/datePicker.d.mts +13 -0
  298. package/es/i18n/resources/zhCn/datePicker.mjs +14 -0
  299. package/es/i18n/resources/zhCn/datePicker.mjs.map +1 -0
  300. package/es/i18n/resources/zhCn/index.d.mts +15 -11
  301. package/es/i18n/resources/zhCn/index.mjs +9 -1
  302. package/es/i18n/resources/zhCn/index.mjs.map +1 -1
  303. package/es/i18n/resources/zhCn/qrCode.d.mts +9 -0
  304. package/es/i18n/resources/zhCn/qrCode.mjs +10 -0
  305. package/es/i18n/resources/zhCn/qrCode.mjs.map +1 -0
  306. package/es/i18n/types.d.mts +14 -10
  307. package/es/index.d.mts +12 -11
  308. package/es/index.mjs +23 -23
  309. package/es/mdx/Cards/Card.d.mts +2 -2
  310. package/es/mdx/Cards/Card.mjs +1 -1
  311. package/es/mdx/Cards/Card.mjs.map +1 -1
  312. package/es/mdx/Mdx/index.mjs +1 -1
  313. package/es/mdx/Mdx/index.mjs.map +1 -1
  314. package/es/mdx/Tabs/index.d.mts +2 -2
  315. package/es/mdx/Tabs/index.mjs +7 -2
  316. package/es/mdx/Tabs/index.mjs.map +1 -1
  317. package/es/mdx/Tabs/style.mjs +33 -1
  318. package/es/mdx/Tabs/style.mjs.map +1 -1
  319. package/es/mdx/mdxComponents/Citation/PopoverPanel.mjs +1 -1
  320. package/es/mdx/mdxComponents/Citation/PopoverPanel.mjs.map +1 -1
  321. package/es/node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/lib/index.mjs.map +1 -1
  322. package/es/static-css/baseline.mjs +1 -4
  323. package/es/static-css/baseline.mjs.map +1 -1
  324. package/es/static-css/buildAntdStaticCss.mjs +1 -1
  325. package/package.json +3 -1
@@ -1,9 +1,9 @@
1
1
  "use client";
2
+ import Divider from "../base-ui/Divider/Divider.mjs";
2
3
  import { AccordionConfigContext, AccordionItemStateProvider } from "./context.mjs";
3
4
  import { styles } from "./style.mjs";
4
5
  import { Children, Fragment, isValidElement, memo, useCallback, useMemo, useRef } from "react";
5
6
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
6
- import { Divider } from "antd";
7
7
  import { cx } from "antd-style";
8
8
  import { LayoutGroup } from "motion/react";
9
9
  import useMergeState from "use-merge-value";
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.mjs","names":[],"sources":["../../src/Accordion/Accordion.tsx"],"sourcesContent":["'use client';\n\nimport { Divider } from 'antd';\nimport { cx } from 'antd-style';\nimport { LayoutGroup } from 'motion/react';\nimport { type Key } from 'react';\nimport { Children, Fragment, isValidElement, memo, useCallback, useMemo, useRef } from 'react';\nimport useMergeState from 'use-merge-value';\n\nimport { AccordionConfigContext, AccordionItemStateProvider } from './context';\nimport { styles } from './style';\nimport { type AccordionProps } from './type';\n\nconst Accordion = memo<AccordionProps>(\n ({\n children,\n className: userClassName,\n style: userStyle,\n accordion = false,\n defaultExpandedKeys,\n expandedKeys: expandedKeysProp,\n onExpandedChange,\n variant = 'borderless',\n gap,\n showDivider = false,\n disableAnimation = false,\n hideIndicator = false,\n indicatorPlacement = 'start',\n keepContentMounted = true,\n classNames,\n styles: customStyles,\n motionProps,\n ref,\n ...rest\n }) => {\n // Convert children to array and filter valid elements\n const validChildren = Children.toArray(children).filter(isValidElement);\n\n // Collect all item keys\n const allItemKeys = validChildren.map((child, index) => (child.props as any).itemKey || index);\n\n // If defaultExpandedKeys or expandedKeys is undefined, expand all items by default\n const initialExpandedKeys = defaultExpandedKeys ?? allItemKeys;\n\n const [expandedKeys, setExpandedKeys] = useMergeState<Key[]>(initialExpandedKeys, {\n onChange: onExpandedChange,\n value: expandedKeysProp,\n });\n\n // Hold expandedKeys and setExpandedKeys via refs so toggleExpand can stay\n // reference-stable. use-merge-value's setter is recreated on every render,\n // so depending on it would force AccordionItemStateProvider's memoized\n // value to change identity each render — even when nothing toggled —\n // re-rendering every nested AccordionItem via \"context changed\".\n const expandedKeysRef = useRef(expandedKeys);\n expandedKeysRef.current = expandedKeys;\n const setExpandedKeysRef = useRef(setExpandedKeys);\n setExpandedKeysRef.current = setExpandedKeys;\n\n const isOpenKey = useCallback((key: Key) => expandedKeysRef.current.includes(key), []);\n\n const toggleExpand = useCallback(\n (key: Key) => {\n const prev = expandedKeysRef.current;\n let newKeys: Key[];\n\n if (accordion) {\n newKeys = prev.includes(key) ? [] : [key];\n } else {\n newKeys = prev.includes(key) ? prev.filter((k: Key) => k !== key) : [...prev, key];\n }\n\n setExpandedKeysRef.current(newKeys);\n },\n [accordion],\n );\n\n const toggleExpandKeys = useCallback(\n (keys: Key[], preferredKey: Key) => {\n const prev = expandedKeysRef.current;\n const isOpen = keys.some((key) => prev.includes(key));\n let newKeys: Key[];\n\n if (accordion) {\n newKeys = isOpen ? [] : [preferredKey];\n } else {\n newKeys = isOpen\n ? prev.filter((key: Key) => !keys.includes(key))\n : [...prev, preferredKey];\n }\n\n setExpandedKeysRef.current(newKeys);\n },\n [accordion],\n );\n\n const configValue = useMemo(\n () => ({\n disableAnimation,\n hideIndicator,\n indicatorPlacement,\n keepContentMounted,\n motionProps,\n showDivider,\n variant,\n }),\n [\n disableAnimation,\n hideIndicator,\n indicatorPlacement,\n keepContentMounted,\n motionProps,\n showDivider,\n variant,\n ],\n );\n\n const hasExplicitExpandedKeys =\n expandedKeysProp !== undefined || defaultExpandedKeys !== undefined;\n\n const content = (\n <>\n {validChildren.map((child, index) => {\n const hasChildItemKey = (child.props as any).itemKey !== undefined;\n const childKey = hasChildItemKey ? (child.props as any).itemKey : index;\n const itemIsOpen = expandedKeys.includes(childKey);\n return (\n <Fragment key={childKey}>\n <AccordionItemStateProvider\n expandedKeys={hasChildItemKey ? undefined : expandedKeys}\n isOpen={itemIsOpen}\n isOpenKey={isOpenKey}\n itemKey={childKey}\n preferProviderKeyForNestedItems={!hasExplicitExpandedKeys}\n onToggleKey={toggleExpand}\n onToggleKeys={toggleExpandKeys}\n >\n {child}\n </AccordionItemStateProvider>\n {showDivider && index < validChildren.length - 1 && (\n <Divider className={styles.divider} />\n )}\n </Fragment>\n );\n })}\n </>\n );\n\n return (\n <AccordionConfigContext value={configValue}>\n <div\n className={cx(styles.base, classNames?.base, userClassName)}\n ref={ref}\n style={{\n gap,\n ...customStyles?.base,\n ...userStyle,\n }}\n {...rest}\n >\n {disableAnimation ? content : <LayoutGroup>{content}</LayoutGroup>}\n </div>\n </AccordionConfigContext>\n );\n },\n);\n\nAccordion.displayName = 'Accordion';\n\nexport default Accordion;\n"],"mappings":";;;;;;;;;;AAaA,MAAM,YAAY,MACf,EACC,UACA,WAAW,eACX,OAAO,WACP,YAAY,OACZ,qBACA,cAAc,kBACd,kBACA,UAAU,cACV,KACA,cAAc,OACd,mBAAmB,OACnB,gBAAgB,OAChB,qBAAqB,SACrB,qBAAqB,MACrB,YACA,QAAQ,cACR,aACA,KACA,GAAG,WACC;CAEJ,MAAM,gBAAgB,SAAS,QAAQ,QAAQ,CAAC,CAAC,OAAO,cAAc;CAGtE,MAAM,cAAc,cAAc,KAAK,OAAO,UAAW,MAAM,MAAc,WAAW,KAAK;CAK7F,MAAM,CAAC,cAAc,mBAAmB,cAFZ,uBAAuB,aAE+B;EAChF,UAAU;EACV,OAAO;CACT,CAAC;CAOD,MAAM,kBAAkB,OAAO,YAAY;CAC3C,gBAAgB,UAAU;CAC1B,MAAM,qBAAqB,OAAO,eAAe;CACjD,mBAAmB,UAAU;CAE7B,MAAM,YAAY,aAAa,QAAa,gBAAgB,QAAQ,SAAS,GAAG,GAAG,CAAC,CAAC;CAErF,MAAM,eAAe,aAClB,QAAa;EACZ,MAAM,OAAO,gBAAgB;EAC7B,IAAI;EAEJ,IAAI,WACF,UAAU,KAAK,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG;OAExC,UAAU,KAAK,SAAS,GAAG,IAAI,KAAK,QAAQ,MAAW,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG;EAGnF,mBAAmB,QAAQ,OAAO;CACpC,GACA,CAAC,SAAS,CACZ;CAEA,MAAM,mBAAmB,aACtB,MAAa,iBAAsB;EAClC,MAAM,OAAO,gBAAgB;EAC7B,MAAM,SAAS,KAAK,MAAM,QAAQ,KAAK,SAAS,GAAG,CAAC;EACpD,IAAI;EAEJ,IAAI,WACF,UAAU,SAAS,CAAC,IAAI,CAAC,YAAY;OAErC,UAAU,SACN,KAAK,QAAQ,QAAa,CAAC,KAAK,SAAS,GAAG,CAAC,IAC7C,CAAC,GAAG,MAAM,YAAY;EAG5B,mBAAmB,QAAQ,OAAO;CACpC,GACA,CAAC,SAAS,CACZ;CAEA,MAAM,cAAc,eACX;EACL;EACA;EACA;EACA;EACA;EACA;EACA;CACF,IACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CACF;CAEA,MAAM,0BACJ,qBAAqB,KAAA,KAAa,wBAAwB,KAAA;CAE5D,MAAM,UACJ,oBAAA,YAAA,EAAA,UACG,cAAc,KAAK,OAAO,UAAU;EACnC,MAAM,kBAAmB,MAAM,MAAc,YAAY,KAAA;EACzD,MAAM,WAAW,kBAAmB,MAAM,MAAc,UAAU;EAClE,MAAM,aAAa,aAAa,SAAS,QAAQ;EACjD,OACE,qBAAC,UAAD,EAAA,UAAA,CACE,oBAAC,4BAAD;GACE,cAAc,kBAAkB,KAAA,IAAY;GAC5C,QAAQ;GACG;GACX,SAAS;GACT,iCAAiC,CAAC;GAClC,aAAa;GACb,cAAc;GAEb,UAAA;EACyB,CAAA,GAC3B,eAAe,QAAQ,cAAc,SAAS,KAC7C,oBAAC,SAAD,EAAS,WAAW,OAAO,QAAU,CAAA,CAE/B,EAAA,GAfK,QAeL;CAEd,CAAC,EACD,CAAA;CAGJ,OACE,oBAAC,wBAAD;EAAwB,OAAO;EAC7B,UAAA,oBAAC,OAAD;GACE,WAAW,GAAG,OAAO,MAAM,YAAY,MAAM,aAAa;GACrD;GACL,OAAO;IACL;IACA,GAAG,cAAc;IACjB,GAAG;GACL;GACA,GAAI;GAEH,UAAA,mBAAmB,UAAU,oBAAC,aAAD,EAAA,UAAc,QAAqB,CAAA;EAC9D,CAAA;CACiB,CAAA;AAE5B,CACF;AAEA,UAAU,cAAc"}
1
+ {"version":3,"file":"Accordion.mjs","names":[],"sources":["../../src/Accordion/Accordion.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { LayoutGroup } from 'motion/react';\nimport { type Key } from 'react';\nimport { Children, Fragment, isValidElement, memo, useCallback, useMemo, useRef } from 'react';\nimport useMergeState from 'use-merge-value';\n\nimport Divider from '@/base-ui/Divider';\n\nimport { AccordionConfigContext, AccordionItemStateProvider } from './context';\nimport { styles } from './style';\nimport { type AccordionProps } from './type';\n\nconst Accordion = memo<AccordionProps>(\n ({\n children,\n className: userClassName,\n style: userStyle,\n accordion = false,\n defaultExpandedKeys,\n expandedKeys: expandedKeysProp,\n onExpandedChange,\n variant = 'borderless',\n gap,\n showDivider = false,\n disableAnimation = false,\n hideIndicator = false,\n indicatorPlacement = 'start',\n keepContentMounted = true,\n classNames,\n styles: customStyles,\n motionProps,\n ref,\n ...rest\n }) => {\n // Convert children to array and filter valid elements\n const validChildren = Children.toArray(children).filter(isValidElement);\n\n // Collect all item keys\n const allItemKeys = validChildren.map((child, index) => (child.props as any).itemKey || index);\n\n // If defaultExpandedKeys or expandedKeys is undefined, expand all items by default\n const initialExpandedKeys = defaultExpandedKeys ?? allItemKeys;\n\n const [expandedKeys, setExpandedKeys] = useMergeState<Key[]>(initialExpandedKeys, {\n onChange: onExpandedChange,\n value: expandedKeysProp,\n });\n\n // Hold expandedKeys and setExpandedKeys via refs so toggleExpand can stay\n // reference-stable. use-merge-value's setter is recreated on every render,\n // so depending on it would force AccordionItemStateProvider's memoized\n // value to change identity each render — even when nothing toggled —\n // re-rendering every nested AccordionItem via \"context changed\".\n const expandedKeysRef = useRef(expandedKeys);\n expandedKeysRef.current = expandedKeys;\n const setExpandedKeysRef = useRef(setExpandedKeys);\n setExpandedKeysRef.current = setExpandedKeys;\n\n const isOpenKey = useCallback((key: Key) => expandedKeysRef.current.includes(key), []);\n\n const toggleExpand = useCallback(\n (key: Key) => {\n const prev = expandedKeysRef.current;\n let newKeys: Key[];\n\n if (accordion) {\n newKeys = prev.includes(key) ? [] : [key];\n } else {\n newKeys = prev.includes(key) ? prev.filter((k: Key) => k !== key) : [...prev, key];\n }\n\n setExpandedKeysRef.current(newKeys);\n },\n [accordion],\n );\n\n const toggleExpandKeys = useCallback(\n (keys: Key[], preferredKey: Key) => {\n const prev = expandedKeysRef.current;\n const isOpen = keys.some((key) => prev.includes(key));\n let newKeys: Key[];\n\n if (accordion) {\n newKeys = isOpen ? [] : [preferredKey];\n } else {\n newKeys = isOpen\n ? prev.filter((key: Key) => !keys.includes(key))\n : [...prev, preferredKey];\n }\n\n setExpandedKeysRef.current(newKeys);\n },\n [accordion],\n );\n\n const configValue = useMemo(\n () => ({\n disableAnimation,\n hideIndicator,\n indicatorPlacement,\n keepContentMounted,\n motionProps,\n showDivider,\n variant,\n }),\n [\n disableAnimation,\n hideIndicator,\n indicatorPlacement,\n keepContentMounted,\n motionProps,\n showDivider,\n variant,\n ],\n );\n\n const hasExplicitExpandedKeys =\n expandedKeysProp !== undefined || defaultExpandedKeys !== undefined;\n\n const content = (\n <>\n {validChildren.map((child, index) => {\n const hasChildItemKey = (child.props as any).itemKey !== undefined;\n const childKey = hasChildItemKey ? (child.props as any).itemKey : index;\n const itemIsOpen = expandedKeys.includes(childKey);\n return (\n <Fragment key={childKey}>\n <AccordionItemStateProvider\n expandedKeys={hasChildItemKey ? undefined : expandedKeys}\n isOpen={itemIsOpen}\n isOpenKey={isOpenKey}\n itemKey={childKey}\n preferProviderKeyForNestedItems={!hasExplicitExpandedKeys}\n onToggleKey={toggleExpand}\n onToggleKeys={toggleExpandKeys}\n >\n {child}\n </AccordionItemStateProvider>\n {showDivider && index < validChildren.length - 1 && (\n <Divider className={styles.divider} />\n )}\n </Fragment>\n );\n })}\n </>\n );\n\n return (\n <AccordionConfigContext value={configValue}>\n <div\n className={cx(styles.base, classNames?.base, userClassName)}\n ref={ref}\n style={{\n gap,\n ...customStyles?.base,\n ...userStyle,\n }}\n {...rest}\n >\n {disableAnimation ? content : <LayoutGroup>{content}</LayoutGroup>}\n </div>\n </AccordionConfigContext>\n );\n },\n);\n\nAccordion.displayName = 'Accordion';\n\nexport default Accordion;\n"],"mappings":";;;;;;;;;;AAcA,MAAM,YAAY,MACf,EACC,UACA,WAAW,eACX,OAAO,WACP,YAAY,OACZ,qBACA,cAAc,kBACd,kBACA,UAAU,cACV,KACA,cAAc,OACd,mBAAmB,OACnB,gBAAgB,OAChB,qBAAqB,SACrB,qBAAqB,MACrB,YACA,QAAQ,cACR,aACA,KACA,GAAG,WACC;CAEJ,MAAM,gBAAgB,SAAS,QAAQ,QAAQ,CAAC,CAAC,OAAO,cAAc;CAGtE,MAAM,cAAc,cAAc,KAAK,OAAO,UAAW,MAAM,MAAc,WAAW,KAAK;CAK7F,MAAM,CAAC,cAAc,mBAAmB,cAFZ,uBAAuB,aAE+B;EAChF,UAAU;EACV,OAAO;CACT,CAAC;CAOD,MAAM,kBAAkB,OAAO,YAAY;CAC3C,gBAAgB,UAAU;CAC1B,MAAM,qBAAqB,OAAO,eAAe;CACjD,mBAAmB,UAAU;CAE7B,MAAM,YAAY,aAAa,QAAa,gBAAgB,QAAQ,SAAS,GAAG,GAAG,CAAC,CAAC;CAErF,MAAM,eAAe,aAClB,QAAa;EACZ,MAAM,OAAO,gBAAgB;EAC7B,IAAI;EAEJ,IAAI,WACF,UAAU,KAAK,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG;OAExC,UAAU,KAAK,SAAS,GAAG,IAAI,KAAK,QAAQ,MAAW,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG;EAGnF,mBAAmB,QAAQ,OAAO;CACpC,GACA,CAAC,SAAS,CACZ;CAEA,MAAM,mBAAmB,aACtB,MAAa,iBAAsB;EAClC,MAAM,OAAO,gBAAgB;EAC7B,MAAM,SAAS,KAAK,MAAM,QAAQ,KAAK,SAAS,GAAG,CAAC;EACpD,IAAI;EAEJ,IAAI,WACF,UAAU,SAAS,CAAC,IAAI,CAAC,YAAY;OAErC,UAAU,SACN,KAAK,QAAQ,QAAa,CAAC,KAAK,SAAS,GAAG,CAAC,IAC7C,CAAC,GAAG,MAAM,YAAY;EAG5B,mBAAmB,QAAQ,OAAO;CACpC,GACA,CAAC,SAAS,CACZ;CAEA,MAAM,cAAc,eACX;EACL;EACA;EACA;EACA;EACA;EACA;EACA;CACF,IACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CACF;CAEA,MAAM,0BACJ,qBAAqB,KAAA,KAAa,wBAAwB,KAAA;CAE5D,MAAM,UACJ,oBAAA,YAAA,EAAA,UACG,cAAc,KAAK,OAAO,UAAU;EACnC,MAAM,kBAAmB,MAAM,MAAc,YAAY,KAAA;EACzD,MAAM,WAAW,kBAAmB,MAAM,MAAc,UAAU;EAClE,MAAM,aAAa,aAAa,SAAS,QAAQ;EACjD,OACE,qBAAC,UAAD,EAAA,UAAA,CACE,oBAAC,4BAAD;GACE,cAAc,kBAAkB,KAAA,IAAY;GAC5C,QAAQ;GACG;GACX,SAAS;GACT,iCAAiC,CAAC;GAClC,aAAa;GACb,cAAc;GAEb,UAAA;EACyB,CAAA,GAC3B,eAAe,QAAQ,cAAc,SAAS,KAC7C,oBAAC,SAAD,EAAS,WAAW,OAAO,QAAU,CAAA,CAE/B,EAAA,GAfK,QAeL;CAEd,CAAC,EACD,CAAA;CAGJ,OACE,oBAAC,wBAAD;EAAwB,OAAO;EAC7B,UAAA,oBAAC,OAAD;GACE,WAAW,GAAG,OAAO,MAAM,YAAY,MAAM,aAAa;GACrD;GACL,OAAO;IACL;IACA,GAAG,cAAc;IACjB,GAAG;GACL;GACA,GAAI;GAEH,UAAA,mBAAmB,UAAU,oBAAC,aAAD,EAAA,UAAc,QAAqB,CAAA;EAC9D,CAAA;CACiB,CAAA;AAE5B,CACF;AAEA,UAAU,cAAc"}
@@ -2,7 +2,8 @@ import { CenterProps } from "../Flex/type.mjs";
2
2
  import "../Flex/index.mjs";
3
3
  import { ActionIconProps } from "../base-ui/ActionIcon/type.mjs";
4
4
  import "../base-ui/ActionIcon/index.mjs";
5
- import { MenuInfo, MenuItemType } from "../Menu/type.mjs";
5
+ import { MenuInfo } from "../Menu/itemInterface.mjs";
6
+ import { MenuItemType } from "../Menu/type.mjs";
6
7
  import "../Menu/index.mjs";
7
8
  import { DropdownMenuProps } from "../base-ui/DropdownMenu/type.mjs";
8
9
  import "../DropdownMenu/index.mjs";
@@ -7,10 +7,10 @@ import ActionIcon from "../base-ui/ActionIcon/ActionIcon.mjs";
7
7
  import { extraHeaderVariants, extraVariants, rootVariants } from "./style.mjs";
8
8
  import { memo } from "react";
9
9
  import { jsx, jsxs } from "react/jsx-runtime";
10
- import { Alert } from "antd";
11
10
  import { cssVar, cx, useTheme } from "antd-style";
12
11
  import { camelCase } from "es-toolkit/compat";
13
12
  import { AlertTriangle, CheckCircle, Info, X, XCircle } from "lucide-react";
13
+ import { Alert } from "antd";
14
14
  //#region src/Alert/Alert.tsx
15
15
  const typeIcons = {
16
16
  error: XCircle,
@@ -2,8 +2,8 @@
2
2
  import { variants } from "./style.mjs";
3
3
  import { memo } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
- import { AutoComplete } from "antd";
6
5
  import { cx, useThemeMode } from "antd-style";
6
+ import { AutoComplete } from "antd";
7
7
  //#region src/AutoComplete/Select.tsx
8
8
  const AutoComplete$1 = memo(({ variant, shadow, className, ...rest }) => {
9
9
  const { isDarkMode } = useThemeMode();
@@ -1,16 +1,16 @@
1
1
  "use client";
2
2
  import Center from "../Flex/Center.mjs";
3
- import { safeReadableColor } from "../utils/safeReadableColor.mjs";
4
3
  import Icon from "../Icon/Icon.mjs";
5
4
  import Img from "../Img/index.mjs";
6
5
  import FluentEmoji from "../FluentEmoji/FluentEmoji.mjs";
6
+ import { safeReadableColor } from "../utils/safeReadableColor.mjs";
7
7
  import { styles, variants } from "./style.mjs";
8
8
  import { calculateEmojiSize, formatAvatarText, hasValidBackground, isDefaultAntAvatar } from "./utils.mjs";
9
9
  import { memo, useMemo, useState } from "react";
10
10
  import { jsx, jsxs } from "react/jsx-runtime";
11
- import { Avatar } from "antd";
12
11
  import { cssVar, cx } from "antd-style";
13
12
  import { Loader2 } from "lucide-react";
13
+ import { Avatar } from "antd";
14
14
  import { getEmoji } from "@lobehub/fluent-emoji";
15
15
  //#region src/Avatar/Avatar.tsx
16
16
  /**
@@ -4,9 +4,9 @@ import ActionIcon from "../base-ui/ActionIcon/ActionIcon.mjs";
4
4
  import { styles } from "./style.mjs";
5
5
  import { memo, useMemo } from "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
- import { Drawer, Menu } from "antd";
8
7
  import { cx } from "antd-style";
9
8
  import { MenuIcon, X } from "lucide-react";
9
+ import { Drawer, Menu as Menu$1 } from "antd";
10
10
  //#region src/Burger/Burger.tsx
11
11
  const Burger = memo(({ items, openKeys, selectedKeys, opened, setOpened, className, headerHeight = 64, onClick, iconProps, size, variant, rootClassName, fullscreen, drawerProps, ...rest }) => {
12
12
  const cssVariables = useMemo(() => {
@@ -47,7 +47,7 @@ const Burger = memo(({ items, openKeys, selectedKeys, opened, setOpened, classNa
47
47
  body: { padding: 0 },
48
48
  header: { display: "none" }
49
49
  },
50
- children: [/* @__PURE__ */ jsx(Menu, {
50
+ children: [/* @__PURE__ */ jsx(Menu$1, {
51
51
  className: styles.menu,
52
52
  items,
53
53
  mode: "inline",
@@ -1 +1 @@
1
- {"version":3,"file":"Burger.mjs","names":[],"sources":["../../src/Burger/Burger.tsx"],"sourcesContent":["'use client';\n\nimport { Drawer, Menu } from 'antd';\nimport { cx } from 'antd-style';\nimport { MenuIcon, X } from 'lucide-react';\nimport { memo, useMemo } from 'react';\n\nimport ActionIcon from '@/base-ui/ActionIcon';\nimport { Center } from '@/Flex';\n\nimport { styles } from './style';\nimport type { BurgerProps } from './type';\n\nconst Burger = memo<BurgerProps>(\n ({\n items,\n openKeys,\n selectedKeys,\n opened,\n setOpened,\n className,\n headerHeight = 64,\n onClick,\n iconProps,\n size,\n variant,\n rootClassName,\n fullscreen,\n drawerProps,\n ...rest\n }) => {\n // Convert props to CSS variables\n const cssVariables = useMemo<Record<string, string>>(() => {\n const vars: Record<string, string> = {\n '--burger-header-height': `${headerHeight}px`,\n };\n if (fullscreen) {\n vars['--burger-drawer-top'] = '0';\n vars['--burger-menu-padding-top'] = '0px';\n } else {\n vars['--burger-drawer-top'] = `calc(var(--burger-header-height, ${headerHeight}px) + 1px)`;\n vars['--burger-menu-padding-top'] = `${headerHeight}px`;\n }\n return vars;\n }, [fullscreen, headerHeight]);\n\n return (\n <Center\n className={cx(styles.container, className)}\n onClick={() => {\n setOpened(!opened);\n }}\n {...rest}\n >\n <ActionIcon icon={opened ? X : MenuIcon} size={size} variant={variant} {...iconProps} />\n <Drawer\n closeIcon={undefined}\n open={opened}\n placement={'left'}\n width={'100vw'}\n {...drawerProps}\n className={styles.drawer}\n rootClassName={cx(\n fullscreen ? styles.drawerRootFullscreen : styles.drawerRoot,\n rootClassName,\n )}\n rootStyle={{\n ...cssVariables,\n ...drawerProps?.rootStyle,\n }}\n styles={{\n body: { padding: 0 },\n header: { display: 'none' },\n }}\n >\n <Menu\n className={styles.menu}\n items={items}\n mode={'inline'}\n openKeys={openKeys}\n selectedKeys={selectedKeys}\n style={cssVariables}\n onClick={onClick}\n />\n <div className={styles.fillRect} />\n </Drawer>\n </Center>\n );\n },\n);\n\nBurger.displayName = 'Burger';\n\nexport default Burger;\n"],"mappings":";;;;;;;;;;AAaA,MAAM,SAAS,MACZ,EACC,OACA,UACA,cACA,QACA,WACA,WACA,eAAe,IACf,SACA,WACA,MACA,SACA,eACA,YACA,aACA,GAAG,WACC;CAEJ,MAAM,eAAe,cAAsC;EACzD,MAAM,OAA+B,EACnC,0BAA0B,GAAG,aAAa,IAC5C;EACA,IAAI,YAAY;GACd,KAAK,yBAAyB;GAC9B,KAAK,+BAA+B;EACtC,OAAO;GACL,KAAK,yBAAyB,oCAAoC,aAAa;GAC/E,KAAK,+BAA+B,GAAG,aAAa;EACtD;EACA,OAAO;CACT,GAAG,CAAC,YAAY,YAAY,CAAC;CAE7B,OACE,qBAAC,QAAD;EACE,WAAW,GAAG,OAAO,WAAW,SAAS;EACzC,eAAe;GACb,UAAU,CAAC,MAAM;EACnB;EACA,GAAI;EALN,UAAA,CAOE,oBAAC,YAAD;GAAY,MAAM,SAAS,IAAI;GAAgB;GAAe;GAAS,GAAI;EAAY,CAAA,GACvF,qBAAC,QAAD;GACE,WAAW,KAAA;GACX,MAAM;GACN,WAAW;GACX,OAAO;GACP,GAAI;GACJ,WAAW,OAAO;GAClB,eAAe,GACb,aAAa,OAAO,uBAAuB,OAAO,YAClD,aACF;GACA,WAAW;IACT,GAAG;IACH,GAAG,aAAa;GAClB;GACA,QAAQ;IACN,MAAM,EAAE,SAAS,EAAE;IACnB,QAAQ,EAAE,SAAS,OAAO;GAC5B;GAlBF,UAAA,CAoBE,oBAAC,MAAD;IACE,WAAW,OAAO;IACX;IACP,MAAM;IACI;IACI;IACd,OAAO;IACE;GACV,CAAA,GACD,oBAAC,OAAD,EAAK,WAAW,OAAO,SAAW,CAAA,CAC5B;EACF,CAAA,CAAA;;AAEZ,CACF;AAEA,OAAO,cAAc"}
1
+ {"version":3,"file":"Burger.mjs","names":["Menu"],"sources":["../../src/Burger/Burger.tsx"],"sourcesContent":["'use client';\n\nimport { Drawer, Menu } from 'antd';\nimport { cx } from 'antd-style';\nimport { MenuIcon, X } from 'lucide-react';\nimport { memo, useMemo } from 'react';\n\nimport ActionIcon from '@/base-ui/ActionIcon';\nimport { Center } from '@/Flex';\n\nimport { styles } from './style';\nimport type { BurgerProps } from './type';\n\nconst Burger = memo<BurgerProps>(\n ({\n items,\n openKeys,\n selectedKeys,\n opened,\n setOpened,\n className,\n headerHeight = 64,\n onClick,\n iconProps,\n size,\n variant,\n rootClassName,\n fullscreen,\n drawerProps,\n ...rest\n }) => {\n // Convert props to CSS variables\n const cssVariables = useMemo<Record<string, string>>(() => {\n const vars: Record<string, string> = {\n '--burger-header-height': `${headerHeight}px`,\n };\n if (fullscreen) {\n vars['--burger-drawer-top'] = '0';\n vars['--burger-menu-padding-top'] = '0px';\n } else {\n vars['--burger-drawer-top'] = `calc(var(--burger-header-height, ${headerHeight}px) + 1px)`;\n vars['--burger-menu-padding-top'] = `${headerHeight}px`;\n }\n return vars;\n }, [fullscreen, headerHeight]);\n\n return (\n <Center\n className={cx(styles.container, className)}\n onClick={() => {\n setOpened(!opened);\n }}\n {...rest}\n >\n <ActionIcon icon={opened ? X : MenuIcon} size={size} variant={variant} {...iconProps} />\n <Drawer\n closeIcon={undefined}\n open={opened}\n placement={'left'}\n width={'100vw'}\n {...drawerProps}\n className={styles.drawer}\n rootClassName={cx(\n fullscreen ? styles.drawerRootFullscreen : styles.drawerRoot,\n rootClassName,\n )}\n rootStyle={{\n ...cssVariables,\n ...drawerProps?.rootStyle,\n }}\n styles={{\n body: { padding: 0 },\n header: { display: 'none' },\n }}\n >\n <Menu\n className={styles.menu}\n items={items}\n mode={'inline'}\n openKeys={openKeys}\n selectedKeys={selectedKeys}\n style={cssVariables}\n onClick={onClick}\n />\n <div className={styles.fillRect} />\n </Drawer>\n </Center>\n );\n },\n);\n\nBurger.displayName = 'Burger';\n\nexport default Burger;\n"],"mappings":";;;;;;;;;;AAaA,MAAM,SAAS,MACZ,EACC,OACA,UACA,cACA,QACA,WACA,WACA,eAAe,IACf,SACA,WACA,MACA,SACA,eACA,YACA,aACA,GAAG,WACC;CAEJ,MAAM,eAAe,cAAsC;EACzD,MAAM,OAA+B,EACnC,0BAA0B,GAAG,aAAa,IAC5C;EACA,IAAI,YAAY;GACd,KAAK,yBAAyB;GAC9B,KAAK,+BAA+B;EACtC,OAAO;GACL,KAAK,yBAAyB,oCAAoC,aAAa;GAC/E,KAAK,+BAA+B,GAAG,aAAa;EACtD;EACA,OAAO;CACT,GAAG,CAAC,YAAY,YAAY,CAAC;CAE7B,OACE,qBAAC,QAAD;EACE,WAAW,GAAG,OAAO,WAAW,SAAS;EACzC,eAAe;GACb,UAAU,CAAC,MAAM;EACnB;EACA,GAAI;EALN,UAAA,CAOE,oBAAC,YAAD;GAAY,MAAM,SAAS,IAAI;GAAgB;GAAe;GAAS,GAAI;EAAY,CAAA,GACvF,qBAAC,QAAD;GACE,WAAW,KAAA;GACX,MAAM;GACN,WAAW;GACX,OAAO;GACP,GAAI;GACJ,WAAW,OAAO;GAClB,eAAe,GACb,aAAa,OAAO,uBAAuB,OAAO,YAClD,aACF;GACA,WAAW;IACT,GAAG;IACH,GAAG,aAAa;GAClB;GACA,QAAQ;IACN,MAAM,EAAE,SAAS,EAAE;IACnB,QAAQ,EAAE,SAAS,OAAO;GAC5B;GAlBF,UAAA,CAoBE,oBAACA,QAAD;IACE,WAAW,OAAO;IACX;IACP,MAAM;IACI;IACI;IACd,OAAO;IACE;GACV,CAAA,GACD,oBAAC,OAAD,EAAK,WAAW,OAAO,SAAW,CAAA,CAC5B;EACF,CAAA,CAAA;;AAEZ,CACF;AAEA,OAAO,cAAc"}
@@ -3,9 +3,9 @@ import Icon from "../Icon/Icon.mjs";
3
3
  import { variants } from "./style.mjs";
4
4
  import { isValidElement } from "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
- import { Button } from "antd";
7
6
  import { cx, useThemeMode } from "antd-style";
8
7
  import { Loader2Icon } from "lucide-react";
8
+ import { Button } from "antd";
9
9
  //#region src/Button/Button.tsx
10
10
  /**
11
11
  * @deprecated Use `Button` from `@lobehub/ui/base-ui` instead.
@@ -3,8 +3,8 @@ import FlexBasic_default from "../Flex/FlexBasic.mjs";
3
3
  import Text from "../Text/Text.mjs";
4
4
  import { stopPropagation } from "../utils/dom.mjs";
5
5
  import ActionIcon from "../base-ui/ActionIcon/ActionIcon.mjs";
6
+ import Tag from "../base-ui/Tag/Tag.mjs";
6
7
  import MaterialFileTypeIcon from "../MaterialFileTypeIcon/MaterialFileTypeIcon.mjs";
7
- import Tag from "../Tag/Tag.mjs";
8
8
  import { bodyVariants, headerVariants, prefix, styles, variants } from "./style.mjs";
9
9
  import { memo, useCallback, useState } from "react";
10
10
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1 +1 @@
1
- {"version":3,"file":"DiffPanel.mjs","names":["Flexbox"],"sources":["../../src/CodeDiff/DiffPanel.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { ChevronDown, ChevronRight } from 'lucide-react';\nimport type { CSSProperties, ReactNode } from 'react';\nimport { memo, useCallback, useState } from 'react';\n\nimport ActionIcon from '@/base-ui/ActionIcon';\nimport type { FlexboxProps } from '@/Flex';\nimport { Flexbox } from '@/Flex';\nimport MaterialFileTypeIcon from '@/MaterialFileTypeIcon';\nimport Tag from '@/Tag';\nimport Text from '@/Text';\nimport { stopPropagation } from '@/utils/dom';\n\nimport { bodyVariants, headerVariants, prefix, styles, variants } from './style';\n\ninterface DiffPanelProps extends Omit<FlexboxProps, 'children'> {\n actions?: ReactNode;\n additions: number;\n body: ReactNode;\n classNames?: {\n body?: string;\n header?: string;\n };\n dataCodeType: string;\n defaultExpand?: boolean;\n deletions: number;\n displayName: string;\n fileName?: string;\n fullFeatured?: boolean;\n showHeader?: boolean;\n styles?: {\n body?: CSSProperties;\n header?: CSSProperties;\n };\n variant?: 'filled' | 'outlined' | 'borderless';\n}\n\nexport const DiffPanel = memo<DiffPanelProps>(\n ({\n actions,\n body,\n className,\n classNames,\n dataCodeType,\n defaultExpand = true,\n deletions,\n displayName,\n fileName,\n fullFeatured = true,\n showHeader = true,\n styles: customStyles,\n variant = 'filled',\n additions,\n ...rest\n }) => {\n const [expand, setExpand] = useState(defaultExpand);\n\n const handleToggleExpand = useCallback(() => {\n setExpand((prev) => !prev);\n }, []);\n\n if (!fullFeatured)\n return (\n <Flexbox\n className={cx(variants({ variant }), className)}\n data-code-type={dataCodeType}\n {...rest}\n >\n <Flexbox horizontal align=\"center\" className={styles.actionsCompact} flex=\"none\" gap={4}>\n {actions}\n </Flexbox>\n {showHeader && <Tag className={styles.lang}>{displayName}</Tag>}\n <div className={cx(styles.body, classNames?.body)} style={customStyles?.body}>\n {body}\n </div>\n </Flexbox>\n );\n\n return (\n <Flexbox\n className={cx(variants({ variant }), className)}\n data-code-type={dataCodeType}\n {...rest}\n >\n {showHeader && (\n <Flexbox\n horizontal\n align=\"center\"\n className={cx(headerVariants({ variant }), classNames?.header)}\n justify=\"space-between\"\n style={customStyles?.header}\n onClick={handleToggleExpand}\n >\n <Flexbox\n horizontal\n align=\"center\"\n className=\"language-title\"\n flex={1}\n gap={4}\n justify=\"flex-start\"\n paddingInline={8}\n >\n <MaterialFileTypeIcon\n fallbackUnknownType={false}\n filename={fileName || displayName}\n size={18}\n type=\"file\"\n variant=\"raw\"\n />\n <Text ellipsis fontSize={13}>\n {displayName}\n </Text>\n </Flexbox>\n <Flexbox horizontal align=\"center\" flex=\"none\" gap={8} onClick={stopPropagation}>\n {actions && (\n <Flexbox\n horizontal\n align=\"center\"\n className={cx('panel-actions', `${prefix}-actions`, styles.actions)}\n flex=\"none\"\n gap={4}\n >\n {actions}\n </Flexbox>\n )}\n {(deletions > 0 || additions > 0) && (\n <Flexbox horizontal className={styles.stats} gap={8}>\n {deletions > 0 && <span className={styles.deletions}>-{deletions}</span>}\n {additions > 0 && <span className={styles.additions}>+{additions}</span>}\n </Flexbox>\n )}\n <ActionIcon\n icon={expand ? ChevronDown : ChevronRight}\n size=\"small\"\n onClick={handleToggleExpand}\n />\n </Flexbox>\n </Flexbox>\n )}\n <div\n className={cx(bodyVariants({ expand }), `${prefix}-body`, styles.body, classNames?.body)}\n style={customStyles?.body}\n >\n {body}\n </div>\n </Flexbox>\n );\n },\n);\n\nDiffPanel.displayName = 'DiffPanel';\n"],"mappings":";;;;;;;;;;;;;AAuCA,MAAa,YAAY,MACtB,EACC,SACA,MACA,WACA,YACA,cACA,gBAAgB,MAChB,WACA,aACA,UACA,eAAe,MACf,aAAa,MACb,QAAQ,cACR,UAAU,UACV,WACA,GAAG,WACC;CACJ,MAAM,CAAC,QAAQ,aAAa,SAAS,aAAa;CAElD,MAAM,qBAAqB,kBAAkB;EAC3C,WAAW,SAAS,CAAC,IAAI;CAC3B,GAAG,CAAC,CAAC;CAEL,IAAI,CAAC,cACH,OACE,qBAACA,mBAAD;EACE,WAAW,GAAG,SAAS,EAAE,QAAQ,CAAC,GAAG,SAAS;EAC9C,kBAAgB;EAChB,GAAI;EAHN,UAAA;GAKE,oBAACA,mBAAD;IAAS,YAAA;IAAW,OAAM;IAAS,WAAW,OAAO;IAAgB,MAAK;IAAO,KAAK;IACnF,UAAA;GACM,CAAA;GACR,cAAc,oBAAC,KAAD;IAAK,WAAW,OAAO;IAAO,UAAA;GAAiB,CAAA;GAC9D,oBAAC,OAAD;IAAK,WAAW,GAAG,OAAO,MAAM,YAAY,IAAI;IAAG,OAAO,cAAc;IACrE,UAAA;GACE,CAAA;EACE;;CAGb,OACE,qBAACA,mBAAD;EACE,WAAW,GAAG,SAAS,EAAE,QAAQ,CAAC,GAAG,SAAS;EAC9C,kBAAgB;EAChB,GAAI;EAHN,UAAA,CAKG,cACC,qBAACA,mBAAD;GACE,YAAA;GACA,OAAM;GACN,WAAW,GAAG,eAAe,EAAE,QAAQ,CAAC,GAAG,YAAY,MAAM;GAC7D,SAAQ;GACR,OAAO,cAAc;GACrB,SAAS;GANX,UAAA,CAQE,qBAACA,mBAAD;IACE,YAAA;IACA,OAAM;IACN,WAAU;IACV,MAAM;IACN,KAAK;IACL,SAAQ;IACR,eAAe;IAPjB,UAAA,CASE,oBAAC,sBAAD;KACE,qBAAqB;KACrB,UAAU,YAAY;KACtB,MAAM;KACN,MAAK;KACL,SAAQ;IACT,CAAA,GACD,oBAAC,MAAD;KAAM,UAAA;KAAS,UAAU;KACtB,UAAA;IACG,CAAA,CACC;GACT,CAAA,GAAA,qBAACA,mBAAD;IAAS,YAAA;IAAW,OAAM;IAAS,MAAK;IAAO,KAAK;IAAG,SAAS;IAAhE,UAAA;KACG,WACC,oBAACA,mBAAD;MACE,YAAA;MACA,OAAM;MACN,WAAW,GAAG,iBAAiB,0BAAqB,OAAO,OAAO;MAClE,MAAK;MACL,KAAK;MAEJ,UAAA;KACM,CAAA;MAET,YAAY,KAAK,YAAY,MAC7B,qBAACA,mBAAD;MAAS,YAAA;MAAW,WAAW,OAAO;MAAO,KAAK;MAAlD,UAAA,CACG,YAAY,KAAK,qBAAC,QAAD;OAAM,WAAW,OAAO;OAAxB,UAAA,CAAmC,KAAE,SAAgB;MACtE,CAAA,GAAA,YAAY,KAAK,qBAAC,QAAD;OAAM,WAAW,OAAO;OAAxB,UAAA,CAAmC,KAAE,SAAgB;MAChE,CAAA,CAAA;;KAEX,oBAAC,YAAD;MACE,MAAM,SAAS,cAAc;MAC7B,MAAK;MACL,SAAS;KACV,CAAA;IACM;GACF,CAAA,CAAA;EAEX,CAAA,GAAA,oBAAC,OAAD;GACE,WAAW,GAAG,aAAa,EAAE,OAAO,CAAC,GAAG,GAAG,OAAO,QAAQ,OAAO,MAAM,YAAY,IAAI;GACvF,OAAO,cAAc;GAEpB,UAAA;EACE,CAAA,CACE;;AAEb,CACF;AAEA,UAAU,cAAc"}
1
+ {"version":3,"file":"DiffPanel.mjs","names":["Flexbox"],"sources":["../../src/CodeDiff/DiffPanel.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { ChevronDown, ChevronRight } from 'lucide-react';\nimport type { CSSProperties, ReactNode } from 'react';\nimport { memo, useCallback, useState } from 'react';\n\nimport ActionIcon from '@/base-ui/ActionIcon';\nimport Tag from '@/base-ui/Tag';\nimport type { FlexboxProps } from '@/Flex';\nimport { Flexbox } from '@/Flex';\nimport MaterialFileTypeIcon from '@/MaterialFileTypeIcon';\nimport Text from '@/Text';\nimport { stopPropagation } from '@/utils/dom';\n\nimport { bodyVariants, headerVariants, prefix, styles, variants } from './style';\n\ninterface DiffPanelProps extends Omit<FlexboxProps, 'children'> {\n actions?: ReactNode;\n additions: number;\n body: ReactNode;\n classNames?: {\n body?: string;\n header?: string;\n };\n dataCodeType: string;\n defaultExpand?: boolean;\n deletions: number;\n displayName: string;\n fileName?: string;\n fullFeatured?: boolean;\n showHeader?: boolean;\n styles?: {\n body?: CSSProperties;\n header?: CSSProperties;\n };\n variant?: 'filled' | 'outlined' | 'borderless';\n}\n\nexport const DiffPanel = memo<DiffPanelProps>(\n ({\n actions,\n body,\n className,\n classNames,\n dataCodeType,\n defaultExpand = true,\n deletions,\n displayName,\n fileName,\n fullFeatured = true,\n showHeader = true,\n styles: customStyles,\n variant = 'filled',\n additions,\n ...rest\n }) => {\n const [expand, setExpand] = useState(defaultExpand);\n\n const handleToggleExpand = useCallback(() => {\n setExpand((prev) => !prev);\n }, []);\n\n if (!fullFeatured)\n return (\n <Flexbox\n className={cx(variants({ variant }), className)}\n data-code-type={dataCodeType}\n {...rest}\n >\n <Flexbox horizontal align=\"center\" className={styles.actionsCompact} flex=\"none\" gap={4}>\n {actions}\n </Flexbox>\n {showHeader && <Tag className={styles.lang}>{displayName}</Tag>}\n <div className={cx(styles.body, classNames?.body)} style={customStyles?.body}>\n {body}\n </div>\n </Flexbox>\n );\n\n return (\n <Flexbox\n className={cx(variants({ variant }), className)}\n data-code-type={dataCodeType}\n {...rest}\n >\n {showHeader && (\n <Flexbox\n horizontal\n align=\"center\"\n className={cx(headerVariants({ variant }), classNames?.header)}\n justify=\"space-between\"\n style={customStyles?.header}\n onClick={handleToggleExpand}\n >\n <Flexbox\n horizontal\n align=\"center\"\n className=\"language-title\"\n flex={1}\n gap={4}\n justify=\"flex-start\"\n paddingInline={8}\n >\n <MaterialFileTypeIcon\n fallbackUnknownType={false}\n filename={fileName || displayName}\n size={18}\n type=\"file\"\n variant=\"raw\"\n />\n <Text ellipsis fontSize={13}>\n {displayName}\n </Text>\n </Flexbox>\n <Flexbox horizontal align=\"center\" flex=\"none\" gap={8} onClick={stopPropagation}>\n {actions && (\n <Flexbox\n horizontal\n align=\"center\"\n className={cx('panel-actions', `${prefix}-actions`, styles.actions)}\n flex=\"none\"\n gap={4}\n >\n {actions}\n </Flexbox>\n )}\n {(deletions > 0 || additions > 0) && (\n <Flexbox horizontal className={styles.stats} gap={8}>\n {deletions > 0 && <span className={styles.deletions}>-{deletions}</span>}\n {additions > 0 && <span className={styles.additions}>+{additions}</span>}\n </Flexbox>\n )}\n <ActionIcon\n icon={expand ? ChevronDown : ChevronRight}\n size=\"small\"\n onClick={handleToggleExpand}\n />\n </Flexbox>\n </Flexbox>\n )}\n <div\n className={cx(bodyVariants({ expand }), `${prefix}-body`, styles.body, classNames?.body)}\n style={customStyles?.body}\n >\n {body}\n </div>\n </Flexbox>\n );\n },\n);\n\nDiffPanel.displayName = 'DiffPanel';\n"],"mappings":";;;;;;;;;;;;;AAuCA,MAAa,YAAY,MACtB,EACC,SACA,MACA,WACA,YACA,cACA,gBAAgB,MAChB,WACA,aACA,UACA,eAAe,MACf,aAAa,MACb,QAAQ,cACR,UAAU,UACV,WACA,GAAG,WACC;CACJ,MAAM,CAAC,QAAQ,aAAa,SAAS,aAAa;CAElD,MAAM,qBAAqB,kBAAkB;EAC3C,WAAW,SAAS,CAAC,IAAI;CAC3B,GAAG,CAAC,CAAC;CAEL,IAAI,CAAC,cACH,OACE,qBAACA,mBAAD;EACE,WAAW,GAAG,SAAS,EAAE,QAAQ,CAAC,GAAG,SAAS;EAC9C,kBAAgB;EAChB,GAAI;EAHN,UAAA;GAKE,oBAACA,mBAAD;IAAS,YAAA;IAAW,OAAM;IAAS,WAAW,OAAO;IAAgB,MAAK;IAAO,KAAK;IACnF,UAAA;GACM,CAAA;GACR,cAAc,oBAAC,KAAD;IAAK,WAAW,OAAO;IAAO,UAAA;GAAiB,CAAA;GAC9D,oBAAC,OAAD;IAAK,WAAW,GAAG,OAAO,MAAM,YAAY,IAAI;IAAG,OAAO,cAAc;IACrE,UAAA;GACE,CAAA;EACE;;CAGb,OACE,qBAACA,mBAAD;EACE,WAAW,GAAG,SAAS,EAAE,QAAQ,CAAC,GAAG,SAAS;EAC9C,kBAAgB;EAChB,GAAI;EAHN,UAAA,CAKG,cACC,qBAACA,mBAAD;GACE,YAAA;GACA,OAAM;GACN,WAAW,GAAG,eAAe,EAAE,QAAQ,CAAC,GAAG,YAAY,MAAM;GAC7D,SAAQ;GACR,OAAO,cAAc;GACrB,SAAS;GANX,UAAA,CAQE,qBAACA,mBAAD;IACE,YAAA;IACA,OAAM;IACN,WAAU;IACV,MAAM;IACN,KAAK;IACL,SAAQ;IACR,eAAe;IAPjB,UAAA,CASE,oBAAC,sBAAD;KACE,qBAAqB;KACrB,UAAU,YAAY;KACtB,MAAM;KACN,MAAK;KACL,SAAQ;IACT,CAAA,GACD,oBAAC,MAAD;KAAM,UAAA;KAAS,UAAU;KACtB,UAAA;IACG,CAAA,CACC;GACT,CAAA,GAAA,qBAACA,mBAAD;IAAS,YAAA;IAAW,OAAM;IAAS,MAAK;IAAO,KAAK;IAAG,SAAS;IAAhE,UAAA;KACG,WACC,oBAACA,mBAAD;MACE,YAAA;MACA,OAAM;MACN,WAAW,GAAG,iBAAiB,0BAAqB,OAAO,OAAO;MAClE,MAAK;MACL,KAAK;MAEJ,UAAA;KACM,CAAA;MAET,YAAY,KAAK,YAAY,MAC7B,qBAACA,mBAAD;MAAS,YAAA;MAAW,WAAW,OAAO;MAAO,KAAK;MAAlD,UAAA,CACG,YAAY,KAAK,qBAAC,QAAD;OAAM,WAAW,OAAO;OAAxB,UAAA,CAAmC,KAAE,SAAgB;MACtE,CAAA,GAAA,YAAY,KAAK,qBAAC,QAAD;OAAM,WAAW,OAAO;OAAxB,UAAA,CAAmC,KAAE,SAAgB;MAChE,CAAA,CAAA;;KAEX,oBAAC,YAAD;MACE,MAAM,SAAS,cAAc;MAC7B,MAAK;MACL,SAAS;KACV,CAAA;IACM;GACF,CAAA,CAAA;EAEX,CAAA,GAAA,oBAAC,OAAD;GACE,WAAW,GAAG,aAAa,EAAE,OAAO,CAAC,GAAG,GAAG,OAAO,QAAQ,OAAO,MAAM,YAAY,IAAI;GACvF,OAAO,cAAc;GAEpB,UAAA;EACE,CAAA,CACE;;AAEb,CACF;AAEA,UAAU,cAAc"}
@@ -4,9 +4,9 @@ import Icon from "../Icon/Icon.mjs";
4
4
  import { DEFAULT_PADDING, getPadding, styles, variants } from "./style.mjs";
5
5
  import { isValidElement, memo, useMemo } from "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
- import { Collapse, ConfigProvider } from "antd";
8
7
  import { cx, useThemeMode } from "antd-style";
9
8
  import { ChevronDown } from "lucide-react";
9
+ import { Collapse, ConfigProvider } from "antd";
10
10
  //#region src/Collapse/Collapse.tsx
11
11
  const Collapse$1 = memo(({ style, variant = "filled", gap = 0, className, padding = DEFAULT_PADDING, size, collapsible = true, items, styles: customStyles, classNames, ref, ...rest }) => {
12
12
  const { isDarkMode } = useThemeMode();
@@ -1,13 +1,13 @@
1
1
  "use client";
2
2
  import FlexBasic_default from "../Flex/FlexBasic.mjs";
3
3
  import Center from "../Flex/Center.mjs";
4
- import { safeReadableColor } from "../utils/safeReadableColor.mjs";
5
4
  import Icon from "../Icon/Icon.mjs";
6
- import { Tooltip as Tooltip$1 } from "../base-ui/Tooltip/Tooltip.mjs";
5
+ import { Tooltip } from "../base-ui/Tooltip/Tooltip.mjs";
6
+ import { safeReadableColor } from "../utils/safeReadableColor.mjs";
7
+ import ColorPicker from "../base-ui/ColorPicker/ColorPicker.mjs";
7
8
  import { styles } from "./style.mjs";
8
9
  import { useMemo } from "react";
9
10
  import { jsx, jsxs } from "react/jsx-runtime";
10
- import { ColorPicker } from "antd";
11
11
  import { cssVar, cx } from "antd-style";
12
12
  import useMergeState from "use-merge-value";
13
13
  import { CheckIcon } from "lucide-react";
@@ -41,7 +41,7 @@ const ColorSwatches = ({ enableColorPicker, enableColorSwatches = true, defaultV
41
41
  return false;
42
42
  }
43
43
  })();
44
- return /* @__PURE__ */ jsx(Tooltip$1, {
44
+ return /* @__PURE__ */ jsx(Tooltip, {
45
45
  title: c.title,
46
46
  children: /* @__PURE__ */ jsx(Center, {
47
47
  className: cx(styles.container, isTransparent && styles.transparent, isActive && styles.active),
@@ -61,24 +61,24 @@ const ColorSwatches = ({ enableColorPicker, enableColorSwatches = true, defaultV
61
61
  })
62
62
  })
63
63
  }, c?.key || i);
64
- }), enableColorPicker && /* @__PURE__ */ jsx(Tooltip$1, {
64
+ }), enableColorPicker && /* @__PURE__ */ jsx(Tooltip, {
65
65
  title: texts?.custom || "Custom",
66
- children: /* @__PURE__ */ jsx(ColorPicker, {
67
- disabledAlpha: true,
68
- arrow: false,
69
- defaultValue: cssVar.colorPrimary,
70
- format: "hex",
71
- value: enableColorSwatches ? void 0 : active,
72
- className: cx(styles.picker, enableColorSwatches && styles.conic, isCustomActive && styles.active),
73
- presets: enableColorSwatches ? void 0 : [{
74
- colors: colors.map((c) => c.color),
75
- label: texts?.presets || "Presets"
76
- }],
77
- style: { borderRadius: shape === "circle" ? "50%" : cssVar.borderRadius },
78
- onChangeComplete: (c) => {
79
- if (c.toHexString() === cssVar.colorPrimary) setActive("");
80
- else setActive(c.toHexString());
81
- }
66
+ children: /* @__PURE__ */ jsx("span", {
67
+ style: { display: "inline-flex" },
68
+ children: /* @__PURE__ */ jsx(ColorPicker, {
69
+ presets: enableColorSwatches ? void 0 : colors.map((c) => c.color),
70
+ value: isCustomActive ? active : void 0,
71
+ onChangeComplete: setActive,
72
+ children: /* @__PURE__ */ jsx("button", {
73
+ "aria-label": texts?.custom || "Custom",
74
+ type: "button",
75
+ className: cx(styles.picker, enableColorSwatches && styles.conic, isCustomActive && styles.active),
76
+ style: {
77
+ background: enableColorSwatches ? void 0 : active,
78
+ borderRadius: shape === "circle" ? "50%" : cssVar.borderRadius
79
+ }
80
+ })
81
+ })
82
82
  })
83
83
  })]
84
84
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ColorSwatches.mjs","names":["Flexbox","Tooltip"],"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 { 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 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={`color-mix(in srgb, ${safeReadableColor(color)} 33%, transparent)`}\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":";;;;;;;;;;;;;;;AAiBA,MAAM,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;CACF,CAAC;CAGD,MAAM,eAAe,eACZ,EACL,yBAAyB,GAAG,KAAK,IACnC,IACA,CAAC,IAAI,CACP;CAEA,MAAM,iBAAiB,cACf,UAAU,WAAW,OAAO,gBAAgB,CAAC,OAAO,MAAM,MAAM,EAAE,UAAU,MAAM,GACxF,CAAC,QAAQ,MAAM,CACjB;CAEA,OACE,qBAACA,mBAAD;EACE,YAAA;EACA,KAAK;EACA;EACL,OAAO;GACL,GAAG;GACH,UAAU;GACV,GAAG;EACL;EACA,GAAI;EATN,UAAA,CAWG,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,MAAM,YACnB;IACL,IAAI;KACF,OAAO,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,MAAM;IACrC,QAAQ;KACN,OAAO;IACT;GACF,EAAA,CAAG;GACP,OACE,oBAACC,WAAD;IAA2B,OAAO,EAAE;IAClC,UAAA,oBAAC,QAAD;KACE,WAAW,GACT,OAAO,WACP,iBAAiB,OAAO,aACxB,YAAY,OAAO,MACrB;KACA,OAAO;MACL,YAAY,gBAAgB,KAAA,IAAY;MACxC,cAAc,UAAU,WAAW,QAAQ,OAAO;KACpD;KACA,eAAe,UAAU,EAAE,SAAS,KAAA,CAAS;KAE5C,UAAA,YACC,oBAAC,MAAD;MACE,OAAO,sBAAsB,kBAAkB,KAAK,EAAE;MACtD,MAAM;MACN,MAAM;OAAE,MAAM;OAAI,aAAa;MAAE;MACjC,OAAO,EACL,eAAe,OACjB;KACD,CAAA;IAEG,CAAA;GACD,GAxBK,GAAG,OAAO,CAwBf;EAEb,CAAC,GACF,qBACC,oBAACA,WAAD;GAAS,OAAO,OAAO,UAAU;GAC/B,UAAA,oBAAC,aAAD;IACE,eAAA;IACA,OAAO;IACP,cAAc,OAAO;IACrB,QAAQ;IACR,OAAO,sBAAsB,KAAA,IAAY;IACzC,WAAW,GACT,OAAO,QACP,uBAAuB,OAAO,OAC9B,kBAAkB,OAAO,MAC3B;IACA,SACE,sBACI,KAAA,IACA,CACE;KACE,QAAQ,OAAO,KAAK,MAAM,EAAE,KAAK;KACjC,OAAO,OAAO,WAAW;IAC3B,CACF;IAEN,OAAO,EACL,cAAc,UAAU,WAAW,QAAQ,OAAO,aACpD;IACA,mBAAmB,MAAM;KACvB,IAAI,EAAE,YAAY,MAAM,OAAO,cAC7B,UAAU,EAAE;UAEZ,UAAU,EAAE,YAAY,CAAC;IAE7B;GACD,CAAA;EACM,CAAA,CAEJ;;AAEb;AAEA,cAAc,cAAc"}
1
+ {"version":3,"file":"ColorSwatches.mjs","names":["Flexbox"],"sources":["../../src/ColorSwatches/ColorSwatches.tsx"],"sourcesContent":["'use client';\n\nimport { cssVar, cx } from 'antd-style';\nimport chroma from 'chroma-js';\nimport { CheckIcon } from 'lucide-react';\nimport { type FC, useMemo } from 'react';\nimport useMergeState from 'use-merge-value';\n\nimport { ColorPicker } from '@/base-ui/ColorPicker';\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 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={`color-mix(in srgb, ${safeReadableColor(color)} 33%, transparent)`}\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 <span style={{ display: 'inline-flex' }}>\n <ColorPicker\n presets={enableColorSwatches ? undefined : colors.map((c) => c.color)}\n value={isCustomActive ? active : undefined}\n onChangeComplete={setActive}\n >\n <button\n aria-label={texts?.custom || 'Custom'}\n type=\"button\"\n className={cx(\n styles.picker,\n enableColorSwatches && styles.conic,\n isCustomActive && styles.active,\n )}\n style={{\n background: enableColorSwatches ? undefined : active,\n borderRadius: shape === 'circle' ? '50%' : cssVar.borderRadius,\n }}\n />\n </ColorPicker>\n </span>\n </Tooltip>\n )}\n </Flexbox>\n );\n};\n\nColorSwatches.displayName = 'ColorSwatches';\n\nexport default ColorSwatches;\n"],"mappings":";;;;;;;;;;;;;;;AAiBA,MAAM,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;CACF,CAAC;CAGD,MAAM,eAAe,eACZ,EACL,yBAAyB,GAAG,KAAK,IACnC,IACA,CAAC,IAAI,CACP;CAEA,MAAM,iBAAiB,cACf,UAAU,WAAW,OAAO,gBAAgB,CAAC,OAAO,MAAM,MAAM,EAAE,UAAU,MAAM,GACxF,CAAC,QAAQ,MAAM,CACjB;CAEA,OACE,qBAACA,mBAAD;EACE,YAAA;EACA,KAAK;EACA;EACL,OAAO;GACL,GAAG;GACH,UAAU;GACV,GAAG;EACL;EACA,GAAI;EATN,UAAA,CAWG,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,MAAM,YACnB;IACL,IAAI;KACF,OAAO,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,MAAM;IACrC,QAAQ;KACN,OAAO;IACT;GACF,EAAA,CAAG;GACP,OACE,oBAAC,SAAD;IAA2B,OAAO,EAAE;IAClC,UAAA,oBAAC,QAAD;KACE,WAAW,GACT,OAAO,WACP,iBAAiB,OAAO,aACxB,YAAY,OAAO,MACrB;KACA,OAAO;MACL,YAAY,gBAAgB,KAAA,IAAY;MACxC,cAAc,UAAU,WAAW,QAAQ,OAAO;KACpD;KACA,eAAe,UAAU,EAAE,SAAS,KAAA,CAAS;KAE5C,UAAA,YACC,oBAAC,MAAD;MACE,OAAO,sBAAsB,kBAAkB,KAAK,EAAE;MACtD,MAAM;MACN,MAAM;OAAE,MAAM;OAAI,aAAa;MAAE;MACjC,OAAO,EACL,eAAe,OACjB;KACD,CAAA;IAEG,CAAA;GACD,GAxBK,GAAG,OAAO,CAwBf;EAEb,CAAC,GACF,qBACC,oBAAC,SAAD;GAAS,OAAO,OAAO,UAAU;GAC/B,UAAA,oBAAC,QAAD;IAAM,OAAO,EAAE,SAAS,cAAc;IACpC,UAAA,oBAAC,aAAD;KACE,SAAS,sBAAsB,KAAA,IAAY,OAAO,KAAK,MAAM,EAAE,KAAK;KACpE,OAAO,iBAAiB,SAAS,KAAA;KACjC,kBAAkB;KAElB,UAAA,oBAAC,UAAD;MACE,cAAY,OAAO,UAAU;MAC7B,MAAK;MACL,WAAW,GACT,OAAO,QACP,uBAAuB,OAAO,OAC9B,kBAAkB,OAAO,MAC3B;MACA,OAAO;OACL,YAAY,sBAAsB,KAAA,IAAY;OAC9C,cAAc,UAAU,WAAW,QAAQ,OAAO;MACpD;KACD,CAAA;IACU,CAAA;GACT,CAAA;EACC,CAAA,CAEJ;;AAEb;AAEA,cAAc,cAAc"}
@@ -1,6 +1,5 @@
1
1
  import { createStaticStyles } from "antd-style";
2
2
  //#region src/ColorSwatches/style.ts
3
- const prefixCls = "ant";
4
3
  const styles = createStaticStyles(({ css, cssVar }) => {
5
4
  return {
6
5
  active: css`
@@ -22,9 +21,6 @@ const styles = createStaticStyles(({ css, cssVar }) => {
22
21
  ${cssVar.magenta},
23
22
  ${cssVar.red}
24
23
  );
25
- .${prefixCls}-color-picker-color-block {
26
- opacity: 0;
27
- }
28
24
  `,
29
25
  container: css`
30
26
  cursor: pointer;
@@ -41,11 +37,13 @@ const styles = createStaticStyles(({ css, cssVar }) => {
41
37
 
42
38
  &:hover {
43
39
  box-shadow:
44
- inset 0 0 0 1px rgba(0, 0, 0, 5%),
40
+ inset 0 0 0 1px rgb(0 0 0 / 5%),
45
41
  0 0 0 2px ${cssVar.colorText};
46
42
  }
47
43
  `,
48
44
  picker: css`
45
+ cursor: pointer;
46
+
49
47
  overflow: hidden;
50
48
  flex: none;
51
49
 
@@ -63,13 +61,6 @@ const styles = createStaticStyles(({ css, cssVar }) => {
63
61
  inset 0 0 0 1px ${cssVar.colorFillSecondary},
64
62
  0 0 0 2px ${cssVar.colorText};
65
63
  }
66
-
67
- .${prefixCls}-color-picker-color-block {
68
- width: 100%;
69
- height: 100%;
70
- border: none;
71
- border-radius: inherit;
72
- }
73
64
  `,
74
65
  transparent: css`
75
66
  background-image: conic-gradient(
@@ -1 +1 @@
1
- {"version":3,"file":"style.mjs","names":[],"sources":["../../src/ColorSwatches/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\n\nconst prefixCls = 'ant';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => {\n return {\n active: css`\n box-shadow: inset 0 0 0 1px ${cssVar.colorFill};\n `,\n conic: css`\n background: conic-gradient(\n ${cssVar.red},\n ${cssVar.volcano},\n ${cssVar.orange},\n ${cssVar.gold},\n ${cssVar.yellow},\n ${cssVar.lime},\n ${cssVar.green},\n ${cssVar.cyan},\n ${cssVar.blue},\n ${cssVar.geekblue},\n ${cssVar.purple},\n ${cssVar.magenta},\n ${cssVar.red}\n );\n .${prefixCls}-color-picker-color-block {\n opacity: 0;\n }\n `,\n\n container: css`\n cursor: pointer;\n\n flex: none;\n\n width: var(--color-swatches-size, 24px);\n min-width: var(--color-swatches-size, 24px);\n height: var(--color-swatches-size, 24px);\n min-height: var(--color-swatches-size, 24px);\n\n background: ${cssVar.colorBgContainer};\n box-shadow: inset 0 0 0 1px ${cssVar.colorFillSecondary};\n\n &:hover {\n box-shadow:\n inset 0 0 0 1px rgba(0, 0, 0, 5%),\n 0 0 0 2px ${cssVar.colorText};\n }\n `,\n\n picker: css`\n overflow: hidden;\n flex: none;\n\n width: var(--color-swatches-size, 24px);\n min-width: var(--color-swatches-size, 24px);\n height: var(--color-swatches-size, 24px);\n min-height: var(--color-swatches-size, 24px);\n padding: 0;\n border: none;\n\n box-shadow: inset 0 0 0 1px ${cssVar.colorFillSecondary};\n\n &:hover {\n box-shadow:\n inset 0 0 0 1px ${cssVar.colorFillSecondary},\n 0 0 0 2px ${cssVar.colorText};\n }\n\n .${prefixCls}-color-picker-color-block {\n width: 100%;\n height: 100%;\n border: none;\n border-radius: inherit;\n }\n `,\n\n transparent: css`\n background-image: conic-gradient(\n ${cssVar.colorFillSecondary} 25%,\n transparent 25% 50%,\n ${cssVar.colorFillSecondary} 50% 75%,\n transparent 75% 100%\n );\n background-size: 50% 50%;\n `,\n };\n});\n"],"mappings":";;AAEA,MAAM,YAAY;AAElB,MAAa,SAAS,oBAAoB,EAAE,KAAK,aAAa;CAC5D,OAAO;EACL,QAAQ,GAAG;oCACqB,OAAO,UAAU;;EAEjD,OAAO,GAAG;;UAEJ,OAAO,IAAI;UACX,OAAO,QAAQ;UACf,OAAO,OAAO;UACd,OAAO,KAAK;UACZ,OAAO,OAAO;UACd,OAAO,KAAK;UACZ,OAAO,MAAM;UACb,OAAO,KAAK;UACZ,OAAO,KAAK;UACZ,OAAO,SAAS;UAChB,OAAO,OAAO;UACd,OAAO,QAAQ;UACf,OAAO,IAAI;;SAEZ,UAAU;;;;EAKf,WAAW,GAAG;;;;;;;;;;oBAUE,OAAO,iBAAiB;oCACR,OAAO,mBAAmB;;;;;sBAKxC,OAAO,UAAU;;;EAInC,QAAQ,GAAG;;;;;;;;;;;oCAWqB,OAAO,mBAAmB;;;;4BAIlC,OAAO,mBAAmB;sBAChC,OAAO,UAAU;;;SAG9B,UAAU;;;;;;;EAQf,aAAa,GAAG;;UAEV,OAAO,mBAAmB;;UAE1B,OAAO,mBAAmB;;;;;CAKlC;AACF,CAAC"}
1
+ {"version":3,"file":"style.mjs","names":[],"sources":["../../src/ColorSwatches/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => {\n return {\n active: css`\n box-shadow: inset 0 0 0 1px ${cssVar.colorFill};\n `,\n conic: css`\n background: conic-gradient(\n ${cssVar.red},\n ${cssVar.volcano},\n ${cssVar.orange},\n ${cssVar.gold},\n ${cssVar.yellow},\n ${cssVar.lime},\n ${cssVar.green},\n ${cssVar.cyan},\n ${cssVar.blue},\n ${cssVar.geekblue},\n ${cssVar.purple},\n ${cssVar.magenta},\n ${cssVar.red}\n );\n `,\n\n container: css`\n cursor: pointer;\n\n flex: none;\n\n width: var(--color-swatches-size, 24px);\n min-width: var(--color-swatches-size, 24px);\n height: var(--color-swatches-size, 24px);\n min-height: var(--color-swatches-size, 24px);\n\n background: ${cssVar.colorBgContainer};\n box-shadow: inset 0 0 0 1px ${cssVar.colorFillSecondary};\n\n &:hover {\n box-shadow:\n inset 0 0 0 1px rgb(0 0 0 / 5%),\n 0 0 0 2px ${cssVar.colorText};\n }\n `,\n\n picker: css`\n cursor: pointer;\n\n overflow: hidden;\n flex: none;\n\n width: var(--color-swatches-size, 24px);\n min-width: var(--color-swatches-size, 24px);\n height: var(--color-swatches-size, 24px);\n min-height: var(--color-swatches-size, 24px);\n padding: 0;\n border: none;\n\n box-shadow: inset 0 0 0 1px ${cssVar.colorFillSecondary};\n\n &:hover {\n box-shadow:\n inset 0 0 0 1px ${cssVar.colorFillSecondary},\n 0 0 0 2px ${cssVar.colorText};\n }\n `,\n\n transparent: css`\n background-image: conic-gradient(\n ${cssVar.colorFillSecondary} 25%,\n transparent 25% 50%,\n ${cssVar.colorFillSecondary} 50% 75%,\n transparent 75% 100%\n );\n background-size: 50% 50%;\n `,\n };\n});\n"],"mappings":";;AAEA,MAAa,SAAS,oBAAoB,EAAE,KAAK,aAAa;CAC5D,OAAO;EACL,QAAQ,GAAG;oCACqB,OAAO,UAAU;;EAEjD,OAAO,GAAG;;UAEJ,OAAO,IAAI;UACX,OAAO,QAAQ;UACf,OAAO,OAAO;UACd,OAAO,KAAK;UACZ,OAAO,OAAO;UACd,OAAO,KAAK;UACZ,OAAO,MAAM;UACb,OAAO,KAAK;UACZ,OAAO,KAAK;UACZ,OAAO,SAAS;UAChB,OAAO,OAAO;UACd,OAAO,QAAQ;UACf,OAAO,IAAI;;;EAIjB,WAAW,GAAG;;;;;;;;;;oBAUE,OAAO,iBAAiB;oCACR,OAAO,mBAAmB;;;;;sBAKxC,OAAO,UAAU;;;EAInC,QAAQ,GAAG;;;;;;;;;;;;;oCAaqB,OAAO,mBAAmB;;;;4BAIlC,OAAO,mBAAmB;sBAChC,OAAO,UAAU;;;EAInC,aAAa,GAAG;;UAEV,OAAO,mBAAmB;;UAE1B,OAAO,mBAAmB;;;;;CAKlC;AACF,CAAC"}
@@ -2,8 +2,8 @@
2
2
  import { variants } from "./style.mjs";
3
3
  import { memo } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
- import { DatePicker } from "antd";
6
5
  import { cx, useThemeMode } from "antd-style";
6
+ import { DatePicker } from "antd";
7
7
  //#region src/DatePicker/DatePicker.tsx
8
8
  const DatePicker$1 = memo(({ variant, shadow, className, ...rest }) => {
9
9
  const { isDarkMode } = useThemeMode();
@@ -5,10 +5,10 @@ import { handleVariants, panelVariants, styles, toggleVariants } from "./style.m
5
5
  import { isBelowCollapseThreshold, reversePlacement } from "./utils.mjs";
6
6
  import { memo, startTransition, use, useCallback, useEffect, useMemo, useRef, useState } from "react";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
- import { ConfigProvider } from "antd";
9
8
  import { cx } from "antd-style";
10
9
  import useMergeState from "use-merge-value";
11
10
  import { ChevronDown, ChevronLeft, ChevronRight, ChevronUp } from "lucide-react";
11
+ import { ConfigProvider } from "antd";
12
12
  import { useHover } from "ahooks";
13
13
  import isEqual from "fast-deep-equal";
14
14
  import { Resizable } from "re-resizable";
@@ -3,9 +3,9 @@ import FlexBasic_default from "../Flex/FlexBasic.mjs";
3
3
  import ActionIcon from "../base-ui/ActionIcon/ActionIcon.mjs";
4
4
  import { memo, useMemo } from "react";
5
5
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
6
- import { Drawer } from "antd";
7
6
  import { cssVar } from "antd-style";
8
7
  import { XIcon } from "lucide-react";
8
+ import { Drawer } from "antd";
9
9
  //#region src/Drawer/Drawer.tsx
10
10
  const Drawer$1 = memo(({ onClose, containerMaxWidth = 1024, classNames, title, placement, styles, children, height, width, extra, closeIconProps, noHeader, sidebarWidth = 280, sidebar, closeIcon, ref, ...rest }) => {
11
11
  const headerBorder = useMemo(() => {
@@ -1,7 +1,7 @@
1
1
  import { ActionIconProps } from "../base-ui/ActionIcon/type.mjs";
2
2
  import "../base-ui/ActionIcon/index.mjs";
3
- import { InputProps } from "../Input/type.mjs";
4
- import "../Input/index.mjs";
3
+ import { InputProps } from "../base-ui/Input/type.mjs";
4
+ import "../base-ui/Input/index.mjs";
5
5
  //#region src/EditableText/ControlInput.d.ts
6
6
  interface ControlInputProps extends Omit<InputProps, 'onChange' | 'value' | 'onAbort'> {
7
7
  onChange?: (value: string) => void;
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import FlexBasic_default from "../Flex/FlexBasic.mjs";
3
3
  import ActionIcon from "../base-ui/ActionIcon/ActionIcon.mjs";
4
- import Input from "../Input/Input.mjs";
4
+ import Input from "../base-ui/Input/Input.mjs";
5
5
  import { memo, useEffect, useRef, useState } from "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  import { RotateCcw, Save } from "lucide-react";
@@ -1 +1 @@
1
- {"version":3,"file":"ControlInput.mjs","names":["Flexbox"],"sources":["../../src/EditableText/ControlInput.tsx"],"sourcesContent":["'use client';\n\nimport type { InputRef } from 'antd';\nimport { RotateCcw, Save } from 'lucide-react';\nimport { memo, useEffect, useRef, useState } from 'react';\n\nimport ActionIcon, { type ActionIconProps } from '@/base-ui/ActionIcon';\nimport { Flexbox } from '@/Flex';\nimport Input, { type InputProps } from '@/Input';\n\nexport interface ControlInputProps extends Omit<InputProps, 'onChange' | 'value' | 'onAbort'> {\n onChange?: (value: string) => void;\n onChangeEnd?: (value: string) => void;\n onValueChanging?: (value: string) => void;\n submitIcon?: ActionIconProps['icon'];\n texts?: {\n reset?: string;\n submit?: string;\n };\n value?: string;\n}\n\nconst ControlInput = memo<ControlInputProps>(\n ({\n value,\n onChange,\n onValueChanging,\n onChangeEnd,\n onCompositionEnd,\n onCompositionStart,\n onPressEnter,\n onFocus,\n submitIcon,\n style,\n texts,\n ...rest\n }) => {\n const ref = useRef<InputRef>(null);\n const [input, setInput] = useState<string>(value || '');\n\n const isChineseInput = useRef(false);\n\n useEffect(() => {\n if (value !== undefined) setInput(value);\n }, [value]);\n\n const handleUpload = () => {\n onChange?.(input);\n ref?.current?.blur();\n onChangeEnd?.(input);\n };\n\n return (\n <Input\n autoFocus\n ref={ref}\n value={input}\n style={{\n width: '100%',\n ...style,\n }}\n suffix={\n value === input ? (\n <span />\n ) : (\n <Flexbox\n horizontal\n gap={2}\n style={{\n marginRight: -4,\n zIndex: 1,\n }}\n >\n <ActionIcon\n icon={RotateCcw}\n size=\"small\"\n title={texts?.reset || 'Reset'}\n onClick={(e) => {\n e.preventDefault();\n setInput(value || '');\n }}\n />\n <ActionIcon\n icon={submitIcon || Save}\n size=\"small\"\n title={texts?.submit || 'Submit'}\n variant={'filled'}\n onClick={(e) => {\n e.preventDefault();\n handleUpload();\n }}\n />\n </Flexbox>\n )\n }\n onFocus={onFocus}\n onChange={(e) => {\n setInput(e.target.value);\n onValueChanging?.(e.target.value);\n }}\n onCompositionEnd={(e) => {\n isChineseInput.current = false;\n onCompositionEnd?.(e);\n }}\n onCompositionStart={(e) => {\n isChineseInput.current = true;\n onCompositionStart?.(e);\n }}\n onPressEnter={(e) => {\n if (!e.shiftKey && !isChineseInput.current) {\n e.preventDefault();\n handleUpload();\n onPressEnter?.(e);\n }\n }}\n {...rest}\n />\n );\n },\n);\n\nControlInput.displayName = 'ControlInput';\n\nexport default ControlInput;\n"],"mappings":";;;;;;;;AAsBA,MAAM,eAAe,MAClB,EACC,OACA,UACA,iBACA,aACA,kBACA,oBACA,cACA,SACA,YACA,OACA,OACA,GAAG,WACC;CACJ,MAAM,MAAM,OAAiB,IAAI;CACjC,MAAM,CAAC,OAAO,YAAY,SAAiB,SAAS,EAAE;CAEtD,MAAM,iBAAiB,OAAO,KAAK;CAEnC,gBAAgB;EACd,IAAI,UAAU,KAAA,GAAW,SAAS,KAAK;CACzC,GAAG,CAAC,KAAK,CAAC;CAEV,MAAM,qBAAqB;EACzB,WAAW,KAAK;EAChB,KAAK,SAAS,KAAK;EACnB,cAAc,KAAK;CACrB;CAEA,OACE,oBAAC,OAAD;EACE,WAAA;EACK;EACL,OAAO;EACP,OAAO;GACL,OAAO;GACP,GAAG;EACL;EACA,QACE,UAAU,QACR,oBAAC,QAAD,CAAO,CAAA,IAEP,qBAACA,mBAAD;GACE,YAAA;GACA,KAAK;GACL,OAAO;IACL,aAAa;IACb,QAAQ;GACV;GANF,UAAA,CAQE,oBAAC,YAAD;IACE,MAAM;IACN,MAAK;IACL,OAAO,OAAO,SAAS;IACvB,UAAU,MAAM;KACd,EAAE,eAAe;KACjB,SAAS,SAAS,EAAE;IACtB;GACD,CAAA,GACD,oBAAC,YAAD;IACE,MAAM,cAAc;IACpB,MAAK;IACL,OAAO,OAAO,UAAU;IACxB,SAAS;IACT,UAAU,MAAM;KACd,EAAE,eAAe;KACjB,aAAa;IACf;GACD,CAAA,CACM;;EAGJ;EACT,WAAW,MAAM;GACf,SAAS,EAAE,OAAO,KAAK;GACvB,kBAAkB,EAAE,OAAO,KAAK;EAClC;EACA,mBAAmB,MAAM;GACvB,eAAe,UAAU;GACzB,mBAAmB,CAAC;EACtB;EACA,qBAAqB,MAAM;GACzB,eAAe,UAAU;GACzB,qBAAqB,CAAC;EACxB;EACA,eAAe,MAAM;GACnB,IAAI,CAAC,EAAE,YAAY,CAAC,eAAe,SAAS;IAC1C,EAAE,eAAe;IACjB,aAAa;IACb,eAAe,CAAC;GAClB;EACF;EACA,GAAI;CACL,CAAA;AAEL,CACF;AAEA,aAAa,cAAc"}
1
+ {"version":3,"file":"ControlInput.mjs","names":["Flexbox"],"sources":["../../src/EditableText/ControlInput.tsx"],"sourcesContent":["'use client';\n\nimport { RotateCcw, Save } from 'lucide-react';\nimport { memo, useEffect, useRef, useState } from 'react';\n\nimport ActionIcon, { type ActionIconProps } from '@/base-ui/ActionIcon';\nimport { Input, type InputProps } from '@/base-ui/Input';\nimport { Flexbox } from '@/Flex';\n\nexport interface ControlInputProps extends Omit<InputProps, 'onChange' | 'value' | 'onAbort'> {\n onChange?: (value: string) => void;\n onChangeEnd?: (value: string) => void;\n onValueChanging?: (value: string) => void;\n submitIcon?: ActionIconProps['icon'];\n texts?: {\n reset?: string;\n submit?: string;\n };\n value?: string;\n}\n\nconst ControlInput = memo<ControlInputProps>(\n ({\n value,\n onChange,\n onValueChanging,\n onChangeEnd,\n onCompositionEnd,\n onCompositionStart,\n onPressEnter,\n onFocus,\n submitIcon,\n style,\n texts,\n ...rest\n }) => {\n const ref = useRef<HTMLInputElement>(null);\n const [input, setInput] = useState<string>(value || '');\n\n const isChineseInput = useRef(false);\n\n useEffect(() => {\n if (value !== undefined) setInput(value);\n }, [value]);\n\n const handleUpload = () => {\n onChange?.(input);\n ref?.current?.blur();\n onChangeEnd?.(input);\n };\n\n return (\n <Input\n autoFocus\n ref={ref}\n value={input}\n style={{\n width: '100%',\n ...style,\n }}\n suffix={\n value === input ? (\n <span />\n ) : (\n <Flexbox\n horizontal\n gap={2}\n style={{\n marginRight: -4,\n zIndex: 1,\n }}\n >\n <ActionIcon\n icon={RotateCcw}\n size=\"small\"\n title={texts?.reset || 'Reset'}\n onClick={(e) => {\n e.preventDefault();\n setInput(value || '');\n }}\n />\n <ActionIcon\n icon={submitIcon || Save}\n size=\"small\"\n title={texts?.submit || 'Submit'}\n variant={'filled'}\n onClick={(e) => {\n e.preventDefault();\n handleUpload();\n }}\n />\n </Flexbox>\n )\n }\n onFocus={onFocus}\n onChange={(e) => {\n setInput(e.target.value);\n onValueChanging?.(e.target.value);\n }}\n onCompositionEnd={(e) => {\n isChineseInput.current = false;\n onCompositionEnd?.(e);\n }}\n onCompositionStart={(e) => {\n isChineseInput.current = true;\n onCompositionStart?.(e);\n }}\n onPressEnter={(e) => {\n if (!e.shiftKey && !isChineseInput.current) {\n e.preventDefault();\n handleUpload();\n onPressEnter?.(e);\n }\n }}\n {...rest}\n />\n );\n },\n);\n\nControlInput.displayName = 'ControlInput';\n\nexport default ControlInput;\n"],"mappings":";;;;;;;;AAqBA,MAAM,eAAe,MAClB,EACC,OACA,UACA,iBACA,aACA,kBACA,oBACA,cACA,SACA,YACA,OACA,OACA,GAAG,WACC;CACJ,MAAM,MAAM,OAAyB,IAAI;CACzC,MAAM,CAAC,OAAO,YAAY,SAAiB,SAAS,EAAE;CAEtD,MAAM,iBAAiB,OAAO,KAAK;CAEnC,gBAAgB;EACd,IAAI,UAAU,KAAA,GAAW,SAAS,KAAK;CACzC,GAAG,CAAC,KAAK,CAAC;CAEV,MAAM,qBAAqB;EACzB,WAAW,KAAK;EAChB,KAAK,SAAS,KAAK;EACnB,cAAc,KAAK;CACrB;CAEA,OACE,oBAAC,OAAD;EACE,WAAA;EACK;EACL,OAAO;EACP,OAAO;GACL,OAAO;GACP,GAAG;EACL;EACA,QACE,UAAU,QACR,oBAAC,QAAD,CAAO,CAAA,IAEP,qBAACA,mBAAD;GACE,YAAA;GACA,KAAK;GACL,OAAO;IACL,aAAa;IACb,QAAQ;GACV;GANF,UAAA,CAQE,oBAAC,YAAD;IACE,MAAM;IACN,MAAK;IACL,OAAO,OAAO,SAAS;IACvB,UAAU,MAAM;KACd,EAAE,eAAe;KACjB,SAAS,SAAS,EAAE;IACtB;GACD,CAAA,GACD,oBAAC,YAAD;IACE,MAAM,cAAc;IACpB,MAAK;IACL,OAAO,OAAO,UAAU;IACxB,SAAS;IACT,UAAU,MAAM;KACd,EAAE,eAAe;KACjB,aAAa;IACf;GACD,CAAA,CACM;;EAGJ;EACT,WAAW,MAAM;GACf,SAAS,EAAE,OAAO,KAAK;GACvB,kBAAkB,EAAE,OAAO,KAAK;EAClC;EACA,mBAAmB,MAAM;GACvB,eAAe,UAAU;GACzB,mBAAmB,CAAC;EACtB;EACA,qBAAqB,MAAM;GACzB,eAAe,UAAU;GACzB,qBAAqB,CAAC;EACxB;EACA,eAAe,MAAM;GACnB,IAAI,CAAC,EAAE,YAAY,CAAC,eAAe,SAAS;IAC1C,EAAE,eAAe;IACjB,aAAa;IACb,eAAe,CAAC;GAClB;EACF;EACA,GAAI;CACL,CAAA;AAEL,CACF;AAEA,aAAa,cAAc"}
@@ -36,6 +36,7 @@ const EditableText = memo(({ value, showEditIcon = true, onChange, editing, onEd
36
36
  variant,
37
37
  style: {
38
38
  height,
39
+ ...size === "small" && { fontSize: 14 },
39
40
  ...style,
40
41
  ...styles?.input
41
42
  },
@@ -1 +1 @@
1
- {"version":3,"file":"EditableText.mjs","names":["useControlledState","Flexbox"],"sources":["../../src/EditableText/EditableText.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { Edit3 } from 'lucide-react';\nimport { memo, useMemo } from 'react';\nimport { useHotkeys } from 'react-hotkeys-hook';\nimport useControlledState from 'use-merge-value';\n\nimport ActionIcon from '@/base-ui/ActionIcon';\nimport { Flexbox } from '@/Flex';\n\nimport ControlInput from './ControlInput';\nimport type { EditableTextProps } from './type';\n\nconst EditableText = memo<EditableTextProps>(\n ({\n value,\n showEditIcon = true,\n onChange,\n editing,\n onEditingChange,\n onChangeEnd,\n onFocus,\n onBlur,\n className,\n inputProps,\n onValueChanging,\n gap = 8,\n style,\n size = 'small',\n styles,\n classNames,\n variant = 'borderless',\n ...rest\n }) => {\n const [edited, setEdited] = useControlledState(false, {\n onChange: onEditingChange,\n value: editing,\n });\n\n useHotkeys(\n 'esc',\n () => {\n setEdited(false);\n },\n {\n enableOnFormTags: true,\n enabled: edited,\n preventDefault: true,\n },\n );\n\n const height = useMemo(() => {\n if (!size) return 32;\n switch (size) {\n case 'large': {\n return 40;\n }\n case 'middle': {\n return 32;\n }\n case 'small': {\n return 24;\n }\n }\n }, [size]);\n\n const input = (\n <ControlInput\n className={cx(className, classNames?.input)}\n size={size}\n value={value as string}\n variant={variant}\n style={{\n height,\n ...style,\n ...styles?.input,\n }}\n onBlur={onBlur}\n onChange={onChange}\n onFocus={onFocus}\n onValueChanging={onValueChanging}\n onChangeEnd={(v) => {\n onChangeEnd?.(v);\n setEdited(false);\n }}\n {...inputProps}\n />\n );\n\n const content = (\n <>\n <span>{value}</span>\n {showEditIcon && (\n <ActionIcon\n icon={Edit3}\n size=\"small\"\n title={'Edit'}\n onClick={() => {\n setEdited(!edited);\n }}\n />\n )}\n </>\n );\n\n return (\n <Flexbox\n horizontal\n align={'center'}\n className={cx(className, classNames?.container)}\n gap={gap}\n style={{\n height,\n width: '100%',\n ...style,\n ...styles?.container,\n }}\n {...rest}\n >\n {edited ? input : content}\n </Flexbox>\n );\n },\n);\n\nEditableText.displayName = 'EditableText';\n\nexport default EditableText;\n"],"mappings":";;;;;;;;;;;AAcA,MAAM,eAAe,MAClB,EACC,OACA,eAAe,MACf,UACA,SACA,iBACA,aACA,SACA,QACA,WACA,YACA,iBACA,MAAM,GACN,OACA,OAAO,SACP,QACA,YACA,UAAU,cACV,GAAG,WACC;CACJ,MAAM,CAAC,QAAQ,aAAaA,cAAmB,OAAO;EACpD,UAAU;EACV,OAAO;CACT,CAAC;CAED,WACE,aACM;EACJ,UAAU,KAAK;CACjB,GACA;EACE,kBAAkB;EAClB,SAAS;EACT,gBAAgB;CAClB,CACF;CAEA,MAAM,SAAS,cAAc;EAC3B,IAAI,CAAC,MAAM,OAAO;EAClB,QAAQ,MAAR;GACE,KAAK,SACH,OAAO;GAET,KAAK,UACH,OAAO;GAET,KAAK,SACH,OAAO;EAEX;CACF,GAAG,CAAC,IAAI,CAAC;CAET,MAAM,QACJ,oBAAC,cAAD;EACE,WAAW,GAAG,WAAW,YAAY,KAAK;EACpC;EACC;EACE;EACT,OAAO;GACL;GACA,GAAG;GACH,GAAG,QAAQ;EACb;EACQ;EACE;EACD;EACQ;EACjB,cAAc,MAAM;GAClB,cAAc,CAAC;GACf,UAAU,KAAK;EACjB;EACA,GAAI;CACL,CAAA;CAGH,MAAM,UACJ,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,QAAD,EAAA,UAAO,MAAY,CAAA,GAClB,gBACC,oBAAC,YAAD;EACE,MAAM;EACN,MAAK;EACL,OAAO;EACP,eAAe;GACb,UAAU,CAAC,MAAM;EACnB;CACD,CAAA,CAEH,EAAA,CAAA;CAGJ,OACE,oBAACC,mBAAD;EACE,YAAA;EACA,OAAO;EACP,WAAW,GAAG,WAAW,YAAY,SAAS;EACzC;EACL,OAAO;GACL;GACA,OAAO;GACP,GAAG;GACH,GAAG,QAAQ;EACb;EACA,GAAI;EAEH,UAAA,SAAS,QAAQ;CACX,CAAA;AAEb,CACF;AAEA,aAAa,cAAc"}
1
+ {"version":3,"file":"EditableText.mjs","names":["useControlledState","Flexbox"],"sources":["../../src/EditableText/EditableText.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { Edit3 } from 'lucide-react';\nimport { memo, useMemo } from 'react';\nimport { useHotkeys } from 'react-hotkeys-hook';\nimport useControlledState from 'use-merge-value';\n\nimport ActionIcon from '@/base-ui/ActionIcon';\nimport { Flexbox } from '@/Flex';\n\nimport ControlInput from './ControlInput';\nimport type { EditableTextProps } from './type';\n\nconst EditableText = memo<EditableTextProps>(\n ({\n value,\n showEditIcon = true,\n onChange,\n editing,\n onEditingChange,\n onChangeEnd,\n onFocus,\n onBlur,\n className,\n inputProps,\n onValueChanging,\n gap = 8,\n style,\n size = 'small',\n styles,\n classNames,\n variant = 'borderless',\n ...rest\n }) => {\n const [edited, setEdited] = useControlledState(false, {\n onChange: onEditingChange,\n value: editing,\n });\n\n useHotkeys(\n 'esc',\n () => {\n setEdited(false);\n },\n {\n enableOnFormTags: true,\n enabled: edited,\n preventDefault: true,\n },\n );\n\n const height = useMemo(() => {\n if (!size) return 32;\n switch (size) {\n case 'large': {\n return 40;\n }\n case 'middle': {\n return 32;\n }\n case 'small': {\n return 24;\n }\n }\n }, [size]);\n\n const input = (\n <ControlInput\n className={cx(className, classNames?.input)}\n size={size}\n value={value as string}\n variant={variant}\n style={{\n height,\n ...(size === 'small' && { fontSize: 14 }),\n ...style,\n ...styles?.input,\n }}\n onBlur={onBlur}\n onChange={onChange}\n onFocus={onFocus}\n onValueChanging={onValueChanging}\n onChangeEnd={(v) => {\n onChangeEnd?.(v);\n setEdited(false);\n }}\n {...inputProps}\n />\n );\n\n const content = (\n <>\n <span>{value}</span>\n {showEditIcon && (\n <ActionIcon\n icon={Edit3}\n size=\"small\"\n title={'Edit'}\n onClick={() => {\n setEdited(!edited);\n }}\n />\n )}\n </>\n );\n\n return (\n <Flexbox\n horizontal\n align={'center'}\n className={cx(className, classNames?.container)}\n gap={gap}\n style={{\n height,\n width: '100%',\n ...style,\n ...styles?.container,\n }}\n {...rest}\n >\n {edited ? input : content}\n </Flexbox>\n );\n },\n);\n\nEditableText.displayName = 'EditableText';\n\nexport default EditableText;\n"],"mappings":";;;;;;;;;;;AAcA,MAAM,eAAe,MAClB,EACC,OACA,eAAe,MACf,UACA,SACA,iBACA,aACA,SACA,QACA,WACA,YACA,iBACA,MAAM,GACN,OACA,OAAO,SACP,QACA,YACA,UAAU,cACV,GAAG,WACC;CACJ,MAAM,CAAC,QAAQ,aAAaA,cAAmB,OAAO;EACpD,UAAU;EACV,OAAO;CACT,CAAC;CAED,WACE,aACM;EACJ,UAAU,KAAK;CACjB,GACA;EACE,kBAAkB;EAClB,SAAS;EACT,gBAAgB;CAClB,CACF;CAEA,MAAM,SAAS,cAAc;EAC3B,IAAI,CAAC,MAAM,OAAO;EAClB,QAAQ,MAAR;GACE,KAAK,SACH,OAAO;GAET,KAAK,UACH,OAAO;GAET,KAAK,SACH,OAAO;EAEX;CACF,GAAG,CAAC,IAAI,CAAC;CAET,MAAM,QACJ,oBAAC,cAAD;EACE,WAAW,GAAG,WAAW,YAAY,KAAK;EACpC;EACC;EACE;EACT,OAAO;GACL;GACA,GAAI,SAAS,WAAW,EAAE,UAAU,GAAG;GACvC,GAAG;GACH,GAAG,QAAQ;EACb;EACQ;EACE;EACD;EACQ;EACjB,cAAc,MAAM;GAClB,cAAc,CAAC;GACf,UAAU,KAAK;EACjB;EACA,GAAI;CACL,CAAA;CAGH,MAAM,UACJ,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,QAAD,EAAA,UAAO,MAAY,CAAA,GAClB,gBACC,oBAAC,YAAD;EACE,MAAM;EACN,MAAK;EACL,OAAO;EACP,eAAe;GACb,UAAU,CAAC,MAAM;EACnB;CACD,CAAA,CAEH,EAAA,CAAA;CAGJ,OACE,oBAACC,mBAAD;EACE,YAAA;EACA,OAAO;EACP,WAAW,GAAG,WAAW,YAAY,SAAS;EACzC;EACL,OAAO;GACL;GACA,OAAO;GACP,GAAG;GACH,GAAG,QAAQ;EACb;EACA,GAAI;EAEH,UAAA,SAAS,QAAQ;CACX,CAAA;AAEb,CACF;AAEA,aAAa,cAAc"}
@@ -3,7 +3,7 @@ import "../Flex/index.mjs";
3
3
  import { ControlInputProps } from "./ControlInput.mjs";
4
4
  import { CSSProperties } from "react";
5
5
  //#region src/EditableText/type.d.ts
6
- interface EditableTextProps extends Omit<FlexboxProps, 'onChange' | 'onBlur' | 'onFocus'>, Pick<ControlInputProps, 'onChange' | 'value' | 'onChangeEnd' | 'onValueChanging' | 'texts' | 'variant' | 'onBlur' | 'onFocus' | 'size'> {
6
+ interface EditableTextProps extends Omit<FlexboxProps, 'onChange' | 'onBlur' | 'onFocus'>, Pick<ControlInputProps, 'onChange' | 'value' | 'onChangeEnd' | 'onValueChanging' | 'texts' | 'variant' | 'onBlur' | 'onFocus'> {
7
7
  className?: string;
8
8
  classNames?: {
9
9
  container?: string;
@@ -17,6 +17,10 @@ interface EditableTextProps extends Omit<FlexboxProps, 'onChange' | 'onBlur' | '
17
17
  inputProps?: Omit<ControlInputProps, 'onChange' | 'value' | 'onChangeEnd' | 'onValueChanging' | 'texts' | 'className' | 'style' | 'onBlur' | 'onFocus' | 'size'>;
18
18
  onEditingChange?: (editing: boolean) => void;
19
19
  showEditIcon?: boolean;
20
+ /**
21
+ * @default 'small'
22
+ */
23
+ size?: ControlInputProps['size'];
20
24
  style?: CSSProperties;
21
25
  styles?: {
22
26
  container?: CSSProperties;