@lobehub/ui 5.51.2 → 5.52.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 (322) 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/i18n/resources/en/burger.d.mts +8 -0
  269. package/es/i18n/resources/en/burger.mjs +9 -0
  270. package/es/i18n/resources/en/burger.mjs.map +1 -0
  271. package/es/i18n/resources/en/colorPicker.d.mts +12 -0
  272. package/es/i18n/resources/en/colorPicker.mjs +13 -0
  273. package/es/i18n/resources/en/colorPicker.mjs.map +1 -0
  274. package/es/i18n/resources/en/common.d.mts +1 -0
  275. package/es/i18n/resources/en/common.mjs +1 -0
  276. package/es/i18n/resources/en/common.mjs.map +1 -1
  277. package/es/i18n/resources/en/datePicker.d.mts +13 -0
  278. package/es/i18n/resources/en/datePicker.mjs +14 -0
  279. package/es/i18n/resources/en/datePicker.mjs.map +1 -0
  280. package/es/i18n/resources/en/index.d.mts +15 -11
  281. package/es/i18n/resources/en/index.mjs +9 -1
  282. package/es/i18n/resources/en/index.mjs.map +1 -1
  283. package/es/i18n/resources/en/qrCode.d.mts +9 -0
  284. package/es/i18n/resources/en/qrCode.mjs +10 -0
  285. package/es/i18n/resources/en/qrCode.mjs.map +1 -0
  286. package/es/i18n/resources/zhCn/burger.d.mts +8 -0
  287. package/es/i18n/resources/zhCn/burger.mjs +9 -0
  288. package/es/i18n/resources/zhCn/burger.mjs.map +1 -0
  289. package/es/i18n/resources/zhCn/colorPicker.d.mts +12 -0
  290. package/es/i18n/resources/zhCn/colorPicker.mjs +13 -0
  291. package/es/i18n/resources/zhCn/colorPicker.mjs.map +1 -0
  292. package/es/i18n/resources/zhCn/common.d.mts +1 -0
  293. package/es/i18n/resources/zhCn/common.mjs +1 -0
  294. package/es/i18n/resources/zhCn/common.mjs.map +1 -1
  295. package/es/i18n/resources/zhCn/datePicker.d.mts +13 -0
  296. package/es/i18n/resources/zhCn/datePicker.mjs +14 -0
  297. package/es/i18n/resources/zhCn/datePicker.mjs.map +1 -0
  298. package/es/i18n/resources/zhCn/index.d.mts +15 -11
  299. package/es/i18n/resources/zhCn/index.mjs +9 -1
  300. package/es/i18n/resources/zhCn/index.mjs.map +1 -1
  301. package/es/i18n/resources/zhCn/qrCode.d.mts +9 -0
  302. package/es/i18n/resources/zhCn/qrCode.mjs +10 -0
  303. package/es/i18n/resources/zhCn/qrCode.mjs.map +1 -0
  304. package/es/i18n/types.d.mts +14 -10
  305. package/es/index.d.mts +12 -11
  306. package/es/index.mjs +23 -23
  307. package/es/mdx/Cards/Card.d.mts +2 -2
  308. package/es/mdx/Cards/Card.mjs +1 -1
  309. package/es/mdx/Cards/Card.mjs.map +1 -1
  310. package/es/mdx/Mdx/index.mjs +1 -1
  311. package/es/mdx/Mdx/index.mjs.map +1 -1
  312. package/es/mdx/Tabs/index.d.mts +2 -2
  313. package/es/mdx/Tabs/index.mjs +7 -2
  314. package/es/mdx/Tabs/index.mjs.map +1 -1
  315. package/es/mdx/Tabs/style.mjs +33 -1
  316. package/es/mdx/Tabs/style.mjs.map +1 -1
  317. package/es/mdx/mdxComponents/Citation/PopoverPanel.mjs +1 -1
  318. package/es/mdx/mdxComponents/Citation/PopoverPanel.mjs.map +1 -1
  319. package/es/static-css/baseline.mjs +1 -4
  320. package/es/static-css/baseline.mjs.map +1 -1
  321. package/es/static-css/buildAntdStaticCss.mjs +1 -1
  322. package/package.json +3 -1
