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
@@ -0,0 +1,80 @@
1
+ import { createComponent, memo } from 'solid-js/web';
2
+ import { isEmpty, remove } from 'lodash-es';
3
+ import { For, createMemo, createSignal, untrack, Show } from 'solid-js';
4
+
5
+ function TreeFor(props) {
6
+ return createComponent(For, {
7
+ get each() {
8
+ return props.each;
9
+ },
10
+ get fallback() {
11
+ return props.fallback;
12
+ },
13
+ children: (item, index) => {
14
+ const nextEach = createMemo(() => props.nextEach(item));
15
+ const isParent = createMemo(() => !isEmpty(nextEach()));
16
+ const [filteredNextEach, setFilteredNextEach] = createSignal(untrack(nextEach) ?? []);
17
+ const isEmptyChildren = createMemo(() => isEmpty(filteredNextEach()));
18
+ const onChildChange = (child, value) => {
19
+ setFilteredNextEach(prev => {
20
+ if (value) {
21
+ if (prev.includes(child)) {
22
+ return prev;
23
+ } else {
24
+ prev.push(child);
25
+ }
26
+ } else {
27
+ if (prev.includes(child)) {
28
+ remove(prev, v => v === child);
29
+ } else {
30
+ return prev;
31
+ }
32
+ }
33
+ return [...prev];
34
+ });
35
+ };
36
+ const options = {
37
+ index,
38
+ parentList: props.parentList,
39
+ parentIndexes: props.parentIndexes,
40
+ isParent,
41
+ isEmptyChildren,
42
+ onChildChange: props.onChildChange
43
+ };
44
+ const isExpanded = createMemo(() => props.expanded ? props.expanded(item, options) : true);
45
+ return [memo(() => props.children(item, options)), createComponent(Show, {
46
+ get when() {
47
+ return memo(() => !!isParent())() && isExpanded();
48
+ },
49
+ get children() {
50
+ return createComponent(TreeFor, {
51
+ get each() {
52
+ return nextEach();
53
+ },
54
+ get nextEach() {
55
+ return props.nextEach;
56
+ },
57
+ onChildChange: onChildChange,
58
+ get expanded() {
59
+ return props.expanded;
60
+ },
61
+ get children() {
62
+ return props.children;
63
+ },
64
+ get parentList() {
65
+ return [...(props.parentList ?? []), item];
66
+ },
67
+ get parentIndexes() {
68
+ return [...(props.parentIndexes ?? []), index()];
69
+ },
70
+ get fallback() {
71
+ return props.fallback;
72
+ }
73
+ });
74
+ }
75
+ })];
76
+ }
77
+ });
78
+ }
79
+
80
+ export { TreeFor as default };
@@ -0,0 +1,26 @@
1
+ import { type JSXElement } from 'solid-js';
2
+ import { type Key } from '../types';
3
+ import { type TreeProps } from '../Tree';
4
+ import { type SelectInputProps } from '../SelectInput';
5
+ export interface TreeSelectNode<T = Key> {
6
+ value: T;
7
+ label: JSXElement;
8
+ children?: TreeSelectNode[] | undefined;
9
+ }
10
+ export interface TreeSelectProps<T = Key> extends Pick<SelectInputProps<Key>, 'multiple' | 'allowClear' | 'class' | 'disabled' | 'placeholder' | 'status' | 'size'>, Pick<TreeProps<TreeSelectNode<T>>, 'treeData' | 'checkable' | 'checkStrategy'> {
11
+ defaultValue?: T | T[] | undefined;
12
+ value?: T | T[] | undefined;
13
+ onChange?: (value: T | T[] | undefined) => void;
14
+ /**
15
+ * 自定义节点 label、value、children 的字段
16
+ * 默认 { label: 'label', value: 'value', children: 'children' }
17
+ */
18
+ fieldNames?: {
19
+ label?: string | ((node: TreeSelectNode<T>) => JSXElement);
20
+ value?: string | ((node: TreeSelectNode<T>) => T);
21
+ children?: string | ((node: TreeSelectNode<T>) => Array<TreeSelectNode<T>> | undefined);
22
+ };
23
+ labelRender?: (options: TreeSelectNode<T> | undefined) => JSXElement;
24
+ }
25
+ declare const TreeSelect: <T = Key>(props: TreeSelectProps<T>) => import("solid-js").JSX.Element;
26
+ export default TreeSelect;
@@ -0,0 +1,98 @@
1
+ import { createComponent, mergeProps, insert, template } from 'solid-js/web';
2
+ import { splitProps, untrack, createMemo, Show } from 'solid-js';
3
+ import { isNil, isEmpty, get } from 'lodash-es';
4
+ import createControllableValue from '../hooks/createControllableValue.js';
5
+ import Tree from '../Tree/index.js';
6
+ import SelectInput from '../SelectInput/index.js';
7
+ import { unwrapStringOrJSXElement } from '../utils/solid.js';
8
+ import Empty from '../Empty/index.js';
9
+
10
+ var _tmpl$ = /*#__PURE__*/template(`<div class="px-4px py-8px">`);
11
+ const TreeSelect = props => {
12
+ const [selectInputProps] = splitProps(props, ['multiple', 'allowClear', 'class', 'disabled', 'placeholder', 'status', 'size']);
13
+ const [treeProps] = splitProps(props, ['treeData', 'checkable', 'checkStrategy']);
14
+ const fieldNames = Object.assign({
15
+ label: 'label',
16
+ value: 'value',
17
+ children: 'children'
18
+ }, untrack(() => props.fieldNames));
19
+ const getLabel = node => {
20
+ const labelFieldName = fieldNames.label;
21
+ return typeof labelFieldName === 'function' ? labelFieldName(node) : unwrapStringOrJSXElement(get(node, labelFieldName));
22
+ };
23
+ const getValue = node => {
24
+ const valueFieldName = fieldNames.value;
25
+ return typeof valueFieldName === 'function' ? valueFieldName(node) : get(node, valueFieldName);
26
+ };
27
+ const getChildren = node => {
28
+ const childrenFieldName = fieldNames.children;
29
+ return typeof childrenFieldName === 'function' ? childrenFieldName(node) : get(node, childrenFieldName);
30
+ };
31
+ const optionMap = createMemo(() => {
32
+ const map = new Map();
33
+ const treeForEach = list => {
34
+ list?.forEach(item => {
35
+ const key = getValue(item);
36
+ map.set(key, item);
37
+ const children = getChildren(item);
38
+ if (!isEmpty(children)) {
39
+ treeForEach(children);
40
+ }
41
+ });
42
+ };
43
+ treeForEach(props.treeData);
44
+ return map;
45
+ });
46
+ const [value, setValue] = createControllableValue(props);
47
+ const valueArr = createMemo(() => props.multiple ? value() : isNil(value()) ? value() : [value()]);
48
+ const setValueArr = v => {
49
+ setValue(props.multiple ? v : v?.[0]);
50
+ };
51
+ return createComponent(SelectInput, mergeProps(selectInputProps, {
52
+ labelRender: v => props.labelRender ? props.labelRender(optionMap().get(v)) : getLabel(optionMap().get(v)) ?? v,
53
+ get value() {
54
+ return valueArr();
55
+ },
56
+ onChange: setValueArr,
57
+ content: close => createComponent(Show, {
58
+ get when() {
59
+ return !isEmpty(props.treeData);
60
+ },
61
+ get fallback() {
62
+ return createComponent(Empty.PRESENTED_IMAGE_SIMPLE, {});
63
+ },
64
+ get children() {
65
+ var _el$ = _tmpl$();
66
+ insert(_el$, createComponent(Tree, mergeProps({
67
+ get multiple() {
68
+ return props.multiple;
69
+ },
70
+ blockNode: true,
71
+ get fieldNames() {
72
+ return {
73
+ title: fieldNames.label,
74
+ key: fieldNames.value,
75
+ children: fieldNames.children
76
+ };
77
+ }
78
+ }, () => props.checkable ? {
79
+ selectedKeys: [],
80
+ checkedKeys: valueArr(),
81
+ checkOnClick: true,
82
+ onCheck: checkedKeys => {
83
+ setValueArr(checkedKeys);
84
+ }
85
+ } : {
86
+ selectedKeys: valueArr(),
87
+ onSelect: selectedKeys => {
88
+ setValueArr(selectedKeys);
89
+ if (!props.multiple) close();
90
+ }
91
+ }, treeProps)));
92
+ return _el$;
93
+ }
94
+ })
95
+ }));
96
+ };
97
+
98
+ export { TreeSelect as default };
@@ -0,0 +1,64 @@
1
+ import { type Component, type ParentProps, type Signal } from 'solid-js';
2
+ interface UploadProgressEvent extends Partial<ProgressEvent> {
3
+ percent?: number;
4
+ }
5
+ export interface UploadRequestOption<T = any> {
6
+ file: File;
7
+ onProgress?: (event: UploadProgressEvent) => void;
8
+ onError?: (event: Error) => void;
9
+ onSuccess?: (body: T) => void;
10
+ }
11
+ export interface UploadFile<T = any> {
12
+ /**
13
+ * 文件唯一标识
14
+ */
15
+ id: string;
16
+ /**
17
+ * 文件名
18
+ */
19
+ name: string;
20
+ /**
21
+ * MIME 类型
22
+ */
23
+ type?: string;
24
+ /**
25
+ * 文件大小
26
+ */
27
+ size?: number;
28
+ file?: File;
29
+ response?: T;
30
+ status?: 'pending' | 'uploading' | 'error' | 'finished';
31
+ percent?: number;
32
+ /**
33
+ * 下载地址
34
+ */
35
+ url?: string;
36
+ }
37
+ export interface UploadProps<T = any> extends ParentProps {
38
+ class?: string;
39
+ accept?: string;
40
+ /**
41
+ * 上传的地址
42
+ */
43
+ action?: string;
44
+ /**
45
+ * 上传请求的 http method
46
+ * 默认 'post'
47
+ */
48
+ method?: string;
49
+ customRequest?: (option: UploadRequestOption<T>) => void;
50
+ onAdd?: (fileList: Array<Signal<T>>) => void;
51
+ multiple?: boolean;
52
+ }
53
+ /**
54
+ * 根据一个 File 对象创建一个 UploadFile 对象
55
+ * @param file
56
+ * @returns
57
+ */
58
+ declare function createUploadFile(file: File): UploadFile;
59
+ declare function request<T = any>(uploadFileSignal: Signal<UploadFile<T>>, customRequest: UploadProps['customRequest']): Promise<UploadFile<T>>;
60
+ declare const Upload: Component<UploadProps> & {
61
+ request: typeof request;
62
+ createUploadFile: typeof createUploadFile;
63
+ };
64
+ export default Upload;
@@ -0,0 +1,112 @@
1
+ import { delegateEvents, insert, use, effect, className, setAttribute, template } from 'solid-js/web';
2
+ import { nanoid } from 'nanoid';
3
+ import { mergeProps, createSignal } from 'solid-js';
4
+
5
+ var _tmpl$ = /*#__PURE__*/template(`<span><input class=hidden type=file>`);
6
+ /**
7
+ * 根据一个 File 对象创建一个 UploadFile 对象
8
+ * @param file
9
+ * @returns
10
+ */
11
+ function createUploadFile(file) {
12
+ const id = `upload-${nanoid()}`;
13
+ return {
14
+ id,
15
+ file,
16
+ name: file.name,
17
+ type: file.type,
18
+ size: file.size,
19
+ status: 'pending',
20
+ percent: 0
21
+ };
22
+ }
23
+ async function request(uploadFileSignal, customRequest) {
24
+ const [uploadFile, setUploadFile] = uploadFileSignal;
25
+ const {
26
+ file
27
+ } = uploadFile();
28
+ if (!file) return await Promise.reject(new Error('file is required'));
29
+ return await new Promise((resolve, reject) => {
30
+ customRequest?.({
31
+ file,
32
+ onProgress(event) {
33
+ setUploadFile(value => ({
34
+ ...value,
35
+ status: 'uploading',
36
+ percent: event.percent ?? 0
37
+ }));
38
+ },
39
+ onSuccess(response) {
40
+ const newValue = setUploadFile(value => ({
41
+ ...value,
42
+ status: 'finished',
43
+ response
44
+ }));
45
+ resolve(newValue);
46
+ },
47
+ onError(err) {
48
+ setUploadFile(value => ({
49
+ ...value,
50
+ status: 'error'
51
+ }));
52
+ reject(err);
53
+ }
54
+ });
55
+ });
56
+ }
57
+ const Upload = _props => {
58
+ let input;
59
+ const props = mergeProps({
60
+ customRequest: ({
61
+ file,
62
+ onSuccess,
63
+ onError
64
+ }) => {
65
+ if (!_props.action) return;
66
+ const formData = new FormData();
67
+ formData.append('file', file);
68
+ fetch(_props.action, {
69
+ method: _props.method ?? 'post',
70
+ body: formData
71
+ }).then(onSuccess).catch(onError);
72
+ }
73
+ }, _props);
74
+ return (() => {
75
+ var _el$ = _tmpl$(),
76
+ _el$2 = _el$.firstChild;
77
+ _el$.$$click = () => input?.click();
78
+ insert(_el$, () => props.children, _el$2);
79
+ _el$2.$$input = e => {
80
+ const fileList = [];
81
+ for (const file of Array.from(e.target.files ?? [])) {
82
+ // eslint-disable-next-line solid/reactivity
83
+ const uploadFileSignal = createSignal(createUploadFile(file));
84
+ request(uploadFileSignal, props.customRequest);
85
+ fileList.push(uploadFileSignal);
86
+ }
87
+ props.onAdd?.(fileList);
88
+ e.target.value = '';
89
+ };
90
+ var _ref$ = input;
91
+ typeof _ref$ === "function" ? use(_ref$, _el$2) : input = _el$2;
92
+ effect(_p$ => {
93
+ var _v$ = props.class,
94
+ _v$2 = props.accept,
95
+ _v$3 = props.multiple;
96
+ _v$ !== _p$.e && className(_el$, _p$.e = _v$);
97
+ _v$2 !== _p$.t && setAttribute(_el$2, "accept", _p$.t = _v$2);
98
+ _v$3 !== _p$.a && (_el$2.multiple = _p$.a = _v$3);
99
+ return _p$;
100
+ }, {
101
+ e: undefined,
102
+ t: undefined,
103
+ a: undefined
104
+ });
105
+ return _el$;
106
+ })();
107
+ };
108
+ Upload.request = request;
109
+ Upload.createUploadFile = createUploadFile;
110
+ delegateEvents(["click", "input"]);
111
+
112
+ export { Upload as default };
@@ -0,0 +1,4 @@
1
+ import { type Component } from 'solid-js';
2
+ import { type StyleProps } from '../../types';
3
+ declare const ColorPickUpSvg: Component<StyleProps>;
4
+ export default ColorPickUpSvg;
@@ -0,0 +1,25 @@
1
+ import { effect, setAttribute, style, template } from 'solid-js/web';
2
+ import { commonStyle } from './common.js';
3
+
4
+ var _tmpl$ = /*#__PURE__*/template(`<svg viewBox="0 0 1024 1024"xmlns=http://www.w3.org/2000/svg><path d="M856.2176 347.904l-90.624 90.624 53.504 53.504a52.3264 52.3264 0 1 1-73.984 73.984l-71.5776-71.6288-444.928 444.9792a25.6 25.6 0 0 1-13.4656 7.0656l-133.1712 24.576a25.6 25.6 0 0 1-29.7984-29.7984l24.576-133.1712a25.6 25.6 0 0 1 7.0656-13.4656l444.928-444.9792-71.68-71.6288a52.3264 52.3264 0 0 1 73.984-73.984l53.504 53.504 90.624-90.624a128 128 0 0 1 181.0432 181.0432z m-291.328 37.888l-439.296 439.3472-16.384 88.7808 88.832-16.384 439.296-439.296-72.448-72.448z">`);
5
+ const ColorPickUpSvg = props => {
6
+ return (() => {
7
+ var _el$ = _tmpl$();
8
+ effect(_p$ => {
9
+ var _v$ = props.class,
10
+ _v$2 = {
11
+ ...commonStyle,
12
+ ...props.style
13
+ };
14
+ _v$ !== _p$.e && setAttribute(_el$, "class", _p$.e = _v$);
15
+ _p$.t = style(_el$, _v$2, _p$.t);
16
+ return _p$;
17
+ }, {
18
+ e: undefined,
19
+ t: undefined
20
+ });
21
+ return _el$;
22
+ })();
23
+ };
24
+
25
+ export { ColorPickUpSvg as default };
@@ -0,0 +1,7 @@
1
+ import { type JSX, type Component } from 'solid-js';
2
+ import { type StyleProps } from '../../types';
3
+ declare const CrosshairSvg: Component<StyleProps & Pick<JSX.SvgSVGAttributes<SVGSVGElement>, 'ref'> & {
4
+ innerColor: string;
5
+ outerColor: string;
6
+ }>;
7
+ export default CrosshairSvg;
@@ -0,0 +1,51 @@
1
+ import { use, effect, setAttribute, style, template } from 'solid-js/web';
2
+ import { commonStyle } from './common.js';
3
+
4
+ var _tmpl$ = /*#__PURE__*/template(`<svg viewBox="0 0 26 26"version=1.1 xmlns=http://www.w3.org/2000/svg><line x1=50% x2=50% y2=100% stroke-width=3></line><line x1=50% x2=50% y2=100% stroke-width=1></line><line x1=100% y1=50% y2=50% stroke-width=3></line><line x1=100% y1=50% y2=50% stroke-width=1></line><circle cx=50% cy=50% r=32.7% fill=none stroke-width=3></circle><circle cx=50% cy=50% r=32.7% fill=none stroke-width=1>`);
5
+ const CrosshairSvg = props => {
6
+ return (() => {
7
+ var _el$ = _tmpl$(),
8
+ _el$2 = _el$.firstChild,
9
+ _el$3 = _el$2.nextSibling,
10
+ _el$4 = _el$3.nextSibling,
11
+ _el$5 = _el$4.nextSibling,
12
+ _el$6 = _el$5.nextSibling,
13
+ _el$7 = _el$6.nextSibling;
14
+ var _ref$ = props.ref;
15
+ typeof _ref$ === "function" ? use(_ref$, _el$) : props.ref = _el$;
16
+ effect(_p$ => {
17
+ var _v$ = props.class,
18
+ _v$2 = {
19
+ ...commonStyle,
20
+ ...props.style
21
+ },
22
+ _v$3 = props.outerColor,
23
+ _v$4 = props.innerColor,
24
+ _v$5 = props.outerColor,
25
+ _v$6 = props.innerColor,
26
+ _v$7 = props.outerColor,
27
+ _v$8 = props.innerColor;
28
+ _v$ !== _p$.e && setAttribute(_el$, "class", _p$.e = _v$);
29
+ _p$.t = style(_el$, _v$2, _p$.t);
30
+ _v$3 !== _p$.a && setAttribute(_el$2, "stroke", _p$.a = _v$3);
31
+ _v$4 !== _p$.o && setAttribute(_el$3, "stroke", _p$.o = _v$4);
32
+ _v$5 !== _p$.i && setAttribute(_el$4, "stroke", _p$.i = _v$5);
33
+ _v$6 !== _p$.n && setAttribute(_el$5, "stroke", _p$.n = _v$6);
34
+ _v$7 !== _p$.s && setAttribute(_el$6, "stroke", _p$.s = _v$7);
35
+ _v$8 !== _p$.h && setAttribute(_el$7, "stroke", _p$.h = _v$8);
36
+ return _p$;
37
+ }, {
38
+ e: undefined,
39
+ t: undefined,
40
+ a: undefined,
41
+ o: undefined,
42
+ i: undefined,
43
+ n: undefined,
44
+ s: undefined,
45
+ h: undefined
46
+ });
47
+ return _el$;
48
+ })();
49
+ };
50
+
51
+ export { CrosshairSvg as default };
@@ -0,0 +1,4 @@
1
+ import { type Component } from 'solid-js';
2
+ import { type StyleProps } from '../../types';
3
+ declare const Resize: Component<StyleProps>;
4
+ export default Resize;
@@ -0,0 +1,25 @@
1
+ import { effect, setAttribute, style, template } from 'solid-js/web';
2
+ import { commonStyle } from './common.js';
3
+
4
+ var _tmpl$ = /*#__PURE__*/template(`<svg viewBox="0 0 1024 1024"xmlns=http://www.w3.org/2000/svg><path fill=black stroke=white stroke-width=50 d="M531.2 179.2l130.133333 140.8c4.266667 4.266667 6.4 10.666667 6.4 14.933333-2.133333 4.266667-6.4 6.4-14.933333 6.4h-85.333333v341.333334h85.333333c8.533333 0 12.8 2.133333 14.933333 6.4 2.133333 4.266667 0 8.533333-6.4 14.933333l-130.133333 140.8c-4.266667 6.4-12.8 8.533333-19.2 8.533333s-14.933333-2.133333-19.2-8.533333l-130.133333-140.8c-4.266667-4.266667-6.4-10.666667-6.4-14.933333 2.133333-4.266667 6.4-6.4 14.933333-6.4h85.333333v-341.333334h-85.333333c-8.533333 0-12.8-2.133333-14.933333-6.4-2.133333-4.266667 0-8.533333 6.4-14.933333l130.133333-140.8c4.266667-6.4 12.8-8.533333 19.2-8.533333s14.933333 2.133333 19.2 8.533333z">`);
5
+ const Resize = props => {
6
+ return (() => {
7
+ var _el$ = _tmpl$();
8
+ effect(_p$ => {
9
+ var _v$ = props.class,
10
+ _v$2 = {
11
+ ...commonStyle,
12
+ ...props.style
13
+ };
14
+ _v$ !== _p$.e && setAttribute(_el$, "class", _p$.e = _v$);
15
+ _p$.t = style(_el$, _v$2, _p$.t);
16
+ return _p$;
17
+ }, {
18
+ e: undefined,
19
+ t: undefined
20
+ });
21
+ return _el$;
22
+ })();
23
+ };
24
+
25
+ export { Resize as default };
@@ -0,0 +1,4 @@
1
+ import { type Component } from 'solid-js';
2
+ import { type StyleProps } from '../../types';
3
+ declare const Rotate: Component<StyleProps>;
4
+ export default Rotate;
@@ -0,0 +1,20 @@
1
+ import { spread, mergeProps, template } from 'solid-js/web';
2
+ import { commonStyle } from './common.js';
3
+
4
+ var _tmpl$ = /*#__PURE__*/template(`<svg viewBox="0 0 27 27"xmlns=http://www.w3.org/2000/svg><g><path data-follow-fill=currentColor fill-rule=evenodd clip-rule=evenodd d="M13.55 27c7.269 0 13.161-5.893 13.161-13.162C26.711 6.569 20.82.677 13.55.677 6.281.677.389 6.569.389 13.838c0 7.269 5.892 13.161 13.161 13.161Zm8.062-10.286 2.062-2.872c.409-.556.22-1.08-.45-1.08h-1.17c-.508-4.132-4.116-7.479-8.502-7.479-2.324 0-4.443.99-5.932 2.52-.467.426-.467 1.015-.131 1.367.343.376.9.442 1.415 0a6.48 6.48 0 0 1 4.648-1.964c3.371 0 6.071 2.455 6.562 5.556h-1.276c-.655 0-.851.524-.45 1.08l2.07 2.872c.32.45.826.45 1.154 0Zm-8.061 5.678c2.34 0 4.459-.99 5.948-2.52.459-.434.459-1.023.131-1.375-.352-.376-.9-.433-1.424.008a6.457 6.457 0 0 1-4.655 1.964 6.61 6.61 0 0 1-6.555-5.556h1.26c.663 0 .851-.523.45-1.072l-2.062-2.88c-.327-.45-.834-.45-1.153 0l-2.07 2.872c-.401.557-.221 1.08.45 1.08h1.186c.507 4.133 4.116 7.48 8.494 7.48Z"fill=currentColor>`);
5
+ const Rotate = props => {
6
+ return (() => {
7
+ var _el$ = _tmpl$();
8
+ spread(_el$, mergeProps(props, {
9
+ get style() {
10
+ return {
11
+ ...commonStyle,
12
+ ...props.style
13
+ };
14
+ }
15
+ }), true, true);
16
+ return _el$;
17
+ })();
18
+ };
19
+
20
+ export { Rotate as default };
@@ -0,0 +1,4 @@
1
+ import { type Component } from 'solid-js';
2
+ import { type StyleProps } from '../../types';
3
+ declare const RotateArrowSvg: Component<StyleProps>;
4
+ export default RotateArrowSvg;
@@ -0,0 +1,21 @@
1
+ import { spread, mergeProps, template } from 'solid-js/web';
2
+ import { commonStyle } from './common.js';
3
+
4
+ var _tmpl$ = /*#__PURE__*/template(`<svg viewBox="0 0 1000 1000"xmlns=http://www.w3.org/2000/svg><path fill=black stroke-width=50 stroke=white d="M 100,700 l 210,-150 v 105 Q 700,700 655,310 h -105 L 700,100 l 150,210 h -105 Q 745,745 310,745 v 105 L 100,700">`);
5
+ const RotateArrowSvg = props => {
6
+ return (() => {
7
+ var _el$ = _tmpl$();
8
+ _el$.firstChild;
9
+ spread(_el$, mergeProps(props, {
10
+ get style() {
11
+ return {
12
+ ...commonStyle,
13
+ ...props.style
14
+ };
15
+ }
16
+ }), true, true);
17
+ return _el$;
18
+ })();
19
+ };
20
+
21
+ export { RotateArrowSvg as default };
@@ -0,0 +1,2 @@
1
+ import { type JSX } from 'solid-js';
2
+ export declare const commonStyle: JSX.CSSProperties;
@@ -0,0 +1,9 @@
1
+ const commonStyle = {
2
+ width: '1em',
3
+ height: '1em',
4
+ fill: 'currentColor',
5
+ display: 'inline-block',
6
+ 'vertical-align': '-0.125em'
7
+ };
8
+
9
+ export { commonStyle };
@@ -3,7 +3,7 @@ export interface Options<T> {
3
3
  defaultValue?: T;
4
4
  defaultValuePropName?: string;
5
5
  valuePropName?: string;
6
- trigger?: string | null;
6
+ trigger?: string | undefined | null | false;
7
7
  }
