@cssui/react 1.0.0 → 1.0.2

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 (544) hide show
  1. package/dist/adapter-react/components/breadcrumb/Breadcrumb.d.ts +8 -0
  2. package/dist/adapter-react/components/breadcrumb/Breadcrumb.d.ts.map +1 -0
  3. package/dist/adapter-react/components/breadcrumb/Breadcrumb.js +170 -0
  4. package/dist/adapter-react/components/breadcrumb/Breadcrumb.js.map +1 -0
  5. package/dist/adapter-react/components/breadcrumb/index.d.ts +2 -0
  6. package/dist/adapter-react/components/breadcrumb/index.d.ts.map +1 -0
  7. package/dist/adapter-react/components/button/Button.d.ts +10 -0
  8. package/dist/adapter-react/components/button/Button.d.ts.map +1 -0
  9. package/dist/adapter-react/components/button/Button.js +49 -0
  10. package/dist/adapter-react/components/button/Button.js.map +1 -0
  11. package/dist/adapter-react/components/button/index.d.ts +3 -0
  12. package/dist/adapter-react/components/button/index.d.ts.map +1 -0
  13. package/dist/adapter-react/components/carousel/Carousel.d.ts +12 -0
  14. package/dist/adapter-react/components/carousel/Carousel.d.ts.map +1 -0
  15. package/dist/adapter-react/components/carousel/Carousel.js +155 -0
  16. package/dist/adapter-react/components/carousel/Carousel.js.map +1 -0
  17. package/dist/adapter-react/components/carousel/index.d.ts +3 -0
  18. package/dist/adapter-react/components/carousel/index.d.ts.map +1 -0
  19. package/dist/adapter-react/components/checkbox/Checkbox.d.ts +11 -0
  20. package/dist/adapter-react/components/checkbox/Checkbox.d.ts.map +1 -0
  21. package/dist/adapter-react/components/checkbox/Checkbox.js +69 -0
  22. package/dist/adapter-react/components/checkbox/Checkbox.js.map +1 -0
  23. package/dist/adapter-react/components/checkbox/CheckboxGroup.d.ts +22 -0
  24. package/dist/adapter-react/components/checkbox/CheckboxGroup.d.ts.map +1 -0
  25. package/dist/adapter-react/components/checkbox/CheckboxGroup.js +86 -0
  26. package/dist/adapter-react/components/checkbox/CheckboxGroup.js.map +1 -0
  27. package/dist/adapter-react/components/checkbox/index.d.ts +5 -0
  28. package/dist/adapter-react/components/checkbox/index.d.ts.map +1 -0
  29. package/dist/adapter-react/components/date-picker/DatePicker.d.ts +8 -0
  30. package/dist/adapter-react/components/date-picker/DatePicker.d.ts.map +1 -0
  31. package/dist/adapter-react/components/date-picker/DatePicker.js +438 -0
  32. package/dist/adapter-react/components/date-picker/DatePicker.js.map +1 -0
  33. package/dist/adapter-react/components/date-picker/index.d.ts +2 -0
  34. package/dist/adapter-react/components/date-picker/index.d.ts.map +1 -0
  35. package/dist/adapter-react/components/divider/Divider.d.ts +13 -0
  36. package/dist/adapter-react/components/divider/Divider.d.ts.map +1 -0
  37. package/dist/adapter-react/components/divider/Divider.js +31 -0
  38. package/dist/adapter-react/components/divider/Divider.js.map +1 -0
  39. package/dist/adapter-react/components/divider/index.d.ts +3 -0
  40. package/dist/adapter-react/components/divider/index.d.ts.map +1 -0
  41. package/dist/adapter-react/components/float-button/FloatButton.d.ts +17 -0
  42. package/dist/adapter-react/components/float-button/FloatButton.d.ts.map +1 -0
  43. package/dist/adapter-react/components/float-button/FloatButton.js +97 -0
  44. package/dist/adapter-react/components/float-button/FloatButton.js.map +1 -0
  45. package/dist/adapter-react/components/float-button/FloatButtonGroup.d.ts +9 -0
  46. package/dist/adapter-react/components/float-button/FloatButtonGroup.d.ts.map +1 -0
  47. package/dist/adapter-react/components/float-button/FloatButtonGroup.js +61 -0
  48. package/dist/adapter-react/components/float-button/FloatButtonGroup.js.map +1 -0
  49. package/dist/adapter-react/components/float-button/context.d.ts +3 -0
  50. package/dist/adapter-react/components/float-button/context.d.ts.map +1 -0
  51. package/dist/adapter-react/components/float-button/context.js +6 -0
  52. package/dist/adapter-react/components/float-button/context.js.map +1 -0
  53. package/dist/adapter-react/components/float-button/index.d.ts +5 -0
  54. package/dist/adapter-react/components/float-button/index.d.ts.map +1 -0
  55. package/dist/adapter-react/components/form/Form.d.ts +13 -0
  56. package/dist/adapter-react/components/form/Form.d.ts.map +1 -0
  57. package/dist/adapter-react/components/form/Form.js +355 -0
  58. package/dist/adapter-react/components/form/Form.js.map +1 -0
  59. package/dist/adapter-react/components/form/index.d.ts +4 -0
  60. package/dist/adapter-react/components/form/index.d.ts.map +1 -0
  61. package/dist/adapter-react/components/grid/Grid.d.ts +8 -0
  62. package/dist/adapter-react/components/grid/Grid.d.ts.map +1 -0
  63. package/dist/adapter-react/components/grid/Grid.js +51 -0
  64. package/dist/adapter-react/components/grid/Grid.js.map +1 -0
  65. package/dist/adapter-react/components/grid/GridItem.d.ts +8 -0
  66. package/dist/adapter-react/components/grid/GridItem.d.ts.map +1 -0
  67. package/dist/adapter-react/components/grid/GridItem.js +31 -0
  68. package/dist/adapter-react/components/grid/GridItem.js.map +1 -0
  69. package/dist/adapter-react/components/grid/index.d.ts +6 -0
  70. package/dist/adapter-react/components/grid/index.d.ts.map +1 -0
  71. package/dist/adapter-react/components/icon/Icon.d.ts +18 -0
  72. package/dist/adapter-react/components/icon/Icon.d.ts.map +1 -0
  73. package/dist/adapter-react/components/icon/Icon.js +51 -0
  74. package/dist/adapter-react/components/icon/Icon.js.map +1 -0
  75. package/dist/adapter-react/components/icon/index.d.ts +3 -0
  76. package/dist/adapter-react/components/icon/index.d.ts.map +1 -0
  77. package/dist/adapter-react/components/input/Input.d.ts +10 -0
  78. package/dist/adapter-react/components/input/Input.d.ts.map +1 -0
  79. package/dist/adapter-react/components/input/Input.js +79 -0
  80. package/dist/adapter-react/components/input/Input.js.map +1 -0
  81. package/dist/adapter-react/components/input/index.d.ts +3 -0
  82. package/dist/adapter-react/components/input/index.d.ts.map +1 -0
  83. package/dist/adapter-react/components/input-bar/InputBar.d.ts +9 -0
  84. package/dist/adapter-react/components/input-bar/InputBar.d.ts.map +1 -0
  85. package/dist/adapter-react/components/input-bar/InputBar.js +136 -0
  86. package/dist/adapter-react/components/input-bar/InputBar.js.map +1 -0
  87. package/dist/adapter-react/components/input-bar/index.d.ts +3 -0
  88. package/dist/adapter-react/components/input-bar/index.d.ts.map +1 -0
  89. package/dist/adapter-react/components/input-number/InputNumber.d.ts +9 -0
  90. package/dist/adapter-react/components/input-number/InputNumber.d.ts.map +1 -0
  91. package/dist/adapter-react/components/input-number/InputNumber.js +135 -0
  92. package/dist/adapter-react/components/input-number/InputNumber.js.map +1 -0
  93. package/dist/adapter-react/components/input-number/index.d.ts +2 -0
  94. package/dist/adapter-react/components/input-number/index.d.ts.map +1 -0
  95. package/dist/adapter-react/components/modal/Modal.d.ts +18 -0
  96. package/dist/adapter-react/components/modal/Modal.d.ts.map +1 -0
  97. package/dist/adapter-react/components/modal/Modal.js +108 -0
  98. package/dist/adapter-react/components/modal/Modal.js.map +1 -0
  99. package/dist/adapter-react/components/modal/index.d.ts +6 -0
  100. package/dist/adapter-react/components/modal/index.d.ts.map +1 -0
  101. package/dist/adapter-react/components/nav-menu/NavMenu.d.ts +11 -0
  102. package/dist/adapter-react/components/nav-menu/NavMenu.d.ts.map +1 -0
  103. package/dist/adapter-react/components/nav-menu/NavMenu.js +197 -0
  104. package/dist/adapter-react/components/nav-menu/NavMenu.js.map +1 -0
  105. package/dist/adapter-react/components/nav-menu/index.d.ts +3 -0
  106. package/dist/adapter-react/components/nav-menu/index.d.ts.map +1 -0
  107. package/dist/adapter-react/components/pagination/Pagination.d.ts +11 -0
  108. package/dist/adapter-react/components/pagination/Pagination.d.ts.map +1 -0
  109. package/dist/adapter-react/components/pagination/Pagination.js +128 -0
  110. package/dist/adapter-react/components/pagination/Pagination.js.map +1 -0
  111. package/dist/adapter-react/components/pagination/index.d.ts +3 -0
  112. package/dist/adapter-react/components/pagination/index.d.ts.map +1 -0
  113. package/dist/adapter-react/components/radio/Radio.d.ts +12 -0
  114. package/dist/adapter-react/components/radio/Radio.d.ts.map +1 -0
  115. package/dist/adapter-react/components/radio/Radio.js +83 -0
  116. package/dist/adapter-react/components/radio/Radio.js.map +1 -0
  117. package/dist/adapter-react/components/radio/RadioGroup.d.ts +24 -0
  118. package/dist/adapter-react/components/radio/RadioGroup.d.ts.map +1 -0
  119. package/dist/adapter-react/components/radio/RadioGroup.js +97 -0
  120. package/dist/adapter-react/components/radio/RadioGroup.js.map +1 -0
  121. package/dist/adapter-react/components/radio/index.d.ts +7 -0
  122. package/dist/adapter-react/components/radio/index.d.ts.map +1 -0
  123. package/dist/adapter-react/components/select/Select.d.ts +9 -0
  124. package/dist/adapter-react/components/select/Select.d.ts.map +1 -0
  125. package/dist/adapter-react/components/select/Select.js +189 -0
  126. package/dist/adapter-react/components/select/Select.js.map +1 -0
  127. package/dist/adapter-react/components/select/index.d.ts +3 -0
  128. package/dist/adapter-react/components/select/index.d.ts.map +1 -0
  129. package/dist/adapter-react/components/sidebar/Sidebar.d.ts +13 -0
  130. package/dist/adapter-react/components/sidebar/Sidebar.d.ts.map +1 -0
  131. package/dist/adapter-react/components/sidebar/Sidebar.js +242 -0
  132. package/dist/adapter-react/components/sidebar/Sidebar.js.map +1 -0
  133. package/dist/adapter-react/components/sidebar/index.d.ts +3 -0
  134. package/dist/adapter-react/components/sidebar/index.d.ts.map +1 -0
  135. package/dist/adapter-react/components/slider/Slider.d.ts +9 -0
  136. package/dist/adapter-react/components/slider/Slider.d.ts.map +1 -0
  137. package/dist/adapter-react/components/slider/Slider.js +150 -0
  138. package/dist/adapter-react/components/slider/Slider.js.map +1 -0
  139. package/dist/adapter-react/components/slider/index.d.ts +3 -0
  140. package/dist/adapter-react/components/slider/index.d.ts.map +1 -0
  141. package/dist/adapter-react/components/steps/Steps.d.ts +11 -0
  142. package/dist/adapter-react/components/steps/Steps.d.ts.map +1 -0
  143. package/dist/adapter-react/components/steps/Steps.js +172 -0
  144. package/dist/adapter-react/components/steps/Steps.js.map +1 -0
  145. package/dist/adapter-react/components/steps/index.d.ts +3 -0
  146. package/dist/adapter-react/components/steps/index.d.ts.map +1 -0
  147. package/dist/adapter-react/components/switch/Switch.d.ts +11 -0
  148. package/dist/adapter-react/components/switch/Switch.d.ts.map +1 -0
  149. package/dist/adapter-react/components/switch/Switch.js +98 -0
  150. package/dist/adapter-react/components/switch/Switch.js.map +1 -0
  151. package/dist/adapter-react/components/switch/index.d.ts +2 -0
  152. package/dist/adapter-react/components/switch/index.d.ts.map +1 -0
  153. package/dist/adapter-react/components/table/Table.d.ts +15 -0
  154. package/dist/adapter-react/components/table/Table.d.ts.map +1 -0
  155. package/dist/adapter-react/components/table/Table.js +211 -0
  156. package/dist/adapter-react/components/table/Table.js.map +1 -0
  157. package/dist/adapter-react/components/table/index.d.ts +3 -0
  158. package/dist/adapter-react/components/table/index.d.ts.map +1 -0
  159. package/dist/adapter-react/components/tabs/Tabs.d.ts +9 -0
  160. package/dist/adapter-react/components/tabs/Tabs.d.ts.map +1 -0
  161. package/dist/adapter-react/components/tabs/Tabs.js +62 -0
  162. package/dist/adapter-react/components/tabs/Tabs.js.map +1 -0
  163. package/dist/adapter-react/components/tabs/index.d.ts +2 -0
  164. package/dist/adapter-react/components/tabs/index.d.ts.map +1 -0
  165. package/dist/adapter-react/components/time-picker/TimePicker.d.ts +9 -0
  166. package/dist/adapter-react/components/time-picker/TimePicker.d.ts.map +1 -0
  167. package/dist/adapter-react/components/time-picker/TimePicker.js +271 -0
  168. package/dist/adapter-react/components/time-picker/TimePicker.js.map +1 -0
  169. package/dist/adapter-react/components/time-picker/index.d.ts +2 -0
  170. package/dist/adapter-react/components/time-picker/index.d.ts.map +1 -0
  171. package/dist/adapter-react/components/toast/Toast.d.ts +25 -0
  172. package/dist/adapter-react/components/toast/Toast.d.ts.map +1 -0
  173. package/dist/adapter-react/components/toast/Toast.js +223 -0
  174. package/dist/adapter-react/components/toast/Toast.js.map +1 -0
  175. package/dist/adapter-react/components/toast/index.d.ts +3 -0
  176. package/dist/adapter-react/components/toast/index.d.ts.map +1 -0
  177. package/dist/adapter-react/components/toolbars/Toolbar.d.ts +11 -0
  178. package/dist/adapter-react/components/toolbars/Toolbar.d.ts.map +1 -0
  179. package/dist/adapter-react/components/toolbars/Toolbar.js +66 -0
  180. package/dist/adapter-react/components/toolbars/Toolbar.js.map +1 -0
  181. package/dist/adapter-react/components/toolbars/index.d.ts +3 -0
  182. package/dist/adapter-react/components/toolbars/index.d.ts.map +1 -0
  183. package/dist/adapter-react/components/tooltip/Tooltip.d.ts +9 -0
  184. package/dist/adapter-react/components/tooltip/Tooltip.d.ts.map +1 -0
  185. package/dist/adapter-react/components/tooltip/Tooltip.js +141 -0
  186. package/dist/adapter-react/components/tooltip/Tooltip.js.map +1 -0
  187. package/dist/adapter-react/components/tooltip/index.d.ts +2 -0
  188. package/dist/adapter-react/components/tooltip/index.d.ts.map +1 -0
  189. package/dist/adapter-react/hooks/index.d.ts +12 -0
  190. package/dist/adapter-react/hooks/index.d.ts.map +1 -0
  191. package/dist/adapter-react/hooks/index.js +43 -0
  192. package/dist/adapter-react/hooks/index.js.map +1 -0
  193. package/dist/adapter-react/hooks/useControlled.d.ts +7 -0
  194. package/dist/adapter-react/hooks/useControlled.d.ts.map +1 -0
  195. package/dist/adapter-react/hooks/useControlled.js +21 -0
  196. package/dist/adapter-react/hooks/useControlled.js.map +1 -0
  197. package/dist/adapter-react/hooks/useEvent.d.ts +2 -0
  198. package/dist/adapter-react/hooks/useEvent.d.ts.map +1 -0
  199. package/dist/adapter-react/hooks/useMergedState.d.ts +4 -0
  200. package/dist/adapter-react/hooks/useMergedState.d.ts.map +1 -0
  201. package/dist/adapter-react/hooks/useMergedState.js +15 -0
  202. package/dist/adapter-react/hooks/useMergedState.js.map +1 -0
  203. package/dist/adapter-react/index.d.ts +37 -0
  204. package/dist/adapter-react/index.d.ts.map +1 -0
  205. package/dist/adapter-react/runtime/createComponent.d.ts +3 -0
  206. package/dist/adapter-react/runtime/createComponent.d.ts.map +1 -0
  207. package/dist/adapter-react/runtime/createComponent.js +6 -0
  208. package/dist/adapter-react/runtime/createComponent.js.map +1 -0
  209. package/dist/adapter-react/runtime/createProps.d.ts +2 -0
  210. package/dist/adapter-react/runtime/createProps.d.ts.map +1 -0
  211. package/dist/adapter-react/runtime/forwardRef.d.ts +3 -0
  212. package/dist/adapter-react/runtime/forwardRef.d.ts.map +1 -0
  213. package/dist/adapter-react/runtime/forwardRef.js +6 -0
  214. package/dist/adapter-react/runtime/forwardRef.js.map +1 -0
  215. package/dist/adapter-react/runtime/index.d.ts +5 -0
  216. package/dist/adapter-react/runtime/index.d.ts.map +1 -0
  217. package/dist/adapter-react/runtime/withInstall.d.ts +3 -0
  218. package/dist/adapter-react/runtime/withInstall.d.ts.map +1 -0
  219. package/dist/adapter-react/runtime/withInstall.js +6 -0
  220. package/dist/adapter-react/runtime/withInstall.js.map +1 -0
  221. package/dist/adapter-react/style/index.d.ts +2 -0
  222. package/dist/adapter-react/style/index.d.ts.map +1 -0
  223. package/dist/adapter-react/style/injectStyle.d.ts +2 -0
  224. package/dist/adapter-react/style/injectStyle.d.ts.map +1 -0
  225. package/dist/adapter-react/types.d.ts +6 -0
  226. package/dist/adapter-react/types.d.ts.map +1 -0
  227. package/dist/breadcrumb/index.d.ts +2 -2
  228. package/dist/breadcrumb/index.js +34 -1
  229. package/dist/breadcrumb/index.js.map +1 -0
  230. package/dist/breadcrumb/style.css +219 -1
  231. package/dist/button/index.d.ts +2 -2
  232. package/dist/button/index.js +34 -1
  233. package/dist/button/index.js.map +1 -0
  234. package/dist/button/style.css +151 -1
  235. package/dist/carousel/index.d.ts +2 -2
  236. package/dist/carousel/index.js +34 -1
  237. package/dist/carousel/index.js.map +1 -0
  238. package/dist/carousel/style.css +196 -1
  239. package/dist/checkbox/index.d.ts +3 -3
  240. package/dist/checkbox/index.js +34 -2
  241. package/dist/checkbox/index.js.map +1 -0
  242. package/dist/checkbox/style.css +135 -1
  243. package/dist/components/breadcrumb/index.d.ts +61 -0
  244. package/dist/components/breadcrumb/index.d.ts.map +1 -0
  245. package/dist/components/breadcrumb/index.js +49 -0
  246. package/dist/components/breadcrumb/index.js.map +1 -0
  247. package/dist/components/breadcrumb/style.css +219 -0
  248. package/dist/components/button/index.d.ts +15 -0
  249. package/dist/components/button/index.d.ts.map +1 -0
  250. package/dist/components/button/index.js +11 -0
  251. package/dist/components/button/index.js.map +1 -0
  252. package/dist/components/button/style.css +151 -0
  253. package/dist/components/carousel/index.d.ts +38 -0
  254. package/dist/components/carousel/index.d.ts.map +1 -0
  255. package/dist/components/carousel/index.js +33 -0
  256. package/dist/components/carousel/index.js.map +1 -0
  257. package/dist/components/carousel/style.css +196 -0
  258. package/dist/components/checkbox/index.d.ts +36 -0
  259. package/dist/components/checkbox/index.d.ts.map +1 -0
  260. package/dist/components/checkbox/index.js +34 -0
  261. package/dist/components/checkbox/index.js.map +1 -0
  262. package/dist/components/checkbox/style.css +135 -0
  263. package/dist/components/date-picker/index.d.ts +53 -0
  264. package/dist/components/date-picker/index.d.ts.map +1 -0
  265. package/dist/components/date-picker/index.js +105 -0
  266. package/dist/components/date-picker/index.js.map +1 -0
  267. package/dist/components/date-picker/style.css +491 -0
  268. package/dist/components/divider/index.d.ts +12 -0
  269. package/dist/components/divider/index.d.ts.map +1 -0
  270. package/dist/components/divider/index.js +23 -0
  271. package/dist/components/divider/index.js.map +1 -0
  272. package/dist/components/divider/style.css +100 -0
  273. package/dist/components/float-button/index.d.ts +32 -0
  274. package/dist/components/float-button/index.d.ts.map +1 -0
  275. package/dist/components/float-button/index.js +23 -0
  276. package/dist/components/float-button/index.js.map +1 -0
  277. package/dist/components/float-button/style.css +176 -0
  278. package/dist/components/form/index.d.ts +79 -0
  279. package/dist/components/form/index.d.ts.map +1 -0
  280. package/dist/components/form/index.js +144 -0
  281. package/dist/components/form/index.js.map +1 -0
  282. package/dist/components/form/style.css +79 -0
  283. package/dist/components/grid/index.d.ts +34 -0
  284. package/dist/components/grid/index.d.ts.map +1 -0
  285. package/dist/components/grid/index.js +109 -0
  286. package/dist/components/grid/index.js.map +1 -0
  287. package/dist/components/grid/style.css +189 -0
  288. package/dist/components/icon/index.d.ts +35 -0
  289. package/dist/components/icon/index.d.ts.map +1 -0
  290. package/dist/components/icon/index.js +16 -0
  291. package/dist/components/icon/index.js.map +1 -0
  292. package/dist/components/icon/style.css +28 -0
  293. package/dist/components/input/index.d.ts +29 -0
  294. package/dist/components/input/index.d.ts.map +1 -0
  295. package/dist/components/input/index.js +19 -0
  296. package/dist/components/input/index.js.map +1 -0
  297. package/dist/components/input/style.css +110 -0
  298. package/dist/components/input-bar/index.d.ts +31 -0
  299. package/dist/components/input-bar/index.d.ts.map +1 -0
  300. package/dist/components/input-bar/index.js +18 -0
  301. package/dist/components/input-bar/index.js.map +1 -0
  302. package/dist/components/input-bar/style.css +180 -0
  303. package/dist/components/input-number/index.d.ts +28 -0
  304. package/dist/components/input-number/index.d.ts.map +1 -0
  305. package/dist/components/input-number/index.js +21 -0
  306. package/dist/components/input-number/index.js.map +1 -0
  307. package/dist/components/input-number/style.css +109 -0
  308. package/dist/components/modal/index.d.ts +17 -0
  309. package/dist/components/modal/index.d.ts.map +1 -0
  310. package/dist/components/modal/index.js +10 -0
  311. package/dist/components/modal/index.js.map +1 -0
  312. package/dist/components/modal/style.css +150 -0
  313. package/dist/components/nav-menu/index.d.ts +35 -0
  314. package/dist/components/nav-menu/index.d.ts.map +1 -0
  315. package/dist/components/nav-menu/index.js +47 -0
  316. package/dist/components/nav-menu/index.js.map +1 -0
  317. package/dist/components/nav-menu/style.css +241 -0
  318. package/dist/components/pagination/index.d.ts +32 -0
  319. package/dist/components/pagination/index.d.ts.map +1 -0
  320. package/dist/components/pagination/index.js +35 -0
  321. package/dist/components/pagination/index.js.map +1 -0
  322. package/dist/components/pagination/style.css +150 -0
  323. package/dist/components/radio/index.d.ts +45 -0
  324. package/dist/components/radio/index.d.ts.map +1 -0
  325. package/dist/components/radio/index.js +48 -0
  326. package/dist/components/radio/index.js.map +1 -0
  327. package/dist/components/radio/style.css +294 -0
  328. package/dist/components/select/index.d.ts +30 -0
  329. package/dist/components/select/index.d.ts.map +1 -0
  330. package/dist/components/select/index.js +16 -0
  331. package/dist/components/select/index.js.map +1 -0
  332. package/dist/components/select/style.css +255 -0
  333. package/dist/components/sidebar/index.d.ts +19 -0
  334. package/dist/components/sidebar/index.d.ts.map +1 -0
  335. package/dist/components/sidebar/index.js +23 -0
  336. package/dist/components/sidebar/index.js.map +1 -0
  337. package/dist/components/sidebar/style.css +270 -0
  338. package/dist/components/slider/index.d.ts +29 -0
  339. package/dist/components/slider/index.d.ts.map +1 -0
  340. package/dist/components/slider/index.js +24 -0
  341. package/dist/components/slider/index.js.map +1 -0
  342. package/dist/components/slider/style.css +206 -0
  343. package/dist/components/src/index.d.ts +28 -0
  344. package/dist/components/src/index.d.ts.map +1 -0
  345. package/dist/components/steps/index.d.ts +41 -0
  346. package/dist/components/steps/index.d.ts.map +1 -0
  347. package/dist/components/steps/index.js +32 -0
  348. package/dist/components/steps/index.js.map +1 -0
  349. package/dist/components/steps/style.css +286 -0
  350. package/dist/components/switch/index.d.ts +16 -0
  351. package/dist/components/switch/index.d.ts.map +1 -0
  352. package/dist/components/switch/index.js +17 -0
  353. package/dist/components/switch/index.js.map +1 -0
  354. package/dist/components/switch/style.css +160 -0
  355. package/dist/components/table/index.d.ts +49 -0
  356. package/dist/components/table/index.d.ts.map +1 -0
  357. package/dist/components/table/index.js +74 -0
  358. package/dist/components/table/index.js.map +1 -0
  359. package/dist/components/table/style.css +131 -0
  360. package/dist/components/tabs/index.d.ts +34 -0
  361. package/dist/components/tabs/index.d.ts.map +1 -0
  362. package/dist/components/tabs/index.js +21 -0
  363. package/dist/components/tabs/index.js.map +1 -0
  364. package/dist/components/tabs/style.css +146 -0
  365. package/dist/components/time-picker/index.d.ts +56 -0
  366. package/dist/components/time-picker/index.d.ts.map +1 -0
  367. package/dist/components/time-picker/index.js +84 -0
  368. package/dist/components/time-picker/index.js.map +1 -0
  369. package/dist/components/time-picker/style.css +258 -0
  370. package/dist/components/toast/index.d.ts +41 -0
  371. package/dist/components/toast/index.d.ts.map +1 -0
  372. package/dist/components/toast/index.js +24 -0
  373. package/dist/components/toast/index.js.map +1 -0
  374. package/dist/components/toast/style.css +117 -0
  375. package/dist/components/toolbars/index.d.ts +31 -0
  376. package/dist/components/toolbars/index.d.ts.map +1 -0
  377. package/dist/components/toolbars/index.js +32 -0
  378. package/dist/components/toolbars/index.js.map +1 -0
  379. package/dist/components/toolbars/style.css +220 -0
  380. package/dist/components/tooltip/index.d.ts +31 -0
  381. package/dist/components/tooltip/index.d.ts.map +1 -0
  382. package/dist/components/tooltip/index.js +17 -0
  383. package/dist/components/tooltip/index.js.map +1 -0
  384. package/dist/components/tooltip/style.css +138 -0
  385. package/dist/date-picker/index.d.ts +2 -2
  386. package/dist/date-picker/index.js +34 -1
  387. package/dist/date-picker/index.js.map +1 -0
  388. package/dist/date-picker/style.css +491 -1
  389. package/dist/divider/index.d.ts +2 -2
  390. package/dist/divider/index.js +34 -1
  391. package/dist/divider/index.js.map +1 -0
  392. package/dist/divider/style.css +100 -1
  393. package/dist/float-button/index.d.ts +2 -2
  394. package/dist/float-button/index.js +34 -1
  395. package/dist/float-button/index.js.map +1 -0
  396. package/dist/float-button/style.css +176 -1
  397. package/dist/form/index.d.ts +2 -2
  398. package/dist/form/index.js +34 -1
  399. package/dist/form/index.js.map +1 -0
  400. package/dist/form/style.css +79 -1
  401. package/dist/grid/index.d.ts +2 -2
  402. package/dist/grid/index.js +34 -1
  403. package/dist/grid/index.js.map +1 -0
  404. package/dist/grid/style.css +189 -1
  405. package/dist/icon/index.d.ts +2 -2
  406. package/dist/icon/index.js +34 -1
  407. package/dist/icon/index.js.map +1 -0
  408. package/dist/icon/style.css +28 -1
  409. package/dist/icons/react/add_circle.js +30 -0
  410. package/dist/icons/react/add_circle.js.map +1 -0
  411. package/dist/icons/react/arrow_back.js +24 -0
  412. package/dist/icons/react/arrow_back.js.map +1 -0
  413. package/dist/icons/react/arrow_drop_down.js +26 -0
  414. package/dist/icons/react/arrow_drop_down.js.map +1 -0
  415. package/dist/icons/react/arrow_forward.js +26 -0
  416. package/dist/icons/react/arrow_forward.js.map +1 -0
  417. package/dist/icons/react/calendar_month.js +26 -0
  418. package/dist/icons/react/calendar_month.js.map +1 -0
  419. package/dist/icons/react/check.js +24 -0
  420. package/dist/icons/react/check.js.map +1 -0
  421. package/dist/icons/react/chevron_right.js +26 -0
  422. package/dist/icons/react/chevron_right.js.map +1 -0
  423. package/dist/icons/react/close.js +24 -0
  424. package/dist/icons/react/close.js.map +1 -0
  425. package/dist/icons/react/config.js +32 -0
  426. package/dist/icons/react/config.js.map +1 -0
  427. package/dist/icons/react/dark_mode.js +24 -0
  428. package/dist/icons/react/dark_mode.js.map +1 -0
  429. package/dist/icons/react/do_not_disturb_on.js +32 -0
  430. package/dist/icons/react/do_not_disturb_on.js.map +1 -0
  431. package/dist/icons/react/error.js +24 -0
  432. package/dist/icons/react/error.js.map +1 -0
  433. package/dist/icons/react/home.js +27 -0
  434. package/dist/icons/react/home.js.map +1 -0
  435. package/dist/icons/react/index.js +27 -0
  436. package/dist/icons/react/index.js.map +1 -0
  437. package/dist/icons/react/info.js +30 -0
  438. package/dist/icons/react/info.js.map +1 -0
  439. package/dist/icons/react/logo_Block.js +30 -0
  440. package/dist/icons/react/logo_Block.js.map +1 -0
  441. package/dist/icons/react/logo_Horizontal.js +32 -0
  442. package/dist/icons/react/logo_Horizontal.js.map +1 -0
  443. package/dist/icons/react/looks_3.js +24 -0
  444. package/dist/icons/react/looks_3.js.map +1 -0
  445. package/dist/icons/react/looks_one.js +30 -0
  446. package/dist/icons/react/looks_one.js.map +1 -0
  447. package/dist/icons/react/looks_two.js +24 -0
  448. package/dist/icons/react/looks_two.js.map +1 -0
  449. package/dist/icons/react/menu.js +24 -0
  450. package/dist/icons/react/menu.js.map +1 -0
  451. package/dist/icons/react/menu_open.js +24 -0
  452. package/dist/icons/react/menu_open.js.map +1 -0
  453. package/dist/icons/react/more_horiz.js +27 -0
  454. package/dist/icons/react/more_horiz.js.map +1 -0
  455. package/dist/icons/react/schedule.js +24 -0
  456. package/dist/icons/react/schedule.js.map +1 -0
  457. package/dist/icons/react/search.js +30 -0
  458. package/dist/icons/react/search.js.map +1 -0
  459. package/dist/icons/react/sunny.js +24 -0
  460. package/dist/icons/react/sunny.js.map +1 -0
  461. package/dist/icons/react/warning.js +30 -0
  462. package/dist/icons/react/warning.js.map +1 -0
  463. package/dist/index.css +5214 -0
  464. package/dist/index.css.map +1 -0
  465. package/dist/input/index.d.ts +2 -2
  466. package/dist/input/index.js +34 -1
  467. package/dist/input/index.js.map +1 -0
  468. package/dist/input/style.css +110 -1
  469. package/dist/input-bar/index.d.ts +2 -2
  470. package/dist/input-bar/index.js +34 -1
  471. package/dist/input-bar/index.js.map +1 -0
  472. package/dist/input-bar/style.css +180 -1
  473. package/dist/input-number/index.d.ts +1 -1
  474. package/dist/input-number/index.js +34 -1
  475. package/dist/input-number/index.js.map +1 -0
  476. package/dist/input-number/style.css +109 -1
  477. package/dist/modal/index.d.ts +2 -2
  478. package/dist/modal/index.js +34 -1
  479. package/dist/modal/index.js.map +1 -0
  480. package/dist/modal/style.css +150 -1
  481. package/dist/nav-menu/index.d.ts +2 -2
  482. package/dist/nav-menu/index.js +34 -1
  483. package/dist/nav-menu/index.js.map +1 -0
  484. package/dist/nav-menu/style.css +241 -1
  485. package/dist/pagination/index.d.ts +1 -1
  486. package/dist/pagination/index.js +34 -1
  487. package/dist/pagination/index.js.map +1 -0
  488. package/dist/pagination/style.css +150 -1
  489. package/dist/radio/index.d.ts +3 -3
  490. package/dist/radio/index.js +34 -2
  491. package/dist/radio/index.js.map +1 -0
  492. package/dist/radio/style.css +294 -1
  493. package/dist/select/index.d.ts +2 -2
  494. package/dist/select/index.js +34 -1
  495. package/dist/select/index.js.map +1 -0
  496. package/dist/select/style.css +255 -1
  497. package/dist/sidebar/index.d.ts +2 -2
  498. package/dist/sidebar/index.js +34 -1
  499. package/dist/sidebar/index.js.map +1 -0
  500. package/dist/sidebar/style.css +270 -1
  501. package/dist/slider/index.d.ts +2 -2
  502. package/dist/slider/index.js +34 -1
  503. package/dist/slider/index.js.map +1 -0
  504. package/dist/slider/style.css +206 -1
  505. package/dist/src/index.js +33 -31
  506. package/dist/src/index.js.map +1 -0
  507. package/dist/steps/index.d.ts +1 -1
  508. package/dist/steps/index.js +34 -1
  509. package/dist/steps/index.js.map +1 -0
  510. package/dist/steps/style.css +286 -1
  511. package/dist/style.css +2 -0
  512. package/dist/switch/index.d.ts +2 -2
  513. package/dist/switch/index.js +34 -1
  514. package/dist/switch/index.js.map +1 -0
  515. package/dist/switch/style.css +160 -1
  516. package/dist/table/index.d.ts +1 -1
  517. package/dist/table/index.js +34 -1
  518. package/dist/table/index.js.map +1 -0
  519. package/dist/table/style.css +131 -1
  520. package/dist/tabs/index.d.ts +2 -2
  521. package/dist/tabs/index.js +34 -1
  522. package/dist/tabs/index.js.map +1 -0
  523. package/dist/tabs/style.css +146 -1
  524. package/dist/theme.css +183 -0
  525. package/dist/time-picker/index.d.ts +2 -2
  526. package/dist/time-picker/index.js +34 -1
  527. package/dist/time-picker/index.js.map +1 -0
  528. package/dist/time-picker/style.css +258 -1
  529. package/dist/toast/index.d.ts +4 -4
  530. package/dist/toast/index.js +38 -3
  531. package/dist/toast/index.js.map +1 -0
  532. package/dist/toast/style.css +117 -1
  533. package/dist/toolbars/index.d.ts +3 -3
  534. package/dist/toolbars/index.js +34 -1
  535. package/dist/toolbars/index.js.map +1 -0
  536. package/dist/toolbars/style.css +220 -1
  537. package/dist/tooltip/index.d.ts +1 -1
  538. package/dist/tooltip/index.js +34 -1
  539. package/dist/tooltip/index.js.map +1 -0
  540. package/dist/tooltip/style.css +138 -1
  541. package/dist/utils/src/index.js +6 -0
  542. package/dist/utils/src/index.js.map +1 -0
  543. package/package.json +9 -7
  544. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,23 @@
