x-ui-design 0.2.13 → 0.2.17

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 (40) hide show
  1. package/dist/esm/types/components/Button/Button.client.d.ts +3 -0
  2. package/dist/esm/types/components/Button/Button.d.ts +8 -0
  3. package/dist/esm/types/components/Button/index.d.ts +1 -0
  4. package/dist/esm/types/components/Checkbox/Checkbox.client.d.ts +23 -0
  5. package/dist/esm/types/components/Checkbox/Checkbox.d.ts +7 -0
  6. package/dist/esm/types/components/Checkbox/index.d.ts +1 -0
  7. package/dist/esm/types/components/Empty/Empty.d.ts +4 -0
  8. package/dist/esm/types/components/Empty/index.d.ts +1 -0
  9. package/dist/esm/types/components/Form/Form.client.d.ts +4 -0
  10. package/dist/esm/types/components/Form/Form.d.ts +7 -0
  11. package/dist/esm/types/components/Form/Item/FormItem.client.d.ts +7 -0
  12. package/dist/esm/types/components/Form/Item/FormItem.d.ts +6 -0
  13. package/dist/esm/types/components/Form/Item/index.d.ts +1 -0
  14. package/dist/esm/types/components/Form/index.d.ts +1 -0
  15. package/dist/esm/types/helpers/index.d.ts +4 -0
  16. package/dist/esm/types/hooks/useForm.d.ts +4 -0
  17. package/dist/esm/types/hooks/useWatch.d.ts +9 -0
  18. package/dist/esm/types/index.d.ts +4 -0
  19. package/dist/esm/types/types/button.d.ts +42 -0
  20. package/dist/esm/types/types/checkbox.d.ts +22 -0
  21. package/dist/esm/types/types/datepicker.d.ts +119 -0
  22. package/dist/esm/types/types/empty.d.ts +7 -0
  23. package/dist/esm/types/types/form.d.ts +106 -0
  24. package/dist/esm/types/types/index.d.ts +25 -0
  25. package/dist/esm/types/types/input.d.ts +47 -0
  26. package/dist/esm/types/types/radio.d.ts +57 -0
  27. package/dist/esm/types/types/select.d.ts +97 -0
  28. package/dist/esm/types/types/skeleton.d.ts +50 -0
  29. package/dist/esm/types/types/upload.d.ts +54 -0
  30. package/dist/esm/types/utils/index.d.ts +14 -0
  31. package/dist/index.d.ts +98 -0
  32. package/dist/index.esm.js +291 -0
  33. package/dist/index.esm.js.map +1 -0
  34. package/dist/index.js +295 -0
  35. package/dist/index.js.map +1 -0
  36. package/lib/components/Empty/index.ts +1 -1
  37. package/lib/components/Form/Form.client.tsx +5 -1
  38. package/lib/types/form.ts +0 -1
  39. package/package.json +1 -1
  40. package/tsconfig.json +1 -7