8
8
  export type Props = Record<string, any>;
9
9
  export interface StandardProps<T> {
@@ -1,29 +1,28 @@
1
- import { createSignal } from 'solid-js';
2
- import createUpdateEffect from './createUpdateEffect.js';
1
+ import { untrack, createSignal, createComputed, on } from 'solid-js';
3
2
 
4
3
  function createControllableValue(props, options = {}) {
5
4
  const {
6
- defaultValuePropName = 'defaultValue',
7
- valuePropName = 'value',
8
- trigger = 'onChange'
9
- } = options;
5
+ defaultValuePropName,
6
+ valuePropName,
7
+ trigger
8
+ } = Object.assign({
9
+ defaultValuePropName: 'defaultValue',
10
+ valuePropName: 'value',
11
+ trigger: 'onChange'
12
+ }, options);
10
13
  const getValue = () => props[valuePropName];
11
14
  // 为什么不使用 Object.hasOwn?
12
15
  // solid 的 proxy 对象对于任何 key,都会返回 true
13
16
  const isControlled = () => Object.keys(props).includes(valuePropName);
14
- let defaultValue = options.defaultValue;
15
- if (isControlled()) {
16
- defaultValue = getValue();
17
- } else if (Object.keys(props).includes(defaultValuePropName)) {
18
- defaultValue = props[defaultValuePropName];
19
- }
17
+ const defaultValue = Object.keys(props).includes(defaultValuePropName) ? untrack(() => props[defaultValuePropName]) : options.defaultValue;
20
18
  const [value, _setValue] = createSignal(defaultValue);
21
- createUpdateEffect(getValue, () => {
22
- if (!isControlled()) return;
23
- _setValue(getValue());
24
- });
19
+ createComputed(on(getValue, () => {
20
+ if (isControlled()) _setValue(getValue());
21
+ }));
25
22
  const setValue = v => {
26
- const newValue = typeof v === 'function' ? v(value()) : v;
23
+ const _value = untrack(value);
24
+ const newValue = typeof v === 'function' ? v(_value) : v;
25
+ if (newValue === _value) return;
27
26
  if (!isControlled()) {
28
27
  _setValue(newValue);
29
28
  }
@@ -3,6 +3,10 @@ import { type Accessor } from 'solid-js';
3
3
  * dom 节点显示或隐藏时的动画
4
4
  * @param target
5
5
  * @param when
6
- * @param className 动画类名
6
+ * @param props.name 动画类名
7
7
  */
8
- export default function createTransition(target: Accessor<HTMLElement | undefined | null>, when: Accessor<boolean>, className: string): void;
8
+ export default function createTransition(target: Accessor<HTMLElement | undefined | null>, when: Accessor<boolean>, props?: {
9
+ name?: string;
10
+ onAfterEnter?: (element: Element) => void;
11
+ onAfterExit?: (element: Element) => void;
12
+ }): void;