antd-solid 0.0.11 → 0.0.13

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 (347) hide show
  1. package/css/index.css +10 -73
  2. package/dist/index.esm.js +7802 -2378
  3. package/dist/index.umd.js +1 -1
  4. package/es/Alert/index.d.ts +10 -0
  5. package/es/Alert/index.js +26 -0
  6. package/es/Button/index.d.ts +32 -0
  7. package/es/Button/index.js +123 -0
  8. package/es/Button/index.scss.js +6 -0
  9. package/es/Checkbox/Group.d.ts +19 -0
  10. package/es/Checkbox/Group.js +49 -0
  11. package/es/Checkbox/index.d.ts +15 -0
  12. package/es/Checkbox/index.js +60 -0
  13. package/es/CodeInput/index.d.ts +18 -0
  14. package/es/CodeInput/index.js +72 -0
  15. package/es/Collapse/Item.d.ts +46 -0
  16. package/es/Collapse/Item.js +130 -0
  17. package/es/Collapse/context.d.ts +5 -0
  18. package/es/Collapse/context.js +8 -0
  19. package/es/Collapse/index.d.ts +25 -10
  20. package/es/Collapse/index.js +95 -74
  21. package/es/Collapse/utils.d.ts +8 -0
  22. package/es/Collapse/utils.js +35 -0
  23. package/es/ColorPicker/ColorPickerInput.d.ts +3 -0
  24. package/es/ColorPicker/ColorPickerInput.js +250 -0
  25. package/es/ColorPicker/ColorPickerSelect.d.ts +3 -0
  26. package/es/ColorPicker/ColorPickerSelect.js +71 -0
  27. package/es/ColorPicker/ColorPickerSlider.d.ts +3 -0
  28. package/es/ColorPicker/ColorPickerSlider.js +115 -0
  29. package/es/ColorPicker/color.d.ts +24 -0
  30. package/es/ColorPicker/color.js +63 -0
  31. package/es/ColorPicker/context.d.ts +9 -0
  32. package/es/ColorPicker/context.js +5 -0
  33. package/es/ColorPicker/index.d.ts +31 -0
  34. package/es/ColorPicker/index.js +139 -0
  35. package/es/Command/context.d.ts +9 -0
  36. package/es/Command/context.js +11 -0
  37. package/es/Command/createCommand.d.ts +17 -0
  38. package/es/Command/createCommand.js +112 -0
  39. package/es/Command/index.d.ts +7 -0
  40. package/es/Command/index.js +9 -0
  41. package/es/Command/useCommandProps.d.ts +13 -0
  42. package/es/Command/useCommandProps.js +28 -0
  43. package/es/Compact/CompactContextIsolator.d.ts +3 -0
  44. package/es/Compact/CompactContextIsolator.js +15 -0
  45. package/es/Compact/context.d.ts +4 -0
  46. package/es/Compact/context.js +7 -0
  47. package/es/Compact/index.d.ts +14 -0
  48. package/es/Compact/index.js +32 -0
  49. package/es/Compact/index.scss.js +6 -0
  50. package/es/ConfigProvider/context.d.ts +11 -0
  51. package/es/ConfigProvider/context.js +15 -0
  52. package/es/ConfigProvider/dark/colorAlgorithm.d.ts +2 -0
  53. package/es/ConfigProvider/dark/colorAlgorithm.js +9 -0
  54. package/es/ConfigProvider/dark/colors.d.ts +3 -0
  55. package/es/ConfigProvider/dark/colors.js +47 -0
  56. package/es/ConfigProvider/dark/index.d.ts +2 -0
  57. package/es/ConfigProvider/dark/index.js +11 -0
  58. package/es/ConfigProvider/index.d.ts +32 -0
  59. package/es/ConfigProvider/index.js +44 -0
  60. package/es/ConfigProvider/light/colorAlgorithm.d.ts +2 -0
  61. package/es/ConfigProvider/light/colorAlgorithm.js +9 -0
  62. package/es/ConfigProvider/light/colors.d.ts +3 -0
  63. package/es/ConfigProvider/light/colors.js +45 -0
  64. package/es/ConfigProvider/light/index.d.ts +2 -0
  65. package/es/ConfigProvider/light/index.js +11 -0
  66. package/es/ConfigProvider/seed.d.ts +3 -0
  67. package/es/ConfigProvider/seed.js +22 -0
  68. package/es/ConfigProvider/types/index.d.ts +594 -0
  69. package/es/ConfigProvider/types/index.js +1 -0
  70. package/es/ConfigProvider/utils/genColorMapToken.d.ts +7 -0
  71. package/es/ConfigProvider/utils/genColorMapToken.js +85 -0
  72. package/es/ConfigProvider/utils/getAlphaColor.d.ts +2 -0
  73. package/es/ConfigProvider/utils/getAlphaColor.js +44 -0
  74. package/es/ConfigProvider/utils/index.d.ts +3 -0
  75. package/es/ConfigProvider/utils/index.js +181 -0
  76. package/es/ContextMenu/index.d.ts +8 -0
  77. package/es/ContextMenu/index.js +99 -0
  78. package/es/Cursor/index.d.ts +6 -0
  79. package/es/Cursor/index.js +71 -0
  80. package/es/DelayShow/index.d.ts +16 -0
  81. package/es/DelayShow/index.js +27 -0
  82. package/es/Divider/index.d.ts +17 -0
  83. package/es/Divider/index.js +71 -0
  84. package/es/Drawer/index.d.ts +20 -16
  85. package/es/Drawer/index.js +162 -112
  86. package/es/Drawer/index.scss.js +1 -1
  87. package/es/Dropdown/index.d.ts +16 -0
  88. package/es/Dropdown/index.js +47 -0
  89. package/es/Element/index.d.ts +10 -0
  90. package/es/Element/index.js +42 -0
  91. package/es/Empty/PRESENTED_IMAGE_SIMPLE.d.ts +2 -1
  92. package/es/Empty/PRESENTED_IMAGE_SIMPLE.js +25 -9
  93. package/es/Empty/assets/EmptySvg.js +1 -1
  94. package/es/Empty/assets/SimpleEmptySvg.js +1 -1
  95. package/es/Empty/index.d.ts +9 -3
  96. package/es/Empty/index.js +24 -9
  97. package/es/Form/Form.d.ts +8 -5
  98. package/es/Form/Form.js +50 -34
  99. package/es/Form/FormItem.d.ts +10 -5
  100. package/es/Form/FormItem.js +121 -104
  101. package/es/Form/context.d.ts +9 -9
  102. package/es/Form/context.js +4 -2
  103. package/es/Fragment/index.d.ts +4 -0
  104. package/es/Fragment/index.js +7 -0
  105. package/es/Image/index.d.ts +10 -0
  106. package/es/Image/index.js +37 -0
  107. package/es/Input/TextArea.d.ts +23 -0
  108. package/es/Input/TextArea.js +84 -0
  109. package/es/Input/index.d.ts +44 -0
  110. package/es/Input/index.js +213 -0
  111. package/es/Input/index.scss.js +6 -0
  112. package/es/InputNumber/index.d.ts +30 -0
  113. package/es/InputNumber/index.js +122 -0
  114. package/es/{InputNumber.test.js → InputNumber/index.test.js} +2 -1
  115. package/es/Menu/InternalMenu.d.ts +22 -0
  116. package/es/Menu/InternalMenu.js +196 -0
  117. package/es/Menu/index.d.ts +75 -0
  118. package/es/Menu/index.js +64 -0
  119. package/es/Message/Message.d.ts +9 -0
  120. package/es/Message/Message.js +34 -0
  121. package/es/Message/index.d.ts +12 -0
  122. package/es/Message/index.js +80 -0
  123. package/es/Message/index.scss.js +6 -0
  124. package/es/Message/useMessage.d.ts +6 -0
  125. package/es/Message/useMessage.js +54 -0
  126. package/es/Modal/index.d.ts +73 -0
  127. package/es/Modal/index.js +237 -0
  128. package/es/Modal/index.scss.js +6 -0
  129. package/es/Modal/useModal.d.ts +5 -0
  130. package/es/Modal/useModal.js +51 -0
  131. package/es/Modal/warning.d.ts +5 -0
  132. package/es/Modal/warning.js +43 -0
  133. package/es/{Popconfirm.d.ts → Popconfirm/index.d.ts} +2 -2
  134. package/es/Popconfirm/index.js +62 -0
  135. package/es/{Popover.d.ts → Popover/index.d.ts} +2 -2
  136. package/es/{Popover.js → Popover/index.js} +7 -12
  137. package/es/Progress/Circle.d.ts +16 -0
  138. package/es/Progress/Circle.js +122 -0
  139. package/es/Progress/index.d.ts +6 -4
  140. package/es/Progress/index.js +75 -60
  141. package/es/Radio/Button.d.ts +7 -0
  142. package/es/Radio/Button.js +72 -0
  143. package/es/Radio/Group.d.ts +18 -0
  144. package/es/Radio/Group.js +57 -0
  145. package/es/Radio/index.d.ts +14 -0
  146. package/es/Radio/index.js +68 -0
  147. package/es/RangeInput/index.d.ts +23 -0
  148. package/es/RangeInput/index.js +208 -0
  149. package/es/Result/index.js +49 -0
  150. package/es/Segmented/index.d.ts +10 -7
  151. package/es/Segmented/index.js +54 -53
  152. package/es/Select/index.d.ts +17 -0
  153. package/es/Select/index.js +75 -0
  154. package/es/SelectInput/index.d.ts +39 -0
  155. package/es/SelectInput/index.js +245 -0
  156. package/es/Slider/index.d.ts +47 -0
  157. package/es/Slider/index.js +177 -0
  158. package/es/Space/index.d.ts +13 -0
  159. package/es/Space/index.js +16 -0
  160. package/es/Spin/index.d.ts +19 -0
  161. package/es/Spin/index.js +82 -0
  162. package/es/{Switch.d.ts → Switch/index.d.ts} +9 -0
  163. package/es/Switch/index.js +41 -0
  164. package/es/{Table.d.ts → Table/index.d.ts} +6 -2
  165. package/es/Table/index.js +71 -0
  166. package/es/Tabs/index.d.ts +49 -0
  167. package/es/Tabs/index.js +256 -0
  168. package/es/Timeline/index.js +31 -0
  169. package/es/Tooltip/context.d.ts +5 -0
  170. package/es/Tooltip/context.js +5 -0
  171. package/es/Tooltip/index.d.ts +64 -0
  172. package/es/Tooltip/index.js +499 -0
  173. package/es/Transformer/index.d.ts +88 -0
  174. package/es/Transformer/index.js +882 -0
  175. package/es/Tree/SingleLevelTree.d.ts +28 -0
  176. package/es/Tree/SingleLevelTree.js +299 -0
  177. package/es/Tree/index.d.ts +83 -0
  178. package/es/Tree/index.js +197 -0
  179. package/es/TreeFor/index.d.ts +31 -0
  180. package/es/TreeFor/index.js +80 -0
  181. package/es/TreeSelect/index.d.ts +26 -0
  182. package/es/TreeSelect/index.js +98 -0
  183. package/es/Upload/index.d.ts +64 -0
  184. package/es/Upload/index.js +112 -0
  185. package/es/assets/svg/ColorPickUp.d.ts +4 -0
  186. package/es/assets/svg/ColorPickUp.js +25 -0
  187. package/es/assets/svg/Crosshair.d.ts +7 -0
  188. package/es/assets/svg/Crosshair.js +51 -0
  189. package/es/assets/svg/Resize.d.ts +4 -0
  190. package/es/assets/svg/Resize.js +25 -0
  191. package/es/assets/svg/Rotate.d.ts +4 -0
  192. package/es/assets/svg/Rotate.js +20 -0
  193. package/es/assets/svg/RotateArrow.d.ts +4 -0
  194. package/es/assets/svg/RotateArrow.js +21 -0
  195. package/es/assets/svg/common.d.ts +2 -0
  196. package/es/assets/svg/common.js +9 -0
  197. package/es/hooks/createControllableValue.d.ts +1 -1
  198. package/es/hooks/createControllableValue.js +16 -17
  199. package/es/hooks/createTransition.d.ts +6 -2
  200. package/es/hooks/createTransition.js +12 -8
  201. package/es/hooks/useClickAway.d.ts +1 -1
  202. package/es/hooks/useClickAway.js +4 -3
  203. package/es/hooks/useComponentSize.d.ts +3 -0
  204. package/es/hooks/useComponentSize.js +12 -0
  205. package/es/hooks/useCounter.d.ts +12 -0
  206. package/es/hooks/useCounter.js +30 -0
  207. package/es/hooks/useFocus.d.ts +2 -0
  208. package/es/hooks/useFocus.js +24 -0
  209. package/es/hooks/useHover.d.ts +2 -0
  210. package/es/hooks/useHover.js +33 -0
  211. package/es/hooks/useLocale.d.ts +1 -0
  212. package/es/hooks/useLocale.js +11 -0
  213. package/es/hooks/useMouse.d.ts +1 -0
  214. package/es/hooks/useMouse.js +18 -0
  215. package/es/hooks/useScroll.d.ts +2 -0
  216. package/es/hooks/useScroll.js +29 -0
  217. package/es/hooks/useSize.d.ts +8 -2
  218. package/es/hooks/useSize.js +25 -13
  219. package/es/hooks/useVirtualList.d.ts +14 -0
  220. package/es/hooks/useVirtualList.js +45 -0
  221. package/es/index.d.ts +59 -8
  222. package/es/index.js +53 -23
  223. package/es/locale/en_US.d.ts +3 -0
  224. package/es/locale/en_US.js +9 -0
  225. package/es/locale/index.d.ts +5 -0
  226. package/es/locale/index.js +1 -0
  227. package/es/locale/zh_CN.d.ts +3 -0
  228. package/es/locale/zh_CN.js +9 -0
  229. package/es/types/index.d.ts +11 -2
  230. package/es/utils/animation.d.ts +6 -0
  231. package/es/utils/animation.js +20 -0
  232. package/es/utils/array.d.ts +2 -1
  233. package/es/utils/array.js +5 -1
  234. package/es/utils/domPoint.d.ts +7 -0
  235. package/es/utils/domPoint.js +11 -0
  236. package/es/utils/math.d.ts +17 -0
  237. package/es/utils/math.js +25 -0
  238. package/es/utils/number.d.ts +1 -0
  239. package/es/utils/number.js +14 -0
  240. package/es/utils/setupGlobalDrag.d.ts +10 -0
  241. package/es/utils/setupGlobalDrag.js +38 -0
  242. package/es/utils/solid.d.ts +2 -2
  243. package/es/utils/solid.js +7 -8
  244. package/package.json +10 -11
  245. package/es/Button.d.ts +0 -19
  246. package/es/Button.js +0 -73
  247. package/es/ColorPicker.d.ts +0 -8
  248. package/es/ColorPicker.js +0 -6
  249. package/es/Compact.d.ts +0 -12
  250. package/es/Compact.js +0 -17
  251. package/es/DatePicker.d.ts +0 -19
  252. package/es/DatePicker.js +0 -9
  253. package/es/Image.d.ts +0 -9
  254. package/es/Image.js +0 -22
  255. package/es/Input.d.ts +0 -29
  256. package/es/Input.js +0 -144
  257. package/es/InputNumber.d.ts +0 -11
  258. package/es/InputNumber.js +0 -92
  259. package/es/Modal.d.ts +0 -48
  260. package/es/Modal.js +0 -209
  261. package/es/Popconfirm.js +0 -64
  262. package/es/Radio.d.ts +0 -27
  263. package/es/Radio.js +0 -93
  264. package/es/Result.js +0 -29
  265. package/es/Select.d.ts +0 -16
  266. package/es/Select.js +0 -113
  267. package/es/Skeleton.d.ts +0 -9
  268. package/es/Skeleton.js +0 -9
  269. package/es/Spin.d.ts +0 -9
  270. package/es/Spin.js +0 -22
  271. package/es/Switch.js +0 -30
  272. package/es/Table.js +0 -57
  273. package/es/Tabs.d.ts +0 -17
  274. package/es/Tabs.js +0 -117
  275. package/es/Timeline.js +0 -30
  276. package/es/Tooltip.d.ts +0 -34
  277. package/es/Tooltip.js +0 -302
  278. package/es/Tree.d.ts +0 -28
  279. package/es/Tree.js +0 -198
  280. package/es/Upload.d.ts +0 -11
  281. package/es/Upload.js +0 -6
  282. package/es/hooks/createUpdateEffect.d.ts +0 -5
  283. package/es/hooks/createUpdateEffect.js +0 -12
  284. package/es/utils/EventEmitter.d.ts +0 -7
  285. package/es/utils/EventEmitter.js +0 -13
  286. package/es/utils/ReactToSolid.d.ts +0 -8
  287. package/es/utils/ReactToSolid.js +0 -30
  288. package/es/utils/SolidToReact.d.ts +0 -8
  289. package/es/utils/SolidToReact.js +0 -23
  290. package/es/utils/component.d.ts +0 -31
  291. package/es/utils/component.js +0 -68
  292. package/es/utils/zh_CN.d.ts +0 -2
  293. package/es/utils/zh_CN.js +0 -236
  294. package/src/Button.tsx +0 -128
  295. package/src/Collapse/index.tsx +0 -86
  296. package/src/ColorPicker.tsx +0 -11
  297. package/src/Compact.tsx +0 -15
  298. package/src/DatePicker.tsx +0 -30
  299. package/src/Drawer/index.scss +0 -53
  300. package/src/Drawer/index.tsx +0 -212
  301. package/src/Empty/PRESENTED_IMAGE_SIMPLE.tsx +0 -15
  302. package/src/Empty/assets/EmptySvg.tsx +0 -43
  303. package/src/Empty/assets/SimpleEmptySvg.tsx +0 -16
  304. package/src/Empty/index.tsx +0 -20
  305. package/src/Form/Form.tsx +0 -94
  306. package/src/Form/FormItem.tsx +0 -141
  307. package/src/Form/context.ts +0 -16
  308. package/src/Form/index.ts +0 -13
  309. package/src/Image.tsx +0 -29
  310. package/src/Input.tsx +0 -202
  311. package/src/InputNumber.test.tsx +0 -46
  312. package/src/InputNumber.tsx +0 -125
  313. package/src/Modal.tsx +0 -220
  314. package/src/Popconfirm.tsx +0 -75
  315. package/src/Popover.tsx +0 -30
  316. package/src/Progress/index.tsx +0 -73
  317. package/src/Radio.tsx +0 -142
  318. package/src/Result.tsx +0 -38
  319. package/src/Segmented/index.tsx +0 -95
  320. package/src/Select.tsx +0 -128
  321. package/src/Skeleton.tsx +0 -14
  322. package/src/Spin.tsx +0 -23
  323. package/src/Switch.tsx +0 -34
  324. package/src/Table.tsx +0 -53
  325. package/src/Tabs.tsx +0 -131
  326. package/src/Timeline.tsx +0 -33
  327. package/src/Tooltip.tsx +0 -340
  328. package/src/Tree.tsx +0 -246
  329. package/src/Upload.tsx +0 -10
  330. package/src/hooks/createControllableValue.ts +0 -68
  331. package/src/hooks/createTransition.ts +0 -52
  332. package/src/hooks/createUpdateEffect.ts +0 -16
  333. package/src/hooks/index.ts +0 -2
  334. package/src/hooks/useClickAway.ts +0 -18
  335. package/src/hooks/useSize.ts +0 -26
  336. package/src/index.ts +0 -47
  337. package/src/types/index.ts +0 -5
  338. package/src/utils/EventEmitter.ts +0 -15
  339. package/src/utils/ReactToSolid.tsx +0 -38
  340. package/src/utils/SolidToReact.tsx +0 -27
  341. package/src/utils/array.ts +0 -21
  342. package/src/utils/component.tsx +0 -85
  343. package/src/utils/solid.ts +0 -61
  344. package/src/utils/zh_CN.ts +0 -236
  345. /package/es/{InputNumber.test.d.ts → InputNumber/index.test.d.ts} +0 -0
  346. /package/es/{Result.d.ts → Result/index.d.ts} +0 -0
  347. /package/es/{Timeline.d.ts → Timeline/index.d.ts} +0 -0
