@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
@@ -0,0 +1,46 @@
1
+ import dayjs from "dayjs";
2
+ //#region src/base-ui/DatePicker/calendar.ts
3
+ const DEFAULT_FORMAT = {
4
+ date: "MMM D, YYYY",
5
+ month: "MMMM YYYY",
6
+ year: "YYYY"
7
+ };
8
+ const getWeekStart = () => {
9
+ return dayjs.Ls[dayjs.locale()]?.weekStart ?? 0;
10
+ };
11
+ const offsetFromWeekStart = (date, weekStart) => (dayjs(date).day() - weekStart + 7) % 7;
12
+ const buildMonthGrid = (month, weekStart = getWeekStart()) => {
13
+ const first = dayjs(month).startOf("month");
14
+ const start = first.subtract(offsetFromWeekStart(first.toDate(), weekStart), "day");
15
+ return Array.from({ length: 42 }, (_, index) => start.add(index, "day").toDate());
16
+ };
17
+ const getWeekdayLabels = (weekStart = getWeekStart()) => Array.from({ length: 7 }, (_, index) => dayjs().day((weekStart + index) % 7).format("dd"));
18
+ const isSameDay = (a, b) => !!a && !!b && dayjs(a).isSame(b, "day");
19
+ const isDayDisabled = (date, { disabledDate, max, min }) => !!min && dayjs(date).isBefore(min, "day") || !!max && dayjs(date).isAfter(max, "day") || !!disabledDate?.(date);
20
+ const isMonthDisabled = (month, { max, min }) => !!min && dayjs(month).isBefore(min, "month") || !!max && dayjs(month).isAfter(max, "month");
21
+ const isYearDisabled = (year, { max, min }) => !!min && dayjs(year).isBefore(min, "year") || !!max && dayjs(year).isAfter(max, "year");
22
+ const moveDayFocus = (date, key, weekStart = getWeekStart()) => {
23
+ const current = dayjs(date);
24
+ const offset = offsetFromWeekStart(date, weekStart);
25
+ switch (key) {
26
+ case "ArrowLeft": return current.subtract(1, "day").toDate();
27
+ case "ArrowRight": return current.add(1, "day").toDate();
28
+ case "ArrowUp": return current.subtract(7, "day").toDate();
29
+ case "ArrowDown": return current.add(7, "day").toDate();
30
+ case "PageUp": return current.subtract(1, "month").toDate();
31
+ case "PageDown": return current.add(1, "month").toDate();
32
+ case "Home": return current.subtract(offset, "day").toDate();
33
+ case "End": return current.add(6 - offset, "day").toDate();
34
+ default: return null;
35
+ }
36
+ };
37
+ const orderRange = (a, b) => dayjs(a).isAfter(b, "day") ? [b, a] : [a, b];
38
+ const clampToBounds = (date, { max, min }) => {
39
+ if (min && dayjs(date).isBefore(min, "day")) return min;
40
+ if (max && dayjs(date).isAfter(max, "day")) return max;
41
+ return date;
42
+ };
43
+ //#endregion
44
+ export { DEFAULT_FORMAT, buildMonthGrid, clampToBounds, getWeekStart, getWeekdayLabels, isDayDisabled, isMonthDisabled, isSameDay, isYearDisabled, moveDayFocus, orderRange };
45
+
46
+ //# sourceMappingURL=calendar.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.mjs","names":[],"sources":["../../../src/base-ui/DatePicker/calendar.ts"],"sourcesContent":["import dayjs from 'dayjs';\n\nexport type CalendarMode = 'date' | 'month' | 'year';\n\nexport interface DateBounds {\n disabledDate?: (date: Date) => boolean;\n max?: Date;\n min?: Date;\n}\n\nexport const DEFAULT_FORMAT: Record<CalendarMode, string> = {\n date: 'MMM D, YYYY',\n month: 'MMMM YYYY',\n year: 'YYYY',\n};\n\nexport const getWeekStart = (): number => {\n const locales = (dayjs as unknown as { Ls: Record<string, { weekStart?: number }> }).Ls;\n return locales[dayjs.locale()]?.weekStart ?? 0;\n};\n\nconst offsetFromWeekStart = (date: Date, weekStart: number) =>\n (dayjs(date).day() - weekStart + 7) % 7;\n\nexport const buildMonthGrid = (month: Date, weekStart = getWeekStart()): Date[] => {\n const first = dayjs(month).startOf('month');\n const start = first.subtract(offsetFromWeekStart(first.toDate(), weekStart), 'day');\n return Array.from({ length: 42 }, (_, index) => start.add(index, 'day').toDate());\n};\n\nexport const getWeekdayLabels = (weekStart = getWeekStart()): string[] =>\n Array.from({ length: 7 }, (_, index) =>\n dayjs()\n .day((weekStart + index) % 7)\n .format('dd'),\n );\n\nexport const isSameDay = (a?: Date | null, b?: Date | null) =>\n !!a && !!b && dayjs(a).isSame(b, 'day');\n\nexport const isDayDisabled = (date: Date, { disabledDate, max, min }: DateBounds) =>\n (!!min && dayjs(date).isBefore(min, 'day')) ||\n (!!max && dayjs(date).isAfter(max, 'day')) ||\n !!disabledDate?.(date);\n\nexport const isMonthDisabled = (month: Date, { max, min }: DateBounds) =>\n (!!min && dayjs(month).isBefore(min, 'month')) || (!!max && dayjs(month).isAfter(max, 'month'));\n\nexport const isYearDisabled = (year: Date, { max, min }: DateBounds) =>\n (!!min && dayjs(year).isBefore(min, 'year')) || (!!max && dayjs(year).isAfter(max, 'year'));\n\nexport const moveDayFocus = (date: Date, key: string, weekStart = getWeekStart()): Date | null => {\n const current = dayjs(date);\n const offset = offsetFromWeekStart(date, weekStart);\n switch (key) {\n case 'ArrowLeft': {\n return current.subtract(1, 'day').toDate();\n }\n case 'ArrowRight': {\n return current.add(1, 'day').toDate();\n }\n case 'ArrowUp': {\n return current.subtract(7, 'day').toDate();\n }\n case 'ArrowDown': {\n return current.add(7, 'day').toDate();\n }\n case 'PageUp': {\n return current.subtract(1, 'month').toDate();\n }\n case 'PageDown': {\n return current.add(1, 'month').toDate();\n }\n case 'Home': {\n return current.subtract(offset, 'day').toDate();\n }\n case 'End': {\n return current.add(6 - offset, 'day').toDate();\n }\n default: {\n return null;\n }\n }\n};\n\nexport const orderRange = (a: Date, b: Date): [Date, Date] =>\n dayjs(a).isAfter(b, 'day') ? [b, a] : [a, b];\n\nexport const clampToBounds = (date: Date, { max, min }: DateBounds): Date => {\n if (min && dayjs(date).isBefore(min, 'day')) return min;\n if (max && dayjs(date).isAfter(max, 'day')) return max;\n return date;\n};\n"],"mappings":";;AAUA,MAAa,iBAA+C;CAC1D,MAAM;CACN,OAAO;CACP,MAAM;AACR;AAEA,MAAa,qBAA6B;CAExC,OADiB,MAAoE,GACtE,MAAM,OAAO,EAAE,EAAE,aAAa;AAC/C;AAEA,MAAM,uBAAuB,MAAY,eACtC,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,YAAY,KAAK;AAExC,MAAa,kBAAkB,OAAa,YAAY,aAAa,MAAc;CACjF,MAAM,QAAQ,MAAM,KAAK,CAAC,CAAC,QAAQ,OAAO;CAC1C,MAAM,QAAQ,MAAM,SAAS,oBAAoB,MAAM,OAAO,GAAG,SAAS,GAAG,KAAK;CAClF,OAAO,MAAM,KAAK,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,MAAM,IAAI,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC;AAClF;AAEA,MAAa,oBAAoB,YAAY,aAAa,MACxD,MAAM,KAAK,EAAE,QAAQ,EAAE,IAAI,GAAG,UAC5B,MAAM,CAAC,CACJ,KAAK,YAAY,SAAS,CAAC,CAAC,CAC5B,OAAO,IAAI,CAChB;AAEF,MAAa,aAAa,GAAiB,MACzC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK;AAExC,MAAa,iBAAiB,MAAY,EAAE,cAAc,KAAK,UAC5D,CAAC,CAAC,OAAO,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,KAAK,KACxC,CAAC,CAAC,OAAO,MAAM,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAK,KACxC,CAAC,CAAC,eAAe,IAAI;AAEvB,MAAa,mBAAmB,OAAa,EAAE,KAAK,UACjD,CAAC,CAAC,OAAO,MAAM,KAAK,CAAC,CAAC,SAAS,KAAK,OAAO,KAAO,CAAC,CAAC,OAAO,MAAM,KAAK,CAAC,CAAC,QAAQ,KAAK,OAAO;AAE/F,MAAa,kBAAkB,MAAY,EAAE,KAAK,UAC/C,CAAC,CAAC,OAAO,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,MAAM,KAAO,CAAC,CAAC,OAAO,MAAM,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM;AAE3F,MAAa,gBAAgB,MAAY,KAAa,YAAY,aAAa,MAAmB;CAChG,MAAM,UAAU,MAAM,IAAI;CAC1B,MAAM,SAAS,oBAAoB,MAAM,SAAS;CAClD,QAAQ,KAAR;EACE,KAAK,aACH,OAAO,QAAQ,SAAS,GAAG,KAAK,CAAC,CAAC,OAAO;EAE3C,KAAK,cACH,OAAO,QAAQ,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO;EAEtC,KAAK,WACH,OAAO,QAAQ,SAAS,GAAG,KAAK,CAAC,CAAC,OAAO;EAE3C,KAAK,aACH,OAAO,QAAQ,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO;EAEtC,KAAK,UACH,OAAO,QAAQ,SAAS,GAAG,OAAO,CAAC,CAAC,OAAO;EAE7C,KAAK,YACH,OAAO,QAAQ,IAAI,GAAG,OAAO,CAAC,CAAC,OAAO;EAExC,KAAK,QACH,OAAO,QAAQ,SAAS,QAAQ,KAAK,CAAC,CAAC,OAAO;EAEhD,KAAK,OACH,OAAO,QAAQ,IAAI,IAAI,QAAQ,KAAK,CAAC,CAAC,OAAO;EAE/C,SACE,OAAO;CAEX;AACF;AAEA,MAAa,cAAc,GAAS,MAClC,MAAM,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AAE7C,MAAa,iBAAiB,MAAY,EAAE,KAAK,UAA4B;CAC3E,IAAI,OAAO,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,KAAK,GAAG,OAAO;CACpD,IAAI,OAAO,MAAM,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAK,GAAG,OAAO;CACnD,OAAO;AACT"}
@@ -0,0 +1,5 @@
1
+ import { CalendarMode } from "./calendar.mjs";
2
+ import { DatePickerProps, DateRangePickerProps, DateRangeValue } from "./type.mjs";
3
+ import DatePicker from "./DatePicker.mjs";
4
+ import DateRangePicker from "./DateRangePicker.mjs";
5
+ export { type CalendarMode, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, type DateRangeValue };
@@ -0,0 +1,193 @@
1
+ import { focusRing } from "../focusRing.mjs";
2
+ import { createStaticStyles } from "antd-style";
3
+ //#region src/base-ui/DatePicker/style.ts
4
+ const styles = createStaticStyles(({ css, cssVar }) => ({
5
+ band: css`
6
+ background: ${cssVar.colorFillSecondary};
7
+ `,
8
+ bandEnd: css`
9
+ background: linear-gradient(to left, transparent 50%, ${cssVar.colorFillSecondary} 50%);
10
+ `,
11
+ bandStart: css`
12
+ background: linear-gradient(to right, transparent 50%, ${cssVar.colorFillSecondary} 50%);
13
+ `,
14
+ calendar: css`
15
+ display: flex;
16
+ flex-direction: column;
17
+ gap: 8px;
18
+ width: 266px;
19
+ `,
20
+ cell: css`
21
+ display: flex;
22
+ justify-content: center;
23
+ `,
24
+ day: css`
25
+ ${focusRing};
26
+ cursor: pointer;
27
+
28
+ display: flex;
29
+ align-items: center;
30
+ justify-content: center;
31
+
32
+ width: 34px;
33
+ height: 34px;
34
+ padding: 0;
35
+ border: 0;
36
+ border-radius: 50%;
37
+
38
+ font: inherit;
39
+ font-size: 13px;
40
+ font-variant-numeric: tabular-nums;
41
+ color: ${cssVar.colorText};
42
+
43
+ background: none;
44
+
45
+ &:hover:not(:disabled, [aria-pressed='true']) {
46
+ background: ${cssVar.colorFillTertiary};
47
+ }
48
+
49
+ &:disabled {
50
+ cursor: not-allowed;
51
+ color: ${cssVar.colorTextQuaternary};
52
+ }
53
+
54
+ &[data-outside] {
55
+ color: ${cssVar.colorTextQuaternary};
56
+ }
57
+
58
+ &[data-today] {
59
+ box-shadow: inset 0 0 0 1px ${cssVar.colorText};
60
+ }
61
+
62
+ &[aria-pressed='true'] {
63
+ font-weight: 600;
64
+ color: ${cssVar.colorBgContainer};
65
+ background: ${cssVar.colorText};
66
+ }
67
+ `,
68
+ footer: css`
69
+ display: flex;
70
+ justify-content: center;
71
+
72
+ margin-block-start: 12px;
73
+ padding-block-start: 12px;
74
+ border-block-start: 1px solid ${cssVar.colorBorderSecondary};
75
+ `,
76
+ grid: css`
77
+ display: grid;
78
+ grid-template-columns: repeat(7, minmax(0, 1fr));
79
+ row-gap: 2px;
80
+ `,
81
+ header: css`
82
+ display: flex;
83
+ align-items: center;
84
+ justify-content: space-between;
85
+ margin-block-end: 4px;
86
+ `,
87
+ icon: css`
88
+ display: inline-flex;
89
+ flex: none;
90
+ color: ${cssVar.colorTextTertiary};
91
+ `,
92
+ navGroup: css`
93
+ display: flex;
94
+ gap: 2px;
95
+ `,
96
+ placeholder: css`
97
+ color: ${cssVar.colorTextPlaceholder};
98
+ `,
99
+ range: css`
100
+ display: flex;
101
+ gap: 28px;
102
+ `,
103
+ rangeHalf: css`
104
+ min-width: 0;
105
+ padding-block: 2px;
106
+
107
+ &[data-active] {
108
+ box-shadow: inset 0 -2px 0 ${cssVar.colorText};
109
+ }
110
+ `,
111
+ rangeTrigger: css`
112
+ display: flex;
113
+ flex: 1;
114
+ gap: 8px;
115
+ align-items: center;
116
+
117
+ min-width: 0;
118
+ `,
119
+ tile: css`
120
+ ${focusRing};
121
+ cursor: pointer;
122
+
123
+ height: 40px;
124
+ padding: 0;
125
+ border: 0;
126
+ border-radius: 999px;
127
+
128
+ font: inherit;
129
+ font-size: 14px;
130
+ color: ${cssVar.colorText};
131
+
132
+ background: none;
133
+
134
+ &:hover:not(:disabled, [aria-pressed='true']) {
135
+ background: ${cssVar.colorFillTertiary};
136
+ }
137
+
138
+ &:disabled {
139
+ cursor: not-allowed;
140
+ color: ${cssVar.colorTextQuaternary};
141
+ }
142
+
143
+ &[data-today] {
144
+ box-shadow: inset 0 0 0 1px ${cssVar.colorText};
145
+ }
146
+
147
+ &[aria-pressed='true'] {
148
+ font-weight: 600;
149
+ color: ${cssVar.colorBgContainer};
150
+ background: ${cssVar.colorText};
151
+ }
152
+ `,
153
+ tiles: css`
154
+ display: grid;
155
+ grid-template-columns: repeat(3, minmax(0, 1fr));
156
+ gap: 6px 4px;
157
+ width: 266px;
158
+ `,
159
+ trigger: css`
160
+ ${focusRing};
161
+ cursor: pointer;
162
+
163
+ display: flex;
164
+ flex: 1;
165
+ align-items: center;
166
+
167
+ min-width: 0;
168
+ height: 100%;
169
+ padding: 0;
170
+ border: 0;
171
+
172
+ font: inherit;
173
+ color: inherit;
174
+ text-align: start;
175
+ white-space: nowrap;
176
+
177
+ background: none;
178
+
179
+ &:disabled {
180
+ cursor: not-allowed;
181
+ }
182
+ `,
183
+ weekday: css`
184
+ display: flex;
185
+ align-items: center;
186
+ justify-content: center;
187
+ height: 20px;
188
+ `
189
+ }));
190
+ //#endregion
191
+ export { styles };
192
+
193
+ //# sourceMappingURL=style.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.mjs","names":[],"sources":["../../../src/base-ui/DatePicker/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\n\nimport { focusRing } from '@/base-ui/focusRing';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => ({\n band: css`\n background: ${cssVar.colorFillSecondary};\n `,\n bandEnd: css`\n background: linear-gradient(to left, transparent 50%, ${cssVar.colorFillSecondary} 50%);\n `,\n bandStart: css`\n background: linear-gradient(to right, transparent 50%, ${cssVar.colorFillSecondary} 50%);\n `,\n calendar: css`\n display: flex;\n flex-direction: column;\n gap: 8px;\n width: 266px;\n `,\n cell: css`\n display: flex;\n justify-content: center;\n `,\n day: css`\n ${focusRing};\n cursor: pointer;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 34px;\n height: 34px;\n padding: 0;\n border: 0;\n border-radius: 50%;\n\n font: inherit;\n font-size: 13px;\n font-variant-numeric: tabular-nums;\n color: ${cssVar.colorText};\n\n background: none;\n\n &:hover:not(:disabled, [aria-pressed='true']) {\n background: ${cssVar.colorFillTertiary};\n }\n\n &:disabled {\n cursor: not-allowed;\n color: ${cssVar.colorTextQuaternary};\n }\n\n &[data-outside] {\n color: ${cssVar.colorTextQuaternary};\n }\n\n &[data-today] {\n box-shadow: inset 0 0 0 1px ${cssVar.colorText};\n }\n\n &[aria-pressed='true'] {\n font-weight: 600;\n color: ${cssVar.colorBgContainer};\n background: ${cssVar.colorText};\n }\n `,\n footer: css`\n display: flex;\n justify-content: center;\n\n margin-block-start: 12px;\n padding-block-start: 12px;\n border-block-start: 1px solid ${cssVar.colorBorderSecondary};\n `,\n grid: css`\n display: grid;\n grid-template-columns: repeat(7, minmax(0, 1fr));\n row-gap: 2px;\n `,\n header: css`\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-block-end: 4px;\n `,\n icon: css`\n display: inline-flex;\n flex: none;\n color: ${cssVar.colorTextTertiary};\n `,\n navGroup: css`\n display: flex;\n gap: 2px;\n `,\n placeholder: css`\n color: ${cssVar.colorTextPlaceholder};\n `,\n range: css`\n display: flex;\n gap: 28px;\n `,\n rangeHalf: css`\n min-width: 0;\n padding-block: 2px;\n\n &[data-active] {\n box-shadow: inset 0 -2px 0 ${cssVar.colorText};\n }\n `,\n rangeTrigger: css`\n display: flex;\n flex: 1;\n gap: 8px;\n align-items: center;\n\n min-width: 0;\n `,\n tile: css`\n ${focusRing};\n cursor: pointer;\n\n height: 40px;\n padding: 0;\n border: 0;\n border-radius: 999px;\n\n font: inherit;\n font-size: 14px;\n color: ${cssVar.colorText};\n\n background: none;\n\n &:hover:not(:disabled, [aria-pressed='true']) {\n background: ${cssVar.colorFillTertiary};\n }\n\n &:disabled {\n cursor: not-allowed;\n color: ${cssVar.colorTextQuaternary};\n }\n\n &[data-today] {\n box-shadow: inset 0 0 0 1px ${cssVar.colorText};\n }\n\n &[aria-pressed='true'] {\n font-weight: 600;\n color: ${cssVar.colorBgContainer};\n background: ${cssVar.colorText};\n }\n `,\n tiles: css`\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 6px 4px;\n width: 266px;\n `,\n trigger: css`\n ${focusRing};\n cursor: pointer;\n\n display: flex;\n flex: 1;\n align-items: center;\n\n min-width: 0;\n height: 100%;\n padding: 0;\n border: 0;\n\n font: inherit;\n color: inherit;\n text-align: start;\n white-space: nowrap;\n\n background: none;\n\n &:disabled {\n cursor: not-allowed;\n }\n `,\n weekday: css`\n display: flex;\n align-items: center;\n justify-content: center;\n height: 20px;\n `,\n}));\n"],"mappings":";;;AAIA,MAAa,SAAS,oBAAoB,EAAE,KAAK,cAAc;CAC7D,MAAM,GAAG;kBACO,OAAO,mBAAmB;;CAE1C,SAAS,GAAG;4DAC8C,OAAO,mBAAmB;;CAEpF,WAAW,GAAG;6DAC6C,OAAO,mBAAmB;;CAErF,UAAU,GAAG;;;;;;CAMb,MAAM,GAAG;;;;CAIT,KAAK,GAAG;MACJ,UAAU;;;;;;;;;;;;;;;;aAgBH,OAAO,UAAU;;;;;oBAKV,OAAO,kBAAkB;;;;;eAK9B,OAAO,oBAAoB;;;;eAI3B,OAAO,oBAAoB;;;;oCAIN,OAAO,UAAU;;;;;eAKtC,OAAO,iBAAiB;oBACnB,OAAO,UAAU;;;CAGnC,QAAQ,GAAG;;;;;;oCAMuB,OAAO,qBAAqB;;CAE9D,MAAM,GAAG;;;;;CAKT,QAAQ,GAAG;;;;;;CAMX,MAAM,GAAG;;;aAGE,OAAO,kBAAkB;;CAEpC,UAAU,GAAG;;;;CAIb,aAAa,GAAG;aACL,OAAO,qBAAqB;;CAEvC,OAAO,GAAG;;;;CAIV,WAAW,GAAG;;;;;mCAKmB,OAAO,UAAU;;;CAGlD,cAAc,GAAG;;;;;;;;CAQjB,MAAM,GAAG;MACL,UAAU;;;;;;;;;;aAUH,OAAO,UAAU;;;;;oBAKV,OAAO,kBAAkB;;;;;eAK9B,OAAO,oBAAoB;;;;oCAIN,OAAO,UAAU;;;;;eAKtC,OAAO,iBAAiB;oBACnB,OAAO,UAAU;;;CAGnC,OAAO,GAAG;;;;;;CAMV,SAAS,GAAG;MACR,UAAU;;;;;;;;;;;;;;;;;;;;;;;CAuBd,SAAS,GAAG;;;;;;AAMd,EAAE"}
@@ -0,0 +1,35 @@
1
+ import { InputSize, InputVariant } from "../Input/type.mjs";
2
+ import { CalendarMode } from "./calendar.mjs";
3
+ import { CSSProperties, ReactNode } from "react";
4
+ //#region src/base-ui/DatePicker/type.d.ts
5
+ interface PickerCommonProps {
6
+ allowClear?: boolean;
7
+ className?: string;
8
+ disabled?: boolean;
9
+ disabledDate?: (date: Date) => boolean;
10
+ format?: string | ((date: Date) => string);
11
+ max?: Date;
12
+ min?: Date;
13
+ shadow?: boolean;
14
+ size?: InputSize;
15
+ style?: CSSProperties;
16
+ variant?: InputVariant;
17
+ }
18
+ interface DatePickerProps extends PickerCommonProps {
19
+ defaultValue?: Date | null;
20
+ footer?: ReactNode;
21
+ mode?: CalendarMode;
22
+ onChange?: (date: Date | null) => void;
23
+ placeholder?: string;
24
+ value?: Date | null;
25
+ }
26
+ type DateRangeValue = [Date | null, Date | null];
27
+ interface DateRangePickerProps extends PickerCommonProps {
28
+ defaultValue?: DateRangeValue;
29
+ onChange?: (range: DateRangeValue) => void;
30
+ placeholder?: [string, string];
31
+ value?: DateRangeValue;
32
+ }
33
+ //#endregion
34
+ export { type CalendarMode, DatePickerProps, DateRangePickerProps, DateRangeValue };
35
+ //# sourceMappingURL=type.d.mts.map
@@ -0,0 +1,6 @@
1
+ import { DescriptionsProps } from "./type.mjs";
2
+ //#region src/base-ui/Descriptions/Descriptions.d.ts
3
+ declare const Descriptions: import("react").NamedExoticComponent<DescriptionsProps>;
4
+ //#endregion
5
+ export { Descriptions as default };
6
+ //# sourceMappingURL=Descriptions.d.mts.map
@@ -0,0 +1,62 @@
1
+ "use client";
2
+ import { styles } from "./style.mjs";
3
+ import { Fragment, memo } from "react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { cx } from "antd-style";
6
+ //#region src/base-ui/Descriptions/Descriptions.tsx
7
+ const Descriptions = memo(({ bordered = false, className, classNames, colon = true, column = 1, extra, items, ref, styles: customStyles, title, ...rest }) => {
8
+ const columnCount = Math.max(1, Math.floor(column));
9
+ let cursor = 0;
10
+ const placements = items.map((item) => {
11
+ const span = Math.min(Math.max(Math.floor(item.span ?? 1), 1), columnCount);
12
+ if (cursor + span > columnCount) cursor = 0;
13
+ const start = cursor;
14
+ cursor = (cursor + span) % columnCount;
15
+ return {
16
+ span,
17
+ start
18
+ };
19
+ });
20
+ return /* @__PURE__ */ jsxs("div", {
21
+ className: cx(styles.root, className),
22
+ ref,
23
+ ...rest,
24
+ children: [(title != null || extra != null) && /* @__PURE__ */ jsxs("div", {
25
+ className: styles.header,
26
+ children: [/* @__PURE__ */ jsx("div", {
27
+ className: styles.title,
28
+ children: title
29
+ }), extra != null && /* @__PURE__ */ jsx("div", {
30
+ className: styles.extra,
31
+ children: extra
32
+ })]
33
+ }), /* @__PURE__ */ jsx("dl", {
34
+ className: cx(styles.list, bordered && styles.bordered),
35
+ style: { gridTemplateColumns: `repeat(${columnCount}, auto minmax(0, 1fr))` },
36
+ children: items.map((item, index) => {
37
+ const { span, start } = placements[index];
38
+ const contentStart = String(start * 2 + 2);
39
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("dt", {
40
+ className: cx(styles.label, classNames?.label),
41
+ style: {
42
+ gridColumn: String(start * 2 + 1),
43
+ ...customStyles?.label
44
+ },
45
+ children: [item.label, colon && item.label != null ? ":" : null]
46
+ }), /* @__PURE__ */ jsx("dd", {
47
+ className: cx(styles.content, classNames?.content),
48
+ style: {
49
+ gridColumn: span > 1 ? `${contentStart} / span ${span * 2 - 1}` : contentStart,
50
+ ...customStyles?.content
51
+ },
52
+ children: item.children
53
+ })] }, item.key ?? index);
54
+ })
55
+ })]
56
+ });
57
+ });
58
+ Descriptions.displayName = "Descriptions";
59
+ //#endregion
60
+ export { Descriptions as default };
61
+
62
+ //# sourceMappingURL=Descriptions.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Descriptions.mjs","names":[],"sources":["../../../src/base-ui/Descriptions/Descriptions.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { Fragment, memo } from 'react';\n\nimport { styles } from './style';\nimport type { DescriptionsProps } from './type';\n\nconst Descriptions = memo<DescriptionsProps>(\n ({\n bordered = false,\n className,\n classNames,\n colon = true,\n column = 1,\n extra,\n items,\n ref,\n styles: customStyles,\n title,\n ...rest\n }) => {\n const columnCount = Math.max(1, Math.floor(column));\n\n let cursor = 0;\n const placements = items.map((item) => {\n const span = Math.min(Math.max(Math.floor(item.span ?? 1), 1), columnCount);\n if (cursor + span > columnCount) cursor = 0;\n const start = cursor;\n cursor = (cursor + span) % columnCount;\n return { span, start };\n });\n\n return (\n <div className={cx(styles.root, className)} ref={ref} {...rest}>\n {(title != null || extra != null) && (\n <div className={styles.header}>\n <div className={styles.title}>{title}</div>\n {extra != null && <div className={styles.extra}>{extra}</div>}\n </div>\n )}\n <dl\n className={cx(styles.list, bordered && styles.bordered)}\n style={{ gridTemplateColumns: `repeat(${columnCount}, auto minmax(0, 1fr))` }}\n >\n {items.map((item, index) => {\n const { span, start } = placements[index];\n const contentStart = String(start * 2 + 2);\n\n return (\n <Fragment key={item.key ?? index}>\n <dt\n className={cx(styles.label, classNames?.label)}\n style={{ gridColumn: String(start * 2 + 1), ...customStyles?.label }}\n >\n {item.label}\n {colon && item.label != null ? ':' : null}\n </dt>\n <dd\n className={cx(styles.content, classNames?.content)}\n style={{\n gridColumn: span > 1 ? `${contentStart} / span ${span * 2 - 1}` : contentStart,\n ...customStyles?.content,\n }}\n >\n {item.children}\n </dd>\n </Fragment>\n );\n })}\n </dl>\n </div>\n );\n },\n);\n\nDescriptions.displayName = 'Descriptions';\n\nexport default Descriptions;\n"],"mappings":";;;;;;AAQA,MAAM,eAAe,MAClB,EACC,WAAW,OACX,WACA,YACA,QAAQ,MACR,SAAS,GACT,OACA,OACA,KACA,QAAQ,cACR,OACA,GAAG,WACC;CACJ,MAAM,cAAc,KAAK,IAAI,GAAG,KAAK,MAAM,MAAM,CAAC;CAElD,IAAI,SAAS;CACb,MAAM,aAAa,MAAM,KAAK,SAAS;EACrC,MAAM,OAAO,KAAK,IAAI,KAAK,IAAI,KAAK,MAAM,KAAK,QAAQ,CAAC,GAAG,CAAC,GAAG,WAAW;EAC1E,IAAI,SAAS,OAAO,aAAa,SAAS;EAC1C,MAAM,QAAQ;EACd,UAAU,SAAS,QAAQ;EAC3B,OAAO;GAAE;GAAM;EAAM;CACvB,CAAC;CAED,OACE,qBAAC,OAAD;EAAK,WAAW,GAAG,OAAO,MAAM,SAAS;EAAQ;EAAK,GAAI;EAA1D,UAAA,EACI,SAAS,QAAQ,SAAS,SAC1B,qBAAC,OAAD;GAAK,WAAW,OAAO;GAAvB,UAAA,CACE,oBAAC,OAAD;IAAK,WAAW,OAAO;IAAQ,UAAA;GAAW,CAAA,GACzC,SAAS,QAAQ,oBAAC,OAAD;IAAK,WAAW,OAAO;IAAQ,UAAA;GAAW,CAAA,CACzD;EAEP,CAAA,GAAA,oBAAC,MAAD;GACE,WAAW,GAAG,OAAO,MAAM,YAAY,OAAO,QAAQ;GACtD,OAAO,EAAE,qBAAqB,UAAU,YAAY,wBAAwB;GAE3E,UAAA,MAAM,KAAK,MAAM,UAAU;IAC1B,MAAM,EAAE,MAAM,UAAU,WAAW;IACnC,MAAM,eAAe,OAAO,QAAQ,IAAI,CAAC;IAEzC,OACE,qBAAC,UAAD,EAAA,UAAA,CACE,qBAAC,MAAD;KACE,WAAW,GAAG,OAAO,OAAO,YAAY,KAAK;KAC7C,OAAO;MAAE,YAAY,OAAO,QAAQ,IAAI,CAAC;MAAG,GAAG,cAAc;KAAM;KAFrE,UAAA,CAIG,KAAK,OACL,SAAS,KAAK,SAAS,OAAO,MAAM,IACnC;IACJ,CAAA,GAAA,oBAAC,MAAD;KACE,WAAW,GAAG,OAAO,SAAS,YAAY,OAAO;KACjD,OAAO;MACL,YAAY,OAAO,IAAI,GAAG,aAAa,UAAU,OAAO,IAAI,MAAM;MAClE,GAAG,cAAc;KACnB;KAEC,UAAA,KAAK;IACJ,CAAA,CACI,EAAA,GAjBK,KAAK,OAAO,KAiBjB;GAEd,CAAC;EACC,CAAA,CACD;;AAET,CACF;AAEA,aAAa,cAAc"}
@@ -0,0 +1,3 @@
1
+ import { DescriptionsItem, DescriptionsProps } from "./type.mjs";
2
+ import Descriptions from "./Descriptions.mjs";
3
+ export { type DescriptionsItem, type DescriptionsProps, Descriptions as default };
@@ -0,0 +1,64 @@
1
+ import { createStaticStyles } from "antd-style";
2
+ //#region src/base-ui/Descriptions/style.ts
3
+ const styles = createStaticStyles(({ css, cssVar }) => ({
4
+ bordered: css`
5
+ gap: 0;
6
+ border: 1px solid ${cssVar.colorBorderSecondary};
7
+ border-block-start: 0;
8
+ border-radius: ${cssVar.borderRadius};
9
+
10
+ & > dt,
11
+ & > dd {
12
+ padding-block: 8px;
13
+ padding-inline: 12px;
14
+ border-block-start: 1px solid ${cssVar.colorBorderSecondary};
15
+ }
16
+
17
+ & > dt {
18
+ border-inline-end: 1px solid ${cssVar.colorBorderSecondary};
19
+ background: ${cssVar.colorFillQuaternary};
20
+ }
21
+ `,
22
+ content: css`
23
+ min-width: 0;
24
+ margin: 0;
25
+ color: ${cssVar.colorText};
26
+ overflow-wrap: anywhere;
27
+ `,
28
+ extra: css`
29
+ flex: none;
30
+ `,
31
+ header: css`
32
+ display: flex;
33
+ gap: 12px;
34
+ align-items: center;
35
+ justify-content: space-between;
36
+
37
+ margin-block-end: 8px;
38
+ `,
39
+ label: css`
40
+ color: ${cssVar.colorTextDescription};
41
+ white-space: nowrap;
42
+ `,
43
+ list: css`
44
+ display: grid;
45
+ gap: 6px 12px;
46
+
47
+ margin: 0;
48
+
49
+ font-size: 13px;
50
+ line-height: 1.5;
51
+ `,
52
+ root: css`
53
+ min-width: 0;
54
+ `,
55
+ title: css`
56
+ font-size: 14px;
57
+ font-weight: 600;
58
+ color: ${cssVar.colorText};
59
+ `
60
+ }));
61
+ //#endregion
62
+ export { styles };
63
+
64
+ //# sourceMappingURL=style.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.mjs","names":[],"sources":["../../../src/base-ui/Descriptions/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => ({\n bordered: css`\n gap: 0;\n border: 1px solid ${cssVar.colorBorderSecondary};\n border-block-start: 0;\n border-radius: ${cssVar.borderRadius};\n\n & > dt,\n & > dd {\n padding-block: 8px;\n padding-inline: 12px;\n border-block-start: 1px solid ${cssVar.colorBorderSecondary};\n }\n\n & > dt {\n border-inline-end: 1px solid ${cssVar.colorBorderSecondary};\n background: ${cssVar.colorFillQuaternary};\n }\n `,\n content: css`\n min-width: 0;\n margin: 0;\n color: ${cssVar.colorText};\n overflow-wrap: anywhere;\n `,\n extra: css`\n flex: none;\n `,\n header: css`\n display: flex;\n gap: 12px;\n align-items: center;\n justify-content: space-between;\n\n margin-block-end: 8px;\n `,\n label: css`\n color: ${cssVar.colorTextDescription};\n white-space: nowrap;\n `,\n list: css`\n display: grid;\n gap: 6px 12px;\n\n margin: 0;\n\n font-size: 13px;\n line-height: 1.5;\n `,\n root: css`\n min-width: 0;\n `,\n title: css`\n font-size: 14px;\n font-weight: 600;\n color: ${cssVar.colorText};\n `,\n}));\n"],"mappings":";;AAEA,MAAa,SAAS,oBAAoB,EAAE,KAAK,cAAc;CAC7D,UAAU,GAAG;;wBAES,OAAO,qBAAqB;;qBAE/B,OAAO,aAAa;;;;;;sCAMH,OAAO,qBAAqB;;;;qCAI7B,OAAO,qBAAqB;oBAC7C,OAAO,oBAAoB;;;CAG7C,SAAS,GAAG;;;aAGD,OAAO,UAAU;;;CAG5B,OAAO,GAAG;;;CAGV,QAAQ,GAAG;;;;;;;;CAQX,OAAO,GAAG;aACC,OAAO,qBAAqB;;;CAGvC,MAAM,GAAG;;;;;;;;;CAST,MAAM,GAAG;;;CAGT,OAAO,GAAG;;;aAGC,OAAO,UAAU;;AAE9B,EAAE"}
@@ -0,0 +1,28 @@
1
+ import { CSSProperties, ComponentProps, Key, ReactNode, Ref } from "react";
2
+ //#region src/base-ui/Descriptions/type.d.ts
3
+ interface DescriptionsItem {
4
+ children?: ReactNode;
5
+ key?: Key;
6
+ label?: ReactNode;
7
+ span?: number;
8
+ }
9
+ interface DescriptionsProps extends Omit<ComponentProps<'div'>, 'title'> {
10
+ bordered?: boolean;
11
+ classNames?: {
12
+ content?: string;
13
+ label?: string;
14
+ };
15
+ colon?: boolean;
16
+ column?: number;
17
+ extra?: ReactNode;
18
+ items: DescriptionsItem[];
19
+ ref?: Ref<HTMLDivElement>;
20
+ styles?: {
21
+ content?: CSSProperties;
22
+ label?: CSSProperties;
23
+ };
24
+ title?: ReactNode;
25
+ }
26
+ //#endregion
27
+ export { DescriptionsItem, DescriptionsProps };
28
+ //# sourceMappingURL=type.d.mts.map
@@ -0,0 +1,6 @@
1
+ import { DividerProps } from "./type.mjs";
2
+ //#region src/base-ui/Divider/Divider.d.ts
3
+ declare const Divider: import("react").NamedExoticComponent<DividerProps>;
4
+ //#endregion
5
+ export { Divider as default };
6
+ //# sourceMappingURL=Divider.d.mts.map
@@ -0,0 +1,30 @@
1
+ "use client";
2
+ import { styles } from "./style.mjs";
3
+ import { memo } from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import { cx } from "antd-style";
6
+ import { Separator } from "@base-ui/react/separator";
7
+ //#region src/base-ui/Divider/Divider.tsx
8
+ const Divider = memo(({ children, className, dashed = false, orientation = "horizontal", ref, ...rest }) => {
9
+ if (children != null && orientation === "horizontal") return /* @__PURE__ */ jsx(Separator, {
10
+ className: cx(styles.withText, dashed && styles.dashed, className),
11
+ orientation: "horizontal",
12
+ ref,
13
+ ...rest,
14
+ children: /* @__PURE__ */ jsx("span", {
15
+ className: styles.text,
16
+ children
17
+ })
18
+ });
19
+ return /* @__PURE__ */ jsx(Separator, {
20
+ orientation,
21
+ ref,
22
+ className: cx(orientation === "vertical" ? styles.vertical : styles.horizontal, dashed && styles.dashed, className),
23
+ ...rest
24
+ });
25
+ });
26
+ Divider.displayName = "Divider";
27
+ //#endregion
28
+ export { Divider as default };
29
+
30
+ //# sourceMappingURL=Divider.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Divider.mjs","names":[],"sources":["../../../src/base-ui/Divider/Divider.tsx"],"sourcesContent":["'use client';\n\nimport { Separator } from '@base-ui/react/separator';\nimport { cx } from 'antd-style';\nimport { memo } from 'react';\n\nimport { styles } from './style';\nimport type { DividerProps } from './type';\n\nconst Divider = memo<DividerProps>(\n ({ children, className, dashed = false, orientation = 'horizontal', ref, ...rest }) => {\n if (children != null && orientation === 'horizontal') {\n return (\n <Separator\n className={cx(styles.withText, dashed && styles.dashed, className)}\n orientation=\"horizontal\"\n ref={ref}\n {...rest}\n >\n <span className={styles.text}>{children}</span>\n </Separator>\n );\n }\n\n return (\n <Separator\n orientation={orientation}\n ref={ref}\n className={cx(\n orientation === 'vertical' ? styles.vertical : styles.horizontal,\n dashed && styles.dashed,\n className,\n )}\n {...rest}\n />\n );\n },\n);\n\nDivider.displayName = 'Divider';\n\nexport default Divider;\n"],"mappings":";;;;;;;AASA,MAAM,UAAU,MACb,EAAE,UAAU,WAAW,SAAS,OAAO,cAAc,cAAc,KAAK,GAAG,WAAW;CACrF,IAAI,YAAY,QAAQ,gBAAgB,cACtC,OACE,oBAAC,WAAD;EACE,WAAW,GAAG,OAAO,UAAU,UAAU,OAAO,QAAQ,SAAS;EACjE,aAAY;EACP;EACL,GAAI;EAEJ,UAAA,oBAAC,QAAD;GAAM,WAAW,OAAO;GAAO;EAAe,CAAA;CACrC,CAAA;CAIf,OACE,oBAAC,WAAD;EACe;EACR;EACL,WAAW,GACT,gBAAgB,aAAa,OAAO,WAAW,OAAO,YACtD,UAAU,OAAO,QACjB,SACF;EACA,GAAI;CACL,CAAA;AAEL,CACF;AAEA,QAAQ,cAAc"}
@@ -0,0 +1,3 @@
1
+ import { DividerOrientation, DividerProps } from "./type.mjs";
2
+ import Divider from "./Divider.mjs";
3
+ export { type DividerOrientation, type DividerProps, Divider as default };
@@ -0,0 +1,59 @@
1
+ import { createStaticStyles } from "antd-style";
2
+ //#region src/base-ui/Divider/style.ts
3
+ const styles = createStaticStyles(({ css, cssVar }) => ({
4
+ dashed: css`
5
+ border-style: dashed;
6
+
7
+ &::before,
8
+ &::after {
9
+ border-block-start-style: dashed;
10
+ }
11
+ `,
12
+ horizontal: css`
13
+ flex-shrink: 0;
14
+
15
+ width: 100%;
16
+ height: 0;
17
+ margin: 0;
18
+ border: 0;
19
+ border-block-start: 1px solid ${cssVar.colorBorderSecondary};
20
+ `,
21
+ text: css`
22
+ flex: none;
23
+ font-size: 12px;
24
+ line-height: 1.5;
25
+ color: ${cssVar.colorTextDescription};
26
+ `,
27
+ vertical: css`
28
+ display: inline-block;
29
+ flex-shrink: 0;
30
+ align-self: center;
31
+
32
+ width: 0;
33
+ height: 1em;
34
+ margin: 0;
35
+ border: 0;
36
+ border-inline-start: 1px solid ${cssVar.colorBorderSecondary};
37
+
38
+ vertical-align: middle;
39
+ `,
40
+ withText: css`
41
+ display: flex;
42
+ gap: 12px;
43
+ align-items: center;
44
+
45
+ width: 100%;
46
+ margin: 0;
47
+
48
+ &::before,
49
+ &::after {
50
+ content: '';
51
+ flex: 1;
52
+ border-block-start: 1px solid ${cssVar.colorBorderSecondary};
53
+ }
54
+ `
55
+ }));
56
+ //#endregion
57
+ export { styles };
58
+
59
+ //# sourceMappingURL=style.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.mjs","names":[],"sources":["../../../src/base-ui/Divider/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => ({\n dashed: css`\n border-style: dashed;\n\n &::before,\n &::after {\n border-block-start-style: dashed;\n }\n `,\n horizontal: css`\n flex-shrink: 0;\n\n width: 100%;\n height: 0;\n margin: 0;\n border: 0;\n border-block-start: 1px solid ${cssVar.colorBorderSecondary};\n `,\n text: css`\n flex: none;\n font-size: 12px;\n line-height: 1.5;\n color: ${cssVar.colorTextDescription};\n `,\n vertical: css`\n display: inline-block;\n flex-shrink: 0;\n align-self: center;\n\n width: 0;\n height: 1em;\n margin: 0;\n border: 0;\n border-inline-start: 1px solid ${cssVar.colorBorderSecondary};\n\n vertical-align: middle;\n `,\n withText: css`\n display: flex;\n gap: 12px;\n align-items: center;\n\n width: 100%;\n margin: 0;\n\n &::before,\n &::after {\n content: '';\n flex: 1;\n border-block-start: 1px solid ${cssVar.colorBorderSecondary};\n }\n `,\n}));\n"],"mappings":";;AAEA,MAAa,SAAS,oBAAoB,EAAE,KAAK,cAAc;CAC7D,QAAQ,GAAG;;;;;;;;CAQX,YAAY,GAAG;;;;;;;oCAOmB,OAAO,qBAAqB;;CAE9D,MAAM,GAAG;;;;aAIE,OAAO,qBAAqB;;CAEvC,UAAU,GAAG;;;;;;;;;qCASsB,OAAO,qBAAqB;;;;CAI/D,UAAU,GAAG;;;;;;;;;;;;sCAYuB,OAAO,qBAAqB;;;AAGlE,EAAE"}
@@ -0,0 +1,12 @@
1
+ import { ComponentProps, ReactNode, Ref } from "react";
2
+ //#region src/base-ui/Divider/type.d.ts
3
+ type DividerOrientation = 'horizontal' | 'vertical';
4
+ interface DividerProps extends Omit<ComponentProps<'div'>, 'children'> {
5
+ children?: ReactNode;
6
+ dashed?: boolean;
7
+ orientation?: DividerOrientation;
8
+ ref?: Ref<HTMLDivElement>;
9
+ }
10
+ //#endregion
11
+ export { DividerOrientation, DividerProps };
12
+ //# sourceMappingURL=type.d.mts.map