@@ -0,0 +1,65 @@
1
+ import { createStaticStyles } from "antd-style";
2
+ //#region src/base-ui/Breadcrumb/style.ts
3
+ const styles = createStaticStyles(({ css, cssVar }) => ({
4
+ button: css`
5
+ cursor: pointer;
6
+
7
+ padding: 0;
8
+ border: 0;
9
+
10
+ font: inherit;
11
+ color: inherit;
12
+
13
+ background: none;
14
+ `,
15
+ item: css`
16
+ display: flex;
17
+ gap: 4px;
18
+ align-items: center;
19
+ color: ${cssVar.colorTextDescription};
20
+
21
+ & a {
22
+ color: inherit;
23
+ text-decoration: none;
24
+ }
25
+
26
+ &[aria-current='page'] {
27
+ font-weight: 500;
28
+ color: ${cssVar.colorText};
29
+ }
30
+ `,
31
+ link: css`
32
+ border-radius: 4px;
33
+ color: inherit;
34
+ text-decoration: none;
35
+ `,
36
+ list: css`
37
+ display: flex;
38
+ flex-wrap: wrap;
39
+ gap: 4px;
40
+ align-items: center;
41
+
42
+ margin: 0;
43
+ padding: 0;
44
+
45
+ list-style: none;
46
+ `,
47
+ root: css`
48
+ font-size: 14px;
49
+ line-height: 1.5;
50
+
51
+ & a:hover,
52
+ & button:hover {
53
+ color: ${cssVar.colorText};
54
+ }
55
+ `,
56
+ separator: css`
57
+ display: inline-flex;
58
+ align-items: center;
59
+ color: ${cssVar.colorTextQuaternary};
60
+ `
61
+ }));
62
+ //#endregion
63
+ export { styles };
64
+
65
+ //# sourceMappingURL=style.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.mjs","names":[],"sources":["../../../src/base-ui/Breadcrumb/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => ({\n button: css`\n cursor: pointer;\n\n padding: 0;\n border: 0;\n\n font: inherit;\n color: inherit;\n\n background: none;\n `,\n item: css`\n display: flex;\n gap: 4px;\n align-items: center;\n color: ${cssVar.colorTextDescription};\n\n & a {\n color: inherit;\n text-decoration: none;\n }\n\n &[aria-current='page'] {\n font-weight: 500;\n color: ${cssVar.colorText};\n }\n `,\n link: css`\n border-radius: 4px;\n color: inherit;\n text-decoration: none;\n `,\n list: css`\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n align-items: center;\n\n margin: 0;\n padding: 0;\n\n list-style: none;\n `,\n root: css`\n font-size: 14px;\n line-height: 1.5;\n\n & a:hover,\n & button:hover {\n color: ${cssVar.colorText};\n }\n `,\n separator: css`\n display: inline-flex;\n align-items: center;\n color: ${cssVar.colorTextQuaternary};\n `,\n}));\n"],"mappings":";;AAEA,MAAa,SAAS,oBAAoB,EAAE,KAAK,cAAc;CAC7D,QAAQ,GAAG;;;;;;;;;;;CAWX,MAAM,GAAG;;;;aAIE,OAAO,qBAAqB;;;;;;;;;eAS1B,OAAO,UAAU;;;CAG9B,MAAM,GAAG;;;;;CAKT,MAAM,GAAG;;;;;;;;;;;CAWT,MAAM,GAAG;;;;;;eAMI,OAAO,UAAU;;;CAG9B,WAAW,GAAG;;;aAGH,OAAO,oBAAoB;;AAExC,EAAE"}
@@ -0,0 +1,24 @@
1
+ import { CSSProperties, ComponentProps, Key, MouseEventHandler, ReactNode, Ref } from "react";
2
+ //#region src/base-ui/Breadcrumb/type.d.ts
3
+ interface BreadcrumbItem {
4
+ href?: string;
5
+ key?: Key;
6
+ onClick?: MouseEventHandler<HTMLElement>;
7
+ title: ReactNode;
8
+ }
9
+ interface BreadcrumbProps extends Omit<ComponentProps<'nav'>, 'children'> {
10
+ classNames?: {
11
+ item?: string;
12
+ separator?: string;
13
+ };
14
+ items: BreadcrumbItem[];
15
+ ref?: Ref<HTMLElement>;
16
+ separator?: ReactNode;
17
+ styles?: {
18
+ item?: CSSProperties;
19
+ separator?: CSSProperties;
20
+ };
21
+ }
22
+ //#endregion
23
+ export { BreadcrumbItem, BreadcrumbProps };
24
+ //# sourceMappingURL=type.d.mts.map
@@ -0,0 +1,6 @@
1
+ import { BurgerProps } from "./type.mjs";
2
+ //#region src/base-ui/Burger/Burger.d.ts
3
+ declare const Burger: import("react").NamedExoticComponent<BurgerProps>;
4
+ //#endregion
5
+ export { Burger as default };
6
+ //# sourceMappingURL=Burger.d.mts.map
@@ -0,0 +1,69 @@
1
+ "use client";
2
+ import ActionIcon from "../ActionIcon/ActionIcon.mjs";
3
+ import { useTranslation } from "../../i18n/useTranslation.mjs";
4
+ import Drawer from "../Drawer/Drawer.mjs";
5
+ import List from "../List/List.mjs";
6
+ import burger_default from "../../i18n/resources/en/burger.mjs";
7
+ import { styles } from "./style.mjs";
8
+ import { memo } from "react";
9
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
10
+ import { Menu, X } from "lucide-react";
11
+ //#region src/base-ui/Burger/Burger.tsx
12
+ const withoutIcons = (items) => items.flatMap((item) => item.type === "divider" ? [] : [{
13
+ ...item,
14
+ icon: void 0
15
+ }]);
16
+ const Burger = memo(({ activeKey, className, footer, fullscreen = false, headerHeight = 64, items, onOpenChange, onSelect, opened, size, style, variant }) => {
17
+ const { t } = useTranslation(burger_default);
18
+ const close = () => onOpenChange(false);
19
+ const toggle = /* @__PURE__ */ jsx(ActionIcon, {
20
+ "aria-expanded": opened,
21
+ "aria-label": opened ? t("burger.close") : t("burger.open"),
22
+ className,
23
+ icon: opened ? X : Menu,
24
+ size,
25
+ style,
26
+ variant,
27
+ onClick: () => onOpenChange(!opened)
28
+ });
29
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [toggle, /* @__PURE__ */ jsxs(Drawer, {
30
+ noHeader: true,
31
+ classNames: { bodyContent: styles.body },
32
+ height: fullscreen ? "100dvh" : `calc(100dvh - ${headerHeight}px)`,
33
+ open: opened,
34
+ placement: "top",
35
+ styles: fullscreen ? void 0 : { popup: { insetBlockStart: headerHeight } },
36
+ onClose: close,
37
+ children: [
38
+ fullscreen && /* @__PURE__ */ jsx("div", {
39
+ className: styles.fullHeader,
40
+ style: { height: headerHeight },
41
+ children: /* @__PURE__ */ jsx(ActionIcon, {
42
+ "aria-label": t("burger.close"),
43
+ icon: X,
44
+ size,
45
+ onClick: close
46
+ })
47
+ }),
48
+ /* @__PURE__ */ jsx(List, {
49
+ selectable: true,
50
+ activeKey: activeKey ?? null,
51
+ classNames: { item: fullscreen ? styles.largeRow : styles.row },
52
+ items: fullscreen ? withoutIcons(items) : items,
53
+ onClick: ({ key }) => {
54
+ onSelect?.(key);
55
+ close();
56
+ }
57
+ }),
58
+ fullscreen && footer && /* @__PURE__ */ jsx("div", {
59
+ className: styles.footer,
60
+ children: footer
61
+ })
62
+ ]
63
+ })] });
64
+ });
65
+ Burger.displayName = "Burger";
66
+ //#endregion
67
+ export { Burger as default };
68
+
69
+ //# sourceMappingURL=Burger.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Burger.mjs","names":["burgerMessages"],"sources":["../../../src/base-ui/Burger/Burger.tsx"],"sourcesContent":["'use client';\n\nimport { Menu, X } from 'lucide-react';\nimport { memo } from 'react';\n\nimport ActionIcon from '@/base-ui/ActionIcon';\nimport { Drawer } from '@/base-ui/Drawer';\nimport List, { type ListItem } from '@/base-ui/List';\nimport burgerMessages from '@/i18n/resources/en/burger';\nimport { useTranslation } from '@/i18n/useTranslation';\n\nimport { styles } from './style';\nimport type { BurgerProps } from './type';\n\nconst withoutIcons = (items: ListItem[]): ListItem[] =>\n items.flatMap((item) => (item.type === 'divider' ? [] : [{ ...item, icon: undefined }]));\n\nconst Burger = memo<BurgerProps>(\n ({\n activeKey,\n className,\n footer,\n fullscreen = false,\n headerHeight = 64,\n items,\n onOpenChange,\n onSelect,\n opened,\n size,\n style,\n variant,\n }) => {\n const { t } = useTranslation(burgerMessages);\n const close = () => onOpenChange(false);\n\n const toggle = (\n <ActionIcon\n aria-expanded={opened}\n aria-label={opened ? t('burger.close') : t('burger.open')}\n className={className}\n icon={opened ? X : Menu}\n size={size}\n style={style}\n variant={variant}\n onClick={() => onOpenChange(!opened)}\n />\n );\n\n return (\n <>\n {toggle}\n <Drawer\n noHeader\n classNames={{ bodyContent: styles.body }}\n height={fullscreen ? '100dvh' : `calc(100dvh - ${headerHeight}px)`}\n open={opened}\n placement=\"top\"\n styles={fullscreen ? undefined : { popup: { insetBlockStart: headerHeight } }}\n onClose={close}\n >\n {fullscreen && (\n <div className={styles.fullHeader} style={{ height: headerHeight }}>\n <ActionIcon aria-label={t('burger.close')} icon={X} size={size} onClick={close} />\n </div>\n )}\n <List\n selectable\n activeKey={activeKey ?? null}\n classNames={{ item: fullscreen ? styles.largeRow : styles.row }}\n items={fullscreen ? withoutIcons(items) : items}\n onClick={({ key }) => {\n onSelect?.(key);\n close();\n }}\n />\n {fullscreen && footer && <div className={styles.footer}>{footer}</div>}\n </Drawer>\n </>\n );\n },\n);\n\nBurger.displayName = 'Burger';\n\nexport default Burger;\n"],"mappings":";;;;;;;;;;;AAcA,MAAM,gBAAgB,UACpB,MAAM,SAAS,SAAU,KAAK,SAAS,YAAY,CAAC,IAAI,CAAC;CAAE,GAAG;CAAM,MAAM,KAAA;AAAU,CAAC,CAAE;AAEzF,MAAM,SAAS,MACZ,EACC,WACA,WACA,QACA,aAAa,OACb,eAAe,IACf,OACA,cACA,UACA,QACA,MACA,OACA,cACI;CACJ,MAAM,EAAE,MAAM,eAAeA,cAAc;CAC3C,MAAM,cAAc,aAAa,KAAK;CAEtC,MAAM,SACJ,oBAAC,YAAD;EACE,iBAAe;EACf,cAAY,SAAS,EAAE,cAAc,IAAI,EAAE,aAAa;EAC7C;EACX,MAAM,SAAS,IAAI;EACb;EACC;EACE;EACT,eAAe,aAAa,CAAC,MAAM;CACpC,CAAA;CAGH,OACE,qBAAA,YAAA,EAAA,UAAA,CACG,QACD,qBAAC,QAAD;EACE,UAAA;EACA,YAAY,EAAE,aAAa,OAAO,KAAK;EACvC,QAAQ,aAAa,WAAW,iBAAiB,aAAa;EAC9D,MAAM;EACN,WAAU;EACV,QAAQ,aAAa,KAAA,IAAY,EAAE,OAAO,EAAE,iBAAiB,aAAa,EAAE;EAC5E,SAAS;EAPX,UAAA;GASG,cACC,oBAAC,OAAD;IAAK,WAAW,OAAO;IAAY,OAAO,EAAE,QAAQ,aAAa;IAC/D,UAAA,oBAAC,YAAD;KAAY,cAAY,EAAE,cAAc;KAAG,MAAM;KAAS;KAAM,SAAS;IAAQ,CAAA;GAC9E,CAAA;GAEP,oBAAC,MAAD;IACE,YAAA;IACA,WAAW,aAAa;IACxB,YAAY,EAAE,MAAM,aAAa,OAAO,WAAW,OAAO,IAAI;IAC9D,OAAO,aAAa,aAAa,KAAK,IAAI;IAC1C,UAAU,EAAE,UAAU;KACpB,WAAW,GAAG;KACd,MAAM;IACR;GACD,CAAA;GACA,cAAc,UAAU,oBAAC,OAAD;IAAK,WAAW,OAAO;IAAS,UAAA;GAAY,CAAA;EAC/D;CACR,CAAA,CAAA,EAAA,CAAA;AAEN,CACF;AAEA,OAAO,cAAc"}
@@ -0,0 +1,3 @@
1
+ import { BurgerProps } from "./type.mjs";
2
+ import Burger from "./Burger.mjs";
3
+ export { type BurgerProps, Burger as default };
@@ -0,0 +1,63 @@
1
+ import { createStaticStyles } from "antd-style";
2
+ //#region src/base-ui/Burger/style.ts
3
+ const styles = createStaticStyles(({ css, cssVar }) => ({
4
+ body: css`
5
+ display: flex;
6
+ flex-direction: column;
7
+ padding-block: 8px;
8
+ padding-inline: 12px;
9
+ `,
10
+ footer: css`
11
+ display: flex;
12
+ gap: 8px;
13
+ margin-block-start: auto;
14
+ padding: 20px;
15
+ `,
16
+ fullHeader: css`
17
+ display: flex;
18
+ flex: none;
19
+ align-items: center;
20
+ justify-content: flex-end;
21
+
22
+ padding-inline: 12px;
23
+ `,
24
+ largeRow: css`
25
+ min-height: 48px;
26
+ padding-inline: 8px;
27
+ border-radius: 12px;
28
+
29
+ font-size: 32px;
30
+ font-weight: 600;
31
+ line-height: 1.15;
32
+ color: ${cssVar.colorTextQuaternary};
33
+ letter-spacing: -0.02em;
34
+
35
+ background: none;
36
+
37
+ &[aria-current='true'],
38
+ &[aria-current='true']:hover {
39
+ color: ${cssVar.colorText};
40
+ background: none;
41
+ }
42
+ `,
43
+ row: css`
44
+ gap: 14px;
45
+
46
+ min-height: 52px;
47
+ padding-inline: 16px;
48
+ border-radius: 999px;
49
+
50
+ font-size: 17px;
51
+
52
+ &[aria-current='true'],
53
+ &[aria-current='true']:hover {
54
+ font-weight: 600;
55
+ color: ${cssVar.colorBgContainer};
56
+ background: ${cssVar.colorText};
57
+ }
58
+ `
59
+ }));
60
+ //#endregion
61
+ export { styles };
62
+
63
+ //# sourceMappingURL=style.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.mjs","names":[],"sources":["../../../src/base-ui/Burger/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => ({\n body: css`\n display: flex;\n flex-direction: column;\n padding-block: 8px;\n padding-inline: 12px;\n `,\n footer: css`\n display: flex;\n gap: 8px;\n margin-block-start: auto;\n padding: 20px;\n `,\n fullHeader: css`\n display: flex;\n flex: none;\n align-items: center;\n justify-content: flex-end;\n\n padding-inline: 12px;\n `,\n largeRow: css`\n min-height: 48px;\n padding-inline: 8px;\n border-radius: 12px;\n\n font-size: 32px;\n font-weight: 600;\n line-height: 1.15;\n color: ${cssVar.colorTextQuaternary};\n letter-spacing: -0.02em;\n\n background: none;\n\n &[aria-current='true'],\n &[aria-current='true']:hover {\n color: ${cssVar.colorText};\n background: none;\n }\n `,\n row: css`\n gap: 14px;\n\n min-height: 52px;\n padding-inline: 16px;\n border-radius: 999px;\n\n font-size: 17px;\n\n &[aria-current='true'],\n &[aria-current='true']:hover {\n font-weight: 600;\n color: ${cssVar.colorBgContainer};\n background: ${cssVar.colorText};\n }\n `,\n}));\n"],"mappings":";;AAEA,MAAa,SAAS,oBAAoB,EAAE,KAAK,cAAc;CAC7D,MAAM,GAAG;;;;;;CAMT,QAAQ,GAAG;;;;;;CAMX,YAAY,GAAG;;;;;;;;CAQf,UAAU,GAAG;;;;;;;;aAQF,OAAO,oBAAoB;;;;;;;eAOzB,OAAO,UAAU;;;;CAI9B,KAAK,GAAG;;;;;;;;;;;;eAYK,OAAO,iBAAiB;oBACnB,OAAO,UAAU;;;AAGrC,EAAE"}
@@ -0,0 +1,23 @@
1
+ import { ActionIconProps } from "../ActionIcon/type.mjs";
2
+ import "../ActionIcon/index.mjs";
3
+ import { ListItem } from "../List/type.mjs";
4
+ import "../List/index.mjs";
5
+ import { CSSProperties, Key, ReactNode } from "react";
6
+ //#region src/base-ui/Burger/type.d.ts
7
+ interface BurgerProps {
8
+ activeKey?: Key | null;
9
+ className?: string;
10
+ footer?: ReactNode;
11
+ fullscreen?: boolean;
12
+ headerHeight?: number;
13
+ items: ListItem[];
14
+ onOpenChange: (opened: boolean) => void;
15
+ onSelect?: (key: Key) => void;
16
+ opened: boolean;
17
+ size?: ActionIconProps['size'];
18
+ style?: CSSProperties;
19
+ variant?: ActionIconProps['variant'];
20
+ }
21
+ //#endregion
22
+ export { BurgerProps };
23
+ //# sourceMappingURL=type.d.mts.map
@@ -0,0 +1,6 @@
1
+ import { CarouselProps } from "./type.mjs";
2
+ //#region src/base-ui/Carousel/Carousel.d.ts
3
+ declare const Carousel: import("react").NamedExoticComponent<CarouselProps>;
4
+ //#endregion
5
+ export { Carousel as default };
6
+ //# sourceMappingURL=Carousel.d.mts.map
@@ -0,0 +1,157 @@
1
+ "use client";
2
+ import ActionIcon from "../ActionIcon/ActionIcon.mjs";
3
+ import { useEventCallback } from "../../hooks/useEventCallback.mjs";
4
+ import { styles } from "./style.mjs";
5
+ import { Children, isValidElement, memo, useEffect, useImperativeHandle, useLayoutEffect, useRef, useState } from "react";
6
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
7
+ import { cx } from "antd-style";
8
+ import useMergeState from "use-merge-value";
9
+ import { ChevronLeft, ChevronRight } from "lucide-react";
10
+ //#region src/base-ui/Carousel/Carousel.tsx
11
+ const DEFAULT_INTERVAL = 5e3;
12
+ const SWIPE_THRESHOLD = 40;
13
+ const ARROW_SIZE = {
14
+ blockSize: 28,
15
+ borderRadius: "50%",
16
+ size: 16
17
+ };
18
+ const Carousel = memo(({ adaptiveHeight = false, arrows = false, autoplay = false, children, className, defaultIndex = 0, dots = true, index, loop = true, onIndexChange, onPointerEnter, onPointerLeave, pauseOnHover = true, ref, ...rest }) => {
19
+ const slides = Children.toArray(children);
20
+ const count = slides.length;
21
+ const keys = slides.map((slide, slideIndex) => isValidElement(slide) && slide.key !== null ? slide.key : slideIndex);
22
+ const [mergedIndex, setMergedIndex] = useMergeState(defaultIndex, {
23
+ onChange: onIndexChange,
24
+ value: index
25
+ });
26
+ const current = Math.min(Math.max(mergedIndex, 0), Math.max(count - 1, 0));
27
+ const [hovered, setHovered] = useState(false);
28
+ const [height, setHeight] = useState();
29
+ const slidesRef = useRef([]);
30
+ const swipeStartXRef = useRef(null);
31
+ const goTo = useEventCallback((target) => {
32
+ if (count === 0) return;
33
+ const next = loop ? (target % count + count) % count : Math.min(Math.max(target, 0), count - 1);
34
+ if (next !== current) setMergedIndex(next);
35
+ });
36
+ const next = useEventCallback(() => goTo(current + 1));
37
+ const prev = useEventCallback(() => goTo(current - 1));
38
+ useImperativeHandle(ref, () => ({
39
+ goTo,
40
+ next,
41
+ prev
42
+ }), [
43
+ goTo,
44
+ next,
45
+ prev
46
+ ]);
47
+ const interval = autoplay === true ? DEFAULT_INTERVAL : autoplay || 0;
48
+ const paused = pauseOnHover && hovered;
49
+ const atEnd = !loop && current >= count - 1;
50
+ useEffect(() => {
51
+ if (!interval || paused || count < 2 || atEnd) return;
52
+ const timer = setTimeout(next, interval);
53
+ return () => clearTimeout(timer);
54
+ }, [
55
+ interval,
56
+ paused,
57
+ count,
58
+ atEnd,
59
+ current,
60
+ next
61
+ ]);
62
+ useLayoutEffect(() => {
63
+ const slide = slidesRef.current[current];
64
+ if (!adaptiveHeight || !slide) return;
65
+ setHeight(slide.offsetHeight);
66
+ if (typeof ResizeObserver === "undefined") return;
67
+ const observer = new ResizeObserver(() => setHeight(slide.offsetHeight));
68
+ observer.observe(slide);
69
+ return () => observer.disconnect();
70
+ }, [
71
+ adaptiveHeight,
72
+ current,
73
+ count
74
+ ]);
75
+ return /* @__PURE__ */ jsxs("div", {
76
+ "aria-roledescription": "carousel",
77
+ className: cx(styles.root, className),
78
+ role: "region",
79
+ onPointerEnter: (event) => {
80
+ onPointerEnter?.(event);
81
+ setHovered(true);
82
+ },
83
+ onPointerLeave: (event) => {
84
+ onPointerLeave?.(event);
85
+ setHovered(false);
86
+ },
87
+ ...rest,
88
+ children: [/* @__PURE__ */ jsxs("div", {
89
+ className: styles.viewport,
90
+ style: adaptiveHeight && height !== void 0 ? { height } : void 0,
91
+ onPointerCancel: () => {
92
+ swipeStartXRef.current = null;
93
+ },
94
+ onPointerDown: (event) => {
95
+ if (event.pointerType !== "mouse") swipeStartXRef.current = event.clientX;
96
+ },
97
+ onPointerUp: (event) => {
98
+ if (swipeStartXRef.current === null) return;
99
+ const delta = event.clientX - swipeStartXRef.current;
100
+ swipeStartXRef.current = null;
101
+ if (Math.abs(delta) < SWIPE_THRESHOLD) return;
102
+ if (delta < 0) next();
103
+ else prev();
104
+ },
105
+ children: [/* @__PURE__ */ jsx("div", {
106
+ "aria-live": interval && !paused ? "off" : "polite",
107
+ className: cx(styles.track, adaptiveHeight && styles.trackAdaptive),
108
+ style: { transform: `translateX(-${current * 100}%)` },
109
+ children: slides.map((slide, slideIndex) => {
110
+ const active = slideIndex === current;
111
+ return /* @__PURE__ */ jsx("div", {
112
+ "aria-hidden": !active || void 0,
113
+ "aria-label": `${slideIndex + 1} of ${count}`,
114
+ "aria-roledescription": "slide",
115
+ className: styles.slide,
116
+ inert: !active,
117
+ role: "group",
118
+ ref: (node) => {
119
+ slidesRef.current[slideIndex] = node;
120
+ },
121
+ children: slide
122
+ }, keys[slideIndex]);
123
+ })
124
+ }), arrows && count > 1 && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(ActionIcon, {
125
+ "aria-label": "Previous slide",
126
+ className: styles.arrow,
127
+ disabled: !loop && current === 0,
128
+ icon: ChevronLeft,
129
+ size: ARROW_SIZE,
130
+ style: { insetInlineStart: 8 },
131
+ onClick: prev
132
+ }), /* @__PURE__ */ jsx(ActionIcon, {
133
+ "aria-label": "Next slide",
134
+ className: styles.arrow,
135
+ disabled: atEnd,
136
+ icon: ChevronRight,
137
+ size: ARROW_SIZE,
138
+ style: { insetInlineEnd: 8 },
139
+ onClick: next
140
+ })] })]
141
+ }), dots && count > 1 && /* @__PURE__ */ jsx("div", {
142
+ className: styles.dots,
143
+ children: slides.map((_, dotIndex) => /* @__PURE__ */ jsx("button", {
144
+ "aria-current": dotIndex === current || void 0,
145
+ "aria-label": `Go to slide ${dotIndex + 1}`,
146
+ className: styles.dot,
147
+ type: "button",
148
+ onClick: () => goTo(dotIndex)
149
+ }, keys[dotIndex]))
150
+ })]
151
+ });
152
+ });
153
+ Carousel.displayName = "Carousel";
154
+ //#endregion
155
+ export { Carousel as default };
156
+
157
+ //# sourceMappingURL=Carousel.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Carousel.mjs","names":["useControlledState"],"sources":["../../../src/base-ui/Carousel/Carousel.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { ChevronLeft, ChevronRight } from 'lucide-react';\nimport {\n Children,\n isValidElement,\n memo,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport useControlledState from 'use-merge-value';\n\nimport ActionIcon from '@/base-ui/ActionIcon';\nimport { useEventCallback } from '@/hooks/useEventCallback';\n\nimport { styles } from './style';\nimport type { CarouselProps } from './type';\n\nconst DEFAULT_INTERVAL = 5000;\nconst SWIPE_THRESHOLD = 40;\nconst ARROW_SIZE = { blockSize: 28, borderRadius: '50%', size: 16 };\n\nconst Carousel = memo<CarouselProps>(\n ({\n adaptiveHeight = false,\n arrows = false,\n autoplay = false,\n children,\n className,\n defaultIndex = 0,\n dots = true,\n index,\n loop = true,\n onIndexChange,\n onPointerEnter,\n onPointerLeave,\n pauseOnHover = true,\n ref,\n ...rest\n }) => {\n const slides = Children.toArray(children);\n const count = slides.length;\n const keys = slides.map((slide, slideIndex) =>\n isValidElement(slide) && slide.key !== null ? slide.key : slideIndex,\n );\n const [mergedIndex, setMergedIndex] = useControlledState(defaultIndex, {\n onChange: onIndexChange,\n value: index,\n });\n const current = Math.min(Math.max(mergedIndex, 0), Math.max(count - 1, 0));\n\n const [hovered, setHovered] = useState(false);\n const [height, setHeight] = useState<number>();\n const slidesRef = useRef<(HTMLDivElement | null)[]>([]);\n const swipeStartXRef = useRef<number | null>(null);\n\n const goTo = useEventCallback((target: number) => {\n if (count === 0) return;\n const next = loop\n ? ((target % count) + count) % count\n : Math.min(Math.max(target, 0), count - 1);\n if (next !== current) setMergedIndex(next);\n });\n const next = useEventCallback(() => goTo(current + 1));\n const prev = useEventCallback(() => goTo(current - 1));\n\n useImperativeHandle(ref, () => ({ goTo, next, prev }), [goTo, next, prev]);\n\n const interval = autoplay === true ? DEFAULT_INTERVAL : autoplay || 0;\n const paused = pauseOnHover && hovered;\n const atEnd = !loop && current >= count - 1;\n\n useEffect(() => {\n if (!interval || paused || count < 2 || atEnd) return;\n const timer = setTimeout(next, interval);\n return () => clearTimeout(timer);\n }, [interval, paused, count, atEnd, current, next]);\n\n useLayoutEffect(() => {\n const slide = slidesRef.current[current];\n if (!adaptiveHeight || !slide) return;\n setHeight(slide.offsetHeight);\n if (typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(() => setHeight(slide.offsetHeight));\n observer.observe(slide);\n return () => observer.disconnect();\n }, [adaptiveHeight, current, count]);\n\n return (\n <div\n aria-roledescription=\"carousel\"\n className={cx(styles.root, className)}\n role=\"region\"\n onPointerEnter={(event) => {\n onPointerEnter?.(event);\n setHovered(true);\n }}\n onPointerLeave={(event) => {\n onPointerLeave?.(event);\n setHovered(false);\n }}\n {...rest}\n >\n <div\n className={styles.viewport}\n style={adaptiveHeight && height !== undefined ? { height } : undefined}\n onPointerCancel={() => {\n swipeStartXRef.current = null;\n }}\n onPointerDown={(event) => {\n if (event.pointerType !== 'mouse') swipeStartXRef.current = event.clientX;\n }}\n onPointerUp={(event) => {\n if (swipeStartXRef.current === null) return;\n const delta = event.clientX - swipeStartXRef.current;\n swipeStartXRef.current = null;\n if (Math.abs(delta) < SWIPE_THRESHOLD) return;\n if (delta < 0) next();\n else prev();\n }}\n >\n <div\n aria-live={interval && !paused ? 'off' : 'polite'}\n className={cx(styles.track, adaptiveHeight && styles.trackAdaptive)}\n style={{ transform: `translateX(-${current * 100}%)` }}\n >\n {slides.map((slide, slideIndex) => {\n const active = slideIndex === current;\n return (\n <div\n aria-hidden={!active || undefined}\n aria-label={`${slideIndex + 1} of ${count}`}\n aria-roledescription=\"slide\"\n className={styles.slide}\n inert={!active}\n key={keys[slideIndex]}\n role=\"group\"\n ref={(node) => {\n slidesRef.current[slideIndex] = node;\n }}\n >\n {slide}\n </div>\n );\n })}\n </div>\n {arrows && count > 1 && (\n <>\n <ActionIcon\n aria-label=\"Previous slide\"\n className={styles.arrow}\n disabled={!loop && current === 0}\n icon={ChevronLeft}\n size={ARROW_SIZE}\n style={{ insetInlineStart: 8 }}\n onClick={prev}\n />\n <ActionIcon\n aria-label=\"Next slide\"\n className={styles.arrow}\n disabled={atEnd}\n icon={ChevronRight}\n size={ARROW_SIZE}\n style={{ insetInlineEnd: 8 }}\n onClick={next}\n />\n </>\n )}\n </div>\n {dots && count > 1 && (\n <div className={styles.dots}>\n {slides.map((_, dotIndex) => (\n <button\n aria-current={dotIndex === current || undefined}\n aria-label={`Go to slide ${dotIndex + 1}`}\n className={styles.dot}\n key={keys[dotIndex]}\n type=\"button\"\n onClick={() => goTo(dotIndex)}\n />\n ))}\n </div>\n )}\n </div>\n );\n },\n);\n\nCarousel.displayName = 'Carousel';\n\nexport default Carousel;\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { CarouselProps, CarouselRef } from "./type.mjs";
2
+ import Carousel from "./Carousel.mjs";
3
+ export { type CarouselProps, type CarouselRef, Carousel as default };
@@ -0,0 +1,88 @@
1
+ import { createStaticStyles } from "antd-style";
2
+ //#region src/base-ui/Carousel/style.ts
3
+ const styles = createStaticStyles(({ css, cssVar }) => ({
4
+ arrow: css`
5
+ position: absolute;
6
+ z-index: 1;
7
+ inset-block-start: 50%;
8
+ transform: translateY(-50%);
9
+
10
+ color: ${cssVar.colorText};
11
+
12
+ background: ${cssVar.colorBgContainer};
13
+ box-shadow: 0 1px 4px rgb(0 0 0 / 12%);
14
+ `,
15
+ dot: css`
16
+ cursor: pointer;
17
+
18
+ width: 6px;
19
+ height: 6px;
20
+ padding: 0;
21
+ border: 0;
22
+ border-radius: 999px;
23
+
24
+ background: ${cssVar.colorFill};
25
+
26
+ transition:
27
+ width 0.2s ease,
28
+ background 0.2s ease;
29
+
30
+ &:hover {
31
+ background: ${cssVar.colorTextQuaternary};
32
+ }
33
+
34
+ &[aria-current='true'] {
35
+ width: 18px;
36
+ background: ${cssVar.colorText};
37
+ }
38
+
39
+ &:focus-visible {
40
+ outline: 2px solid ${cssVar.colorText};
41
+ outline-offset: 2px;
42
+ }
43
+
44
+ @media (prefers-reduced-motion: reduce) {
45
+ transition: none;
46
+ }
47
+ `,
48
+ dots: css`
49
+ display: flex;
50
+ gap: 6px;
51
+ align-items: center;
52
+ justify-content: center;
53
+
54
+ padding-block: 10px;
55
+ `,
56
+ root: css`
57
+ position: relative;
58
+ `,
59
+ slide: css`
60
+ flex: 0 0 100%;
61
+ min-width: 0;
62
+ `,
63
+ track: css`
64
+ display: flex;
65
+ transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
66
+
67
+ @media (prefers-reduced-motion: reduce) {
68
+ transition: none;
69
+ }
70
+ `,
71
+ trackAdaptive: css`
72
+ align-items: flex-start;
73
+ `,
74
+ viewport: css`
75
+ touch-action: pan-y;
76
+ position: relative;
77
+ overflow: hidden;
78
+ transition: height 0.3s ease;
79
+
80
+ @media (prefers-reduced-motion: reduce) {
81
+ transition: none;
82
+ }
83
+ `
84
+ }));
85
+ //#endregion
86
+ export { styles };
87
+
88
+ //# sourceMappingURL=style.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.mjs","names":[],"sources":["../../../src/base-ui/Carousel/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => ({\n arrow: css`\n position: absolute;\n z-index: 1;\n inset-block-start: 50%;\n transform: translateY(-50%);\n\n color: ${cssVar.colorText};\n\n background: ${cssVar.colorBgContainer};\n box-shadow: 0 1px 4px rgb(0 0 0 / 12%);\n `,\n dot: css`\n cursor: pointer;\n\n width: 6px;\n height: 6px;\n padding: 0;\n border: 0;\n border-radius: 999px;\n\n background: ${cssVar.colorFill};\n\n transition:\n width 0.2s ease,\n background 0.2s ease;\n\n &:hover {\n background: ${cssVar.colorTextQuaternary};\n }\n\n &[aria-current='true'] {\n width: 18px;\n background: ${cssVar.colorText};\n }\n\n &:focus-visible {\n outline: 2px solid ${cssVar.colorText};\n outline-offset: 2px;\n }\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n `,\n dots: css`\n display: flex;\n gap: 6px;\n align-items: center;\n justify-content: center;\n\n padding-block: 10px;\n `,\n root: css`\n position: relative;\n `,\n slide: css`\n flex: 0 0 100%;\n min-width: 0;\n `,\n track: css`\n display: flex;\n transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n `,\n trackAdaptive: css`\n align-items: flex-start;\n `,\n viewport: css`\n touch-action: pan-y;\n position: relative;\n overflow: hidden;\n transition: height 0.3s ease;\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n `,\n}));\n"],"mappings":";;AAEA,MAAa,SAAS,oBAAoB,EAAE,KAAK,cAAc;CAC7D,OAAO,GAAG;;;;;;aAMC,OAAO,UAAU;;kBAEZ,OAAO,iBAAiB;;;CAGxC,KAAK,GAAG;;;;;;;;;kBASQ,OAAO,UAAU;;;;;;;oBAOf,OAAO,oBAAoB;;;;;oBAK3B,OAAO,UAAU;;;;2BAIV,OAAO,UAAU;;;;;;;;CAQ1C,MAAM,GAAG;;;;;;;;CAQT,MAAM,GAAG;;;CAGT,OAAO,GAAG;;;;CAIV,OAAO,GAAG;;;;;;;;CAQV,eAAe,GAAG;;;CAGlB,UAAU,GAAG;;;;;;;;;;AAUf,EAAE"}
@@ -0,0 +1,23 @@
1
+ import { ComponentProps, ReactNode, Ref } from "react";
2
+ //#region src/base-ui/Carousel/type.d.ts
3
+ interface CarouselRef {
4
+ goTo: (index: number) => void;
5
+ next: () => void;
6
+ prev: () => void;
7
+ }
8
+ interface CarouselProps extends Omit<ComponentProps<'div'>, 'children' | 'ref'> {
9
+ adaptiveHeight?: boolean;
10
+ arrows?: boolean;
11
+ autoplay?: boolean | number;
12
+ children?: ReactNode;
13
+ defaultIndex?: number;
14
+ dots?: boolean;
15
+ index?: number;
16
+ loop?: boolean;
17
+ onIndexChange?: (index: number) => void;
18
+ pauseOnHover?: boolean;
19
+ ref?: Ref<CarouselRef>;
20
+ }
21
+ //#endregion
22
+ export { CarouselProps, CarouselRef };
23
+ //# sourceMappingURL=type.d.mts.map
@@ -0,0 +1,6 @@
1
+ import { ColorPickerProps } from "./type.mjs";
2
+ //#region src/base-ui/ColorPicker/ColorPicker.d.ts
3
+ declare const ColorPicker: import("react").NamedExoticComponent<ColorPickerProps>;
4
+ //#endregion
5
+ export { ColorPicker as default };
6
+ //# sourceMappingURL=ColorPicker.d.mts.map