@@ -1,73 +0,0 @@
1
- import { mergeProps, type Component, Switch, Match, Show } from 'solid-js'
2
- import cs from 'classnames'
3
-
4
- export interface ProgressProps {
5
- /**
6
- * 百分比
7
- * 默认 0
8
- */
9
- percent?: number
10
- /**
11
- * 状态
12
- * 默认 'default'
13
- */
14
- status?: 'default' | 'success' | 'error'
15
- /**
16
- * 'line' 类型进度条的高度
17
- * 默认 8
18
- */
19
- height?: number
20
- /**
21
- * 是否显示进度数值或状态图标
22
- * 默认 true
23
- */
24
- showInfo?: boolean
25
- }
26
-
27
- const Progress: Component<ProgressProps> = _props => {
28
- const props = mergeProps(
29
- {
30
- percent: 0,
31
- status: 'default',
32
- height: 8,
33
- showInfo: true,
34
- } as Required<ProgressProps>,
35
- _props,
36
- )
37
-
38
- return (
39
- <div
40
- class="ant-flex ant-items-center"
41
- style={{
42
- '--ant-progress-remaining-color': 'rgba(0, 0, 0, 0.06)',
43
- }}
44
- >
45
- <div
46
- class={cs(
47
- 'ant-w-full ant-bg-[var(--ant-progress-remaining-color)]',
48
- 'before:ant-content-empty before:ant-block before:ant-bg-[var(--primary-color)] before:ant-w-[var(--percent)] before:ant-h-full before:ant-rounded-inherit',
49
- )}
50
- style={{
51
- height: `${props.height}px`,
52
- 'border-radius': `${props.height / 2}px`,
53
- '--percent': `${props.percent}%`,
54
- }}
55
- />
56
-
57
- <Show when={props.showInfo}>
58
- <span class="ant-shrink-0 ant-min-w-40px ant-ml-8px ant-text-center">
59
- <Switch fallback={`${props.percent}%`}>
60
- <Match when={props.status === 'success' || props.percent >= 100}>
61
- <span class="i-ant-design:check-circle-filled ant-text-[var(--primary-color)]" />
62
- </Match>
63
- <Match when={props.status === 'error'}>
64
- <span class="i-ant-design:close-circle-filled ant-text-[var(--ant-color-error)]" />
65
- </Match>
66
- </Switch>
67
- </span>
68
- </Show>
69
- </div>
70
- )
71
- }
72
-
73
- export default Progress
package/src/Radio.tsx DELETED
@@ -1,142 +0,0 @@
1
- import {
2
- type Component,
3
- type JSXElement,
4
- type ParentProps,
5
- type JSX,
6
- untrack,
7
- For,
8
- createSelector,
9
- mergeProps,
10
- } from 'solid-js'
11
- import { Dynamic } from 'solid-js/web'
12
- import cs from 'classnames'
13
- import createControllableValue from './hooks/createControllableValue'
14
-
15
- export interface RadioProps extends ParentProps {
16
- defaultChecked?: boolean
17
- checked?: boolean
18
- /**
19
- * input 的 value
20
- */
21
- value?: string
22
- onChange?: JSX.ChangeEventHandler<HTMLInputElement, Event>
23
- }
24
-
25
- export interface RadioGroupProps {
26
- defaultValue?: string
27
- value?: string
28
- onChange?: JSX.ChangeEventHandler<HTMLInputElement, Event>
29
- optionType?: 'default' | 'button'
30
- options: Array<{ label: JSXElement; value: string; disabled?: boolean }>
31
- block?: boolean
32
- }
33
-
34
- const Radio: Component<RadioProps> & {
35
- Group: Component<RadioGroupProps>
36
- Button: Component<RadioProps>
37
- } = props => {
38
- const [checked, setChecked] = createControllableValue(props, {
39
- defaultValue: false,
40
- defaultValuePropName: 'defaultChecked',
41
- valuePropName: 'checked',
42
- trigger: null,
43
- })
44
-
45
- return (
46
- <label class="ant-inline-flex ant-gap-4px ant-cursor-pointer ant-inline-flex ant-items-center">
47
- <span
48
- class={cs(
49
- 'ant-w-16px ant-h-16px ant-rounded-50% ant-[border:1px_solid_var(--ant-color-border)]',
50
- checked() && 'ant-[border:5px_solid_var(--primary-color)]',
51
- )}
52
- >
53
- <input
54
- class="ant-m-0 ant-hidden"
55
- checked={checked()}
56
- value={props.value ?? ''}
57
- type="radio"
58
- onInput={e => {
59
- setChecked(e.target.checked)
60
- untrack(() => props.onChange?.(e))
61
- }}
62
- />
63
- </span>
64
- {props.children}
65
- </label>
66
- )
67
- }
68
-
69
- Radio.Button = props => {
70
- const [checked, setChecked] = createControllableValue(props, {
71
- defaultValue: false,
72
- defaultValuePropName: 'defaultChecked',
73
- valuePropName: 'checked',
74
- trigger: null,
75
- })
76
-
77
- return (
78
- <label
79
- class={cs(
80
- 'ant-px-15px ant-[border:1px_solid_rgb(217,217,217)] first:ant-rounded-l-6px last:ant-rounded-r-6px ant-h-32px ant-inline-flex ant-items-center hover:ant-text-[var(--primary-color)] not[:last-child]:ant-border-r-transparent ant-cursor-pointer ant-flex-grow ant-justify-center',
81
- checked() &&
82
- 'ant-text-[var(--primary-color)] ant-[border:1px_solid_var(--primary-color)] !ant-border-r-[var(--primary-color)]',
83
- )}
84
- >
85
- <input
86
- class="ant-w-0 ant-h-0"
87
- checked={checked()}
88
- value={props.value ?? ''}
89
- type="radio"
90
- onInput={e => {
91
- setChecked(e.target.checked)
92
- untrack(() => props.onChange?.(e))
93
- }}
94
- />
95
- {props.children}
96
- </label>
97
- )
98
- }
99
-
100
- Radio.Group = _props => {
101
- const props = mergeProps(
102
- {
103
- optionType: 'default',
104
- } as RadioGroupProps,
105
- _props,
106
- )
107
- const [value, setValue] = createControllableValue<string>(props, {
108
- trigger: null,
109
- })
110
- const isChecked = createSelector(value)
111
-
112
- return (
113
- <div
114
- class={cs(
115
- props.block ? 'ant-flex' : 'ant-inline-flex',
116
- props.optionType === 'default' ? 'ant-gap-8px' : '',
117
- )}
118
- >
119
- <For each={props.options}>
120
- {option => (
121
- <Dynamic
122
- component={props.optionType === 'default' ? Radio : Radio.Button}
123
- checked={isChecked(option.value)}
124
- value={option.value}
125
- onChange={
126
- (e => {
127
- setValue(option.value)
128
- untrack(() => {
129
- props.onChange?.(e)
130
- })
131
- }) as JSX.ChangeEventHandler<HTMLInputElement, Event>
132
- }
133
- >
134
- {option.label}
135
- </Dynamic>
136
- )}
137
- </For>
138
- </div>
139
- )
140
- }
141
-
142
- export default Radio
package/src/Result.tsx DELETED
@@ -1,38 +0,0 @@
1
- import { type JSXElement, type Component, type ParentProps } from 'solid-js'
2
- import cs from 'classnames'
3
-
4
- type ResultStatusType = 'success' | 'error' | 'info' | 'warning'
5
-
6
- export interface ResultProps extends ParentProps {
7
- status?: ResultStatusType
8
- title?: JSXElement
9
- subTitle?: JSXElement
10
- extra?: JSXElement
11
- }
12
-
13
- const statusIconMap = {
14
- success: 'ant-text-#52c41a i-ant-design:check-circle-filled',
15
- info: 'ant-text-[var(--primary-color)] i-ant-design:exclamation-circle-filled',
16
- warning: 'ant-text-#faad14 i-ant-design:warning-filled',
17
- error: 'ant-text-#ff4d4f i-ant-design:close-circle-filled',
18
- }
19
-
20
- const Result: Component<ResultProps> = props => {
21
- return (
22
- <div class="ant-text-center ant-px-32px ant-py-48px">
23
- <div class="ant-mb-24px">
24
- <span class={cs(statusIconMap[props.status!], 'ant-text-72px')} />
25
- </div>
26
-
27
- <div class="ant-my-8px ant-text-[rgba(0,0,0,.88)] ant-text-24px">{props.title}</div>
28
-
29
- <div class="ant-text-[rgba(0,0,0,.45)] ant-text-14px">{props.subTitle}</div>
30
-
31
- <div class="ant-mt-24px">{props.extra}</div>
32
-
33
- <div class="ant-mt-24px">{props.children}</div>
34
- </div>
35
- )
36
- }
37
-
38
- export default Result
@@ -1,95 +0,0 @@
1
- import { type Component, For, createSelector, type JSX, Show } from 'solid-js'
2
- import cs from 'classnames'
3
- import { type StringOrJSXElement, type Key } from '../types'
4
- import createControllableValue from '../hooks/createControllableValue'
5
- import { unwrapStringOrJSXElement } from '../utils/solid'
6
-
7
- export interface SegmentedProps {
8
- block?: boolean
9
- disabled?: boolean
10
- options: Array<
11
- | string
12
- | number
13
- | {
14
- label: StringOrJSXElement
15
- value: string
16
- disabled?: boolean
17
- onClick?: (
18
- e: MouseEvent & {
19
- currentTarget: HTMLDivElement
20
- target: Element
21
- },
22
- ) => void
23
- }
24
- >
25
- value?: Key
26
- onChange?: (value: Key) => void
27
- class?: string
28
- style?: JSX.CSSProperties
29
- }
30
-
31
- const unWarpValue = (value: SegmentedProps['options'][0]) =>
32
- typeof value === 'object' ? value.value : value
33
-
34
- const Segmented: Component<SegmentedProps> = props => {
35
- const [value, setValue] = createControllableValue<Key>(props, {
36
- defaultValue: unWarpValue(props.options[0]),
37
- })
38
- const isSelected = createSelector(value)
39
-
40
- const isDisabledValue = (v: SegmentedProps['options'][0]) => {
41
- if (props.disabled) return true
42
- return typeof v === 'object' ? v.disabled : false
43
- }
44
-
45
- return (
46
- <div
47
- class={cs(
48
- 'ant-bg-[var(--ant-color-bg-layout)] ant-rounded-[var(--ant-border-radius)] ant-p-2px',
49
- props.block ? 'ant-flex' : 'ant-inline-flex',
50
- props.class,
51
- )}
52
- style={{
53
- '--ant-segmented-item-color': 'rgba(0, 0, 0, 0.65)',
54
- '--ant-segmented-item-hover-bg': 'rgba(0, 0, 0, 0.06)',
55
- '--ant-segmented-item-active-bg': 'rgba(0, 0, 0, 0.15)',
56
- ...props.style,
57
- }}
58
- >
59
- <For each={props.options}>
60
- {item => (
61
- <div
62
- class={cs(
63
- props.block && 'ant-basis-0 ant-grow-1',
64
- isDisabledValue(item) && 'ant-cursor-not-allowed',
65
- )}
66
- >
67
- <div
68
- class={cs(
69
- 'ant-rounded-[var(--ant-border-radius-sm)] ant-px-[var(--ant-padding-sm)] where:ant-cursor-pointer ant-leading-28px where:hover:ant-bg-[var(--ant-segmented-item-hover-bg)] where:active:ant-bg-[var(--ant-segmented-item-active-bg)]',
70
- isSelected(unWarpValue(item)) &&
71
- 'ant-bg-white ant-shadow-[var(--ant-box-shadow-tertiary)]',
72
- props.block && 'ant-flex ant-justify-center',
73
- isDisabledValue(item) &&
74
- 'ant-[pointer-events:none] ant-text-[var(--ant-color-text-disabled)]',
75
- )}
76
- onClick={e => {
77
- setValue(unWarpValue(item))
78
- typeof item === 'object' && item.onClick?.(e)
79
- }}
80
- >
81
- <Show
82
- when={typeof item !== 'object'}
83
- fallback={typeof item === 'object' && unwrapStringOrJSXElement(item.label)}
84
- >
85
- {item as string | number}
86
- </Show>
87
- </div>
88
- </div>
89
- )}
90
- </For>
91
- </div>
92
- )
93
- }
94
-
95
- export default Segmented
package/src/Select.tsx DELETED
@@ -1,128 +0,0 @@
1
- import {
2
- type JSXElement,
3
- type Component,
4
- For,
5
- createSelector,
6
- createSignal,
7
- Show,
8
- createMemo,
9
- } from 'solid-js'
10
- import Tooltip from './Tooltip'
11
- import { type Key } from './types'
12
- import createControllableValue from './hooks/createControllableValue'
13
- import cs from 'classnames'
14
- import { useClickAway } from './hooks'
15
- import { isNil } from 'lodash-es'
16
-
17
- interface SelectOption {
18
- label: JSXElement
19
- value: Key
20
- }
21
-
22
- interface SelectProps {
23
- value?: Key
24
- onChange?: (value: Key) => void
25
- options: SelectOption[]
26
- placeholder?: string
27
- allowClear?: boolean
28
- class?: string
29
- }
30
-
31
- const Select: Component<SelectProps> = props => {
32
- let select: HTMLDivElement
33
-
34
- const [value, setValue] = createControllableValue<Key | undefined>(props)
35
- const selectedValue = createSelector(value)
36
- const selectedOption = createMemo(() => !isNil(value()) ? props.options.find(option => option.value === value()) : undefined)
37
-
38
- const [open, setOpen] = createSignal(false)
39
- useClickAway(
40
- () => setOpen(false),
41
- () => select!,
42
- )
43
-
44
- const [width, setWidth] = createSignal(0)
45
- const [hover, setHover] = createSignal(false)
46
- const showClearBtn = createMemo(() => props.allowClear && hover() && !isNil(value()))
47
-
48
- return (
49
- <Tooltip
50
- mode="light"
51
- open={open()}
52
- onOpenChange={setOpen}
53
- trigger={[]}
54
- placement="bottomLeft"
55
- arrow={false}
56
- contentStyle={{
57
- padding: 0,
58
- }}
59
- content={close => (
60
- <div class="ant-bg-white ant-w-200px" style={{ width: `${width()}px` }}>
61
- <For each={props.options}>
62
- {item => (
63
- <div
64
- class={cs(
65
- 'ant-box-content ant-px-12px ant-py-5px ant-h-22px ant-leading-22px hover:ant-bg-[var(--hover-bg-color)]',
66
- selectedValue(item.value) ? '!ant-bg-[var(--active-bg-color)]' : '',
67
- )}
68
- onClick={() => {
69
- setValue(item.value)
70
- close()
71
- }}
72
- >
73
- {item.label}
74
- </div>
75
- )}
76
- </For>
77
- </div>
78
- )}
79
- >
80
- <div
81
- ref={select!}
82
- class={cs('ant-h-32px ant-leading-32px ant-rounded-6px ant-[border:1px_solid_var(--ant-color-border)] ant-px-11px focus:ant-[border-color:var(--primary-color)]', props.class)}
83
- tabIndex="0"
84
- onClick={e => {
85
- setOpen(true)
86
- setWidth(e.currentTarget.offsetWidth)
87
- e.currentTarget.focus()
88
- }}
89
- onMouseEnter={() => setHover(true)}
90
- onMouseLeave={() => setHover(false)}
91
- style={{
92
- '--ant-arrow-color': 'rgba(146, 146, 146, 1)',
93
- '--ant-clear-color': 'rgba(146, 146, 146, 1)',
94
- '--ant-clear-color-hover': 'rgba(194, 194, 194, 1)',
95
- }}
96
- >
97
- <div class="ant-relative ant-h-full">
98
- <Show
99
- when={!isNil(value())}
100
- fallback={
101
- <input
102
- class="ant-h-full ant-w-full ant-float-left ant-[outline:none]"
103
- readOnly
104
- placeholder={props.placeholder}
105
- />
106
- }
107
- >
108
- <div>{selectedOption()!.label ?? value()}</div>
109
- </Show>
110
-
111
- <div class="ant-absolute ant-top-0 ant-bottom-0 ant-right-0">
112
- <Show when={showClearBtn()} fallback={<span class="i-ant-design:down-outlined ant-text-[var(--ant-allow-color)]" />}>
113
- <span
114
- class="i-ant-design:close-circle-filled ant-cursor-pointer ant-text-[var(--ant-clear-color)] hover:ant-text-[var(--ant-clear-color-hover)]"
115
- onClick={e => {
116
- e.stopPropagation()
117
- setValue(undefined)
118
- }}
119
- />
120
- </Show>
121
- </div>
122
- </div>
123
- </div>
124
- </Tooltip>
125
- )
126
- }
127
-
128
- export default Select
package/src/Skeleton.tsx DELETED
@@ -1,14 +0,0 @@
1
- import { Skeleton as SkeletonAntd } from 'antd'
2
- import { reactToSolidComponent, replaceClassName } from './utils/component'
3
-
4
- const _Skeleton = replaceClassName(reactToSolidComponent(SkeletonAntd))
5
-
6
- const Image = replaceClassName(reactToSolidComponent(SkeletonAntd.Image))
7
-
8
- const Skeleton = _Skeleton as typeof _Skeleton & {
9
- Image: typeof Image
10
- }
11
-
12
- Skeleton.Image = Image
13
-
14
- export default Skeleton
package/src/Spin.tsx DELETED
@@ -1,23 +0,0 @@
1
- import { Show, type Component, type ParentProps } from 'solid-js'
2
-
3
- interface SpinProps extends ParentProps {
4
- /**
5
- * 是否为加载中状态
6
- */
7
- spinning?: boolean
8
- }
9
-
10
- const Spin: Component<SpinProps> = props => {
11
- return (
12
- <div class="ant-relative ant-min-h-32px">
13
- {props.children}
14
- <Show when={props.spinning}>
15
- <div class="ant-absolute ant-inset-0 ant-flex ant-items-center ant-justify-center ant-bg-[rgba(255,255,255,.5)]">
16
- <span class="i-ant-design:loading keyframes-spin ant-[animation:spin_1s_linear_infinite] ant-text-32px ant-text-[var(--primary-color)]" />
17
- </div>
18
- </Show>
19
- </div>
20
- )
21
- }
22
-
23
- export default Spin
package/src/Switch.tsx DELETED
@@ -1,34 +0,0 @@
1
- import { type Component } from 'solid-js'
2
- import createControllableValue from './hooks/createControllableValue'
3
- import cs from 'classnames'
4
-
5
- export interface SwitchProps {
6
- defaultChecked?: boolean
7
- checked?: boolean
8
- onChange?: (checked: boolean) => void
9
- }
10
-
11
- const Switch: Component<SwitchProps> = props => {
12
- const [checked, setChecked] = createControllableValue<boolean>(props, {
13
- defaultValuePropName: 'defaultChecked',
14
- valuePropName: 'checked',
15
- })
16
- return (
17
- <button
18
- class={cs(
19
- 'ant-w-44px ant-h-22px ant-rounded-100px ant-relative',
20
- checked() ? 'ant-bg-[var(--primary-color)]' : 'ant-bg-[rgba(0,0,0,0.45)]',
21
- )}
22
- onClick={() => setChecked(c => !c)}
23
- >
24
- <div
25
- class={cs(
26
- 'ant-w-18px ant-h-18px ant-rounded-50% ant-bg-white ant-absolute ant-top-1/2 -ant-translate-y-1/2 ant-transition-left',
27
- checked() ? 'ant-left-[calc(100%-20px)]' : 'ant-left-2px',
28
- )}
29
- />
30
- </button>
31
- )
32
- }
33
-
34
- export default Switch
package/src/Table.tsx DELETED
@@ -1,53 +0,0 @@
1
- import Empty from './Empty'
2
- import { type JSXElement, For, Show } from 'solid-js'
3
-
4
- export interface TableColumn<R extends {}> {
5
- title: JSXElement
6
- render: (row: R) => JSXElement
7
- }
8
-
9
- export interface TableProps<R extends {}> {
10
- columns: Array<TableColumn<R>>
11
- dataSource: R[]
12
- }
13
-
14
- const Table = <R extends {}>(props: TableProps<R>) => {
15
- return (
16
- <div>
17
- <table class="ant-w-full">
18
- <thead>
19
- <tr>
20
- <For each={props.columns}>
21
- {item => (
22
- <th class="ant-p-16px ant-bg-[var(--light-bg-color)] ant-font-bold ant-[border-bottom:1px_solid_var(--secondary-border-color)] ant-text-left">
23
- {item.title}
24
- </th>
25
- )}
26
- </For>
27
- </tr>
28
- </thead>
29
- <tbody>
30
- <For each={props.dataSource}>
31
- {row => (
32
- <tr class="hover:ant-bg-[var(--light-bg-color)]">
33
- <For each={props.columns}>
34
- {item => (
35
- <td class="ant-p-16px ant-[border-bottom:1px_solid_var(--secondary-border-color)]">
36
- {item.render(row)}
37
- </td>
38
- )}
39
- </For>
40
- </tr>
41
- )}
42
- </For>
43
- </tbody>
44
- </table>
45
-
46
- <Show when={!props.dataSource.length}>
47
- <Empty.PRESENTED_IMAGE_SIMPLE />
48
- </Show>
49
- </div>
50
- )
51
- }
52
-
53
- export default Table