antd-solid 0.0.7 → 0.0.9

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 (102) hide show
  1. package/dist/index.esm.js +0 -13
  2. package/dist/index.umd.js +1 -1
  3. package/es/Button.d.ts +19 -0
  4. package/es/Button.js +73 -0
  5. package/es/Collapse/index.d.ts +16 -0
  6. package/es/Collapse/index.js +87 -0
  7. package/es/ColorPicker.d.ts +8 -0
  8. package/es/ColorPicker.js +6 -0
  9. package/es/Compact.d.ts +12 -0
  10. package/es/Compact.js +17 -0
  11. package/es/DatePicker.d.ts +19 -0
  12. package/es/DatePicker.js +9 -0
  13. package/es/Empty/PRESENTED_IMAGE_SIMPLE.d.ts +3 -0
  14. package/es/Empty/PRESENTED_IMAGE_SIMPLE.js +14 -0
  15. package/es/Empty/assets/EmptySvg.d.ts +2 -0
  16. package/es/Empty/assets/EmptySvg.js +6 -0
  17. package/es/Empty/assets/SimpleEmptySvg.d.ts +2 -0
  18. package/es/Empty/assets/SimpleEmptySvg.js +6 -0
  19. package/es/Empty/index.d.ts +5 -0
  20. package/es/Empty/index.js +16 -0
  21. package/es/Image.d.ts +9 -0
  22. package/es/Image.js +22 -0
  23. package/es/Input.d.ts +29 -0
  24. package/es/Input.js +144 -0
  25. package/es/InputNumber.d.ts +11 -0
  26. package/es/InputNumber.js +92 -0
  27. package/es/InputNumber.test.d.ts +1 -0
  28. package/es/InputNumber.test.js +42 -0
  29. package/es/Modal.d.ts +47 -0
  30. package/es/Modal.js +195 -0
  31. package/es/Popconfirm.d.ts +21 -0
  32. package/es/Popconfirm.js +64 -0
  33. package/es/Popover.d.ts +7 -0
  34. package/es/Popover.js +36 -0
  35. package/es/Progress.d.ts +7 -0
  36. package/es/Progress.js +6 -0
  37. package/es/Radio.d.ts +27 -0
  38. package/es/Radio.js +89 -0
  39. package/es/Result.d.ts +10 -0
  40. package/es/Result.js +29 -0
  41. package/es/Segmented/index.d.ts +21 -0
  42. package/es/Segmented/index.js +72 -0
  43. package/es/Select.d.ts +16 -0
  44. package/es/Select.js +113 -0
  45. package/es/Skeleton.d.ts +9 -0
  46. package/es/Skeleton.js +9 -0
  47. package/es/Spin.d.ts +9 -0
  48. package/es/Spin.js +22 -0
  49. package/es/Switch.d.ts +8 -0
  50. package/es/Switch.js +30 -0
  51. package/es/Table.d.ts +11 -0
  52. package/es/Table.js +57 -0
  53. package/es/Tabs.d.ts +17 -0
  54. package/es/Tabs.js +117 -0
  55. package/es/Timeline.d.ts +13 -0
  56. package/es/Timeline.js +30 -0
  57. package/es/Tooltip.d.ts +34 -0
  58. package/es/Tooltip.js +302 -0
  59. package/es/Tree.d.ts +28 -0
  60. package/es/Tree.js +198 -0
  61. package/es/Upload.d.ts +11 -0
  62. package/es/Upload.js +6 -0
  63. package/es/form/Form.d.ts +18 -0
  64. package/es/form/Form.js +70 -0
  65. package/es/form/FormItem.d.ts +19 -0
  66. package/es/form/FormItem.js +141 -0
  67. package/es/form/context.d.ts +12 -0
  68. package/es/form/context.js +5 -0
  69. package/es/form/index.d.ts +8 -0
  70. package/es/form/index.js +7 -0
  71. package/es/hooks/createControllableValue.d.ts +16 -0
  72. package/es/hooks/createControllableValue.js +41 -0
  73. package/es/hooks/createUpdateEffect.d.ts +5 -0
  74. package/es/hooks/createUpdateEffect.js +12 -0
  75. package/es/hooks/index.d.ts +2 -0
  76. package/es/hooks/index.js +2 -0
  77. package/es/hooks/useClickAway.d.ts +2 -0
  78. package/es/hooks/useClickAway.js +17 -0
  79. package/es/hooks/useSize.d.ts +5 -0
  80. package/es/hooks/useSize.js +22 -0
  81. package/es/index.d.ts +42 -0
  82. package/es/index.js +29 -0
  83. package/es/types/index.d.ts +3 -0
  84. package/es/types/index.js +1 -0
  85. package/es/utils/EventEmitter.d.ts +7 -0
  86. package/es/utils/EventEmitter.js +13 -0
  87. package/es/utils/ReactToSolid.d.ts +8 -0
  88. package/es/utils/ReactToSolid.js +30 -0
  89. package/es/utils/SolidToReact.d.ts +8 -0
  90. package/es/utils/SolidToReact.js +23 -0
  91. package/es/utils/array.d.ts +15 -0
  92. package/es/utils/array.js +19 -0
  93. package/es/utils/component.d.ts +31 -0
  94. package/es/utils/component.js +68 -0
  95. package/es/utils/solid.d.ts +15 -0
  96. package/es/utils/solid.js +32 -0
  97. package/es/utils/zh_CN.d.ts +2 -0
  98. package/es/utils/zh_CN.js +236 -0
  99. package/package.json +6 -4
  100. package/src/DatePicker.tsx +20 -12
  101. package/src/Tooltip.tsx +0 -15
  102. /package/{dist → css}/index.css +0 -0
