antd-solid 0.0.12 → 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 (343) hide show
  1. package/css/index.css +10 -77
  2. package/dist/index.esm.js +7819 -2492
  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 +16 -4
  7. package/es/Button/index.js +107 -59
  8. package/es/Button/index.scss.js +1 -1
  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 +11 -9
  48. package/es/Compact/index.js +28 -13
  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 -111
  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 +4 -2
  96. package/es/Empty/index.js +23 -13
  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 +5 -2
  140. package/es/Progress/index.js +70 -65
  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.d.ts → Upload/index.d.ts} +8 -1
  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 +51 -21
  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/ColorPicker.d.ts +0 -8
  246. package/es/ColorPicker.js +0 -6
  247. package/es/DatePicker.d.ts +0 -19
  248. package/es/DatePicker.js +0 -9
  249. package/es/Image.d.ts +0 -9
  250. package/es/Image.js +0 -22
  251. package/es/Input.d.ts +0 -29
  252. package/es/Input.js +0 -144
  253. package/es/InputNumber.d.ts +0 -11
  254. package/es/InputNumber.js +0 -92
  255. package/es/Modal.d.ts +0 -47
  256. package/es/Modal.js +0 -210
  257. package/es/Popconfirm.js +0 -64
  258. package/es/Radio.d.ts +0 -27
  259. package/es/Radio.js +0 -93
  260. package/es/Result.js +0 -29
  261. package/es/Select.d.ts +0 -16
  262. package/es/Select.js +0 -113
  263. package/es/Skeleton.d.ts +0 -9
  264. package/es/Skeleton.js +0 -9
  265. package/es/Spin.d.ts +0 -10
  266. package/es/Spin.js +0 -28
  267. package/es/Switch.js +0 -30
  268. package/es/Table.js +0 -57
  269. package/es/Tabs.d.ts +0 -17
  270. package/es/Tabs.js +0 -117
  271. package/es/Timeline.js +0 -30
  272. package/es/Tooltip.d.ts +0 -34
  273. package/es/Tooltip.js +0 -302
  274. package/es/Tree.d.ts +0 -28
  275. package/es/Tree.js +0 -198
  276. package/es/Upload.js +0 -96
  277. package/es/hooks/createUpdateEffect.d.ts +0 -5
  278. package/es/hooks/createUpdateEffect.js +0 -12
  279. package/es/utils/EventEmitter.d.ts +0 -7
  280. package/es/utils/EventEmitter.js +0 -13
  281. package/es/utils/ReactToSolid.d.ts +0 -8
  282. package/es/utils/ReactToSolid.js +0 -30
  283. package/es/utils/SolidToReact.d.ts +0 -8
  284. package/es/utils/SolidToReact.js +0 -23
  285. package/es/utils/component.d.ts +0 -31
  286. package/es/utils/component.js +0 -68
  287. package/es/utils/zh_CN.d.ts +0 -2
  288. package/es/utils/zh_CN.js +0 -236
  289. package/src/Button/index.scss +0 -9
  290. package/src/Button/index.tsx +0 -137
  291. package/src/Collapse/index.tsx +0 -86
  292. package/src/ColorPicker.tsx +0 -11
  293. package/src/Compact/index.tsx +0 -20
  294. package/src/DatePicker.tsx +0 -30
  295. package/src/Drawer/index.scss +0 -53
  296. package/src/Drawer/index.tsx +0 -211
  297. package/src/Empty/PRESENTED_IMAGE_SIMPLE.tsx +0 -15
  298. package/src/Empty/assets/EmptySvg.tsx +0 -43
  299. package/src/Empty/assets/SimpleEmptySvg.tsx +0 -16
  300. package/src/Empty/index.tsx +0 -25
  301. package/src/Form/Form.tsx +0 -94
  302. package/src/Form/FormItem.tsx +0 -141
  303. package/src/Form/context.ts +0 -16
  304. package/src/Form/index.ts +0 -13
  305. package/src/Image.tsx +0 -29
  306. package/src/Input.tsx +0 -202
  307. package/src/InputNumber.test.tsx +0 -46
  308. package/src/InputNumber.tsx +0 -139
  309. package/src/Modal.tsx +0 -221
  310. package/src/Popconfirm.tsx +0 -75
  311. package/src/Popover.tsx +0 -30
  312. package/src/Progress/index.tsx +0 -81
  313. package/src/Radio.tsx +0 -142
  314. package/src/Result.tsx +0 -38
  315. package/src/Segmented/index.tsx +0 -95
  316. package/src/Select.tsx +0 -138
  317. package/src/Skeleton.tsx +0 -14
  318. package/src/Spin.tsx +0 -34
  319. package/src/Switch.tsx +0 -34
  320. package/src/Table.tsx +0 -53
  321. package/src/Tabs.tsx +0 -131
  322. package/src/Timeline.tsx +0 -33
  323. package/src/Tooltip.tsx +0 -340
  324. package/src/Tree.tsx +0 -247
  325. package/src/Upload.tsx +0 -143
  326. package/src/hooks/createControllableValue.ts +0 -68
  327. package/src/hooks/createTransition.ts +0 -52
  328. package/src/hooks/createUpdateEffect.ts +0 -16
  329. package/src/hooks/index.ts +0 -2
  330. package/src/hooks/useClickAway.ts +0 -18
  331. package/src/hooks/useSize.ts +0 -26
  332. package/src/index.ts +0 -47
  333. package/src/types/index.ts +0 -5
  334. package/src/utils/EventEmitter.ts +0 -15
  335. package/src/utils/ReactToSolid.tsx +0 -38
  336. package/src/utils/SolidToReact.tsx +0 -27
  337. package/src/utils/array.ts +0 -21
  338. package/src/utils/component.tsx +0 -85
  339. package/src/utils/solid.ts +0 -61
  340. package/src/utils/zh_CN.ts +0 -236
  341. /package/es/{InputNumber.test.d.ts → InputNumber/index.test.d.ts} +0 -0
  342. /package/es/{Result.d.ts → Result/index.d.ts} +0 -0
  343. /package/es/{Timeline.d.ts → Timeline/index.d.ts} +0 -0
