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
@@ -0,0 +1,71 @@
1
+ import { delegateEvents, effect, template, use } from 'solid-js/web';
2
+ import { useContext, createMemo } from 'solid-js';
3
+ import { clamp } from 'lodash-es';
4
+ import ColorPickerContext from './context.js';
5
+ import Color from './color.js';
6
+ import { setupGlobalDrag } from '../utils/setupGlobalDrag.js';
7
+
8
+ var _tmpl$ = /*#__PURE__*/template(`<div class="h-160px rounded-[--ant-border-radius-sm] cursor-pointer relative overflow-hidden"><div class="absolute border-2px border-solid border-[--ant-color-bg-container] rounded-1/2 w-16px h-16px -translate-1/2">`);
9
+ const ColorPickerSelect = () => {
10
+ let ref;
11
+ const context = useContext(ColorPickerContext);
12
+ const color = createMemo(() => context?.color() ?? new Color());
13
+ const setColor = (e, completed) => {
14
+ if (!ref) return;
15
+ const rect = ref.getBoundingClientRect();
16
+ const offsetX = e.clientX - rect.x;
17
+ const offsetY = e.clientY - rect.y;
18
+ const {
19
+ clientWidth,
20
+ clientHeight
21
+ } = ref;
22
+ const hsv = color().toHsv();
23
+ hsv.s = clamp(offsetX / clientWidth, 0, 1);
24
+ hsv.v = clamp(1 - offsetY / clientHeight, 0, 1);
25
+ context?.setColor(new Color(hsv), completed);
26
+ };
27
+ return (() => {
28
+ var _el$ = _tmpl$(),
29
+ _el$2 = _el$.firstChild;
30
+ _el$.$$click = e => {
31
+ setColor(e, true);
32
+ };
33
+ var _ref$ = ref;
34
+ typeof _ref$ === "function" ? use(_ref$, _el$) : ref = _el$;
35
+ _el$.style.setProperty("background-image", "linear-gradient(0deg, rgb(0, 0, 0), transparent), linear-gradient(90deg, rgb(255, 255, 255), rgba(255, 255, 255, 0))");
36
+ _el$2.$$mousedown = () => {
37
+ let isDrag = false;
38
+ setupGlobalDrag(
39
+ // eslint-disable-next-line solid/reactivity
40
+ e => {
41
+ setColor(e);
42
+ isDrag = true;
43
+ },
44
+ // eslint-disable-next-line solid/reactivity
45
+ () => {
46
+ if (isDrag) context?.setColor(color(), true);
47
+ });
48
+ };
49
+ _el$2.style.setProperty("box-shadow", "inset 0 0 1px 0 var(--ant-color-text-quaternary), 0 0 0 1px var(--ant-color-fill-secondary)");
50
+ effect(_p$ => {
51
+ var _v$ = color().toHueRgbString(),
52
+ _v$2 = `${color().toHsv().s * 100}%`,
53
+ _v$3 = `${(1 - color().toHsv().v) * 100}%`,
54
+ _v$4 = color().toRgbString();
55
+ _v$ !== _p$.e && ((_p$.e = _v$) != null ? _el$.style.setProperty("background-color", _v$) : _el$.style.removeProperty("background-color"));
56
+ _v$2 !== _p$.t && ((_p$.t = _v$2) != null ? _el$2.style.setProperty("left", _v$2) : _el$2.style.removeProperty("left"));
57
+ _v$3 !== _p$.a && ((_p$.a = _v$3) != null ? _el$2.style.setProperty("top", _v$3) : _el$2.style.removeProperty("top"));
58
+ _v$4 !== _p$.o && ((_p$.o = _v$4) != null ? _el$2.style.setProperty("background", _v$4) : _el$2.style.removeProperty("background"));
59
+ return _p$;
60
+ }, {
61
+ e: undefined,
62
+ t: undefined,
63
+ a: undefined,
64
+ o: undefined
65
+ });
66
+ return _el$;
67
+ })();
68
+ };
69
+ delegateEvents(["click", "mousedown"]);
70
+
71
+ export { ColorPickerSelect as default };
@@ -0,0 +1,3 @@
1
+ import { type Component } from 'solid-js';
2
+ declare const ColorPickerSlider: Component;
3
+ export default ColorPickerSlider;
@@ -0,0 +1,115 @@
1
+ import { delegateEvents, insert, createComponent, memo, effect, className, template } from 'solid-js/web';
2
+ import { useContext, createMemo, Show } from 'solid-js';
3
+ import cs from 'classnames';
4
+ import ColorPickerContext from './context.js';
5
+ import Slider from '../Slider/index.js';
6
+ import Color from './color.js';
7
+ import ColorPickUpSvg from '../assets/svg/ColorPickUp.js';
8
+
9
+ var _tmpl$ = /*#__PURE__*/template(`<div class="flex gap-[--ant-margin-sm] items-center"><div class="flex flex-col gap-[--ant-margin-sm] w-full"></div><div class="shrink-0 w-28px h-28px rounded-[--ant-border-radius-sm]"><div class="w-full h-full rounded-inherit">`),
10
+ _tmpl$2 = /*#__PURE__*/template(`<span class="shrink-0 text-18px cursor-pointer">`),
11
+ _tmpl$3 = /*#__PURE__*/template(`<div tabindex=0>`);
12
+ const ColorPickerSlider = () => {
13
+ const context = useContext(ColorPickerContext);
14
+ const color = createMemo(() => context?.color() ?? new Color());
15
+ return (() => {
16
+ var _el$ = _tmpl$(),
17
+ _el$2 = _el$.firstChild,
18
+ _el$3 = _el$2.nextSibling,
19
+ _el$4 = _el$3.firstChild;
20
+ insert(_el$2, createComponent(Slider, {
21
+ get value() {
22
+ return color().toHsv().h / 3.55;
23
+ },
24
+ onChange: v => {
25
+ const hsv = color().toHsv();
26
+ hsv.h = Math.round(v * 3.55);
27
+ context?.setColor(new Color(hsv));
28
+ },
29
+ onChangeComplete: () => {
30
+ context?.setColor(color(), true);
31
+ },
32
+ tooltip: false,
33
+ handle: () => getSliderHandle(color().toHueRgbString()),
34
+ style: {
35
+ '--ant-slider-rail-size': '8px',
36
+ '--ant-slider-handle-size': '10px',
37
+ '--ant-slider-rail-bg': 'linear-gradient(90deg, rgb(255, 0, 0) 0%, rgb(255, 255, 0) 17%, rgb(0, 255, 0) 33%, rgb(0, 255, 255) 50%, rgb(0, 0, 255) 67%, rgb(255, 0, 255) 83%, rgb(255, 0, 0) 100%)',
38
+ '--ant-slider-rail-hover-bg': 'var(--ant-slider-rail-bg)',
39
+ '--ant-slider-track-bg': 'transparent',
40
+ '--ant-slider-track-hover-bg': 'transparent'
41
+ },
42
+ railBgStyle: {
43
+ 'box-shadow': 'inset 0 0 1px 0 var(--ant-color-text-quaternary)'
44
+ }
45
+ }), null);
46
+ insert(_el$2, createComponent(Show, {
47
+ get when() {
48
+ return !context?.disabledAlpha();
49
+ },
50
+ get children() {
51
+ return createComponent(Slider, {
52
+ get value() {
53
+ return color().a * 100;
54
+ },
55
+ onChange: v => {
56
+ context?.setColor(color().clone().setAlpha(v / 100));
57
+ },
58
+ onChangeComplete: () => {
59
+ context?.setColor(color(), true);
60
+ },
61
+ min: 0,
62
+ step: 1,
63
+ tooltip: false,
64
+ handle: () => getSliderHandle(color().toRgbString()),
65
+ get style() {
66
+ return {
67
+ '--ant-slider-rail-size': '8px',
68
+ '--ant-slider-handle-size': '10px',
69
+ '--ant-slider-rail-bg': `linear-gradient(90deg, ${color().clone().setAlpha(0).toRgbString()} 0%, ${color().toHexString()} 100%)`,
70
+ '--ant-slider-rail-hover-bg': 'var(--ant-slider-rail-bg)',
71
+ '--ant-slider-track-bg': 'transparent',
72
+ '--ant-slider-track-hover-bg': 'transparent',
73
+ 'background-image': 'conic-gradient(var(--ant-color-fill-secondary) 0 25%, transparent 0 50%, var(--ant-color-fill-secondary) 0 75%, transparent 0)',
74
+ 'background-size': '8px 8px'
75
+ };
76
+ },
77
+ railBgStyle: {
78
+ 'box-shadow': 'inset 0 0 1px 0 var(--ant-color-text-quaternary)'
79
+ }
80
+ });
81
+ }
82
+ }), null);
83
+ _el$3.style.setProperty("background-image", "conic-gradient(var(--ant-color-fill-secondary) 0 25%, transparent 0 50%, var(--ant-color-fill-secondary) 0 75%, transparent 0)");
84
+ _el$3.style.setProperty("background-size", "50% 50%");
85
+ _el$3.style.setProperty("box-shadow", "inset 0 0 1px 0 var(--ant-color-text-quaternary)");
86
+ insert(_el$, (() => {
87
+ var _c$ = memo(() => !!window.EyeDropper);
88
+ return () => _c$() && (() => {
89
+ var _el$5 = _tmpl$2();
90
+ _el$5.$$click = () => {
91
+ if (!window.EyeDropper) return;
92
+ const eyeDropper = new window.EyeDropper();
93
+ eyeDropper.open().then(result => {
94
+ context?.setColor(new Color(result.sRGBHex), true);
95
+ }).catch(console.error);
96
+ };
97
+ insert(_el$5, createComponent(ColorPickUpSvg, {}));
98
+ return _el$5;
99
+ })();
100
+ })(), null);
101
+ effect(() => color().toRgbString() != null ? _el$4.style.setProperty("background-color", color().toRgbString()) : _el$4.style.removeProperty("background-color"));
102
+ return _el$;
103
+ })();
104
+ };
105
+ const getSliderHandle = bgColor => {
106
+ return (() => {
107
+ var _el$6 = _tmpl$3();
108
+ bgColor != null ? _el$6.style.setProperty("background", bgColor) : _el$6.style.removeProperty("background");
109
+ effect(() => className(_el$6, cs('box-border w-[--ant-slider-handle-size] h-[--ant-slider-handle-size] rounded-1/2 border-solid border-2px border-[--ant-color-bg-container-secondary] cursor-pointer', '[box-shadow:inset_0_0_1px_0_var(--ant-color-text-quaternary),0_0_0_1px_var(--ant-color-fill-secondary)]', 'focus:[box-shadow:inset_0_0_1px_0_var(--ant-color-text-quaternary),0_0_0_1px_var(--ant-color-primary-active)]')));
110
+ return _el$6;
111
+ })();
112
+ };
113
+ delegateEvents(["click"]);
114
+
115
+ export { ColorPickerSlider as default };
@@ -0,0 +1,24 @@
1
+ import { TinyColor, type TinyColorOptions, type RGB, type RGBA, type HSL, type HSLA, type HSV, type HSVA, type CMYK, type Numberify } from '@ctrl/tinycolor';
2
+ export type ColorInput = string | number | null | undefined | RGB | RGBA | HSL | HSLA | HSV | HSVA | CMYK | Color;
3
+ /**
4
+ * 扩展 TinyColor
5
+ * 用于在 HSV 格式下,当 s 或者 v 为 0 时,正常保存 h 值
6
+ */
7
+ declare class Color extends TinyColor {
8
+ /** Hue */
9
+ private readonly h;
10
+ /** Saturation */
11
+ private readonly s;
12
+ /** Value */
13
+ private readonly v;
14
+ constructor(color?: ColorInput, opts?: Partial<TinyColorOptions>);
15
+ toHsv(): Numberify<HSVA>;
16
+ toHsvString(): string;
17
+ /**
18
+ * 获取色相对应的颜色 rgb 字符串
19
+ * @returns string
20
+ */
21
+ toHueRgbString(): string;
22
+ clone(): Color;
23
+ }
24
+ export default Color;
@@ -0,0 +1,63 @@
1
+ import { TinyColor, stringInputToObject, isValidCSSUnit } from '@ctrl/tinycolor';
2
+ import { isNil } from 'lodash-es';
3
+
4
+ /**
5
+ * 扩展 TinyColor
6
+ * 用于在 HSV 格式下,当 s 或者 v 为 0 时,正常保存 h 值
7
+ */
8
+ class Color extends TinyColor {
9
+ /** Hue */
10
+ h = 0;
11
+ /** Saturation */
12
+ s = 0;
13
+ /** Value */
14
+ v = 0;
15
+ constructor(color, opts) {
16
+ color = isNil(color) ? undefined : color;
17
+ color = color instanceof Color ? color.toHsv() : color;
18
+ super(color, opts);
19
+ if (typeof color === 'string') {
20
+ color = stringInputToObject(color);
21
+ }
22
+ if (typeof color === 'object') {
23
+ if (isHsv(color)) {
24
+ this.h = Number(color.h);
25
+ this.s = Number(color.s);
26
+ this.v = Number(color.v);
27
+ this.a = isHsva(color) ? color.a : 1;
28
+ }
29
+ }
30
+ }
31
+ toHsv() {
32
+ const hsv = super.toHsv();
33
+ if (this.equals(new TinyColor('black'))) {
34
+ hsv.h = this.h;
35
+ hsv.s = this.s;
36
+ hsv.v = this.v;
37
+ }
38
+ return hsv;
39
+ }
40
+ toHsvString() {
41
+ const hsv = this.toHsv();
42
+ return `hsva(${hsv.h}, ${hsv.s}, ${hsv.v}, ${hsv.a})`;
43
+ }
44
+ /**
45
+ * 获取色相对应的颜色 rgb 字符串
46
+ * @returns string
47
+ */
48
+ toHueRgbString() {
49
+ const hsv = this.toHsv();
50
+ return new Color(`hsv(${hsv.h}, 1, 1)`).toRgbString();
51
+ }
52
+ clone() {
53
+ return new Color(this);
54
+ }
55
+ }
56
+ function isHsv(color) {
57
+ return !isNil(color) && typeof color === 'object' && isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v);
58
+ }
59
+ function isHsva(color) {
60
+ return isHsv(color) && isValidCSSUnit(color.a);
61
+ }
62
+
63
+ export { Color as default };
@@ -0,0 +1,9 @@
1
+ import { type Accessor } from 'solid-js';
2
+ import type Color from './color';
3
+ interface ColorPickerContextProps {
4
+ color: Accessor<Color>;
5
+ setColor: (color: Color, completed?: boolean) => void;
6
+ disabledAlpha: Accessor<boolean>;
7
+ }
8
+ declare const ColorPickerContext: import("solid-js").Context<ColorPickerContextProps | undefined>;
9
+ export default ColorPickerContext;
@@ -0,0 +1,5 @@
1
+ import { createContext } from 'solid-js';
2
+
3
+ const ColorPickerContext = createContext();
4
+
5
+ export { ColorPickerContext as default };
@@ -0,0 +1,31 @@
1
+ import { type Component } from 'solid-js';
2
+ import { type PopoverProps } from '../Popover';
3
+ import { type ComponentSize } from '../types';
4
+ export interface ColorPickerProps extends Pick<PopoverProps, 'placement'> {
5
+ defaultValue?: string | null;
6
+ value?: string | null;
7
+ /**
8
+ * @param value Hex 格式
9
+ * @returns
10
+ */
11
+ onChange?: (value: string | null) => void;
12
+ /**
13
+ * 颜色选择完成的回调,通过 onChangeComplete 对 value 受控时拖拽不会改变展示颜色
14
+ * @param value Hex 格式
15
+ * @returns
16
+ */
17
+ onChangeComplete?: (value: string | null) => void;
18
+ allowClear?: boolean;
19
+ disabled?: boolean;
20
+ /**
21
+ * 禁止透明度
22
+ */
23
+ disabledAlpha?: boolean;
24
+ /**
25
+ * 大小,提供 large middle 和 small 三种大小
26
+ * 默认 'middle'
27
+ */
28
+ size?: ComponentSize;
29
+ }
30
+ declare const ColorPicker: Component<ColorPickerProps>;
31
+ export default ColorPicker;
@@ -0,0 +1,139 @@
1
+ import { delegateEvents, createComponent, insert, effect, className, template } from 'solid-js/web';
2
+ import cs from 'classnames';
3
+ import { createSignal, untrack, createRenderEffect, createMemo, Show } from 'solid-js';
4
+ import Color from './color.js';
5
+ import Element from '../Element/index.js';
6
+ import Popover from '../Popover/index.js';
7
+ import ColorPickerSelect from './ColorPickerSelect.js';
8
+ import ColorPickerContext from './context.js';
9
+ import ColorPickerSlider from './ColorPickerSlider.js';
10
+ import ColorPickerInput from './ColorPickerInput.js';
11
+ import useComponentSize from '../hooks/useComponentSize.js';
12
+
13
+ var _tmpl$ = /*#__PURE__*/template(`<div class="flex justify-end mb-[--ant-margin-xs]"><div class="w-24px h-24px rounded-[--ant-border-radius-sm] relative overflow-hidden border-1px border-solid border-[--ant-color-split] cursor-pointer hover:border-[--ant-color-border]"><div class="absolute top-1/2 left-1/2 -translate-1/2 w-200% h-2px bg-[--ant-color-error] rotate-135deg">`),
14
+ _tmpl$2 = /*#__PURE__*/template(`<div class="w-234px flex flex-col gap-[--ant-margin-sm]">`),
15
+ _tmpl$3 = /*#__PURE__*/template(`<div><div class="w-full h-full">`),
16
+ _tmpl$4 = /*#__PURE__*/template(`<div>`),
17
+ _tmpl$5 = /*#__PURE__*/template(`<div><div class="absolute top-1/2 left-1/2 -translate-1/2 w-200% h-2px bg-[--ant-color-error] rotate-135deg">`);
18
+ // TODO 超出范围
19
+ const ColorPicker = props => {
20
+ const isControlled = () => Object.keys(props).includes('value');
21
+ const [innerColor, _setInnerColor] = createSignal(untrack(() => new Color(props.defaultValue)));
22
+ createRenderEffect(() => {
23
+ if (isControlled()) {
24
+ _setInnerColor(new Color(props.value));
25
+ }
26
+ });
27
+ const disabledAlpha = createMemo(() => !!props.disabledAlpha);
28
+ const setColor = (value, completed) => {
29
+ _setInnerColor(value);
30
+ const valueStr = value.isValid ? disabledAlpha() || value.a === 1 ? value.toHexString() : value.toHex8String() : null;
31
+ props.onChange?.(valueStr);
32
+ if (completed) props.onChangeComplete?.(valueStr);
33
+ };
34
+ const [open, setOpen] = createSignal(false);
35
+ const size = useComponentSize(() => props.size);
36
+ const color = createMemo(() => isControlled() ? new Color(props.value) : innerColor());
37
+ const getPopoverContent = close => createComponent(ColorPickerContext.Provider, {
38
+ value: {
39
+ color: innerColor,
40
+ setColor,
41
+ disabledAlpha
42
+ },
43
+ get children() {
44
+ return [createComponent(Show, {
45
+ get when() {
46
+ return props.allowClear;
47
+ },
48
+ get children() {
49
+ var _el$ = _tmpl$(),
50
+ _el$2 = _el$.firstChild;
51
+ _el$2.$$click = () => {
52
+ setColor(new Color());
53
+ close();
54
+ };
55
+ return _el$;
56
+ }
57
+ }), (() => {
58
+ var _el$3 = _tmpl$2();
59
+ insert(_el$3, createComponent(ColorPickerSelect, {}), null);
60
+ insert(_el$3, createComponent(ColorPickerSlider, {}), null);
61
+ insert(_el$3, createComponent(ColorPickerInput, {}), null);
62
+ return _el$3;
63
+ })()];
64
+ }
65
+ });
66
+ return createComponent(Popover, {
67
+ get open() {
68
+ return open();
69
+ },
70
+ onOpenChange: setOpen,
71
+ get trigger() {
72
+ return props.disabled ? false : 'click';
73
+ },
74
+ content: getPopoverContent,
75
+ get placement() {
76
+ return props.placement ?? 'bottomLeft';
77
+ },
78
+ get children() {
79
+ return createComponent(Element, {
80
+ get ["class"]() {
81
+ return cs('inline-block', props.disabled && 'cursor-not-allowed');
82
+ },
83
+ get children() {
84
+ var _el$4 = _tmpl$4();
85
+ _el$4.style.setProperty("--border-width", "1px");
86
+ insert(_el$4, createComponent(Show, {
87
+ get when() {
88
+ return color().isValid;
89
+ },
90
+ get fallback() {
91
+ return (() => {
92
+ var _el$7 = _tmpl$5();
93
+ effect(() => className(_el$7, cs('w-[--inner-size] h-[--inner-size] rounded-[--ant-border-radius-sm] relative overflow-hidden border-1px border-solid border-[--ant-color-split]')));
94
+ return _el$7;
95
+ })();
96
+ },
97
+ get children() {
98
+ var _el$5 = _tmpl$3(),
99
+ _el$6 = _el$5.firstChild;
100
+ _el$5.style.setProperty("box-shadow", "inset 0 0 1px 0 var(--ant-color-text-quaternary)");
101
+ _el$5.style.setProperty("background-image", "conic-gradient(var(--ant-color-fill-secondary) 0 25%, transparent 0 50%, var(--ant-color-fill-secondary) 0 75%, transparent 0)");
102
+ _el$5.style.setProperty("background-size", "50% 50%");
103
+ _el$6.style.setProperty("box-shadow", "inset 0 0 0 var(--ant-line-width) var(--ant-color-fill-secondary)");
104
+ effect(_p$ => {
105
+ var _v$ = cs('w-[--inner-size] h-[--inner-size] rounded-[--ant-border-radius-sm] overflow-hidden'),
106
+ _v$2 = color().toRgbString();
107
+ _v$ !== _p$.e && className(_el$5, _p$.e = _v$);
108
+ _v$2 !== _p$.t && ((_p$.t = _v$2) != null ? _el$6.style.setProperty("background-color", _v$2) : _el$6.style.removeProperty("background-color"));
109
+ return _p$;
110
+ }, {
111
+ e: undefined,
112
+ t: undefined
113
+ });
114
+ return _el$5;
115
+ }
116
+ }));
117
+ effect(_p$ => {
118
+ var _v$3 = cs('p-[calc(var(--ant-padding-xxs)-var(--border-width))] border-width-[--border-width] border-[--ant-color-border] border-solid rounded-[--ant-border-radius] cursor-pointer hover:border-[--ant-color-primary-hover]', open() && '!border-[--ant-color-primary-active]', props.disabled ? 'pointer-events-none bg-[--ant-color-bg-container-disabled]' : 'bg-[--ant-color-bg-elevated]'),
119
+ _v$4 = {
120
+ small: '16px',
121
+ middle: '24px',
122
+ large: '32px'
123
+ }[size()];
124
+ _v$3 !== _p$.e && className(_el$4, _p$.e = _v$3);
125
+ _v$4 !== _p$.t && ((_p$.t = _v$4) != null ? _el$4.style.setProperty("--inner-size", _v$4) : _el$4.style.removeProperty("--inner-size"));
126
+ return _p$;
127
+ }, {
128
+ e: undefined,
129
+ t: undefined
130
+ });
131
+ return _el$4;
132
+ }
133
+ });
134
+ }
135
+ });
136
+ };
137
+ delegateEvents(["click"]);
138
+
139
+ export { ColorPicker as default };
@@ -0,0 +1,9 @@
1
+ import { type Accessor } from 'solid-js';
2
+ declare const CommandContext: import("solid-js").Context<{
3
+ open: Accessor<boolean>;
4
+ onOk: (value: any) => void;
5
+ onCancel: () => void;
6
+ dispose: () => void;
7
+ onAutoDispose: () => void;
8
+ }>;
9
+ export default CommandContext;
@@ -0,0 +1,11 @@
1
+ import { createContext } from 'solid-js';
2
+
3
+ const CommandContext = createContext({
4
+ open: () => false,
5
+ onOk: () => {},
6
+ onCancel: () => {},
7
+ dispose: () => {},
8
+ onAutoDispose: () => {}
9
+ });
10
+
11
+ export { CommandContext as default };
@@ -0,0 +1,17 @@
1
+ import { type JSXElement, type Component } from 'solid-js';
2
+ export interface BaseCommandIntance<P extends {} | undefined = undefined, R = void, S = P extends undefined ? () => Promise<R> : (props: P) => Promise<R>> {
3
+ show: S;
4
+ hide: () => void;
5
+ dispose: () => void;
6
+ isOpen: () => boolean;
7
+ }
8
+ /**
9
+ * createCommand
10
+ * @param component
11
+ * @param contextHolder 如果为 true,则会返回 getContextHolder
12
+ */
13
+ declare function createCommand<P extends {} = {}, R = void>(component: Component<P>): BaseCommandIntance<P, R>;
14
+ declare function createCommand<P extends {} = {}, R = void>(component: Component<P>, contextHolder: true): BaseCommandIntance<P, R> & {
15
+ getContextHolder: () => JSXElement;
16
+ };
17
+ export default createCommand;
@@ -0,0 +1,112 @@
1
+ import { createComponent, Dynamic, mergeProps, render } from 'solid-js/web';
2
+ import { createSignal, untrack, Show, createRenderEffect } from 'solid-js';
3
+ import CommandContext from './context.js';
4
+ import DelayShow from '../DelayShow/index.js';
5
+
6
+ function createCommand(component, contextHolder) {
7
+ const [open, _setOpen] = createSignal(false);
8
+ const [forceDestroy, setForceDestroy] = createSignal(false);
9
+ const setOpen = value => {
10
+ if (value) setForceDestroy(false);
11
+ _setOpen(value);
12
+ };
13
+ const [props, setProps] = createSignal();
14
+ let resolve;
15
+ let reject;
16
+ let disposeRef;
17
+ const dispose = () => {
18
+ _setOpen(false);
19
+ setForceDestroy(true);
20
+ disposeRef?.();
21
+ disposeRef = undefined;
22
+ };
23
+ const hide = () => {
24
+ setOpen(false);
25
+ };
26
+ const onOk = value => {
27
+ hide();
28
+ resolve(value);
29
+ };
30
+ const onCancel = () => {
31
+ hide();
32
+ reject();
33
+ };
34
+ const isOpen = () => untrack(open);
35
+ // 监听关闭事件,自动销毁
36
+ const onAutoDispose = () => {
37
+ createRenderEffect(() => {
38
+ if (!open()) dispose();
39
+ });
40
+ };
41
+ const getContextHolder = () => createComponent(DelayShow, {
42
+ get when() {
43
+ return open();
44
+ },
45
+ get children() {
46
+ return createComponent(Show, {
47
+ get when() {
48
+ return !forceDestroy();
49
+ },
50
+ get children() {
51
+ return createComponent(CommandContext.Provider, {
52
+ value: {
53
+ open,
54
+ onOk,
55
+ onCancel,
56
+ dispose,
57
+ onAutoDispose
58
+ },
59
+ get children() {
60
+ return createComponent(Dynamic, mergeProps({
61
+ component: component
62
+ }, props));
63
+ }
64
+ });
65
+ }
66
+ });
67
+ }
68
+ });
69
+ if (contextHolder) {
70
+ const show = async _props => {
71
+ setProps(_props);
72
+ setOpen(true);
73
+ return await new Promise((_resolve, _reject) => {
74
+ resolve = _resolve;
75
+ reject = _reject;
76
+ });
77
+ };
78
+ return {
79
+ show,
80
+ hide,
81
+ dispose,
82
+ isOpen,
83
+ getContextHolder
84
+ };
85
+ }
86
+ const show = async _props => {
87
+ setProps(_props);
88
+ const alreadyOpen = isOpen();
89
+ setOpen(true);
90
+ return await new Promise((_resolve, _reject) => {
91
+ if (!alreadyOpen) {
92
+ const div = document.createElement('div');
93
+ document.body.appendChild(div);
94
+ const renderDispose = render(getContextHolder, div);
95
+ disposeRef = () => {
96
+ renderDispose();
97
+ document.body.removeChild(div);
98
+ };
99
+ }
100
+ resolve = _resolve;
101
+ reject = _reject;
102
+ });
103
+ };
104
+ return {
105
+ show,
106
+ hide,
107
+ dispose,
108
+ isOpen
109
+ };
110
+ }
111
+
112
+ export { createCommand as default };
@@ -0,0 +1,7 @@
1
+ import createCommand from './createCommand';
2
+ import useCommandProps from './useCommandProps';
3
+ declare const _default: {
4
+ createCommand: typeof createCommand;
5
+ useCommandProps: typeof useCommandProps;
6
+ };
7
+ export default _default;
@@ -0,0 +1,9 @@
1
+ import createCommand from './createCommand.js';
2
+ import useCommandProps from './useCommandProps.js';
3
+
4
+ var Command = {
5
+ createCommand,
6
+ useCommandProps
7
+ };
8
+
9
+ export { Command as default };
@@ -0,0 +1,13 @@
1
+ declare function useCommandProps<T = void>(): {
2
+ open: import("solid-js").Accessor<boolean>;
3
+ onOk: (value: T) => void;
4
+ onCancel: () => void;
5
+ dispose: () => void;
6
+ onAutoDispose: () => void;
7
+ getProps: () => {
8
+ open: boolean;
9
+ onOk: () => void;
10
+ onCancel: () => void;
11
+ };
12
+ };
13
+ export default useCommandProps;