@@ -0,0 +1,21 @@
1
+ import { type Component, type JSXElement } from 'solid-js';
2
+ import { type TooltipProps } from './Tooltip';
3
+ interface PopconfirmProps extends Pick<TooltipProps, 'placement' | 'arrow'> {
4
+ title?: JSXElement;
5
+ content?: JSXElement;
6
+ children: JSXElement;
7
+ onCancel?: () => void;
8
+ onConfirm?: () => void;
9
+ /**
10
+ * 确认按钮文字
11
+ * 默认:确定
12
+ */
13
+ okText?: string;
14
+ /**
15
+ * 取消按钮文字
16
+ * 默认:取消
17
+ */
18
+ cancelText?: string;
19
+ }
20
+ declare const Popconfirm: Component<PopconfirmProps>;
21
+ export default Popconfirm;
@@ -0,0 +1,64 @@
1
+ import { createComponent, mergeProps as mergeProps$1, insert, template } from 'solid-js/web';
2
+ import { mergeProps, splitProps, createSignal, untrack } from 'solid-js';
3
+ import Button from './Button.js';
4
+ import Tooltip from './Tooltip.js';
5
+
6
+ const _tmpl$ = /*#__PURE__*/template(`<div><div class="ant-mb-8px ant-flex ant-items-center"><span class="i-ant-design:exclamation-circle-fill ant-text-#faad14"></span><span class="ant-ml-8px ant-text-[rgba(0,0,0,0.88)] ant-font-600"></span></div><div class="ant-ml-22px ant-mb-8px ant-text-[rgba(0,0,0,0.88)]"></div><div class="ant-text-right">`);
7
+ const Popconfirm = props => {
8
+ const mergedProps = mergeProps({
9
+ okText: '确定',
10
+ cancelText: '取消'
11
+ }, props);
12
+ const [tooltipProps] = splitProps(props, ['placement', 'arrow']);
13
+ const [open, setOpen] = createSignal(false);
14
+ return createComponent(Tooltip, mergeProps$1({
15
+ mode: "light",
16
+ trigger: "click",
17
+ get open() {
18
+ return open();
19
+ },
20
+ onOpenChange: setOpen,
21
+ get content() {
22
+ return (() => {
23
+ const _el$ = _tmpl$(),
24
+ _el$2 = _el$.firstChild,
25
+ _el$3 = _el$2.firstChild,
26
+ _el$4 = _el$3.nextSibling,
27
+ _el$5 = _el$2.nextSibling,
28
+ _el$6 = _el$5.nextSibling;
29
+ insert(_el$4, () => mergedProps.title);
30
+ insert(_el$5, () => mergedProps.content);
31
+ insert(_el$6, createComponent(Button, {
32
+ "class": "ant-ml-8px",
33
+ size: "small",
34
+ onClick: () => {
35
+ setOpen(false);
36
+ untrack(() => mergedProps.onCancel?.());
37
+ },
38
+ get children() {
39
+ return mergedProps.cancelText;
40
+ }
41
+ }), null);
42
+ insert(_el$6, createComponent(Button, {
43
+ "class": "ant-ml-8px",
44
+ type: "primary",
45
+ size: "small",
46
+ onClick: () => {
47
+ setOpen(false);
48
+ untrack(() => mergedProps.onConfirm?.());
49
+ },
50
+ get children() {
51
+ return mergedProps.okText;
52
+ }
53
+ }), null);
54
+ return _el$;
55
+ })();
56
+ }
57
+ }, tooltipProps, {
58
+ get children() {
59
+ return mergedProps.children;
60
+ }
61
+ }));
62
+ };
63
+
64
+ export { Popconfirm as default };
@@ -0,0 +1,7 @@
1
+ import { type Component, type JSXElement } from 'solid-js';
2
+ import { type TooltipProps } from './Tooltip';
3
+ interface PopoverProps extends TooltipProps {
4
+ title?: JSXElement;
5
+ }
6
+ declare const Popover: Component<PopoverProps>;
7
+ export default Popover;
package/es/Popover.js ADDED
@@ -0,0 +1,36 @@
1
+ import { createComponent, mergeProps, insert, template } from 'solid-js/web';
2
+ import { Show } from 'solid-js';
3
+ import Tooltip, { Content } from './Tooltip.js';
4
+
5
+ const _tmpl$ = /*#__PURE__*/template(`<div class="ant-mb-8px ant-flex ant-items-center"><span class="ant-text-[rgba(0,0,0,0.88)] ant-font-600">`),
6
+ _tmpl$2 = /*#__PURE__*/template(`<div><div class="ant-text-[rgba(0,0,0,0.88)]">`);
7
+ const Popover = props => {
8
+ return createComponent(Tooltip, mergeProps({
9
+ mode: "light"
10
+ }, props, {
11
+ content: close => (() => {
12
+ const _el$ = _tmpl$2(),
13
+ _el$4 = _el$.firstChild;
14
+ insert(_el$, createComponent(Show, {
15
+ get when() {
16
+ return props.title;
17
+ },
18
+ get children() {
19
+ const _el$2 = _tmpl$(),
20
+ _el$3 = _el$2.firstChild;
21
+ insert(_el$3, () => props.title);
22
+ return _el$2;
23
+ }
24
+ }), _el$4);
25
+ insert(_el$4, createComponent(Content, {
26
+ get content() {
27
+ return props.content;
28
+ },
29
+ close: close
30
+ }));
31
+ return _el$;
32
+ })()
33
+ }));
34
+ };
35
+
36
+ export { Popover as default };
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ declare const _default: import("solid-js").Component<Omit<Omit<import("antd").ProgressProps & import("react").RefAttributes<HTMLDivElement>, "className"> & {
3
+ class?: string | undefined;
4
+ }, "children"> & {
5
+ children?: import("solid-js").JSX.Element;
6
+ }>;
7
+ export default _default;
package/es/Progress.js ADDED
@@ -0,0 +1,6 @@
1
+ import { Progress as Progress$1 } from 'antd';
2
+ import { replaceChildren, replaceClassName, reactToSolidComponent } from './utils/component.js';
3
+
4
+ var Progress = replaceChildren(replaceClassName(reactToSolidComponent(Progress$1)));
5
+
6
+ export { Progress as default };
package/es/Radio.d.ts ADDED
@@ -0,0 +1,27 @@
1
+ import { type Component, type JSXElement, type ParentProps, type JSX } from 'solid-js';
2
+ export interface RadioProps extends ParentProps {
3
+ defaultChecked?: boolean;
4
+ checked?: boolean;
5
+ /**
6
+ * input 的 value
7
+ */
8
+ value?: string;
9
+ onChange?: JSX.ChangeEventHandler<HTMLInputElement, Event>;
10
+ }
11
+ export interface RadioGroupProps {
12
+ defaultValue?: string;
13
+ value?: string;
14
+ onChange?: JSX.ChangeEventHandler<HTMLInputElement, Event>;
15
+ optionType?: 'default' | 'button';
16
+ options: Array<{
17
+ label: JSXElement;
18
+ value: string;
19
+ disabled?: boolean;
20
+ }>;
21
+ block?: boolean;
22
+ }
23
+ declare const Radio: Component<RadioProps> & {
24
+ Group: Component<RadioGroupProps>;
25
+ Button: Component<RadioProps>;
26
+ };
27
+ export default Radio;
package/es/Radio.js ADDED
@@ -0,0 +1,89 @@
1
+ import { delegateEvents, insert, effect, className, createComponent, Dynamic, template } from 'solid-js/web';
2
+ import { untrack, mergeProps, createSelector, For } from 'solid-js';
3
+ import cs from 'classnames';
4
+ import createControllableValue from './hooks/createControllableValue.js';
5
+
6
+ const _tmpl$ = /*#__PURE__*/template(`<label class="ant-inline-flex ant-gap-4px"><input type="radio">`),
7
+ _tmpl$2 = /*#__PURE__*/template(`<label><input class="ant-w-0 ant-h-0" type="radio">`),
8
+ _tmpl$3 = /*#__PURE__*/template(`<div>`);
9
+ const Radio = props => {
10
+ const [checked, setChecked] = createControllableValue(props, {
11
+ defaultValue: false,
12
+ defaultValuePropName: 'defaultChecked',
13
+ valuePropName: 'checked',
14
+ trigger: undefined
15
+ });
16
+ return (() => {
17
+ const _el$ = _tmpl$(),
18
+ _el$2 = _el$.firstChild;
19
+ _el$2.$$input = e => {
20
+ setChecked(e.target.checked);
21
+ untrack(() => props.onChange?.(e));
22
+ };
23
+ insert(_el$, () => props.children, null);
24
+ effect(() => _el$2.checked = checked());
25
+ effect(() => _el$2.value = props.value ?? '');
26
+ return _el$;
27
+ })();
28
+ };
29
+ Radio.Button = props => {
30
+ const [checked, setChecked] = createControllableValue(props, {
31
+ defaultValue: false,
32
+ defaultValuePropName: 'defaultChecked',
33
+ valuePropName: 'checked',
34
+ trigger: undefined
35
+ });
36
+ return (() => {
37
+ const _el$3 = _tmpl$2(),
38
+ _el$4 = _el$3.firstChild;
39
+ _el$4.$$input = e => {
40
+ setChecked(e.target.checked);
41
+ untrack(() => props.onChange?.(e));
42
+ };
43
+ insert(_el$3, () => props.children, null);
44
+ effect(() => className(_el$3, cs('ant-px-15px ant-[border:1px_solid_rgb(217,217,217)] first:ant-rounded-l-6px last:ant-rounded-r-6px ant-h-32px ant-inline-flex ant-items-center hover:ant-text-[var(--primary-color)] not[:last-child]:ant-border-r-transparent ant-cursor-pointer ant-flex-grow ant-justify-center', checked() && 'ant-text-[var(--primary-color)] ant-[border:1px_solid_var(--primary-color)] !ant-border-r-[var(--primary-color)]')));
45
+ effect(() => _el$4.checked = checked());
46
+ effect(() => _el$4.value = props.value ?? '');
47
+ return _el$3;
48
+ })();
49
+ };
50
+ Radio.Group = _props => {
51
+ const props = mergeProps({
52
+ optionType: 'default'
53
+ }, _props);
54
+ const [value, setValue] = createControllableValue(props, {
55
+ trigger: undefined
56
+ });
57
+ const isChecked = createSelector(value);
58
+ return (() => {
59
+ const _el$5 = _tmpl$3();
60
+ insert(_el$5, createComponent(For, {
61
+ get each() {
62
+ return props.options;
63
+ },
64
+ children: option => createComponent(Dynamic, {
65
+ get component() {
66
+ return props.optionType === 'default' ? Radio : Radio.Button;
67
+ },
68
+ get checked() {
69
+ return isChecked(option.value);
70
+ },
71
+ get value() {
72
+ return option.value;
73
+ },
74
+ onChange: e => {
75
+ setValue(option.value);
76
+ untrack(() => props.onChange?.(e));
77
+ },
78
+ get children() {
79
+ return option.label;
80
+ }
81
+ })
82
+ }));
83
+ effect(() => className(_el$5, cs(props.block ? 'ant-flex' : 'ant-inline-flex', props.optionType === 'default' ? 'ant-gap-8px' : '')));
84
+ return _el$5;
85
+ })();
86
+ };
87
+ delegateEvents(["input"]);
88
+
89
+ export { Radio as default };
package/es/Result.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ import { type JSXElement, type Component, type ParentProps } from 'solid-js';
2
+ type ResultStatusType = 'success' | 'error' | 'info' | 'warning';
3
+ export interface ResultProps extends ParentProps {
4
+ status?: ResultStatusType;
5
+ title?: JSXElement;
6
+ subTitle?: JSXElement;
7
+ extra?: JSXElement;
8
+ }
9
+ declare const Result: Component<ResultProps>;
10
+ export default Result;
package/es/Result.js ADDED
@@ -0,0 +1,29 @@
1
+ import { insert, effect, className, template } from 'solid-js/web';
2
+ import cs from 'classnames';
3
+
4
+ const _tmpl$ = /*#__PURE__*/template(`<div class="ant-text-center ant-px-32px ant-py-48px"><div class="ant-mb-24px"><span></span></div><div class="ant-my-8px ant-text-[rgba(0,0,0,.88)] ant-text-24px"></div><div class="ant-text-[rgba(0,0,0,.45)] ant-text-14px"></div><div class="ant-mt-24px"></div><div class="ant-mt-24px">`);
5
+ const statusIconMap = {
6
+ success: 'ant-text-#52c41a i-ant-design:check-circle-filled',
7
+ info: 'ant-text-[var(--primary-color)] i-ant-design:exclamation-circle-filled',
8
+ warning: 'ant-text-#faad14 i-ant-design:warning-filled',
9
+ error: 'ant-text-#ff4d4f i-ant-design:close-circle-filled'
10
+ };
11
+ const Result = props => {
12
+ return (() => {
13
+ const _el$ = _tmpl$(),
14
+ _el$2 = _el$.firstChild,
15
+ _el$3 = _el$2.firstChild,
16
+ _el$4 = _el$2.nextSibling,
17
+ _el$5 = _el$4.nextSibling,
18
+ _el$6 = _el$5.nextSibling,
19
+ _el$7 = _el$6.nextSibling;
20
+ insert(_el$4, () => props.title);
21
+ insert(_el$5, () => props.subTitle);
22
+ insert(_el$6, () => props.extra);
23
+ insert(_el$7, () => props.children);
24
+ effect(() => className(_el$3, cs(statusIconMap[props.status], 'ant-text-72px')));
25
+ return _el$;
26
+ })();
27
+ };
28
+
29
+ export { Result as default };
@@ -0,0 +1,21 @@
1
+ import { type Component, type JSX } from 'solid-js';
2
+ import { type StringOrJSXElement, type Key } from '../types';
3
+ export interface SegmentedProps {
4
+ block?: boolean;
5
+ disabled?: boolean;
6
+ options: Array<string | number | {
7
+ label: StringOrJSXElement;
8
+ value: string;
9
+ disabled?: boolean;
10
+ onClick?: (e: MouseEvent & {
11
+ currentTarget: HTMLDivElement;
12
+ target: Element;
13
+ }) => void;
14
+ }>;
15
+ value?: Key;
16
+ onChange?: (value: Key) => void;
17
+ class?: string;
18
+ style?: JSX.CSSProperties;
19
+ }
20
+ declare const Segmented: Component<SegmentedProps>;
21
+ export default Segmented;
@@ -0,0 +1,72 @@
1
+ import { delegateEvents, insert, createComponent, effect, className, style, template } from 'solid-js/web';
2
+ import { createSelector, For, Show } from 'solid-js';
3
+ import cs from 'classnames';
4
+ import createControllableValue from '../hooks/createControllableValue.js';
5
+ import { unwrapStringOrJSXElement } from '../utils/solid.js';
6
+
7
+ const _tmpl$ = /*#__PURE__*/template(`<div>`),
8
+ _tmpl$2 = /*#__PURE__*/template(`<div><div>`);
9
+ const unWarpValue = value => typeof value === 'object' ? value.value : value;
10
+ const Segmented = props => {
11
+ const [value, setValue] = createControllableValue(props, {
12
+ defaultValue: unWarpValue(props.options[0])
13
+ });
14
+ const isSelected = createSelector(value);
15
+ const isDisabledValue = v => {
16
+ if (props.disabled) return true;
17
+ return typeof v === 'object' ? v.disabled : false;
18
+ };
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
+ })();
69
+ };
70
+ delegateEvents(["click"]);
71
+
72
+ export { Segmented as default };
package/es/Select.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ import { type JSXElement, type Component } from 'solid-js';
2
+ import { type Key } from './types';
3
+ interface SelectOption {
4
+ label: JSXElement;
5
+ value: Key;
6
+ }
7
+ interface SelectProps {
8
+ value?: Key;
9
+ onChange?: (value: Key) => void;
10
+ options: SelectOption[];
11
+ placeholder?: string;
12
+ allowClear?: boolean;
13
+ class?: string;
14
+ }
15
+ declare const Select: Component<SelectProps>;
16
+ export default Select;
package/es/Select.js ADDED
@@ -0,0 +1,113 @@
1
+ import { delegateEvents, createComponent, insert, effect, className, use, setAttribute, template } from 'solid-js/web';
2
+ import { createSelector, createMemo, createSignal, For, Show } from 'solid-js';
3
+ import Tooltip from './Tooltip.js';
4
+ import createControllableValue from './hooks/createControllableValue.js';
5
+ import cs from 'classnames';
6
+ import useClickAway from './hooks/useClickAway.js';
7
+ import { isNil } from 'lodash-es';
8
+
9
+ const _tmpl$ = /*#__PURE__*/template(`<div>`),
10
+ _tmpl$2 = /*#__PURE__*/template(`<span class="i-ant-design:close-circle-filled ant-cursor-pointer ant-text-[var(--ant-clear-color)] hover:ant-text-[var(--ant-clear-color-hover)]">`),
11
+ _tmpl$3 = /*#__PURE__*/template(`<div tabindex="0"><div class="ant-relative ant-h-full"><div class="ant-absolute ant-top-0 ant-bottom-0 ant-right-0">`),
12
+ _tmpl$4 = /*#__PURE__*/template(`<div class="ant-bg-white ant-w-200px">`),
13
+ _tmpl$5 = /*#__PURE__*/template(`<input class="ant-h-full ant-w-full ant-float-left ant-[outline:none]" readonly>`),
14
+ _tmpl$6 = /*#__PURE__*/template(`<span class="i-ant-design:down-outlined ant-text-[var(--ant-allow-color)]">`);
15
+ const Select = props => {
16
+ let select;
17
+ const [value, setValue] = createControllableValue(props);
18
+ const selectedValue = createSelector(value);
19
+ const selectedOption = createMemo(() => !isNil(value()) ? props.options.find(option => option.value === value()) : undefined);
20
+ const [open, setOpen] = createSignal(false);
21
+ useClickAway(() => setOpen(false), () => select);
22
+ const [width, setWidth] = createSignal(0);
23
+ const [hover, setHover] = createSignal(false);
24
+ const showClearBtn = createMemo(() => props.allowClear && hover() && !isNil(value()));
25
+ return createComponent(Tooltip, {
26
+ mode: "light",
27
+ get open() {
28
+ return open();
29
+ },
30
+ onOpenChange: setOpen,
31
+ trigger: [],
32
+ placement: "bottomLeft",
33
+ arrow: false,
34
+ contentStyle: {
35
+ padding: 0
36
+ },
37
+ content: close => (() => {
38
+ const _el$6 = _tmpl$4();
39
+ insert(_el$6, createComponent(For, {
40
+ get each() {
41
+ return props.options;
42
+ },
43
+ children: item => (() => {
44
+ const _el$7 = _tmpl$();
45
+ _el$7.$$click = () => {
46
+ setValue(item.value);
47
+ close();
48
+ };
49
+ insert(_el$7, () => item.label);
50
+ effect(() => className(_el$7, cs('ant-box-content ant-px-12px ant-py-5px ant-h-22px ant-leading-22px hover:ant-bg-[var(--hover-bg-color)]', selectedValue(item.value) ? '!ant-bg-[var(--active-bg-color)]' : '')));
51
+ return _el$7;
52
+ })()
53
+ }));
54
+ effect(() => `${width()}px` != null ? _el$6.style.setProperty("width", `${width()}px`) : _el$6.style.removeProperty("width"));
55
+ return _el$6;
56
+ })(),
57
+ get children() {
58
+ const _el$ = _tmpl$3(),
59
+ _el$2 = _el$.firstChild,
60
+ _el$4 = _el$2.firstChild;
61
+ _el$.addEventListener("mouseleave", () => setHover(false));
62
+ _el$.addEventListener("mouseenter", () => setHover(true));
63
+ _el$.$$click = e => {
64
+ setOpen(true);
65
+ setWidth(e.currentTarget.offsetWidth);
66
+ e.currentTarget.focus();
67
+ };
68
+ const _ref$ = select;
69
+ typeof _ref$ === "function" ? use(_ref$, _el$) : select = _el$;
70
+ _el$.style.setProperty("--ant-arrow-color", "rgba(146, 146, 146, 1)");
71
+ _el$.style.setProperty("--ant-clear-color", "rgba(146, 146, 146, 1)");
72
+ _el$.style.setProperty("--ant-clear-color-hover", "rgba(194, 194, 194, 1)");
73
+ insert(_el$2, createComponent(Show, {
74
+ get when() {
75
+ return !isNil(value());
76
+ },
77
+ get fallback() {
78
+ return (() => {
79
+ const _el$8 = _tmpl$5();
80
+ effect(() => setAttribute(_el$8, "placeholder", props.placeholder));
81
+ return _el$8;
82
+ })();
83
+ },
84
+ get children() {
85
+ const _el$3 = _tmpl$();
86
+ insert(_el$3, () => selectedOption().label ?? value());
87
+ return _el$3;
88
+ }
89
+ }), _el$4);
90
+ insert(_el$4, createComponent(Show, {
91
+ get when() {
92
+ return showClearBtn();
93
+ },
94
+ get fallback() {
95
+ return _tmpl$6();
96
+ },
97
+ get children() {
98
+ const _el$5 = _tmpl$2();
99
+ _el$5.$$click = e => {
100
+ e.stopPropagation();
101
+ setValue(undefined);
102
+ };
103
+ return _el$5;
104
+ }
105
+ }));
106
+ effect(() => className(_el$, cs('ant-h-32px ant-leading-32px ant-rounded-6px ant-[border:1px_solid_var(--ant-color-border)] ant-px-11px focus:ant-[border-color:var(--primary-color)]', props.class)));
107
+ return _el$;
108
+ }
109
+ });
110
+ };
111
+ delegateEvents(["click"]);
112
+
113
+ export { Select as default };
@@ -0,0 +1,9 @@
1
+ declare const Image: import("solid-js").Component<Omit<import("antd/es/skeleton/Image").SkeletonImageProps, "className"> & {
2
+ class?: string | undefined;
3
+ }>;
4
+ declare const Skeleton: import("solid-js").Component<Omit<import("antd").SkeletonProps, "className"> & {
5
+ class?: string | undefined;
6
+ }> & {
7
+ Image: typeof Image;
8
+ };
9
+ export default Skeleton;
package/es/Skeleton.js ADDED
@@ -0,0 +1,9 @@
1
+ import { Skeleton as Skeleton$1 } from 'antd';
2
+ import { replaceClassName, reactToSolidComponent } from './utils/component.js';
3
+
4
+ const _Skeleton = replaceClassName(reactToSolidComponent(Skeleton$1));
5
+ const Image = replaceClassName(reactToSolidComponent(Skeleton$1.Image));
6
+ const Skeleton = _Skeleton;
7
+ Skeleton.Image = Image;
8
+
9
+ export { Skeleton as default };
package/es/Spin.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ import { type Component, type ParentProps } from 'solid-js';
2
+ interface SpinProps extends ParentProps {
3
+ /**
4
+ * 是否为加载中状态
5
+ */
6
+ spinning?: boolean;
7
+ }
8
+ declare const Spin: Component<SpinProps>;
9
+ export default Spin;
package/es/Spin.js ADDED
@@ -0,0 +1,22 @@
1
+ import { insert, createComponent, template } from 'solid-js/web';
2
+ import { Show } from 'solid-js';
3
+
4
+ const _tmpl$ = /*#__PURE__*/template(`<div class="ant-absolute ant-inset-0 ant-flex ant-items-center ant-justify-center ant-bg-[rgba(255,255,255,.5)]"><span class="i-ant-design:loading keyframes-spin ant-[animation:spin_1s_linear_infinite] ant-text-32px ant-text-[var(--primary-color)]">`),
5
+ _tmpl$2 = /*#__PURE__*/template(`<div class="ant-relative ant-min-h-32px">`);
6
+ const Spin = props => {
7
+ return (() => {
8
+ const _el$ = _tmpl$2();
9
+ insert(_el$, () => props.children, null);
10
+ insert(_el$, createComponent(Show, {
11
+ get when() {
12
+ return props.spinning;
13
+ },
14
+ get children() {
15
+ return _tmpl$();
16
+ }
17
+ }), null);
18
+ return _el$;
19
+ })();
20
+ };
21
+
22
+ export { Spin as default };
package/es/Switch.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ import { type Component } from 'solid-js';
2
+ export interface SwitchProps {
3
+ defaultChecked?: boolean;
4
+ checked?: boolean;
5
+ onChange?: (checked: boolean) => void;
6
+ }
7
+ declare const Switch: Component<SwitchProps>;
8
+ export default Switch;
package/es/Switch.js ADDED
@@ -0,0 +1,30 @@
1
+ import { delegateEvents, effect, className, template } from 'solid-js/web';
2
+ import createControllableValue from './hooks/createControllableValue.js';
3
+ import cs from 'classnames';
4
+
5
+ const _tmpl$ = /*#__PURE__*/template(`<button><div>`);
6
+ const Switch = props => {
7
+ const [checked, setChecked] = createControllableValue(props, {
8
+ defaultValuePropName: 'defaultChecked',
9
+ valuePropName: 'checked'
10
+ });
11
+ return (() => {
12
+ const _el$ = _tmpl$(),
13
+ _el$2 = _el$.firstChild;
14
+ _el$.$$click = () => setChecked(c => !c);
15
+ effect(_p$ => {
16
+ const _v$ = cs('ant-w-44px ant-h-22px ant-rounded-100px ant-relative', checked() ? 'ant-bg-[var(--primary-color)]' : 'ant-bg-[rgba(0,0,0,0.45)]'),
17
+ _v$2 = cs('ant-w-18px ant-h-18px ant-rounded-50% ant-bg-white ant-absolute ant-top-1/2 -ant-translate-y-1/2 ant-transition-left', checked() ? 'ant-left-[calc(100%-20px)]' : 'ant-left-2px');
18
+ _v$ !== _p$._v$ && className(_el$, _p$._v$ = _v$);
19
+ _v$2 !== _p$._v$2 && className(_el$2, _p$._v$2 = _v$2);
20
+ return _p$;
21
+ }, {
22
+ _v$: undefined,
23
+ _v$2: undefined
24
+ });
25
+ return _el$;
26
+ })();
27
+ };
28
+ delegateEvents(["click"]);
29
+
30
+ export { Switch as default };
package/es/Table.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ import { type JSXElement } from 'solid-js';
2
+ export interface TableColumn<R extends {}> {
3
+ title: JSXElement;
4
+ render: (row: R) => JSXElement;
5
+ }
6
+ export interface TableProps<R extends {}> {
7
+ columns: Array<TableColumn<R>>;
8
+ dataSource: R[];
9
+ }
10
+ declare const Table: <R extends {}>(props: TableProps<R>) => import("solid-js").JSX.Element;
11
+ export default Table;