package/src/Tree.tsx DELETED
@@ -1,247 +0,0 @@
1
- import { isEmpty } from 'lodash-es'
2
- import {
3
- type Accessor,
4
- createContext,
5
- createSignal,
6
- Index,
7
- type JSXElement,
8
- type Setter,
9
- Show,
10
- untrack,
11
- useContext,
12
- createSelector,
13
- } from 'solid-js'
14
- import cs from 'classnames'
15
-
16
- export interface TreeProps<T extends {} = {}> {
17
- class?: string
18
- defaultSelectedNodes?: T[]
19
- treeData?: T[]
20
- /**
21
- * 是否节点占据一行
22
- */
23
- blockNode?: boolean
24
- defaultExpandAll?: boolean
25
- /**
26
- * 设置节点可拖拽
27
- */
28
- draggable?: boolean
29
- titleRender: (
30
- node: T,
31
- info: {
32
- indexes: number[]
33
- },
34
- ) => JSXElement
35
- children: (node: T) => T[] | undefined
36
- onSelect?: (node: T) => void
37
- onDrop?: (info: {
38
- dragNode: T
39
- targetNode: T
40
- dragIndexes: number[]
41
- targetIndexes: number[]
42
- }) => void
43
- }
44
-
45
- interface SingleLevelTreeProps<T extends {} = {}> extends Omit<TreeProps<T>, 'class'> {
46
- indent: number
47
- parentIndexes?: number[]
48
- }
49
-
50
- const TreeContext = createContext(
51
- {} as unknown as {
52
- selectedNodes: Accessor<Array<{}>>
53
- setSelectedNodes: Setter<Array<{}>>
54
- draggableNode: Accessor<{} | null>
55
- setDraggableNode: Setter<{} | null>
56
- draggableIndexes: Accessor<number[] | null>
57
- setDraggableIndexes: Setter<number[] | null>
58
- isDraggable: (key: {} | null) => boolean
59
- targetNode: Accessor<{} | null>
60
- setTargetNode: Setter<{} | null>
61
- targetIndexes: Accessor<number[] | null>
62
- setTargetIndexes: Setter<number[] | null>
63
- isTarget: (key: {} | null) => boolean
64
- draggable: TreeProps['draggable'] | undefined
65
- onDrop: TreeProps['onDrop'] | undefined
66
- },
67
- )
68
-
69
- /**
70
- * 单层级 tree
71
- */
72
- function SingleLevelTree<T extends {} = {}>(props: SingleLevelTreeProps<T>) {
73
- const [expanded, setExpanded] = createSignal(props.defaultExpandAll)
74
- const {
75
- selectedNodes,
76
- setSelectedNodes,
77
- draggableNode,
78
- setDraggableNode,
79
- draggableIndexes,
80
- setDraggableIndexes,
81
- isDraggable,
82
- targetNode,
83
- setTargetNode,
84
- targetIndexes,
85
- setTargetIndexes,
86
- isTarget,
87
- draggable,
88
- onDrop,
89
- } = useContext(TreeContext)
90
-
91
- return (
92
- <Index each={props.treeData}>
93
- {(item, i) => {
94
- const indexes = [...(props.parentIndexes ?? []), i]
95
-
96
- return (
97
- <>
98
- <div
99
- class={cs(
100
- 'ant-flex ant-items-center ant-h-28px ant-pb-4px',
101
- isDraggable(item()) &&
102
- 'ant-[border:1px_solid_var(--ant-color-primary)] ant-bg-white',
103
- draggableNode() && 'child[]:ant-pointer-events-none',
104
- )}
105
- draggable={draggable}
106
- onDragStart={() => {
107
- setDraggableNode(item() as {})
108
- setDraggableIndexes(indexes)
109
- }}
110
- onDragEnter={() => {
111
- if (item() !== draggableNode()) {
112
- setTargetNode(item() as {})
113
- setTargetIndexes(indexes)
114
- }
115
- }}
116
- onDragLeave={e => {
117
- if (item() === targetNode() && e.relatedTarget) {
118
- setTargetNode(null)
119
- setTargetIndexes(null)
120
- }
121
- }}
122
- onDragEnd={() => {
123
- onDrop?.({
124
- dragNode: draggableNode()!,
125
- dragIndexes: draggableIndexes()!,
126
- targetNode: targetNode()!,
127
- targetIndexes: targetIndexes()!,
128
- })
129
-
130
- setDraggableNode(null)
131
- setDraggableIndexes(null)
132
- setTargetNode(null)
133
- setTargetIndexes(null)
134
- }}
135
- >
136
- <div class="flex-shrink-0" role={'indent' as any}>
137
- {/* eslint-disable-next-line solid/prefer-for */}
138
- {Array(props.indent)
139
- .fill(0)
140
- .map(() => (
141
- <span class="ant-inline-block ant-w-24px" />
142
- ))}
143
- </div>
144
- <div class="ant-flex-shrink-0 ant-w-24px ant-h-24px ant-flex ant-items-center ant-justify-center">
145
- <span class="i-ant-design:holder-outlined" />
146
- </div>
147
- <div
148
- class={cs(
149
- 'ant-flex-shrink-0 ant-w-24px ant-h-24px ant-flex ant-items-center ant-justify-center ant-cursor-pointer',
150
- isEmpty(props.children(item())) && 'opacity-0',
151
- )}
152
- >
153
- <Show
154
- when={expanded()}
155
- fallback={
156
- <span
157
- class={'i-ant-design:plus-square-outlined'}
158
- onClick={[setExpanded, true]}
159
- />
160
- }
161
- >
162
- <span
163
- class={'i-ant-design:minus-square-outlined'}
164
- onClick={[setExpanded, false]}
165
- />
166
- </Show>
167
- </div>
168
- <div
169
- class={cs(
170
- 'ant-h-full ant-leading-24px hover:ant-bg-[var(--hover-bg-color)] ant-rounded-1 ant-px-1 ant-cursor-pointer ant-relative',
171
- props.blockNode && 'w-full',
172
- selectedNodes()?.includes(item()) && '!ant-bg-[var(--ant-tree-node-selected-bg)]',
173
- isTarget(item()) &&
174
- "before:ant-content-[''] before:ant-inline-block before:ant-w-8px before:ant-h-8px before:ant-absolute before:ant-bottom-0 before:ant-left-0 before:-ant-translate-x-full before:ant-translate-y-1/2 before:ant-rounded-1/2 before:ant-[border:2px_solid_var(--ant-color-primary)] after:ant-content-[''] after:ant-inline-block after:ant-h-2px after:ant-absolute after:ant-left-0 after:ant-right-0 after:ant-bottom--1px after:ant-bg-[var(--ant-color-primary)]",
175
- )}
176
- onClick={() => {
177
- setSelectedNodes([item()])
178
- props.onSelect?.(item())
179
- }}
180
- >
181
- {props.titleRender(item(), { indexes })}
182
- </div>
183
- </div>
184
-
185
- <Show when={expanded() && !isEmpty(props.children(item()))}>
186
- <SingleLevelTree
187
- treeData={props.children(item())}
188
- indent={props.indent + 1}
189
- parentIndexes={indexes}
190
- blockNode={props.blockNode}
191
- defaultExpandAll={props.defaultExpandAll}
192
- titleRender={props.titleRender}
193
- children={props.children}
194
- onSelect={node => untrack(() => props.onSelect?.(node))}
195
- />
196
- </Show>
197
- </>
198
- )
199
- }}
200
- </Index>
201
- )
202
- }
203
-
204
- function Tree<T extends {} = {}>(props: TreeProps<T>) {
205
- const [selectedNodes, setSelectedNodes] = createSignal<T[]>(props.defaultSelectedNodes ?? [])
206
-
207
- const [draggableNode, setDraggableNode] = createSignal<T | null>(null)
208
- const isDraggable = createSelector<T | null, T | null>(draggableNode)
209
- const [draggableIndexes, setDraggableIndexes] = createSignal<number[] | null>(null)
210
-
211
- const [targetNode, setTargetNode] = createSignal<T | null>(null)
212
- const isTarget = createSelector<T | null, T | null>(targetNode)
213
- const [targetIndexes, setTargetIndexes] = createSignal<number[] | null>(null)
214
-
215
- return (
216
- <TreeContext.Provider
217
- value={{
218
- selectedNodes,
219
- setSelectedNodes: setSelectedNodes as unknown as Setter<Array<{}>>,
220
- draggableNode,
221
- setDraggableNode: setDraggableNode as unknown as Setter<{} | null>,
222
- draggableIndexes,
223
- setDraggableIndexes,
224
- isDraggable,
225
- targetNode,
226
- setTargetNode: setTargetNode as unknown as Setter<{} | null>,
227
- targetIndexes,
228
- setTargetIndexes,
229
- isTarget,
230
- draggable: props.draggable,
231
- onDrop: props.onDrop,
232
- }}
233
- >
234
- <SingleLevelTree
235
- treeData={props.treeData}
236
- indent={0}
237
- blockNode={props.blockNode}
238
- defaultExpandAll={props.defaultExpandAll}
239
- titleRender={props.titleRender}
240
- children={props.children}
241
- onSelect={node => untrack(() => props.onSelect?.(node))}
242
- />
243
- </TreeContext.Provider>
244
- )
245
- }
246
-
247
- export default Tree
package/src/Upload.tsx DELETED
@@ -1,143 +0,0 @@
1
- import { nanoid } from 'nanoid'
2
- import { type Component, mergeProps, type ParentProps, createSignal, type Signal } from 'solid-js'
3
-
4
- interface UploadProgressEvent extends Partial<ProgressEvent> {
5
- percent?: number
6
- }
7
-
8
- export interface UploadRequestOption<T = any> {
9
- file: File
10
- onProgress?: (event: UploadProgressEvent) => void
11
- onError?: (event: Error) => void
12
- onSuccess?: (body: T) => void
13
- }
14
-
15
- export interface UploadFile<T = any> {
16
- /**
17
- * 文件唯一标识
18
- */
19
- id: string
20
- /**
21
- * 文件名
22
- */
23
- name: string
24
- /**
25
- * MIME 类型
26
- */
27
- type?: string
28
- /**
29
- * 文件大小
30
- */
31
- size?: number
32
- file?: File
33
- response?: T
34
- status?: 'pending' | 'uploading' | 'error' | 'finished'
35
- percent?: number
36
- /**
37
- * 下载地址
38
- */
39
- url?: string
40
- }
41
-
42
- export interface UploadProps<T = any> extends ParentProps {
43
- class?: string
44
- accept?: string
45
- /**
46
- * 上传的地址
47
- */
48
- action?: string
49
- /**
50
- * 上传请求的 http method
51
- * 默认 'post'
52
- */
53
- method?: string
54
- customRequest?: (option: UploadRequestOption<T>) => void
55
- onAdd?: (fileList: Array<Signal<T>>) => void
56
- multiple?: boolean
57
- }
58
-
59
- function request(file: File, customRequest: UploadProps['customRequest']) {
60
- const id = `upload-${nanoid()}`
61
- // eslint-disable-next-line solid/reactivity
62
- const uploadFileSignal = createSignal<UploadFile>({
63
- id,
64
- file,
65
- name: file.name,
66
- type: file.type,
67
- size: file.size,
68
- status: 'pending',
69
- percent: 0,
70
- })
71
-
72
- const [, setUploadFile] = uploadFileSignal
73
-
74
- customRequest?.({
75
- file,
76
- onProgress(event) {
77
- setUploadFile(value => ({
78
- ...value,
79
- status: 'uploading',
80
- percent: event.percent ?? 0,
81
- }))
82
- },
83
- onSuccess(response) {
84
- setUploadFile(value => ({ ...value, status: 'finished', response }))
85
- },
86
- onError() {
87
- setUploadFile(value => ({ ...value, status: 'error' }))
88
- },
89
- })
90
-
91
- return uploadFileSignal
92
- }
93
-
94
- const Upload: Component<UploadProps> & {
95
- request: typeof request
96
- } = _props => {
97
- let input: HTMLInputElement | undefined
98
- const props = mergeProps(
99
- {
100
- customRequest: ({ file, onSuccess, onError }) => {
101
- if (!_props.action) return
102
-
103
- const formData = new FormData()
104
- formData.append('file', file)
105
- fetch(_props.action, {
106
- method: _props.method ?? 'post',
107
- body: formData,
108
- })
109
- .then(onSuccess)
110
- .catch(onError)
111
- },
112
- } as UploadProps,
113
- _props,
114
- )
115
-
116
- return (
117
- <span class={props.class} onClick={() => input?.click()}>
118
- {props.children}
119
-
120
- <input
121
- ref={input}
122
- class="hidden"
123
- type="file"
124
- accept={props.accept}
125
- multiple={props.multiple}
126
- onInput={e => {
127
- const fileList: Array<Signal<UploadFile>> = []
128
- for (const file of e.target.files ?? []) {
129
- const uploadFileSignal = request(file, props.customRequest)
130
- fileList.push(uploadFileSignal)
131
- }
132
-
133
- props.onAdd?.(fileList)
134
- e.target.value = ''
135
- }}
136
- />
137
- </span>
138
- )
139
- }
140
-
141
- Upload.request = request
142
-
143
- export default Upload
@@ -1,68 +0,0 @@
1
- import { type Signal, createSignal } from 'solid-js'
2
- import createUpdateEffect from './createUpdateEffect'
3
-
4
- export interface Options<T> {
5
- defaultValue?: T
6
- defaultValuePropName?: string
7
- valuePropName?: string
8
- trigger?: string | null
9
- }
10
-
11
- export type Props = Record<string, any>
12
-
13
- export interface StandardProps<T> {
14
- value: T
15
- defaultValue?: T
16
- onChange: (val: T) => void
17
- }
18
-
19
- function createControllableValue<T = any>(props: StandardProps<T>): Signal<T>
20
- function createControllableValue<T = any>(props: Props, options?: Options<T>): Signal<T>
21
- function createControllableValue<T = any>(props: Props, options: Options<T> = {}) {
22
- const {
23
- defaultValuePropName = 'defaultValue',
24
- valuePropName = 'value',
25
- trigger = 'onChange',
26
- } = options
27
-
28
- const getValue = () => props[valuePropName] as T
29
- // 为什么不使用 Object.hasOwn?
30
- // solid 的 proxy 对象对于任何 key,都会返回 true
31
- const isControlled = () => Object.keys(props).includes(valuePropName)
32
-
33
- let defaultValue = options.defaultValue
34
- if (isControlled()) {
35
- defaultValue = getValue()
36
- } else if (Object.keys(props).includes(defaultValuePropName)) {
37
- defaultValue = props[defaultValuePropName]
38
- }
39
-
40
- const [value, _setValue] = createSignal(defaultValue)
41
-
42
- createUpdateEffect(getValue, () => {
43
- if (!isControlled()) return
44
-
45
- _setValue(getValue() as any)
46
- })
47
-
48
- const setValue = (v: ((prev: T) => T) | T | undefined) => {
49
- const newValue = typeof v === 'function' ? (v as (prev: T) => T)(value()!) : v
50
-
51
- if (!isControlled()) {
52
- _setValue(newValue as any)
53
- }
54
-
55
- if (trigger) {
56
- const onChange = props[trigger]
57
- if (typeof onChange === 'function') {
58
- onChange(newValue)
59
- }
60
- }
61
-
62
- return newValue
63
- }
64
-
65
- return [value, setValue] as Signal<T>
66
- }
67
-
68
- export default createControllableValue
@@ -1,52 +0,0 @@
1
- import { createEffect, type Accessor, on } from 'solid-js'
2
-
3
- /**
4
- * dom 节点显示或隐藏时的动画
5
- * @param target
6
- * @param when
7
- * @param className 动画类名
8
- */
9
- export default function createTransition(
10
- target: Accessor<HTMLElement | undefined | null>,
11
- when: Accessor<boolean>,
12
- className: string,
13
- ) {
14
- createEffect(
15
- on(when, input => {
16
- const targetValue = target()
17
- if (!targetValue) return
18
-
19
- if (input) {
20
- targetValue.style.display = ''
21
- targetValue.classList.add(
22
- `${className}-enter-active`,
23
- `${className}-enter`,
24
- `${className}-enter-to`,
25
- )
26
- requestAnimationFrame(() => {
27
- targetValue!.classList.remove(`${className}-enter`)
28
- })
29
- const onTransitionEnd = () => {
30
- targetValue!.classList.remove(`${className}-enter-active`, `${className}-enter-to`)
31
- targetValue!.removeEventListener('transitionend', onTransitionEnd)
32
- }
33
- targetValue.addEventListener('transitionend', onTransitionEnd)
34
- } else {
35
- targetValue.classList.add(
36
- `${className}-exit-active`,
37
- `${className}-exit`,
38
- `${className}-exit-to`,
39
- )
40
- requestAnimationFrame(() => {
41
- targetValue!.classList.remove(`${className}-exit`)
42
- })
43
- const onTransitionEnd = () => {
44
- targetValue!.style.display = 'none'
45
- targetValue!.classList.remove(`${className}-exit-active`, `${className}-exit-to`)
46
- targetValue!.removeEventListener('transitionend', onTransitionEnd)
47
- }
48
- targetValue.addEventListener('transitionend', onTransitionEnd)
49
- }
50
- }),
51
- )
52
- }
@@ -1,16 +0,0 @@
1
- import { createEffect, on } from 'solid-js'
2
- import type { Accessor, AccessorArray, NoInfer, OnEffectFunction } from 'solid-js'
3
-
4
- /**
5
- * 等同于 createEffect,但是会忽略首次执行,只在依赖更新时执行。
6
- */
7
- export default function createUpdateEffect<S, Next extends Prev, Prev = Next>(
8
- deps: AccessorArray<S> | Accessor<S>,
9
- fn: OnEffectFunction<S, undefined | NoInfer<Prev>, Next>,
10
- ) {
11
- createEffect(
12
- on(deps, fn, {
13
- defer: true,
14
- }),
15
- )
16
- }
@@ -1,2 +0,0 @@
1
- export { default as useClickAway } from './useClickAway'
2
- export { default as useSize } from './useSize'
@@ -1,18 +0,0 @@
1
- import { type Accessor, onCleanup } from 'solid-js'
2
- import { toArray } from '../utils/array'
3
-
4
- export default function useClickAway<T extends Event = Event>(
5
- onClickAway: (event: T) => void,
6
- target?: Accessor<Element | Element[]>,
7
- ) {
8
- const onClick = (event: Event) => {
9
- const targets = target ? toArray(target()) : []
10
- if (targets.every(item => !item.contains(event.target as Node))) {
11
- onClickAway(event as T)
12
- }
13
- }
14
- document.body.addEventListener('click', onClick)
15
- onCleanup(() => {
16
- document.body.removeEventListener('click', onClick)
17
- })
18
- }
@@ -1,26 +0,0 @@
1
- import { Accessor, createSignal, onCleanup, onMount } from 'solid-js'
2
-
3
- function getTarget(target: Element | Accessor<Element>) {
4
- return target instanceof Element ? target : target()
5
- }
6
-
7
- export default function useSize(target: Element | Accessor<Element>) {
8
- const [size, setSize] = createSignal<{
9
- width: number
10
- height: number
11
- }>()
12
-
13
- onMount(() => {
14
- const _target = getTarget(target)
15
- const ro = new ResizeObserver(() => {
16
- setSize({
17
- width: _target.clientWidth,
18
- height: _target.clientHeight,
19
- })
20
- })
21
- ro.observe(_target)
22
- onCleanup(() => ro.disconnect())
23
- })
24
-
25
- return size
26
- }
package/src/index.ts DELETED
@@ -1,47 +0,0 @@
1
- export { default as Button } from './Button'
2
- export { default as Input } from './Input'
3
- export type { InputProps } from './Input'
4
- export { default as InputNumber } from './InputNumber'
5
- export type { InputNumberProps } from './InputNumber'
6
- export { default as Timeline } from './Timeline'
7
- export { default as Modal } from './Modal'
8
- export type { ModalInstance } from './Modal'
9
- export { default as Drawer } from './Drawer'
10
- export type { DrawerProps, DrawerInstance } from './Drawer'
11
- export { default as DatePicker } from './DatePicker'
12
- export { default as Select } from './Select'
13
- export { default as Tree } from './Tree'
14
- export type { TreeProps } from './Tree'
15
- export { default as Popover } from './Popover'
16
- export { default as Tooltip } from './Tooltip'
17
- export { default as ColorPicker } from './ColorPicker'
18
- export type { ColorPickerProps } from './ColorPicker'
19
- export { default as Result } from './Result'
20
- export { default as Progress } from './Progress'
21
- export type { ProgressProps } from './Progress'
22
- export { default as Tabs } from './Tabs'
23
- export type { TabsProps, Tab } from './Tabs'
24
- export { default as Popconfirm } from './Popconfirm'
25
- export { default as Upload } from './Upload'
26
- export type { UploadProps, UploadFile } from './Upload'
27
- export { default as Radio } from './Radio'
28
- export type { RadioProps, RadioGroupProps } from './Radio'
29
- export { default as Form } from './Form'
30
- export type { FormInstance, FormProps, FormItemProps, FormItemComponentProps } from './Form'
31
- export { default as Switch } from './Switch'
32
- export type { SwitchProps } from './Switch'
33
- export { default as Skeleton } from './Skeleton'
34
- export { default as Spin } from './Spin'
35
- export { default as Image } from './Image'
36
- export { default as Table } from './Table'
37
- export type { TableProps, TableColumn } from './Table'
38
- export { default as Compact } from './Compact'
39
- export type { CollapseProps, CollapseItem } from './Collapse'
40
- export { default as Collapse } from './Collapse'
41
- export { default as Empty } from './Empty'
42
- export type { SegmentedProps } from './Segmented'
43
- export { default as Segmented } from './Segmented'
44
-
45
- export { default as createControllableValue } from './hooks/createControllableValue'
46
-
47
- export { message } from 'antd'
@@ -1,5 +0,0 @@
1
- import { type JSXElement } from 'solid-js'
2
-
3
- export type Key = string | number
4
-
5
- export type StringOrJSXElement = string | number | undefined | null | (() => JSXElement)
@@ -1,15 +0,0 @@
1
- type Subscription<T> = (val: T) => void
2
-
3
- export default class EventEmitter<T> {
4
- private readonly subscriptions = new Set<Subscription<T>>()
5
-
6
- emit = (val: T) => {
7
- for (const subscription of this.subscriptions) {
8
- subscription(val)
9
- }
10
- }
11
-
12
- subscription = (callback: Subscription<T>) => {
13
- this.subscriptions.add(callback)
14
- }
15
- }
@@ -1,38 +0,0 @@
1
- import React from 'react'
2
- import { createRoot, type Root } from 'react-dom/client'
3
- // import { renderToString } from 'react-dom/server'
4
- import { onMount, onCleanup, createEffect, createMemo } from 'solid-js'
5
-
6
- interface ReactToSolidProps<P extends {} = {}> {
7
- component: React.FunctionComponent<P> | React.ComponentClass<P>
8
- props: P
9
- container?: Element
10
- }
11
-
12
- function ReactToSolid<P extends {} = {}>(props: ReactToSolidProps<P>) {
13
- let root: Root
14
-
15
- const rootEle = createMemo(
16
- () => props.container ?? ((<div role={'ReactToSolid' as any} />) as Element),
17
- )
18
- onMount(() => {
19
- root = createRoot(rootEle())
20
- onCleanup(() => {
21
- root.unmount()
22
- })
23
- })
24
-
25
- createEffect(() => {
26
- root.render(React.createElement(props.component, { ...props.props }))
27
- })
28
-
29
- // if (import.meta.env.SSR) {
30
- // // eslint-disable-next-line solid/reactivity
31
- // const node = React.createElement(props.component, { ...props.props })
32
- // // eslint-disable-next-line solid/components-return-once, solid/no-innerhtml
33
- // return <div innerHTML={renderToString(node)} />
34
- // }
35
- return <>{rootEle}</>
36
- }
37
-
38
- export default ReactToSolid