1
+ function getDividerClassNames(props) {
2
+ const { type = "horizontal", dashed = false, orientation = "center", className, children } = props;
3
+ const classes = ["css-divider"];
4
+ if (type === "vertical") {
5
+ classes.push("css-divider--vertical");
6
+ } else {
7
+ classes.push("css-divider--horizontal");
8
+ }
9
+ if (dashed) {
10
+ classes.push("css-divider--dashed");
11
+ }
12
+ if (children && type === "horizontal") {
13
+ classes.push("css-divider--with-text");
14
+ classes.push(`css-divider--with-text-${orientation}`);
15
+ }
16
+ if (className) {
17
+ classes.push(className);
18
+ }
19
+ return classes.join(" ");
20
+ }
21
+
22
+ export { getDividerClassNames };
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../components/divider/index.ts"],"sourcesContent":["/**\n * Divider 组件 - 逻辑部分\n */\n\nexport interface DividerProps {\n // 类型:水平或垂直\n type?: 'horizontal' | 'vertical'\n // 是否虚线\n dashed?: boolean\n // 文字位置\n orientation?: 'left' | 'right' | 'center'\n // 文字内容\n children?: any\n // 类名\n className?: string\n}\n\nexport function getDividerClassNames(props: DividerProps): string {\n const { type = 'horizontal', dashed = false, orientation = 'center', className, children } = props\n const classes = ['css-divider']\n\n if (type === 'vertical') {\n classes.push('css-divider--vertical')\n } else {\n classes.push('css-divider--horizontal')\n }\n\n if (dashed) {\n classes.push('css-divider--dashed')\n }\n\n if (children && type === 'horizontal') {\n classes.push('css-divider--with-text')\n classes.push(`css-divider--with-text-${orientation}`)\n }\n\n if (className) {\n classes.push(className)\n }\n\n return classes.join(' ')\n}\n"],"names":[],"mappings":"AAiBO,SAAS,qBAAqB,KAAA,EAA6B;AAChE,EAAA,MAAM,EAAE,OAAO,YAAA,EAAc,MAAA,GAAS,OAAO,WAAA,GAAc,QAAA,EAAU,SAAA,EAAW,QAAA,EAAS,GAAI,KAAA;AAC7F,EAAA,MAAM,OAAA,GAAU,CAAC,aAAa,CAAA;AAE9B,EAAA,IAAI,SAAS,UAAA,EAAY;AACvB,IAAA,OAAA,CAAQ,KAAK,uBAAuB,CAAA;AAAA,EACtC,CAAA,MAAO;AACL,IAAA,OAAA,CAAQ,KAAK,yBAAyB,CAAA;AAAA,EACxC;AAEA,EAAA,IAAI,MAAA,EAAQ;AACV,IAAA,OAAA,CAAQ,KAAK,qBAAqB,CAAA;AAAA,EACpC;AAEA,EAAA,IAAI,QAAA,IAAY,SAAS,YAAA,EAAc;AACrC,IAAA,OAAA,CAAQ,KAAK,wBAAwB,CAAA;AACrC,IAAA,OAAA,CAAQ,IAAA,CAAK,CAAA,uBAAA,EAA0B,WAAW,CAAA,CAAE,CAAA;AAAA,EACtD;AAEA,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,OAAA,CAAQ,KAAK,SAAS,CAAA;AAAA,EACxB;AAEA,EAAA,OAAO,OAAA,CAAQ,KAAK,GAAG,CAAA;AACzB;;;;"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Divider 组件样式
3
+ * 使用 CSS 变量和 BEM 命名规范
4
+ */
5
+
6
+ .css-divider {
7
+ display: flex;
8
+ clear: both;
9
+ width: 100%;
10
+ min-width: 100%;
11
+ margin: 24px 0;
12
+ box-sizing: border-box;
13
+ padding: 0;
14
+ color: var(--color-dark-04);
15
+ font-size: 14px;
16
+ font-variant: tabular-nums;
17
+ line-height: 1.5715;
18
+ list-style: none;
19
+ font-feature-settings: 'tnum';
20
+ border-top: 1px solid var(--color-dark-03);
21
+ }
22
+
23
+ .css-divider--vertical {
24
+ position: relative;
25
+ top: -0.06em;
26
+ display: inline-block;
27
+ height: 0.9em;
28
+ margin: 0 8px;
29
+ vertical-align: middle;
30
+ border-top: 0;
31
+ border-left: 1px solid var(--color-dark-03);
32
+ min-width: auto;
33
+ width: auto;
34
+ }
35
+
36
+ .css-divider--with-text {
37
+ display: flex;
38
+ margin: 16px 0;
39
+ color: var(--color-dark-04);
40
+ font-weight: 500;
41
+ font-size: 16px;
42
+ white-space: nowrap;
43
+ text-align: center;
44
+ border-top: 0;
45
+ border-top-color: var(--color-dark-03);
46
+ align-items: center;
47
+ }
48
+
49
+ .css-divider--with-text::before,
50
+ .css-divider--with-text::after {
51
+ position: relative;
52
+ width: 50%;
53
+ border-top: 1px solid transparent;
54
+ border-top-color: inherit;
55
+ border-bottom: 0;
56
+ transform: translateY(50%);
57
+ content: '';
58
+ }
59
+
60
+ .css-divider--with-text-left::before {
61
+ width: 5%;
62
+ }
63
+
64
+ .css-divider--with-text-left::after {
65
+ width: 95%;
66
+ }
67
+
68
+ .css-divider--with-text-right::before {
69
+ width: 95%;
70
+ }
71
+
72
+ .css-divider--with-text-right::after {
73
+ width: 5%;
74
+ }
75
+
76
+ .css-divider__inner-text {
77
+ display: inline-block;
78
+ padding: 0 1em;
79
+ }
80
+
81
+ .css-divider--dashed {
82
+ background: none;
83
+ border-color: var(--color-dark-03);
84
+ border-style: dashed;
85
+ border-width: 1px 0 0;
86
+ }
87
+
88
+ .css-divider--vertical.css-divider--dashed {
89
+ border-width: 0 0 0 1px;
90
+ }
91
+
92
+ .css-divider--with-text.css-divider--dashed {
93
+ border-top: 0;
94
+ }
95
+
96
+ .css-divider--with-text.css-divider--dashed::before,
97
+ .css-divider--with-text.css-divider--dashed::after {
98
+ border-style: dashed;
99
+ border-width: 1px 0 0;
100
+ }
@@ -0,0 +1,32 @@
1
+ export type FloatButtonShape = 'circle' | 'square';
2
+ export interface FloatButtonProps {
3
+ /** 图标名称 */
4
+ icon?: string;
5
+ /** 自定义类名 */
6
+ className?: string;
7
+ /** 按钮形状 */
8
+ shape?: FloatButtonShape;
9
+ /** 是否禁用 */
10
+ disabled?: boolean;
11
+ /** 无文字时的可访问名称 */
12
+ ariaLabel?: string;
13
+ /** 链接地址 */
14
+ href?: string;
15
+ }
16
+ export interface FloatButtonGroupProps {
17
+ /** 自定义类名 */
18
+ className?: string;
19
+ /** 组内统一形状,会覆盖子按钮的 shape */
20
+ shape?: FloatButtonShape;
21
+ /** circle 组的展开状态 */
22
+ open?: boolean;
23
+ /** circle 组的默认展开状态 */
24
+ defaultOpen?: boolean;
25
+ /** circle 组展开状态变化回调 */
26
+ onOpenChange?: (open: boolean) => void;
27
+ /** circle 组触发按钮的可访问名称 */
28
+ triggerAriaLabel?: string;
29
+ }
30
+ export declare function getFloatButtonClassNames(props?: Pick<FloatButtonProps, 'className' | 'shape' | 'disabled'>): string;
31
+ export declare function getFloatButtonGroupClassNames(props?: Pick<FloatButtonGroupProps, 'className' | 'shape' | 'open'>): string;
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../float-button/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAElD,MAAM,WAAW,gBAAgB;IAC/B,WAAW;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW;IACX,KAAK,CAAC,EAAE,gBAAgB,CAAA;IACxB,WAAW;IACX,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,gBAAgB,CAAA;IACxB,oBAAoB;IACpB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,sBAAsB;IACtB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,uBAAuB;IACvB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,wBAAgB,wBAAwB,CACtC,KAAK,GAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,GAAG,OAAO,GAAG,UAAU,CAAM,GACrE,MAAM,CAYR;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,GAAE,IAAI,CAAC,qBAAqB,EAAE,WAAW,GAAG,OAAO,GAAG,MAAM,CAAM,GACtE,MAAM,CAYR"}
@@ -0,0 +1,23 @@
1
+ function getFloatButtonClassNames(props = {}) {
2
+ const classes = ["css-float-button", `css-float-button--${props.shape ?? "circle"}`];
3
+ if (props.disabled) {
4
+ classes.push("css-float-button--disabled");
5
+ }
6
+ if (props.className) {
7
+ classes.push(props.className);
8
+ }
9
+ return classes.join(" ");
10
+ }
11
+ function getFloatButtonGroupClassNames(props = {}) {
12
+ const classes = ["css-float-button-group", `css-float-button-group--${props.shape ?? "circle"}`];
13
+ if (props.open) {
14
+ classes.push("css-float-button-group--open");
15
+ }
16
+ if (props.className) {
17
+ classes.push(props.className);
18
+ }
19
+ return classes.join(" ");
20
+ }
21
+
22
+ export { getFloatButtonClassNames, getFloatButtonGroupClassNames };
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../components/float-button/index.ts"],"sourcesContent":["export type FloatButtonShape = 'circle' | 'square'\n\nexport interface FloatButtonProps {\n /** 图标名称 */\n icon?: string\n /** 自定义类名 */\n className?: string\n /** 按钮形状 */\n shape?: FloatButtonShape\n /** 是否禁用 */\n disabled?: boolean\n /** 无文字时的可访问名称 */\n ariaLabel?: string\n /** 链接地址 */\n href?: string\n}\n\nexport interface FloatButtonGroupProps {\n /** 自定义类名 */\n className?: string\n /** 组内统一形状,会覆盖子按钮的 shape */\n shape?: FloatButtonShape\n /** circle 组的展开状态 */\n open?: boolean\n /** circle 组的默认展开状态 */\n defaultOpen?: boolean\n /** circle 组展开状态变化回调 */\n onOpenChange?: (open: boolean) => void\n /** circle 组触发按钮的可访问名称 */\n triggerAriaLabel?: string\n}\n\nexport function getFloatButtonClassNames(\n props: Pick<FloatButtonProps, 'className' | 'shape' | 'disabled'> = {}\n): string {\n const classes = ['css-float-button', `css-float-button--${props.shape ?? 'circle'}`]\n\n if (props.disabled) {\n classes.push('css-float-button--disabled')\n }\n\n if (props.className) {\n classes.push(props.className)\n }\n\n return classes.join(' ')\n}\n\nexport function getFloatButtonGroupClassNames(\n props: Pick<FloatButtonGroupProps, 'className' | 'shape' | 'open'> = {}\n): string {\n const classes = ['css-float-button-group', `css-float-button-group--${props.shape ?? 'circle'}`]\n\n if (props.open) {\n classes.push('css-float-button-group--open')\n }\n\n if (props.className) {\n classes.push(props.className)\n }\n\n return classes.join(' ')\n}\n"],"names":[],"mappings":"AAgCO,SAAS,wBAAA,CACd,KAAA,GAAoE,EAAC,EAC7D;AACR,EAAA,MAAM,UAAU,CAAC,kBAAA,EAAoB,qBAAqB,KAAA,CAAM,KAAA,IAAS,QAAQ,CAAA,CAAE,CAAA;AAEnF,EAAA,IAAI,MAAM,QAAA,EAAU;AAClB,IAAA,OAAA,CAAQ,KAAK,4BAA4B,CAAA;AAAA,EAC3C;AAEA,EAAA,IAAI,MAAM,SAAA,EAAW;AACnB,IAAA,OAAA,CAAQ,IAAA,CAAK,MAAM,SAAS,CAAA;AAAA,EAC9B;AAEA,EAAA,OAAO,OAAA,CAAQ,KAAK,GAAG,CAAA;AACzB;AAEO,SAAS,6BAAA,CACd,KAAA,GAAqE,EAAC,EAC9D;AACR,EAAA,MAAM,UAAU,CAAC,wBAAA,EAA0B,2BAA2B,KAAA,CAAM,KAAA,IAAS,QAAQ,CAAA,CAAE,CAAA;AAE/F,EAAA,IAAI,MAAM,IAAA,EAAM;AACd,IAAA,OAAA,CAAQ,KAAK,8BAA8B,CAAA;AAAA,EAC7C;AAEA,EAAA,IAAI,MAAM,SAAA,EAAW;AACnB,IAAA,OAAA,CAAQ,IAAA,CAAK,MAAM,SAAS,CAAA;AAAA,EAC9B;AAEA,EAAA,OAAO,OAAA,CAAQ,KAAK,GAAG,CAAA;AACzB;;;;"}
@@ -0,0 +1,176 @@
1
+ .css-float-button-group {
2
+ display: inline-flex;
3
+ flex-direction: column;
4
+ align-items: flex-end;
5
+ }
6
+
7
+ .css-float-button {
8
+ display: inline-flex;
9
+ align-items: center;
10
+ justify-content: center;
11
+ min-width: 36px;
12
+ min-height: 36px;
13
+ padding: var(--spacing-2);
14
+ border: none;
15
+ background: var(--color-background);
16
+ color: var(--color-primary);
17
+ box-shadow: 0px 0px 15px 0px #00000026;
18
+ cursor: pointer;
19
+ text-decoration: none;
20
+ font-family: var(--font-family-base);
21
+ font-size: 14px;
22
+ font-weight: var(--font-weight-medium);
23
+ line-height: 20px;
24
+ transition:
25
+ transform var(--transition-duration-150) var(--transition-timing),
26
+ box-shadow var(--transition-duration-150) var(--transition-timing),
27
+ background-color var(--transition-duration-150) var(--transition-timing);
28
+ }
29
+
30
+ .css-float-button:active {
31
+ color: #ffffff;
32
+ transform: translateY(-2px);
33
+ box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
34
+ background: var(--color-primary-golden-06);
35
+ }
36
+
37
+ .css-float-button:focus-visible {
38
+ outline: 2px solid var(--color-primary);
39
+ outline-offset: 3px;
40
+ }
41
+
42
+ .css-float-button--disabled,
43
+ .css-float-button--disabled:hover {
44
+ transform: none;
45
+ background: var(--color-dark-01);
46
+ box-shadow: none;
47
+ cursor: not-allowed;
48
+ pointer-events: none;
49
+ }
50
+
51
+ .css-float-button--circle,
52
+ .css-float-button-group--circle .css-float-button {
53
+ border-radius: 999px;
54
+ }
55
+
56
+ .css-float-button--square {
57
+ border-bottom-left-radius: 8px;
58
+ border-top-left-radius: 8px;
59
+ }
60
+
61
+ .css-float-button-group__actions {
62
+ display: flex;
63
+ }
64
+
65
+ .css-float-button-group--circle .css-float-button-group__actions {
66
+ flex-direction: column-reverse;
67
+ align-items: flex-end;
68
+ gap: 16px;
69
+ max-height: 0;
70
+ margin-bottom: 0;
71
+ opacity: 0;
72
+ transform: translateY(8px);
73
+ pointer-events: none;
74
+ transition:
75
+ max-height var(--transition-duration-150) var(--transition-timing),
76
+ margin-bottom var(--transition-duration-150) var(--transition-timing),
77
+ opacity var(--transition-duration-150) var(--transition-timing),
78
+ transform var(--transition-duration-150) var(--transition-timing);
79
+ }
80
+
81
+ .css-float-button-group--circle .css-float-button-group__actions > .css-float-button {
82
+ opacity: 0;
83
+ transform: translateY(8px) scale(0.92);
84
+ transition:
85
+ opacity var(--transition-duration-150) var(--transition-timing),
86
+ transform var(--transition-duration-150) var(--transition-timing);
87
+ }
88
+
89
+ .css-float-button-group--circle.css-float-button-group--open .css-float-button-group__actions {
90
+ max-height: 240px;
91
+ margin-bottom: 12px;
92
+ opacity: 1;
93
+ transform: translateY(0);
94
+ pointer-events: auto;
95
+ }
96
+
97
+ .css-float-button-group--circle.css-float-button-group--open
98
+ .css-float-button-group__actions
99
+ > .css-float-button {
100
+ opacity: 1;
101
+ transform: translateY(0) scale(1);
102
+ }
103
+
104
+ .css-float-button-group--square {
105
+ width: max-content;
106
+ border-bottom-left-radius: 8px;
107
+ border-top-left-radius: 8px;
108
+ overflow: hidden;
109
+ box-shadow: 0px 0px 15px 0px #00000026;
110
+ }
111
+
112
+ .css-float-button-group--square .css-float-button-group__actions {
113
+ flex-direction: column-reverse;
114
+ align-items: stretch;
115
+ }
116
+
117
+ .css-float-button-group--square .css-float-button {
118
+ width: 100%;
119
+ justify-content: flex-start;
120
+ border-radius: 0;
121
+ box-shadow: none;
122
+ }
123
+
124
+ .css-float-button-group--square .css-float-button:hover {
125
+ transform: none;
126
+ box-shadow: none;
127
+ }
128
+
129
+ .css-float-button-group--square .css-float-button:first-child {
130
+ border-bottom-left-radius: 8px;
131
+ }
132
+
133
+ .css-float-button-group--square .css-float-button:last-child {
134
+ border-top-left-radius: 8px;
135
+ }
136
+
137
+ .css-float-button-group--square .css-float-button:not(:last-child) {
138
+ border-top: 1px solid var(--color-dark-01);
139
+ }
140
+
141
+ .css-float-button__content {
142
+ display: inline-flex;
143
+ align-items: center;
144
+ justify-content: center;
145
+ gap: 8px;
146
+ }
147
+
148
+ .css-float-button__icon {
149
+ display: inline-flex;
150
+ align-items: center;
151
+ justify-content: center;
152
+ flex-shrink: 0;
153
+ }
154
+
155
+ .css-float-button__icon svg {
156
+ width: 20px;
157
+ height: 20px;
158
+ }
159
+
160
+ .css-float-button__label {
161
+ white-space: nowrap;
162
+ }
163
+
164
+ .css-float-button-group__trigger {
165
+ align-self: flex-end;
166
+ }
167
+
168
+ .css-float-button-group--circle.css-float-button-group--open
169
+ .css-float-button-group__trigger
170
+ .css-float-button {
171
+ background: var(--color-primary);
172
+ color: #ffffff;
173
+ }
174
+
175
+ @media (min-width: 768px) {
176
+ }
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Form 表单组件 - 逻辑部分
3
+ */
4
+ export type FormValue = string | number | boolean | string[];
5
+ export type FormValues = Record<string, FormValue>;
6
+ export type FormErrors = Record<string, string>;
7
+ export type FormValidateTrigger = 'change' | 'submit';
8
+ export type FormFieldType = 'input' | 'textarea' | 'select' | 'radio' | 'checkbox' | 'switch' | 'checkbox-group' | 'input-bar' | 'input-number' | 'date-picker' | 'time-picker' | 'slider' | 'slide';
9
+ export interface FormFieldOption {
10
+ label: string;
11
+ value: string;
12
+ disabled?: boolean;
13
+ }
14
+ export interface FormRule {
15
+ required?: boolean;
16
+ pattern?: RegExp;
17
+ message?: string;
18
+ trigger?: FormValidateTrigger;
19
+ validator?: (value: FormValue, values: FormValues, field: FormField) => boolean | string | void;
20
+ }
21
+ export interface FormField {
22
+ name: string;
23
+ label?: string;
24
+ type: FormFieldType;
25
+ placeholder?: string;
26
+ helpText?: string;
27
+ controlLabel?: string;
28
+ options?: FormFieldOption[];
29
+ multiple?: boolean;
30
+ disabled?: boolean;
31
+ className?: string;
32
+ defaultValue?: FormValue;
33
+ rules?: FormRule[];
34
+ componentProps?: Record<string, unknown>;
35
+ }
36
+ export interface FormProps {
37
+ fields: FormField[];
38
+ values?: FormValues;
39
+ initialValues?: FormValues;
40
+ layout?: 'vertical' | 'horizontal';
41
+ validateTrigger?: FormValidateTrigger;
42
+ submitText?: string;
43
+ resetText?: string;
44
+ showReset?: boolean;
45
+ showActions?: boolean;
46
+ disabled?: boolean;
47
+ className?: string;
48
+ onChange?: (values: FormValues, fieldName: string, value: FormValue) => void;
49
+ onSubmit?: (values: FormValues) => void;
50
+ onSubmitFailed?: (errors: FormErrors, values: FormValues) => void;
51
+ onReset?: (values: FormValues) => void;
52
+ onValidationChange?: (errors: FormErrors) => void;
53
+ }
54
+ export interface FormItemClassNameOptions {
55
+ layout?: FormProps['layout'];
56
+ error?: boolean;
57
+ required?: boolean;
58
+ }
59
+ export declare function getFormClassNames(props?: Pick<FormProps, 'layout'>): string;
60
+ export declare function getFormItemClassNames(props?: FormItemClassNameOptions): string;
61
+ export declare function isEmptyFormValue(value: FormValue | undefined): boolean;
62
+ export declare function isFormFieldRequired(field: FormField): boolean;
63
+ export declare function normalizeFormValue(field: FormField, value: unknown): FormValue;
64
+ export declare function getFormInitialValues(fields: FormField[], initialValues?: FormValues): FormValues;
65
+ export declare function normalizeFormValues(fields: FormField[], values?: FormValues, initialValues?: FormValues): FormValues;
66
+ export declare function validateFormField(options: {
67
+ field: FormField;
68
+ value: FormValue;
69
+ values: FormValues;
70
+ trigger?: FormValidateTrigger;
71
+ validateTrigger?: FormValidateTrigger;
72
+ }): string | undefined;
73
+ export declare function validateFormValues(options: {
74
+ fields: FormField[];
75
+ values: FormValues;
76
+ trigger?: FormValidateTrigger;
77
+ validateTrigger?: FormValidateTrigger;
78
+ }): FormErrors;
79
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../form/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,144 @@
1
+ function isStringArray(value) {
2
+ return Array.isArray(value) && value.every((item) => typeof item === "string");
3
+ }
4
+ function normalizeStringArray(value) {
5
+ if (!Array.isArray(value)) {
6
+ return [];
7
+ }
8
+ return value.map((item) => String(item));
9
+ }
10
+ function isBooleanField(field) {
11
+ return field.type === "checkbox" || field.type === "switch";
12
+ }
13
+ function isNumberField(field) {
14
+ return field.type === "input-bar" || field.type === "input-number" || field.type === "slider" || field.type === "slide";
15
+ }
16
+ function isDateRangeField(field) {
17
+ return field.type === "date-picker" && Boolean(field.componentProps?.range);
18
+ }
19
+ function getNumberFallback(field) {
20
+ const min = field.componentProps?.min;
21
+ return typeof min === "number" && Number.isFinite(min) ? min : 0;
22
+ }
23
+ function getFormClassNames(props = {}) {
24
+ const classes = ["css-form"];
25
+ if (props.layout === "horizontal") {
26
+ classes.push("css-form--horizontal");
27
+ }
28
+ return classes.join(" ");
29
+ }
30
+ function getFormItemClassNames(props = {}) {
31
+ const classes = ["css-form__item"];
32
+ if (props.layout === "horizontal") {
33
+ classes.push("css-form__item--horizontal");
34
+ }
35
+ if (props.error) {
36
+ classes.push("css-form__item--error");
37
+ }
38
+ if (props.required) {
39
+ classes.push("css-form__item--required");
40
+ }
41
+ return classes.join(" ");
42
+ }
43
+ function isEmptyFormValue(value) {
44
+ if (Array.isArray(value)) {
45
+ return value.length === 0;
46
+ }
47
+ if (typeof value === "boolean") {
48
+ return value === false;
49
+ }
50
+ return value === void 0 || value === null || value === "";
51
+ }
52
+ function isFormFieldRequired(field) {
53
+ return (field.rules ?? []).some((rule) => rule.required);
54
+ }
55
+ function normalizeFormValue(field, value) {
56
+ if (isBooleanField(field)) {
57
+ return Boolean(value);
58
+ }
59
+ if (field.type === "checkbox-group" || field.type === "select" && field.multiple || isDateRangeField(field)) {
60
+ return isStringArray(value) ? value : normalizeStringArray(value);
61
+ }
62
+ if (isNumberField(field)) {
63
+ if (typeof value === "number" && !Number.isNaN(value)) {
64
+ return value;
65
+ }
66
+ if (typeof value === "string" && value.trim() !== "" && !Number.isNaN(Number(value))) {
67
+ return Number(value);
68
+ }
69
+ return getNumberFallback(field);
70
+ }
71
+ if (typeof value === "string") {
72
+ return value;
73
+ }
74
+ if (value === void 0 || value === null) {
75
+ return isDateRangeField(field) ? [] : "";
76
+ }
77
+ return String(value);
78
+ }
79
+ function getFormInitialValues(fields, initialValues = {}) {
80
+ return fields.reduce((result, field) => {
81
+ const seedValue = initialValues[field.name] !== void 0 ? initialValues[field.name] : field.defaultValue;
82
+ result[field.name] = normalizeFormValue(field, seedValue);
83
+ return result;
84
+ }, {});
85
+ }
86
+ function normalizeFormValues(fields, values = {}, initialValues = {}) {
87
+ const normalized = getFormInitialValues(fields, initialValues);
88
+ fields.forEach((field) => {
89
+ if (values[field.name] !== void 0) {
90
+ normalized[field.name] = normalizeFormValue(field, values[field.name]);
91
+ }
92
+ });
93
+ return normalized;
94
+ }
95
+ function shouldRunRule(rule, trigger, validateTrigger) {
96
+ if (trigger === "submit") {
97
+ return true;
98
+ }
99
+ return (rule.trigger ?? validateTrigger) === "change";
100
+ }
101
+ function validateFormField(options) {
102
+ const { field, value, values, trigger = "submit", validateTrigger = "submit" } = options;
103
+ for (const rule of field.rules ?? []) {
104
+ if (!shouldRunRule(rule, trigger, validateTrigger)) {
105
+ continue;
106
+ }
107
+ if (rule.required && isEmptyFormValue(value)) {
108
+ return rule.message ?? `${field.label ?? field.name}\u4E3A\u5FC5\u586B\u9879`;
109
+ }
110
+ if (rule.pattern && typeof value === "string" && value !== "" && !rule.pattern.test(value)) {
111
+ return rule.message ?? `${field.label ?? field.name}\u683C\u5F0F\u4E0D\u6B63\u786E`;
112
+ }
113
+ if (rule.validator) {
114
+ const result = rule.validator(value, values, field);
115
+ if (result === false) {
116
+ return rule.message ?? `${field.label ?? field.name}\u6821\u9A8C\u672A\u901A\u8FC7`;
117
+ }
118
+ if (typeof result === "string" && result.trim()) {
119
+ return result;
120
+ }
121
+ }
122
+ }
123
+ return void 0;
124
+ }
125
+ function validateFormValues(options) {
126
+ const { fields, values, trigger = "submit", validateTrigger = "submit" } = options;
127
+ const errors = {};
128
+ fields.forEach((field) => {
129
+ const errorMessage = validateFormField({
130
+ field,
131
+ value: normalizeFormValue(field, values[field.name]),
132
+ values,
133
+ trigger,
134
+ validateTrigger
135
+ });
136
+ if (errorMessage) {
137
+ errors[field.name] = errorMessage;
138
+ }
139
+ });
140
+ return errors;
141
+ }
142
+
143
+ export { getFormClassNames, getFormInitialValues, getFormItemClassNames, isEmptyFormValue, isFormFieldRequired, normalizeFormValue, normalizeFormValues, validateFormField, validateFormValues };
144
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../components/form/index.ts"],"sourcesContent":["/**\r\n * Form 表单组件 - 逻辑部分\r\n */\r\n\r\nexport type FormValue = string | number | boolean | string[]\r\nexport type FormValues = Record<string, FormValue>\r\nexport type FormErrors = Record<string, string>\r\nexport type FormValidateTrigger = 'change' | 'submit'\r\nexport type FormFieldType =\r\n | 'input'\r\n | 'textarea'\r\n | 'select'\r\n | 'radio'\r\n | 'checkbox'\r\n | 'switch'\r\n | 'checkbox-group'\r\n | 'input-bar'\r\n | 'input-number'\r\n | 'date-picker'\r\n | 'time-picker'\r\n | 'slider'\r\n | 'slide'\r\n\r\nexport interface FormFieldOption {\r\n label: string\r\n value: string\r\n disabled?: boolean\r\n}\r\n\r\nexport interface FormRule {\r\n required?: boolean\r\n pattern?: RegExp\r\n message?: string\r\n trigger?: FormValidateTrigger\r\n validator?: (value: FormValue, values: FormValues, field: FormField) => boolean | string | void\r\n}\r\n\r\nexport interface FormField {\r\n name: string\r\n label?: string\r\n type: FormFieldType\r\n placeholder?: string\r\n helpText?: string\r\n controlLabel?: string\r\n options?: FormFieldOption[]\r\n multiple?: boolean\r\n disabled?: boolean\r\n className?: string\r\n defaultValue?: FormValue\r\n rules?: FormRule[]\r\n componentProps?: Record<string, unknown>\r\n}\r\n\r\nexport interface FormProps {\r\n fields: FormField[]\r\n values?: FormValues\r\n initialValues?: FormValues\r\n layout?: 'vertical' | 'horizontal'\r\n validateTrigger?: FormValidateTrigger\r\n submitText?: string\r\n resetText?: string\r\n showReset?: boolean\r\n showActions?: boolean\r\n disabled?: boolean\r\n className?: string\r\n onChange?: (values: FormValues, fieldName: string, value: FormValue) => void\r\n onSubmit?: (values: FormValues) => void\r\n onSubmitFailed?: (errors: FormErrors, values: FormValues) => void\r\n onReset?: (values: FormValues) => void\r\n onValidationChange?: (errors: FormErrors) => void\r\n}\r\n\r\nexport interface FormItemClassNameOptions {\r\n layout?: FormProps['layout']\r\n error?: boolean\r\n required?: boolean\r\n}\r\n\r\nfunction isStringArray(value: unknown): value is string[] {\r\n return Array.isArray(value) && value.every(item => typeof item === 'string')\r\n}\r\n\r\nfunction normalizeStringArray(value: unknown): string[] {\r\n if (!Array.isArray(value)) {\r\n return []\r\n }\r\n\r\n return value.map(item => String(item))\r\n}\r\n\r\nfunction isBooleanField(field: FormField): boolean {\r\n return field.type === 'checkbox' || field.type === 'switch'\r\n}\r\n\r\nfunction isNumberField(field: FormField): boolean {\r\n return (\r\n field.type === 'input-bar' ||\r\n field.type === 'input-number' ||\r\n field.type === 'slider' ||\r\n field.type === 'slide'\r\n )\r\n}\r\n\r\nfunction isDateRangeField(field: FormField): boolean {\r\n return (\r\n field.type === 'date-picker' &&\r\n Boolean((field.componentProps as Record<string, unknown> | undefined)?.range)\r\n )\r\n}\r\n\r\nfunction getNumberFallback(field: FormField): number {\r\n const min = (field.componentProps as Record<string, unknown> | undefined)?.min\r\n\r\n return typeof min === 'number' && Number.isFinite(min) ? min : 0\r\n}\r\n\r\nexport function getFormClassNames(props: Pick<FormProps, 'layout'> = {}): string {\r\n const classes = ['css-form']\r\n\r\n if (props.layout === 'horizontal') {\r\n classes.push('css-form--horizontal')\r\n }\r\n\r\n return classes.join(' ')\r\n}\r\n\r\nexport function getFormItemClassNames(props: FormItemClassNameOptions = {}): string {\r\n const classes = ['css-form__item']\r\n\r\n if (props.layout === 'horizontal') {\r\n classes.push('css-form__item--horizontal')\r\n }\r\n\r\n if (props.error) {\r\n classes.push('css-form__item--error')\r\n }\r\n\r\n if (props.required) {\r\n classes.push('css-form__item--required')\r\n }\r\n\r\n return classes.join(' ')\r\n}\r\n\r\nexport function isEmptyFormValue(value: FormValue | undefined): boolean {\r\n if (Array.isArray(value)) {\r\n return value.length === 0\r\n }\r\n\r\n if (typeof value === 'boolean') {\r\n return value === false\r\n }\r\n\r\n return value === undefined || value === null || value === ''\r\n}\r\n\r\nexport function isFormFieldRequired(field: FormField): boolean {\r\n return (field.rules ?? []).some(rule => rule.required)\r\n}\r\n\r\nexport function normalizeFormValue(field: FormField, value: unknown): FormValue {\r\n if (isBooleanField(field)) {\r\n return Boolean(value)\r\n }\r\n\r\n if (\r\n field.type === 'checkbox-group' ||\r\n (field.type === 'select' && field.multiple) ||\r\n isDateRangeField(field)\r\n ) {\r\n return isStringArray(value) ? value : normalizeStringArray(value)\r\n }\r\n\r\n if (isNumberField(field)) {\r\n if (typeof value === 'number' && !Number.isNaN(value)) {\r\n return value\r\n }\r\n\r\n if (typeof value === 'string' && value.trim() !== '' && !Number.isNaN(Number(value))) {\r\n return Number(value)\r\n }\r\n\r\n return getNumberFallback(field)\r\n }\r\n\r\n if (typeof value === 'string') {\r\n return value\r\n }\r\n\r\n if (value === undefined || value === null) {\r\n return isDateRangeField(field) ? [] : ''\r\n }\r\n\r\n return String(value)\r\n}\r\n\r\nexport function getFormInitialValues(\r\n fields: FormField[],\r\n initialValues: FormValues = {}\r\n): FormValues {\r\n return fields.reduce<FormValues>((result, field) => {\r\n const seedValue =\r\n initialValues[field.name] !== undefined ? initialValues[field.name] : field.defaultValue\r\n\r\n result[field.name] = normalizeFormValue(field, seedValue)\r\n return result\r\n }, {})\r\n}\r\n\r\nexport function normalizeFormValues(\r\n fields: FormField[],\r\n values: FormValues = {},\r\n initialValues: FormValues = {}\r\n): FormValues {\r\n const normalized = getFormInitialValues(fields, initialValues)\r\n\r\n fields.forEach(field => {\r\n if (values[field.name] !== undefined) {\r\n normalized[field.name] = normalizeFormValue(field, values[field.name])\r\n }\r\n })\r\n\r\n return normalized\r\n}\r\n\r\nfunction shouldRunRule(\r\n rule: FormRule,\r\n trigger: FormValidateTrigger,\r\n validateTrigger: FormValidateTrigger\r\n) {\r\n if (trigger === 'submit') {\r\n return true\r\n }\r\n\r\n return (rule.trigger ?? validateTrigger) === 'change'\r\n}\r\n\r\nexport function validateFormField(options: {\r\n field: FormField\r\n value: FormValue\r\n values: FormValues\r\n trigger?: FormValidateTrigger\r\n validateTrigger?: FormValidateTrigger\r\n}): string | undefined {\r\n const { field, value, values, trigger = 'submit', validateTrigger = 'submit' } = options\r\n\r\n for (const rule of field.rules ?? []) {\r\n if (!shouldRunRule(rule, trigger, validateTrigger)) {\r\n continue\r\n }\r\n\r\n if (rule.required && isEmptyFormValue(value)) {\r\n return rule.message ?? `${field.label ?? field.name}为必填项`\r\n }\r\n\r\n if (rule.pattern && typeof value === 'string' && value !== '' && !rule.pattern.test(value)) {\r\n return rule.message ?? `${field.label ?? field.name}格式不正确`\r\n }\r\n\r\n if (rule.validator) {\r\n const result = rule.validator(value, values, field)\r\n\r\n if (result === false) {\r\n return rule.message ?? `${field.label ?? field.name}校验未通过`\r\n }\r\n\r\n if (typeof result === 'string' && result.trim()) {\r\n return result\r\n }\r\n }\r\n }\r\n\r\n return undefined\r\n}\r\n\r\nexport function validateFormValues(options: {\r\n fields: FormField[]\r\n values: FormValues\r\n trigger?: FormValidateTrigger\r\n validateTrigger?: FormValidateTrigger\r\n}): FormErrors {\r\n const { fields, values, trigger = 'submit', validateTrigger = 'submit' } = options\r\n const errors: FormErrors = {}\r\n\r\n fields.forEach(field => {\r\n const errorMessage = validateFormField({\r\n field,\r\n value: normalizeFormValue(field, values[field.name]),\r\n values,\r\n trigger,\r\n validateTrigger,\r\n })\r\n\r\n if (errorMessage) {\r\n errors[field.name] = errorMessage\r\n }\r\n })\r\n\r\n return errors\r\n}\r\n"],"names":[],"mappings":"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"}