@@ -0,0 +1,50 @@
1
+ import { CSSProperties, ReactNode } from 'react';
2
+ import { DefaultProps } from '.';
3
+ declare type widthUnit = number | string;
4
+ export interface SkeletonElementProps {
5
+ className?: string;
6
+ style?: CSSProperties;
7
+ size?: 'large' | 'small' | 'default' | number;
8
+ shape?: 'circle' | 'square' | 'round';
9
+ active?: boolean;
10
+ }
11
+ export type SkeletonProps = DefaultProps & {
12
+ active?: boolean;
13
+ loading?: boolean;
14
+ className?: string;
15
+ style?: CSSProperties;
16
+ children?: ReactNode;
17
+ avatar?: SkeletonAvatarProps | boolean;
18
+ title?: SkeletonTitleProps | boolean;
19
+ paragraph?: SkeletonParagraphProps | boolean;
20
+ round?: boolean;
21
+ teamLogo?: boolean;
22
+ };
23
+ interface SkeletonTitleProps {
24
+ className?: string;
25
+ style?: CSSProperties;
26
+ width?: number | string;
27
+ }
28
+ interface SkeletonParagraphProps {
29
+ className?: string;
30
+ style?: CSSProperties;
31
+ width?: widthUnit | Array<widthUnit>;
32
+ rows?: number;
33
+ }
34
+ export type SkeletonAvatarProps = Omit<SkeletonElementProps, 'shape'> & DefaultProps & {
35
+ shape?: 'circle' | 'square';
36
+ active?: boolean;
37
+ applyElementStyle?: boolean;
38
+ wrapperStyle?: CSSProperties;
39
+ };
40
+ export type SkeletonImageProps = DefaultProps & Omit<SkeletonElementProps, 'size' | 'shape' | 'active'>;
41
+ export type SkeletonInputProps = Omit<SkeletonElementProps, 'size' | 'shape'> & DefaultProps & {
42
+ size?: 'large' | 'small' | 'default';
43
+ block?: boolean;
44
+ };
45
+ export type SkeletonButtonProps = Omit<SkeletonElementProps, 'size'> & DefaultProps & {
46
+ size?: 'large' | 'small' | 'default';
47
+ block?: boolean;
48
+ applyElementStyle?: boolean;
49
+ };
50
+ export {};
@@ -0,0 +1,54 @@
1
+ import { DefaultProps, RuleType } from '.';
2
+ export interface RcFile extends File {
3
+ uid: string;
4
+ lastModifiedDate: Date;
5
+ webkitRelativePath: string;
6
+ }
7
+ export type UploadFile<RcFile> = {
8
+ originFileObj: RcFile;
9
+ uid: string;
10
+ name: string;
11
+ status?: 'uploading' | 'done' | 'error' | 'removed';
12
+ percent?: number;
13
+ url?: string;
14
+ file?: RcFile;
15
+ };
16
+ export type UploadChangeParam = {
17
+ file: UploadFile<RuleType>;
18
+ fileList: UploadFile<RuleType>[];
19
+ };
20
+ export type UploadProps = DefaultProps & {
21
+ type?: string;
22
+ name?: string;
23
+ defaultFileList?: UploadFile<RuleType>[];
24
+ fileList?: UploadFile<RuleType>[];
25
+ action?: string | ((file: RcFile) => string) | ((file: RcFile) => PromiseLike<string>);
26
+ directory?: boolean;
27
+ data?: Record<string, unknown> | ((file: UploadFile<RuleType>) => Record<string, unknown> | Promise<Record<string, unknown>>);
28
+ method?: 'POST' | 'PUT' | 'PATCH';
29
+ headers?: Record<string, string>;
30
+ showUploadList?: boolean;
31
+ multiple?: boolean;
32
+ accept?: string;
33
+ beforeUpload?: (file: RcFile, fileList: File[]) => boolean | Promise<boolean>;
34
+ onChange?: (info: UploadChangeParam) => void;
35
+ onDrop?: (event: React.DragEvent<HTMLDivElement>) => void;
36
+ listType?: string;
37
+ className?: string;
38
+ rootClassName?: string;
39
+ onPreview?: (file: UploadFile<RuleType>) => void;
40
+ onDownload?: (file: UploadFile<RuleType>) => void;
41
+ onRemove?: (file: UploadFile<RuleType>) => void | boolean | Promise<void | boolean>;
42
+ disabled?: boolean;
43
+ style?: React.CSSProperties;
44
+ customRequest?: (options: {
45
+ file: RcFile;
46
+ onSuccess: (response: RuleType) => void;
47
+ onError: (error: RuleType) => void;
48
+ onProgress: (event: ProgressEvent) => void;
49
+ }) => void;
50
+ withCredentials?: boolean;
51
+ openFileDialogOnClick?: boolean;
52
+ maxCount?: number;
53
+ children?: React.ReactNode;
54
+ };
@@ -0,0 +1,14 @@
1
+ export declare const prefixClsForm = "xUi-form";
2
+ export declare const prefixClsFormItem = "xUi-form-item";
3
+ export declare const prefixClsEmpty = "xUi-empty";
4
+ export declare const prefixClsInput = "xUi-input";
5
+ export declare const prefixClsSelect = "xUi-select";
6
+ export declare const prefixClsCheckbox = "xUi-checkbox";
7
+ export declare const prefixClsRadio = "xUi-radio";
8
+ export declare const prefixClsTextArea = "xUi-textarea";
9
+ export declare const prefixClsUpload = "xUi-upload";
10
+ export declare const prefixClsDatePicker = "xUi-datepicker";
11
+ export declare const prefixClsRangePicker = "xUi-rangepicker";
12
+ export declare const prefixClsTimePicker = "xUi-timepicker";
13
+ export declare const prefixClsButton = "xUi-button";
14
+ export declare const prefixClsSkeleton = "xUi-skeleton";
@@ -0,0 +1,98 @@
1
+ import * as react from 'react';
2
+ import { CSSProperties, ReactNode, ButtonHTMLAttributes, ReactElement, MouseEvent, MouseEventHandler, KeyboardEventHandler } from 'react';
3
+
4
+ type RuleType = any;
5
+ interface DefaultProps {
6
+ prefixCls?: string;
7
+ className?: string;
8
+ style?: CSSProperties;
9
+ noStyle?: boolean;
10
+ }
11
+ type TargetProps = {
12
+ target: {
13
+ value: RuleType;
14
+ };
15
+ };
16
+
17
+ type EmptyContentProps = DefaultProps & {
18
+ title?: string;
19
+ description?: string;
20
+ icon?: ReactNode;
21
+ };
22
+
23
+ declare const EmptyContent: ({ icon, style, className, title, description, prefixCls }: EmptyContentProps) => react.JSX.Element;
24
+
25
+ declare const ButtonTypes: readonly ["default", "primary", "dashed", "link", "text", "ghost"];
26
+ declare const ButtonShapes: readonly ["default", "circle", "round"];
27
+ declare const ButtonVariantTypes: readonly ["outlined", "dashed", "solid", "filled", "text", "link"];
28
+ declare const ButtonColorTypes: readonly ["default", "primary", "danger", "blue", "purple", "cyan", "green", "magenta", "pink", "red", "orange", "yellow", "volcano", "geekblue", "lime", "gold"];
29
+ type ButtonType = (typeof ButtonTypes)[number];
30
+ type ButtonShape = (typeof ButtonShapes)[number];
31
+ type ButtonVariantType = (typeof ButtonVariantTypes)[number];
32
+ type ButtonColorType = (typeof ButtonColorTypes)[number];
33
+ type SizeType = 'small' | 'middle' | 'large' | undefined;
34
+ type ButtonHTMLType = 'button' | 'submit' | 'reset';
35
+ interface BaseButtonProps {
36
+ type?: ButtonType;
37
+ color?: ButtonColorType;
38
+ variant?: ButtonVariantType;
39
+ icon?: ReactNode;
40
+ iconPosition?: 'start' | 'end';
41
+ shape?: ButtonShape;
42
+ size?: SizeType;
43
+ disabled?: boolean;
44
+ loading?: boolean | {
45
+ delay?: number;
46
+ icon?: ReactNode;
47
+ };
48
+ prefixCls?: string;
49
+ className?: string;
50
+ rootClassName?: string;
51
+ ghost?: boolean;
52
+ danger?: boolean;
53
+ block?: boolean;
54
+ children?: ReactNode;
55
+ classNames?: {
56
+ icon?: string;
57
+ };
58
+ styles?: {
59
+ icon?: CSSProperties;
60
+ };
61
+ }
62
+ interface ButtonProps extends BaseButtonProps, Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'color' | 'type'> {
63
+ href?: string;
64
+ htmlType?: ButtonHTMLType;
65
+ }
66
+
67
+ declare const Button: ({ type, variant, color, shape, size, htmlType, className, rootClassName, classNames: customClassNames, styles, prefixCls, iconPosition, disabled, ghost, danger, block, children, href, iconNode, isLoading, ...restProps }: ButtonProps & {
68
+ iconNode?: ReactNode;
69
+ isLoading?: boolean;
70
+ }) => ReactElement;
71
+
72
+ type CheckboxProps = DefaultProps & {
73
+ disabled?: boolean;
74
+ onChange?: (e: MouseEvent<HTMLInputElement> & TargetProps) => void;
75
+ onClick?: MouseEventHandler<HTMLElement>;
76
+ onMouseEnter?: MouseEventHandler<HTMLElement>;
77
+ onMouseLeave?: MouseEventHandler<HTMLElement>;
78
+ onKeyPress?: KeyboardEventHandler<HTMLElement>;
79
+ onKeyDown?: KeyboardEventHandler<HTMLElement>;
80
+ value?: boolean;
81
+ tabIndex?: number;
82
+ name?: string;
83
+ children?: ReactNode;
84
+ id?: string;
85
+ autoFocus?: boolean;
86
+ type?: string;
87
+ skipGroup?: boolean;
88
+ required?: boolean;
89
+ defaultChecked?: boolean;
90
+ checked?: boolean;
91
+ };
92
+
93
+ declare const Checkbox: {
94
+ ({ prefixCls, className, defaultChecked, checked, style, disabled, onChange, onClick, onMouseEnter, onMouseLeave, onKeyPress, onKeyDown, tabIndex, name, children, id, autoFocus, type, value, required, noStyle }: CheckboxProps): ReactElement;
95
+ displayName: string;
96
+ };
97
+
98
+ export { Button, Checkbox, EmptyContent as Empty };
@@ -0,0 +1,291 @@
1
+ import { forwardRef, useState, useEffect } from 'react';
2
+
3
+ function styleInject(css, ref) {
4
+ if (ref === void 0) ref = {};
5
+ var insertAt = ref.insertAt;
6
+ if (!css || typeof document === 'undefined') {
7
+ return;
8
+ }
9
+ var head = document.head || document.getElementsByTagName('head')[0];
10
+ var style = document.createElement('style');
11
+ style.type = 'text/css';
12
+ if (insertAt === 'top') {
13
+ if (head.firstChild) {
14
+ head.insertBefore(style, head.firstChild);
15
+ } else {
16
+ head.appendChild(style);
17
+ }
18
+ } else {
19
+ head.appendChild(style);
20
+ }
21
+ if (style.styleSheet) {
22
+ style.styleSheet.cssText = css;
23
+ } else {
24
+ style.appendChild(document.createTextNode(css));
25
+ }
26
+ }
27
+
28
+ var css_248z$3 = ":root{--xui-color-hover:#f5f5f5;--xui-color-disabled:#e6e6e6;--xui-primary-color:#1677ff;--xui-primary-color-light:#40a9ff;--xui-text-color:rgba(0,0,0,.88);--xui-text-color-light:rgba(0,0,0,.5);--xui-error-color:#ff4d4f;--xui-error-color-light:#ff6668;--xui-success-color:#52c41a;--xui-background-color:#fff;--xui-font-size-xs:12px;--xui-font-size-sm:14px;--xui-font-size-md:14px;--xui-font-size-lg:16px;--xui-border-radius-sm:4px;--xui-border-radius-md:4px;--xui-border-radius-lg:6px;--xui-border-color:#d9d9d9;--xui-select-primary-color:var(--xui-primary-color);--xui-select-background-color:var(--xui-background-color)}html{font-family:sans-serif}.globalEllipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}";
29
+ styleInject(css_248z$3);
30
+
31
+ const prefixClsEmpty = 'xUi-empty';
32
+ const prefixClsCheckbox = 'xUi-checkbox';
33
+ const prefixClsButton = 'xUi-button';
34
+
35
+ var css_248z$2 = ".xUi-empty{align-items:center;display:grid;gap:4px;justify-content:center;padding:14px}.xUi-empty-description{color:var(--xui-text-color);font-size:var(--xui-font-size-md);text-align:center}";
36
+ styleInject(css_248z$2);
37
+
38
+ const EmptyContent = ({
39
+ icon,
40
+ style = {},
41
+ className = '',
42
+ title = 'No Data',
43
+ description = 'No data',
44
+ prefixCls = prefixClsEmpty
45
+ }) => /*#__PURE__*/React.createElement("div", {
46
+ style: style,
47
+ className: `${prefixCls} ${prefixCls}-normal ${prefixCls}-small ${className}`
48
+ }, /*#__PURE__*/React.createElement("div", {
49
+ className: `${prefixCls}-image`
50
+ }, icon || /*#__PURE__*/React.createElement("svg", {
51
+ width: "64",
52
+ height: "41",
53
+ viewBox: "0 0 64 41",
54
+ xmlns: "http://www.w3.org/2000/svg"
55
+ }, /*#__PURE__*/React.createElement("title", null, title), /*#__PURE__*/React.createElement("g", {
56
+ transform: "translate(0 1)",
57
+ fill: "none"
58
+ }, /*#__PURE__*/React.createElement("ellipse", {
59
+ fill: "#f5f5f5",
60
+ cx: "32",
61
+ cy: "33",
62
+ rx: "32",
63
+ ry: "7"
64
+ }), /*#__PURE__*/React.createElement("g", {
65
+ stroke: "#d9d9d9"
66
+ }, /*#__PURE__*/React.createElement("path", {
67
+ d: "M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"
68
+ }), /*#__PURE__*/React.createElement("path", {
69
+ d: "M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z",
70
+ fill: "#fafafa"
71
+ }))))), /*#__PURE__*/React.createElement("div", {
72
+ className: `${prefixCls}-description`
73
+ }, description));
74
+
75
+ function _extends() {
76
+ return _extends = Object.assign ? Object.assign.bind() : function (n) {
77
+ for (var e = 1; e < arguments.length; e++) {
78
+ var t = arguments[e];
79
+ for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
80
+ }
81
+ return n;
82
+ }, _extends.apply(null, arguments);
83
+ }
84
+
85
+ function clsx(...args) {
86
+ return args.flatMap(arg => {
87
+ if (!arg) {
88
+ return [];
89
+ }
90
+ if (typeof arg === 'string') {
91
+ return [arg];
92
+ }
93
+ if (typeof arg === 'number') {
94
+ return [String(arg)];
95
+ }
96
+ if (Array.isArray(arg)) {
97
+ return clsx(...arg).split(' ');
98
+ }
99
+ if (typeof arg === 'object') {
100
+ return Object.entries(arg).filter(([, value]) => Boolean(value)).map(([key]) => key);
101
+ }
102
+ return [];
103
+ }).filter(Boolean).join(' ');
104
+ }
105
+
106
+ var css_248z$1 = ".xUi-button{border:1px solid transparent;border-radius:6px;cursor:pointer;font-weight:400;line-height:1.5715;transition:all .3s ease;user-select:none;vertical-align:middle;white-space:nowrap}.xUi-button,.xUi-button-content,.xUi-button-icon{align-items:center;display:inline-flex;justify-content:center}.xUi-button-icon{line-height:0;margin-right:.5em}.xUi-button-icon:last-child{margin-left:.5em;margin-right:0}.xUi-button-spinner{animation:xUi-spin 1s linear infinite;border:1px solid transparent;border-radius:50%;border-top:1px solid var(--xui-text-color);height:1em;width:1em}@keyframes xUi-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.xUi-button-size-small{font-size:12px;height:24px;padding:4px 12px}.xUi-button-size-middle{font-size:14px;height:32px;padding:0 16px}.xUi-button-size-large{font-size:16px;height:40px;padding:8px 20px}.xUi-button-circle{border-radius:50%;justify-content:center;padding:0}.xUi-button-circle.xUi-button-size-small{height:24px;width:24px}.xUi-button-circle.xUi-button-size-large{height:40px;width:40px}.xUi-button-round{border-radius:9999px}.xUi-button-default{background-color:#fff;border-color:var(--xui-border-color);color:rgba(0,0,0,.85)}.xUi-button-default:hover{border-color:var(--xui-primary-color);color:var(--xui-primary-color)}.xUi-button-primary{background-color:var(--xui-primary-color);border-color:var(--xui-primary-color);color:#fff}.xUi-button-primary:hover{background-color:var(--xui-primary-color-light);border-color:var(--xui-primary-color-light);color:#fff}.xUi-button-dashed{background-color:#fff;border-color:var(--xui-border-color);border-style:dashed;color:rgba(0,0,0,.85)}.xUi-button-dashed:hover{border-color:var(--xui-primary-color);color:var(--xui-primary-color)}.xUi-button-text{background-color:transparent;border-color:transparent!important;color:rgba(0,0,0,.88)}.xUi-button-text:hover{background-color:rgba(0,0,0,.04);border-color:transparent;color:rgba(0,0,0,.88)}.xUi-button-link{background-color:transparent;border-color:transparent!important;color:var(--xui-primary-color)}.xUi-button-link:hover{border-color:transparent;color:var(--xui-primary-color-light)}.xUi-button-outlined{color:#fff}.xUi-button-filled,.xUi-button-outlined{background-color:transparent;border-color:var(--xui-border-color)}.xUi-button-filled{color:var(--xui-text-color)}.xUi-button-danger{background-color:transparent;border-color:var(--xui-error-color);color:var(--xui-error-color)}.xUi-button-danger:hover{border-color:var(--xui-error-color-light);color:var(--xui-error-color-light)}.xUi-button-ghost{opacity:0}.xUi-button-ghost:hover{opacity:1}.xUi-button-block{display:flex;width:100%}.xUi-button-disabled,.xUi-button-loading{background-color:var(--xui-color-disabled);border-color:var(--xui-border-color);color:var(--xui-text-color);cursor:not-allowed;opacity:.5;pointer-events:none}.xUi-button-loading{background-color:transparent}";
107
+ styleInject(css_248z$1);
108
+
109
+ const Button = ({
110
+ type = 'default',
111
+ variant = 'solid',
112
+ color = 'default',
113
+ shape = 'default',
114
+ size = 'middle',
115
+ htmlType = 'button',
116
+ className,
117
+ rootClassName,
118
+ classNames: customClassNames = {},
119
+ styles = {},
120
+ prefixCls = prefixClsButton,
121
+ iconPosition = 'start',
122
+ disabled = false,
123
+ ghost = false,
124
+ danger = false,
125
+ block = false,
126
+ children,
127
+ href,
128
+ iconNode,
129
+ isLoading = false,
130
+ ...restProps
131
+ }) => {
132
+ const classes = clsx(prefixCls, rootClassName, `${prefixCls}-${type}`, `${prefixCls}-${variant}`, `${prefixCls}-${color}`, `${prefixCls}-${shape}`, `${prefixCls}-size-${size}`, {
133
+ [`${prefixCls}-block`]: block,
134
+ [`${prefixCls}-ghost`]: ghost,
135
+ [`${prefixCls}-danger`]: danger,
136
+ [`${prefixCls}-loading`]: isLoading,
137
+ [`${prefixCls}-disabled`]: disabled
138
+ }, className);
139
+ const mergedDisabled = disabled || isLoading;
140
+ const content = /*#__PURE__*/React.createElement(React.Fragment, null, iconNode && iconPosition === 'start' && /*#__PURE__*/React.createElement("span", {
141
+ className: clsx(`${prefixCls}-icon`, customClassNames.icon),
142
+ style: styles.icon
143
+ }, iconNode), /*#__PURE__*/React.createElement("span", {
144
+ className: `${prefixCls}-content`
145
+ }, children), iconNode && iconPosition === 'end' && /*#__PURE__*/React.createElement("span", {
146
+ className: clsx(`${prefixCls}-icon`, customClassNames.icon),
147
+ style: styles.icon
148
+ }, iconNode));
149
+ if (href) {
150
+ return /*#__PURE__*/React.createElement("a", {
151
+ className: classes,
152
+ href: mergedDisabled ? undefined : href,
153
+ "aria-disabled": mergedDisabled
154
+ }, content);
155
+ }
156
+ return /*#__PURE__*/React.createElement("button", _extends({
157
+ type: htmlType,
158
+ className: classes,
159
+ disabled: mergedDisabled
160
+ }, restProps), content);
161
+ };
162
+
163
+ var css_248z = ".xUi-checkbox-wrapper{align-items:center;color:var(--xui-main-color);cursor:pointer;display:inline-flex;font-size:var(--xui-font-size-md);margin:16px 0}.xUi-checkbox{background-color:transparent;border:1px solid var(--xui-border-color);border-radius:var(--xui-border-radius-sm);display:inline-block;height:14px;position:relative;transition:all .3s;width:14px}.xUi-checkbox.xUi-checkbox-checked{background-color:#f0f5ff;border-color:var(--xui-primary-color)}.xUi-checkbox input{cursor:pointer;inset:0;opacity:0;position:absolute}.xUi-checkbox-inner{border-left:0;border-top:0;border:2px solid var(--xui-background-color);height:6px;left:50%;position:absolute;top:50%;transform:rotate(45deg) scale(0);transition:transform .2s ease-in-out;width:10px}.xUi-checkbox-check{background-color:var(--xui-primary-color);border-color:var(--xui-primary-color);display:block;height:100%;position:relative;transition:.1s ease;width:100%}.xUi-checkbox-check:after{border:solid #fff;border-width:0 2px 2px 0;content:\"\";height:8px;left:3px;position:absolute;top:1px;transform:rotate(45deg);width:5px}.xUi-checkbox-disabled,.xUi-checkbox-disabled .xUi-checkbox-check{background-color:var(--xui-color-disabled);border-color:var(--xui-border-color)!important;cursor:not-allowed;opacity:.5}.xUi-checkbox-label{font-size:14px;margin-left:8px;user-select:none}.xUi-checkbox:focus:not(.disabled),.xUi-checkbox:hover:not(.disabled){border-color:var(--xui-primary-color);cursor:pointer}.xUi-checkbox.disabled{cursor:not-allowed;opacity:.5}";
164
+ styleInject(css_248z);
165
+
166
+ const CheckboxClient = /*#__PURE__*/forwardRef(({
167
+ prefixCls,
168
+ className = '',
169
+ defaultChecked = false,
170
+ checked,
171
+ style,
172
+ disabled = false,
173
+ onChange,
174
+ onClick,
175
+ onMouseEnter,
176
+ onMouseLeave,
177
+ onKeyPress,
178
+ onKeyDown,
179
+ tabIndex,
180
+ name,
181
+ children,
182
+ id,
183
+ autoFocus,
184
+ type = 'checkbox',
185
+ value = false,
186
+ required = false,
187
+ noStyle
188
+ }, ref) => {
189
+ const isChecked = checked !== undefined ? checked : defaultChecked || value;
190
+ const [internalChecked, setInternalChecked] = useState(isChecked);
191
+ const handleClick = e => {
192
+ e.stopPropagation();
193
+ if (disabled) {
194
+ return;
195
+ }
196
+ setInternalChecked(!internalChecked);
197
+ e.target.value = !internalChecked;
198
+ onClick?.(e);
199
+ onChange?.(e);
200
+ };
201
+ useEffect(() => {
202
+ if (checked !== undefined) {
203
+ setInternalChecked(checked);
204
+ }
205
+ }, [checked]);
206
+ return /*#__PURE__*/React.createElement("div", {
207
+ className: `${prefixCls}-wrapper`
208
+ }, /*#__PURE__*/React.createElement("div", {
209
+ ref: ref,
210
+ style: style,
211
+ onClick: handleClick,
212
+ className: clsx([prefixCls, className, {
213
+ noStyle: noStyle,
214
+ [`${prefixCls}-disabled`]: disabled,
215
+ [`${prefixCls}-checked`]: internalChecked
216
+ }])
217
+ }, /*#__PURE__*/React.createElement("input", {
218
+ id: id,
219
+ type: type,
220
+ name: name,
221
+ disabled: disabled,
222
+ tabIndex: tabIndex,
223
+ required: required,
224
+ autoFocus: autoFocus,
225
+ onKeyDown: onKeyDown,
226
+ onKeyPress: onKeyPress,
227
+ onMouseEnter: onMouseEnter,
228
+ onMouseLeave: onMouseLeave
229
+ }), /*#__PURE__*/React.createElement("span", {
230
+ className: `${prefixCls}-box`
231
+ }, /*#__PURE__*/React.createElement("span", {
232
+ className: `${prefixCls}-check`,
233
+ style: {
234
+ opacity: Number(internalChecked)
235
+ }
236
+ }))), children && /*#__PURE__*/React.createElement("span", {
237
+ className: `${prefixCls}-label`
238
+ }, children));
239
+ });
240
+ CheckboxClient.displayName = 'CheckboxClient';
241
+
242
+ const Checkbox = ({
243
+ prefixCls = prefixClsCheckbox,
244
+ className = '',
245
+ defaultChecked = false,
246
+ checked,
247
+ style,
248
+ disabled = false,
249
+ onChange,
250
+ onClick,
251
+ onMouseEnter,
252
+ onMouseLeave,
253
+ onKeyPress,
254
+ onKeyDown,
255
+ tabIndex,
256
+ name,
257
+ children,
258
+ id,
259
+ autoFocus,
260
+ type = 'checkbox',
261
+ value = false,
262
+ required = false,
263
+ noStyle
264
+ }) => {
265
+ return /*#__PURE__*/React.createElement(CheckboxClient, {
266
+ prefixCls: prefixCls,
267
+ className: className,
268
+ defaultChecked: defaultChecked,
269
+ checked: checked,
270
+ style: style,
271
+ disabled: disabled,
272
+ onChange: onChange,
273
+ onClick: onClick,
274
+ onMouseEnter: onMouseEnter,
275
+ onMouseLeave: onMouseLeave,
276
+ onKeyPress: onKeyPress,
277
+ onKeyDown: onKeyDown,
278
+ tabIndex: tabIndex,
279
+ name: name,
280
+ id: id,
281
+ autoFocus: autoFocus,
282
+ type: type,
283
+ value: value,
284
+ required: required,
285
+ noStyle: noStyle
286
+ }, children);
287
+ };
288
+ Checkbox.displayName = 'Checkbox';
289
+
290
+ export { Button, Checkbox, EmptyContent as Empty };
291
+ //# sourceMappingURL=index.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../lib/utils/index.ts","../lib/components/Empty/Empty.tsx","../lib/helpers/index.ts","../lib/components/Button/Button.tsx","../lib/components/Checkbox/Checkbox.client.tsx","../lib/components/Checkbox/Checkbox.tsx"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","export const prefixClsForm = 'xUi-form';\nexport const prefixClsFormItem = 'xUi-form-item';\nexport const prefixClsEmpty = 'xUi-empty';\nexport const prefixClsInput = 'xUi-input';\nexport const prefixClsSelect = 'xUi-select';\nexport const prefixClsCheckbox = 'xUi-checkbox';\nexport const prefixClsRadio = 'xUi-radio';\nexport const prefixClsTextArea = 'xUi-textarea';\nexport const prefixClsUpload = 'xUi-upload';\nexport const prefixClsDatePicker = 'xUi-datepicker';\nexport const prefixClsRangePicker = 'xUi-rangepicker';\nexport const prefixClsTimePicker = 'xUi-timepicker';\nexport const prefixClsButton = 'xUi-button';\nexport const prefixClsSkeleton = 'xUi-skeleton';\n","import { EmptyContentProps } from '../../types/empty';\nimport { prefixClsEmpty } from '../../utils';\nimport './style.css';\n\nconst EmptyContent = ({\n icon,\n style = {},\n className = '',\n title = 'No Data',\n description = 'No data',\n prefixCls = prefixClsEmpty\n}: EmptyContentProps) => (\n <div\n style={style}\n className={`${prefixCls} ${prefixCls}-normal ${prefixCls}-small ${className}`}\n >\n <div className={`${prefixCls}-image`}>\n {icon || (\n <svg\n width=\"64\"\n height=\"41\"\n viewBox=\"0 0 64 41\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <title>{title}</title>\n <g transform=\"translate(0 1)\" fill=\"none\">\n <ellipse fill=\"#f5f5f5\" cx=\"32\" cy=\"33\" rx=\"32\" ry=\"7\"></ellipse>\n <g stroke=\"#d9d9d9\">\n <path d=\"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z\"></path>\n <path\n d=\"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z\"\n fill=\"#fafafa\"\n ></path>\n </g>\n </g>\n </svg>\n )}\n </div>\n <div className={`${prefixCls}-description`}>{description}</div>\n </div>\n);\n\nexport default EmptyContent;\n","import { RuleType } from '../types';\n\nexport const parseValue = (value: RuleType): RuleType => {\n if (value === 'true') {\n return true;\n }\n\n if (value === 'false') {\n return false;\n }\n\n if (!isNaN(Number(value))) {\n return Number(value);\n }\n\n return value;\n};\n\nexport function createArray(length: number): number[] {\n return Array.from({ length }, (_, index) => index);\n}\n\nexport function clsx(...args: RuleType[]): string {\n return args\n .flatMap(arg => {\n if (!arg) {\n return [];\n }\n\n if (typeof arg === 'string') {\n return [arg];\n }\n\n if (typeof arg === 'number') {\n return [String(arg)];\n }\n\n if (Array.isArray(arg)) {\n return clsx(...arg).split(' ');\n }\n\n if (typeof arg === 'object') {\n return Object.entries(arg)\n .filter(([, value]) => Boolean(value))\n .map(([key]) => key);\n }\n\n return [];\n })\n .filter(Boolean)\n .join(' ');\n}\n","import { ReactElement, ReactNode } from 'react';\nimport { clsx } from '../../helpers';\nimport { ButtonProps } from '../../types/button';\nimport { prefixClsButton } from '../../utils';\nimport './style.css';\n\nconst Button = ({\n type = 'default',\n variant = 'solid',\n color = 'default',\n shape = 'default',\n size = 'middle',\n htmlType = 'button',\n className,\n rootClassName,\n classNames: customClassNames = {},\n styles = {},\n prefixCls = prefixClsButton,\n iconPosition = 'start',\n disabled = false,\n ghost = false,\n danger = false,\n block = false,\n children,\n href,\n iconNode,\n isLoading = false,\n ...restProps\n}: ButtonProps & {\n iconNode?: ReactNode;\n isLoading?: boolean;\n}): ReactElement => {\n const classes = clsx(\n prefixCls,\n rootClassName,\n `${prefixCls}-${type}`,\n `${prefixCls}-${variant}`,\n `${prefixCls}-${color}`,\n `${prefixCls}-${shape}`,\n `${prefixCls}-size-${size}`,\n {\n [`${prefixCls}-block`]: block,\n [`${prefixCls}-ghost`]: ghost,\n [`${prefixCls}-danger`]: danger,\n [`${prefixCls}-loading`]: isLoading,\n [`${prefixCls}-disabled`]: disabled\n },\n className\n );\n\n const mergedDisabled = disabled || isLoading;\n\n const content = (\n <>\n {iconNode && iconPosition === 'start' && (\n <span\n className={clsx(`${prefixCls}-icon`, customClassNames.icon)}\n style={styles.icon}\n >\n {iconNode}\n </span>\n )}\n <span className={`${prefixCls}-content`}>{children}</span>\n {iconNode && iconPosition === 'end' && (\n <span\n className={clsx(`${prefixCls}-icon`, customClassNames.icon)}\n style={styles.icon}\n >\n {iconNode}\n </span>\n )}\n </>\n );\n\n if (href) {\n return (\n <a\n className={classes}\n href={mergedDisabled ? undefined : href}\n aria-disabled={mergedDisabled}\n >\n {content}\n </a>\n );\n }\n\n return (\n <button\n type={htmlType}\n className={classes}\n disabled={mergedDisabled}\n {...restProps}\n >\n {content}\n </button>\n );\n};\n\nexport default Button;\n","'use client';\n\nimport {\n ForwardedRef,\n forwardRef,\n MouseEvent,\n ReactElement,\n useEffect,\n useState\n} from 'react';\nimport { clsx } from '../../helpers';\nimport { SyntheticBaseEvent } from '../../types';\nimport { CheckboxProps } from '../../types/checkbox';\nimport './style.css';\n\nconst CheckboxClient = forwardRef<HTMLDivElement, CheckboxProps>(\n (\n {\n prefixCls,\n className = '',\n defaultChecked = false,\n checked,\n style,\n disabled = false,\n onChange,\n onClick,\n onMouseEnter,\n onMouseLeave,\n onKeyPress,\n onKeyDown,\n tabIndex,\n name,\n children,\n id,\n autoFocus,\n type = 'checkbox',\n value = false,\n required = false,\n noStyle\n },\n ref: ForwardedRef<HTMLDivElement>\n ): ReactElement => {\n const isChecked = checked !== undefined ? checked : defaultChecked || value;\n const [internalChecked, setInternalChecked] = useState(isChecked);\n\n const handleClick = (\n e: MouseEvent<HTMLInputElement> & SyntheticBaseEvent\n ) => {\n e.stopPropagation();\n\n if (disabled) {\n return;\n }\n\n setInternalChecked(!internalChecked);\n e.target.value = !internalChecked;\n\n onClick?.(e);\n onChange?.(e);\n };\n\n useEffect(() => {\n if (checked !== undefined) {\n setInternalChecked(checked);\n }\n }, [checked]);\n\n return (\n <div className={`${prefixCls}-wrapper`}>\n <div\n ref={ref}\n style={style}\n onClick={handleClick}\n className={clsx([\n prefixCls,\n className,\n {\n noStyle: noStyle,\n [`${prefixCls}-disabled`]: disabled,\n [`${prefixCls}-checked`]: internalChecked\n }\n ])}\n >\n <input\n id={id}\n type={type}\n name={name}\n disabled={disabled}\n tabIndex={tabIndex}\n required={required}\n autoFocus={autoFocus}\n onKeyDown={onKeyDown}\n onKeyPress={onKeyPress}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n />\n\n <span className={`${prefixCls}-box`}>\n <span\n className={`${prefixCls}-check`}\n style={{ opacity: Number(internalChecked) }}\n />\n </span>\n </div>\n\n {children && <span className={`${prefixCls}-label`}>{children}</span>}\n </div>\n );\n }\n);\n\nCheckboxClient.displayName = 'CheckboxClient';\n\nexport default CheckboxClient;","import { ReactElement } from 'react';\nimport { CheckboxProps } from '../../types/checkbox';\nimport { prefixClsCheckbox } from '../../utils';\nimport CheckboxClient from './Checkbox.client';\n\nconst Checkbox = ({\n prefixCls = prefixClsCheckbox,\n className = '',\n defaultChecked = false,\n checked,\n style,\n disabled = false,\n onChange,\n onClick,\n onMouseEnter,\n onMouseLeave,\n onKeyPress,\n onKeyDown,\n tabIndex,\n name,\n children,\n id,\n autoFocus,\n type = 'checkbox',\n value = false,\n required = false,\n noStyle\n}: CheckboxProps): ReactElement => {\n return (\n <CheckboxClient\n prefixCls={prefixCls}\n className={className}\n defaultChecked={defaultChecked}\n checked={checked}\n style={style}\n disabled={disabled}\n onChange={onChange}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onKeyPress={onKeyPress}\n onKeyDown={onKeyDown}\n tabIndex={tabIndex}\n name={name}\n id={id}\n autoFocus={autoFocus}\n type={type}\n value={value}\n required={required}\n noStyle={noStyle}\n >\n {children}\n </CheckboxClient>\n );\n};\n\nCheckbox.displayName = 'Checkbox';\n\nexport default Checkbox;"],"names":["styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","prefixClsEmpty","prefixClsCheckbox","prefixClsButton","EmptyContent","icon","className","title","description","prefixCls","React","width","height","viewBox","xmlns","transform","fill","cx","cy","rx","ry","stroke","d","clsx","args","flatMap","arg","String","Array","isArray","split","Object","entries","filter","value","Boolean","map","key","join","Button","variant","color","shape","size","htmlType","rootClassName","classNames","customClassNames","styles","iconPosition","disabled","ghost","danger","block","children","href","iconNode","isLoading","restProps","classes","mergedDisabled","content","Fragment","undefined","_extends","CheckboxClient","forwardRef","defaultChecked","checked","onChange","onClick","onMouseEnter","onMouseLeave","onKeyPress","onKeyDown","tabIndex","name","id","autoFocus","required","noStyle","isChecked","internalChecked","setInternalChecked","useState","handleClick","e","stopPropagation","target","useEffect","opacity","Number","displayName","Checkbox"],"mappings":"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","x_google_ignoreList":[0]}