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,68 @@
1
+ import { delegateEvents, createComponent, effect, className, insert, template } from 'solid-js/web';
2
+ import { Show } from 'solid-js';
3
+ import cs from 'classnames';
4
+ import createControllableValue from '../hooks/createControllableValue.js';
5
+ import Button from './Button.js';
6
+ import Group from './Group.js';
7
+ import { wave } from '../utils/animation.js';
8
+ import Element from '../Element/index.js';
9
+
10
+ var _tmpl$ = /*#__PURE__*/template(`<span><input class="m-0 hidden"type=radio><span>`),
11
+ _tmpl$2 = /*#__PURE__*/template(`<span class=px-8px>`);
12
+ const Radio = props => {
13
+ const [checked, setChecked] = createControllableValue(props, {
14
+ defaultValue: false,
15
+ defaultValuePropName: 'defaultChecked',
16
+ valuePropName: 'checked',
17
+ trigger: null
18
+ });
19
+ return createComponent(Element, {
20
+ tag: "label",
21
+ get ["class"]() {
22
+ return cs('inline-flex cursor-pointer inline-flex items-center', props.disabled && 'text-[var(--ant-color-text-disabled)] cursor-not-allowed');
23
+ },
24
+ get children() {
25
+ return [(() => {
26
+ var _el$ = _tmpl$(),
27
+ _el$2 = _el$.firstChild,
28
+ _el$3 = _el$2.nextSibling;
29
+ _el$.$$click = e => {
30
+ wave(e.currentTarget, 'var(--ant-color-primary)');
31
+ };
32
+ _el$2.$$input = e => {
33
+ setChecked(e.target.checked);
34
+ props.onChange?.(e);
35
+ };
36
+ effect(_p$ => {
37
+ var _v$ = cs('relative w-16px h-16px rounded-50%'),
38
+ _v$2 = props.disabled,
39
+ _v$3 = cs('absolute inset-0 rounded-inherit [border:1px_solid_var(--ant-color-border)] bg-[var(--ant-color-bg-container)]', checked() && (props.disabled ? 'flex justify-center items-center before:content-empty before:block before:w-8px before:h-8px before:bg-[var(--ant-radio-dot-color-disabled)] before:rounded-50%' : '[border:5px_solid_var(--ant-color-primary)]'), props.disabled && 'bg-[var(--ant-color-bg-container-disabled)]');
40
+ _v$ !== _p$.e && className(_el$, _p$.e = _v$);
41
+ _v$2 !== _p$.t && (_el$2.disabled = _p$.t = _v$2);
42
+ _v$3 !== _p$.a && className(_el$3, _p$.a = _v$3);
43
+ return _p$;
44
+ }, {
45
+ e: undefined,
46
+ t: undefined,
47
+ a: undefined
48
+ });
49
+ effect(() => _el$2.checked = checked());
50
+ return _el$;
51
+ })(), createComponent(Show, {
52
+ get when() {
53
+ return props.children;
54
+ },
55
+ get children() {
56
+ var _el$4 = _tmpl$2();
57
+ insert(_el$4, () => props.children);
58
+ return _el$4;
59
+ }
60
+ })];
61
+ }
62
+ });
63
+ };
64
+ Radio.Button = Button;
65
+ Radio.Group = Group;
66
+ delegateEvents(["click", "input"]);
67
+
68
+ export { Radio as default };
@@ -0,0 +1,23 @@
1
+ import { type JSXElement, type JSX, type Accessor } from 'solid-js';
2
+ export interface RangeInputProps<T> {
3
+ multiple?: boolean;
4
+ defaultValue?: T[] | undefined | null;
5
+ value?: T[] | undefined | null;
6
+ onChange?: (value: T[]) => void;
7
+ optionLabelRender?: (v: T) => JSXElement;
8
+ placeholder?: [string?, string?];
9
+ allowClear?: boolean;
10
+ disabled?: boolean;
11
+ class?: string;
12
+ content: (options: {
13
+ currentFocusType: Accessor<'start' | 'end'>;
14
+ tempValue: Accessor<Array<T | undefined>>;
15
+ setSingleValue: (value: T) => void;
16
+ }) => JSXElement;
17
+ /**
18
+ * 设置校验状态
19
+ */
20
+ status?: 'error' | 'warning';
21
+ }
22
+ declare function RangeInput<T = string>(props: RangeInputProps<T>): JSX.Element;
23
+ export default RangeInput;
@@ -0,0 +1,208 @@
1
+ import { delegateEvents, createComponent, use, insert, effect, setAttribute, className, style, template } from 'solid-js/web';
2
+ import { useContext, createSignal, createEffect, on, createMemo, Show } from 'solid-js';
3
+ import cs from 'classnames';
4
+ import { compact, isNil } from 'lodash-es';
5
+ import Tooltip from '../Tooltip/index.js';
6
+ import createControllableValue from '../hooks/createControllableValue.js';
7
+ import useClickAway from '../hooks/useClickAway.js';
8
+ import Element from '../Element/index.js';
9
+ import CompactContext from '../Compact/context.js';
10
+
11
+ var _tmpl$ = /*#__PURE__*/template(`<span class="i-ant-design:close-circle-filled cursor-pointer text-[var(--ant-color-text-quaternary)] hover:text-[var(--ant-color-text-tertiary)] active:text-[var(--ant-color-text)]">`),
12
+ _tmpl$2 = /*#__PURE__*/template(`<div tabindex=0><div class=truncate></div><span class="i-ant-design:swap-right-outlined w-32px"></span><div class=truncate></div><div aria-label=active-bar class="h-1px bg-[var(--ant-color-primary)] absolute bottom-0 transition-left"></div><div class="absolute top-0 bottom-0 right-11px flex items-center">`),
13
+ _tmpl$3 = /*#__PURE__*/template(`<div class="w-200px max-h-400px overflow-auto">`),
14
+ _tmpl$4 = /*#__PURE__*/template(`<input class="h-30px [outline:none] bg-inherit placeholder-text-[var(--ant-color-text-placeholder)]"readonly>`),
15
+ _tmpl$5 = /*#__PURE__*/template(`<span class="i-ant-design:down-outlined text-[var(--ant-color-text-quaternary)]">`);
16
+ const statusClassDict = {
17
+ default: (disabled, focus) => cs('[border:1px_solid_var(--ant-color-border)]', !disabled && 'hover:border-[var(--ant-color-primary)] focus-within:border-[var(--ant-color-primary)] focus-within:[box-shadow:0_0_0_2px_var(--ant-control-outline)]', focus && 'border-[var(--ant-color-primary)] [box-shadow:0_0_0_2px_var(--ant-control-outline)]'),
18
+ error: (disabled, focus) => cs('[border:1px_solid_var(--ant-color-error)]', !disabled && 'hover:border-[var(--ant-color-error-border-hover)] focus-within:[box-shadow:0_0_0_2px_rgba(255,38,5,.06)]', focus && '[box-shadow:0_0_0_2px_rgba(255,38,5,.06)]'),
19
+ warning: (disabled, focus) => cs('[border:1px_solid_var(--ant-color-warning)]', !disabled && 'hover:border-[var(--ant-color-warning-border-hover)] focus-within:[box-shadow:0_0_0_2px_rgba(255,215,5,.1)]', focus && '[box-shadow:0_0_0_2px_rgba(255,215,5,.1)]')
20
+ };
21
+ function RangeInput(props) {
22
+ let container;
23
+ let startDom;
24
+ let endDom;
25
+ let tooltipContent;
26
+ const {
27
+ compact: isCompact
28
+ } = useContext(CompactContext);
29
+ const [currentFocusType, setCurrentFocusType] = createSignal('start');
30
+ const [value, setValue] = createControllableValue(props, {
31
+ defaultValue: []
32
+ });
33
+ // 用于统计聚焦后的设置次数,大于等于 2 时退出聚焦
34
+ let setSingleValueCount = 0;
35
+ const [tempValue, setTempValue] = createSignal([]);
36
+ createEffect(() => {
37
+ setTempValue(value() ?? []);
38
+ });
39
+ const setSingleValue = v => {
40
+ setSingleValueCount++;
41
+ if (currentFocusType() === 'start') {
42
+ setTempValue(arr => [v, arr[1]]);
43
+ if (setSingleValueCount > 1) {
44
+ setOpen(false);
45
+ } else {
46
+ setCurrentFocusType('end');
47
+ }
48
+ } else {
49
+ setTempValue(arr => [arr[0], v]);
50
+ if (setSingleValueCount > 1) {
51
+ setOpen(false);
52
+ } else {
53
+ setCurrentFocusType('start');
54
+ }
55
+ }
56
+ };
57
+ const [open, setOpen] = createSignal(false);
58
+ useClickAway(() => setOpen(false), () => compact([container, tooltipContent]));
59
+ createEffect(on(open, input => {
60
+ setSingleValueCount = 0;
61
+ if (!input) {
62
+ const [start, end] = tempValue();
63
+ if (!isNil(start) && !isNil(end)) {
64
+ setValue(tempValue());
65
+ } else {
66
+ setTempValue(value() ?? []);
67
+ }
68
+ }
69
+ }, {
70
+ defer: true
71
+ }));
72
+ const [width, setWidth] = createSignal(0);
73
+ const [hover, setHover] = createSignal(false);
74
+ const showClearBtn = createMemo(() => props.allowClear && hover() && tempValue().length > 0);
75
+ const [activeBarStyle, setActiveBarStyle] = createSignal();
76
+ const setActiveBarStyleByDom = dom => {
77
+ setActiveBarStyle({
78
+ left: `${dom.offsetLeft}px`,
79
+ width: `${dom.clientWidth}px`
80
+ });
81
+ };
82
+ createEffect(() => {
83
+ if (!open()) return;
84
+ if (currentFocusType() === 'start') {
85
+ setActiveBarStyleByDom(startDom);
86
+ } else {
87
+ setActiveBarStyleByDom(endDom);
88
+ }
89
+ });
90
+ const optionLabelRender = v => props.optionLabelRender ? props.optionLabelRender(v) : String(v);
91
+ return createComponent(Element, {
92
+ get ["class"]() {
93
+ return cs('rounded-6px', isCompact && 'ant-compact-item', props.class, props.disabled && 'cursor-not-allowed');
94
+ },
95
+ get children() {
96
+ return createComponent(Tooltip, {
97
+ plain: true,
98
+ get open() {
99
+ return open();
100
+ },
101
+ onOpenChange: setOpen,
102
+ trigger: false,
103
+ placement: "bottomLeft",
104
+ arrow: false,
105
+ contentStyle: {
106
+ padding: 0
107
+ },
108
+ content: () => (() => {
109
+ var _el$8 = _tmpl$3();
110
+ var _ref$4 = tooltipContent;
111
+ typeof _ref$4 === "function" ? use(_ref$4, _el$8) : tooltipContent = _el$8;
112
+ insert(_el$8, () => props.content({
113
+ currentFocusType,
114
+ tempValue,
115
+ setSingleValue
116
+ }));
117
+ effect(() => `${width()}px` != null ? _el$8.style.setProperty("width", `${width()}px`) : _el$8.style.removeProperty("width"));
118
+ return _el$8;
119
+ })(),
120
+ get children() {
121
+ var _el$ = _tmpl$2(),
122
+ _el$2 = _el$.firstChild,
123
+ _el$3 = _el$2.nextSibling,
124
+ _el$4 = _el$3.nextSibling,
125
+ _el$5 = _el$4.nextSibling,
126
+ _el$6 = _el$5.nextSibling;
127
+ _el$.addEventListener("mouseleave", () => setHover(false));
128
+ _el$.addEventListener("mouseenter", () => setHover(true));
129
+ _el$.$$click = e => {
130
+ setOpen(true);
131
+ setWidth(e.currentTarget.offsetWidth);
132
+ setCurrentFocusType(e.target !== endDom ? 'start' : 'end');
133
+ };
134
+ var _ref$ = container;
135
+ typeof _ref$ === "function" ? use(_ref$, _el$) : container = _el$;
136
+ var _ref$2 = startDom;
137
+ typeof _ref$2 === "function" ? use(_ref$2, _el$2) : startDom = _el$2;
138
+ insert(_el$2, createComponent(Show, {
139
+ get when() {
140
+ return !isNil(tempValue()[0]);
141
+ },
142
+ get fallback() {
143
+ return (() => {
144
+ var _el$9 = _tmpl$4();
145
+ effect(() => setAttribute(_el$9, "placeholder", props.placeholder?.[0]));
146
+ return _el$9;
147
+ })();
148
+ },
149
+ get children() {
150
+ return optionLabelRender(tempValue()[0]);
151
+ }
152
+ }));
153
+ var _ref$3 = endDom;
154
+ typeof _ref$3 === "function" ? use(_ref$3, _el$4) : endDom = _el$4;
155
+ insert(_el$4, createComponent(Show, {
156
+ get when() {
157
+ return !isNil(tempValue()[1]);
158
+ },
159
+ get fallback() {
160
+ return (() => {
161
+ var _el$10 = _tmpl$4();
162
+ effect(() => setAttribute(_el$10, "placeholder", props.placeholder?.[1]));
163
+ return _el$10;
164
+ })();
165
+ },
166
+ get children() {
167
+ return optionLabelRender(tempValue()[1]);
168
+ }
169
+ }));
170
+ insert(_el$6, createComponent(Show, {
171
+ get when() {
172
+ return showClearBtn();
173
+ },
174
+ get fallback() {
175
+ return _tmpl$5();
176
+ },
177
+ get children() {
178
+ var _el$7 = _tmpl$();
179
+ _el$7.$$click = e => {
180
+ e.stopPropagation();
181
+ setValue([]);
182
+ setOpen(false);
183
+ };
184
+ return _el$7;
185
+ }
186
+ }));
187
+ effect(_p$ => {
188
+ var _v$ = cs('relative min-h-32px pr-25px rounded-inherit grid [grid-template-columns:1fr_auto_1fr] items-center', tempValue().length && props.multiple ? 'pl-4px' : 'pl-11px', props.multiple && 'py-1px', props.disabled && '[pointer-events:none] bg-[var(--ant-color-bg-container-disabled)] color-[var(--ant-color-text-disabled)]', statusClassDict[props.status ?? 'default'](!!props.disabled, open())),
189
+ _v$2 = {
190
+ display: open() ? 'block' : 'none',
191
+ ...activeBarStyle()
192
+ };
193
+ _v$ !== _p$.e && className(_el$, _p$.e = _v$);
194
+ _p$.t = style(_el$5, _v$2, _p$.t);
195
+ return _p$;
196
+ }, {
197
+ e: undefined,
198
+ t: undefined
199
+ });
200
+ return _el$;
201
+ }
202
+ });
203
+ }
204
+ });
205
+ }
206
+ delegateEvents(["click"]);
207
+
208
+ export { RangeInput as default };
@@ -0,0 +1,49 @@
1
+ import { createComponent, effect, className, insert, template } from 'solid-js/web';
2
+ import { mergeProps } from 'solid-js';
3
+ import cs from 'classnames';
4
+ import Element from '../Element/index.js';
5
+
6
+ var _tmpl$ = /*#__PURE__*/template(`<div class=mb-24px><span>`),
7
+ _tmpl$2 = /*#__PURE__*/template(`<div class="my-8px text-[--ant-color-text-heading] text-24px">`),
8
+ _tmpl$3 = /*#__PURE__*/template(`<div class="text-[--ant-color-text-description] text-14px">`),
9
+ _tmpl$4 = /*#__PURE__*/template(`<div class=mt-24px>`);
10
+ const statusIconMap = {
11
+ success: '!text-[--ant-color-success] i-ant-design:check-circle-filled',
12
+ info: '!text-[--ant-color-primary] i-ant-design:exclamation-circle-filled',
13
+ warning: '!text-[--ant-color-warning] i-ant-design:warning-filled',
14
+ error: '!text-[--ant-color-error] i-ant-design:close-circle-filled'
15
+ };
16
+ const Result = _props => {
17
+ const props = mergeProps({
18
+ status: 'info'
19
+ }, _props);
20
+ return createComponent(Element, {
21
+ "class": "text-center px-32px py-48px [font-size:var(--ant-font-size)] text-[--ant-color-text] leading-[--ant-line-height]",
22
+ get children() {
23
+ return [(() => {
24
+ var _el$ = _tmpl$(),
25
+ _el$2 = _el$.firstChild;
26
+ effect(() => className(_el$2, cs(statusIconMap[props.status], 'text-72px')));
27
+ return _el$;
28
+ })(), (() => {
29
+ var _el$3 = _tmpl$2();
30
+ insert(_el$3, () => props.title);
31
+ return _el$3;
32
+ })(), (() => {
33
+ var _el$4 = _tmpl$3();
34
+ insert(_el$4, () => props.subTitle);
35
+ return _el$4;
36
+ })(), (() => {
37
+ var _el$5 = _tmpl$4();
38
+ insert(_el$5, () => props.extra);
39
+ return _el$5;
40
+ })(), (() => {
41
+ var _el$6 = _tmpl$4();
42
+ insert(_el$6, () => props.children);
43
+ return _el$6;
44
+ })()];
45
+ }
46
+ });
47
+ };
48
+
49
+ export { Result as default };
@@ -1,11 +1,11 @@
1
- import { type Component, type JSX } from 'solid-js';
2
- import { type StringOrJSXElement, type Key } from '../types';
3
- export interface SegmentedProps {
1
+ import { type Component } from 'solid-js';
2
+ import { type StringOrJSXElement, type Key, type ComponentSize, type StyleProps } from '../types';
3
+ export interface SegmentedProps extends StyleProps {
4
4
  block?: boolean;
5
5
  disabled?: boolean;
6
- options: Array<string | number | {
6
+ options: Array<Key | {
7
7
  label: StringOrJSXElement;
8
- value: string;
8
+ value: Key;
9
9
  disabled?: boolean;
10
10
  onClick?: (e: MouseEvent & {
11
11
  currentTarget: HTMLDivElement;
@@ -14,8 +14,11 @@ export interface SegmentedProps {
14
14
  }>;
15
15
  value?: Key;
16
16
  onChange?: (value: Key) => void;
17
- class?: string;
18
- style?: JSX.CSSProperties;
17
+ /**
18
+ * 大小,提供 large middle 和 small 三种大小
19
+ * 默认 'middle'
20
+ */
21
+ size?: ComponentSize;
19
22
  }
20
23
  declare const Segmented: Component<SegmentedProps>;
21
24
  export default Segmented;
@@ -1,71 +1,72 @@
1
- import { delegateEvents, insert, createComponent, effect, className, style, template } from 'solid-js/web';
1
+ import { delegateEvents, createComponent, insert, effect, className, template } from 'solid-js/web';
2
2
  import { createSelector, For, Show } from 'solid-js';
3
3
  import cs from 'classnames';
4
4
  import createControllableValue from '../hooks/createControllableValue.js';
5
5
  import { unwrapStringOrJSXElement } from '../utils/solid.js';
6
+ import Element from '../Element/index.js';
7
+ import useComponentSize from '../hooks/useComponentSize.js';
6
8
 
7
- const _tmpl$ = /*#__PURE__*/template(`<div>`),
8
- _tmpl$2 = /*#__PURE__*/template(`<div><div>`);
9
+ var _tmpl$ = /*#__PURE__*/template(`<div><div>`);
9
10
  const unWarpValue = value => typeof value === 'object' ? value.value : value;
10
11
  const Segmented = props => {
11
12
  const [value, setValue] = createControllableValue(props, {
12
13
  defaultValue: unWarpValue(props.options[0])
13
14
  });
14
15
  const isSelected = createSelector(value);
16
+ const size = useComponentSize(() => props.size);
15
17
  const isDisabledValue = v => {
16
18
  if (props.disabled) return true;
17
19
  return typeof v === 'object' ? v.disabled : false;
18
20
  };
19
- return (() => {
20
- const _el$ = _tmpl$();
21
- insert(_el$, createComponent(For, {
22
- get each() {
23
- return props.options;
24
- },
25
- children: item => (() => {
26
- const _el$2 = _tmpl$2(),
27
- _el$3 = _el$2.firstChild;
28
- _el$3.$$click = e => {
29
- setValue(unWarpValue(item));
30
- typeof item === 'object' && item.onClick?.(e);
31
- };
32
- insert(_el$3, createComponent(Show, {
33
- when: typeof item !== 'object',
34
- get fallback() {
35
- return typeof item === 'object' && unwrapStringOrJSXElement(item.label);
36
- },
37
- children: item
38
- }));
39
- effect(_p$ => {
40
- const _v$3 = cs(props.block && 'ant-basis-0 ant-grow-1', isDisabledValue(item) && 'ant-cursor-not-allowed'),
41
- _v$4 = cs('ant-rounded-[var(--ant-border-radius-sm)] ant-px-[var(--ant-padding-sm)] where:ant-cursor-pointer ant-leading-28px where:hover:ant-bg-[var(--ant-segmented-item-hover-bg)] where:active:ant-bg-[var(--ant-segmented-item-active-bg)]', isSelected(unWarpValue(item)) && 'ant-bg-white ant-shadow-[var(--ant-box-shadow-tertiary)]', props.block && 'ant-flex ant-justify-center', isDisabledValue(item) && 'ant-[pointer-events:none] ant-text-[var(--ant-color-text-disabled)]');
42
- _v$3 !== _p$._v$3 && className(_el$2, _p$._v$3 = _v$3);
43
- _v$4 !== _p$._v$4 && className(_el$3, _p$._v$4 = _v$4);
44
- return _p$;
45
- }, {
46
- _v$3: undefined,
47
- _v$4: undefined
48
- });
49
- return _el$2;
50
- })()
51
- }));
52
- effect(_p$ => {
53
- const _v$ = cs('ant-bg-[var(--ant-color-bg-layout)] ant-rounded-[var(--ant-border-radius)] ant-p-2px', props.block ? 'ant-flex' : 'ant-inline-flex', props.class),
54
- _v$2 = {
55
- '--ant-segmented-item-color': 'rgba(0, 0, 0, 0.65)',
56
- '--ant-segmented-item-hover-bg': 'rgba(0, 0, 0, 0.06)',
57
- '--ant-segmented-item-active-bg': 'rgba(0, 0, 0, 0.15)',
58
- ...props.style
59
- };
60
- _v$ !== _p$._v$ && className(_el$, _p$._v$ = _v$);
61
- _p$._v$2 = style(_el$, _v$2, _p$._v$2);
62
- return _p$;
63
- }, {
64
- _v$: undefined,
65
- _v$2: undefined
66
- });
67
- return _el$;
68
- })();
21
+ return createComponent(Element, {
22
+ get ["class"]() {
23
+ return cs('bg-[var(--ant-color-bg-layout)] rounded-[var(--ant-border-radius)] p-2px text-[var(--ant-color-text)] leading-[var(--ant-line-height)]', props.block ? 'flex' : 'inline-flex', props.class, {
24
+ small: '[font-size:var(--ant-font-size)]',
25
+ middle: '[font-size:var(--ant-font-size)]',
26
+ large: '[font-size:var(--ant-font-size-lg)]'
27
+ }[size()]);
28
+ },
29
+ get style() {
30
+ return props.style;
31
+ },
32
+ get children() {
33
+ return createComponent(For, {
34
+ get each() {
35
+ return props.options;
36
+ },
37
+ children: item => (() => {
38
+ var _el$ = _tmpl$(),
39
+ _el$2 = _el$.firstChild;
40
+ _el$2.$$click = e => {
41
+ setValue(unWarpValue(item));
42
+ typeof item === 'object' && item.onClick?.(e);
43
+ };
44
+ insert(_el$2, createComponent(Show, {
45
+ when: typeof item !== 'object',
46
+ get fallback() {
47
+ return typeof item === 'object' && unwrapStringOrJSXElement(item.label);
48
+ },
49
+ children: item
50
+ }));
51
+ effect(_p$ => {
52
+ var _v$ = cs(props.block && 'basis-0 grow-1', isDisabledValue(item) && 'cursor-not-allowed'),
53
+ _v$2 = cs('rounded-[var(--ant-border-radius-sm)] px-[var(--ant-padding-sm)] cursor-pointer [white-space:nowrap]', isSelected(unWarpValue(item)) && 'bg-[var(--ant-segmented-item-selected-bg)]', isDisabledValue(item) ? '[pointer-events:none] text-[var(--ant-color-text-disabled)]' : isSelected(unWarpValue(item)) ? 'shadow-[var(--ant-box-shadow-tertiary)] text-[var(--ant-segmented-item-selected-color)]' : 'text-[var(--ant-segmented-item-color)] hover:text-[var(--ant-segmented-item-hover-color)] hover:bg-[var(--ant-segmented-item-hover-bg)] active:bg-[var(--ant-segmented-item-active-bg)]', props.block && 'flex justify-center', {
54
+ small: 'leading-20px',
55
+ middle: 'leading-28px',
56
+ large: 'leading-36px'
57
+ }[size()]);
58
+ _v$ !== _p$.e && className(_el$, _p$.e = _v$);
59
+ _v$2 !== _p$.t && className(_el$2, _p$.t = _v$2);
60
+ return _p$;
61
+ }, {
62
+ e: undefined,
63
+ t: undefined
64
+ });
65
+ return _el$;
66
+ })()
67
+ });
68
+ }
69
+ });
69
70
  };
70
71
  delegateEvents(["click"]);
71
72
 
@@ -0,0 +1,17 @@
1
+ import { type JSXElement } from 'solid-js';
2
+ import { type StringOrJSXElement, type Key } from '../types';
3
+ import { type SelectInputProps } from '../SelectInput';
4
+ export interface SelectOption<T = Key> {
5
+ label: StringOrJSXElement;
6
+ value: T;
7
+ class?: string;
8
+ }
9
+ export interface SelectProps<T = Key> extends Pick<SelectInputProps<T>, 'multiple' | 'allowClear' | 'class' | 'style' | 'disabled' | 'placeholder' | 'status' | 'size' | 'variant' | 'suffixIcon' | 'placement' | 'getPopupContainer' | 'defaultOpen' | 'open' | 'onOpenChange'> {
10
+ defaultValue?: T | T[] | null;
11
+ value?: T | T[] | null;
12
+ onChange?: (value: T | T[] | undefined) => void;
13
+ options?: Array<SelectOption<T>>;
14
+ labelRender?: (options: SelectOption<T> | undefined, value: T | undefined) => JSXElement;
15
+ }
16
+ declare function Select<T = Key>(props: SelectProps<T>): import("solid-js").JSX.Element;
17
+ export default Select;
@@ -0,0 +1,75 @@
1
+ import { delegateEvents, createComponent, mergeProps, insert, effect, className, setAttribute, template } from 'solid-js/web';
2
+ import { splitProps, createMemo, createSelector, Show, For } from 'solid-js';
3
+ import cs from 'classnames';
4
+ import { isEmpty } from 'lodash-es';
5
+ import createControllableValue from '../hooks/createControllableValue.js';
6
+ import { toArray } from '../utils/array.js';
7
+ import SelectInput from '../SelectInput/index.js';
8
+ import Empty from '../Empty/index.js';
9
+ import { unwrapStringOrJSXElement } from '../utils/solid.js';
10
+
11
+ var _tmpl$ = /*#__PURE__*/template(`<div class=p-2px>`),
12
+ _tmpl$2 = /*#__PURE__*/template(`<div>`);
13
+ function Select(props) {
14
+ const [selectInputProps] = splitProps(props, ['multiple', 'allowClear', 'class', 'style', 'disabled', 'placeholder', 'status', 'size', 'variant', 'suffixIcon', 'placement', 'getPopupContainer']);
15
+ const [value, setValue] = createControllableValue(props);
16
+ const valueArr = createMemo(() => toArray(value(), false));
17
+ const selectedValue = createSelector(() => new Map(valueArr().map(v => [v, true])), (a, b) => b.has(a));
18
+ const optionDict = createMemo(() => new Map(props.options?.map(o => [o.value, o])));
19
+ return createComponent(SelectInput, mergeProps(selectInputProps, {
20
+ labelRender: v => props.labelRender ? props.labelRender(optionDict().get(v), v) : unwrapStringOrJSXElement(optionDict().get(v)?.label) ?? v,
21
+ get value() {
22
+ return valueArr();
23
+ },
24
+ onChange: v => {
25
+ setValue(props.multiple ? v : v[0]);
26
+ },
27
+ content: close => createComponent(Show, {
28
+ get when() {
29
+ return !isEmpty(props.options);
30
+ },
31
+ get fallback() {
32
+ return createComponent(Empty.PRESENTED_IMAGE_SIMPLE, {});
33
+ },
34
+ get children() {
35
+ var _el$ = _tmpl$();
36
+ insert(_el$, createComponent(For, {
37
+ get each() {
38
+ return props.options;
39
+ },
40
+ children: item => (() => {
41
+ var _el$2 = _tmpl$2();
42
+ _el$2.$$click = () => {
43
+ if (!props.multiple) {
44
+ setValue(item.value);
45
+ close();
46
+ return;
47
+ }
48
+ if (valueArr().includes(item.value)) {
49
+ setValue(valueArr().filter(v => v !== item.value));
50
+ } else {
51
+ setValue([...valueArr(), item.value]);
52
+ }
53
+ };
54
+ insert(_el$2, () => unwrapStringOrJSXElement(item.label));
55
+ effect(_p$ => {
56
+ var _v$ = cs('ellipsis box-content px-12px py-5px min-h-22px leading-22px hover:bg-[var(--ant-select-option-active-bg)] cursor-pointer rounded-[var(--ant-border-radius-sm)]', selectedValue(item.value) ? '!bg-[var(--ant-select-option-selected-bg)]' : '', item.class),
57
+ _v$2 = typeof item.label === 'string' || typeof item.label === 'number' ? item.label.toString() : undefined;
58
+ _v$ !== _p$.e && className(_el$2, _p$.e = _v$);
59
+ _v$2 !== _p$.t && setAttribute(_el$2, "title", _p$.t = _v$2);
60
+ return _p$;
61
+ }, {
62
+ e: undefined,
63
+ t: undefined
64
+ });
65
+ return _el$2;
66
+ })()
67
+ }));
68
+ return _el$;
69
+ }
70
+ })
71
+ }));
72
+ }
73
+ delegateEvents(["click"]);
74
+
75
+ export { Select as default };
@@ -0,0 +1,39 @@
1
+ import { type JSXElement, type JSX } from 'solid-js';
2
+ import { type TooltipProps } from '../Tooltip';
3
+ export interface SelectInputProps<T> extends Pick<TooltipProps, 'getPopupContainer' | 'defaultOpen' | 'open' | 'onOpenChange'> {
4
+ multiple?: boolean;
5
+ defaultValue?: T[] | null;
6
+ value?: T[] | null;
7
+ onChange?: (value: T[]) => void;
8
+ labelRender?: (value: T) => JSXElement;
9
+ placeholder?: string;
10
+ allowClear?: boolean;
11
+ disabled?: boolean;
12
+ class?: string;
13
+ style?: JSX.CSSProperties;
14
+ content: (close: () => void) => JSXElement;
15
+ /**
16
+ * 设置校验状态
17
+ */
18
+ status?: 'error' | 'warning';
19
+ /**
20
+ * 默认: middle
21
+ */
22
+ size?: 'small' | 'middle' | 'large';
23
+ /**
24
+ * 形态变体
25
+ * 默认 'outlined'
26
+ */
27
+ variant?: 'outlined' | 'borderless' | 'filled';
28
+ /**
29
+ * 自定义的选择框后缀图标
30
+ */
31
+ suffixIcon?: JSXElement;
32
+ /**
33
+ * 选择框弹出的位置
34
+ * 默认 'bottomLeft'
35
+ */
36
+ placement?: 'bottomLeft' | 'bottom' | 'bottomRight' | 'topLeft' | 'top' | 'topRight';
37
+ }
38
+ declare function SelectInput<T>(_props: SelectInputProps<T>): JSX.Element;
39
+ export default SelectInput;