x-ui-design 0.1.2 → 0.1.4
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.
- package/dist/index.d.ts +24 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/package.json +17 -4
- package/eslint.config.mjs +0 -16
- package/next.config.ts +0 -7
- package/src/app/favicon.ico +0 -0
- package/src/app/globals.css +0 -43
- package/src/app/layout.tsx +0 -16
- package/src/app/page.tsx +0 -18
- package/src/xUiDesign/components/Checkbox/index.tsx +0 -110
- package/src/xUiDesign/components/Checkbox/style.css +0 -91
- package/src/xUiDesign/components/DatePicker/RangePicker/index.tsx +0 -387
- package/src/xUiDesign/components/DatePicker/RangePicker/style.css +0 -427
- package/src/xUiDesign/components/DatePicker/TimePicker/index.tsx +0 -462
- package/src/xUiDesign/components/DatePicker/TimePicker/style.css +0 -188
- package/src/xUiDesign/components/DatePicker/index.tsx +0 -487
- package/src/xUiDesign/components/DatePicker/style.css +0 -332
- package/src/xUiDesign/components/Empty/index.tsx +0 -43
- package/src/xUiDesign/components/Empty/style.css +0 -13
- package/src/xUiDesign/components/Form/Item/index.tsx +0 -226
- package/src/xUiDesign/components/Form/Item/style.css +0 -62
- package/src/xUiDesign/components/Form/index.tsx +0 -96
- package/src/xUiDesign/components/Input/Textarea/index.tsx +0 -115
- package/src/xUiDesign/components/Input/Textarea/style.css +0 -104
- package/src/xUiDesign/components/Input/index.tsx +0 -155
- package/src/xUiDesign/components/Input/style.css +0 -135
- package/src/xUiDesign/components/Radio/Button/index.tsx +0 -47
- package/src/xUiDesign/components/Radio/Button/style.css +0 -43
- package/src/xUiDesign/components/Radio/Group/index.tsx +0 -101
- package/src/xUiDesign/components/Radio/Group/style.css +0 -53
- package/src/xUiDesign/components/Radio/index.tsx +0 -89
- package/src/xUiDesign/components/Radio/style.css +0 -69
- package/src/xUiDesign/components/Select/Option/index.tsx +0 -43
- package/src/xUiDesign/components/Select/Option/style.css +0 -44
- package/src/xUiDesign/components/Select/Tag/index.tsx +0 -42
- package/src/xUiDesign/components/Select/Tag/style.css +0 -82
- package/src/xUiDesign/components/Select/index.tsx +0 -659
- package/src/xUiDesign/components/Select/style.css +0 -182
- package/src/xUiDesign/components/Upload/index.tsx +0 -289
- package/src/xUiDesign/components/Upload/style.css +0 -151
- package/src/xUiDesign/components/icons/index.tsx +0 -207
- package/src/xUiDesign/helpers/index.ts +0 -48
- package/src/xUiDesign/hooks/useForm.ts +0 -322
- package/src/xUiDesign/hooks/useWatch.ts +0 -41
- package/src/xUiDesign/types/checkbox.ts +0 -28
- package/src/xUiDesign/types/datepicker.ts +0 -162
- package/src/xUiDesign/types/empty.ts +0 -8
- package/src/xUiDesign/types/form.ts +0 -145
- package/src/xUiDesign/types/index.ts +0 -27
- package/src/xUiDesign/types/input.ts +0 -61
- package/src/xUiDesign/types/radio.ts +0 -61
- package/src/xUiDesign/types/select.ts +0 -112
- package/src/xUiDesign/types/upload.ts +0 -67
- package/src/xUiDesign/utils/index.ts +0 -12
- package/tsconfig.json +0 -40
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export { Form } from '@/xUiDesign/components/Form';
|
|
2
|
+
export { FormItem } from '@/xUiDesign/components/Form/Item';
|
|
3
|
+
export { Checkbox } from '@/xUiDesign/components/Checkbox';
|
|
4
|
+
export { DatePicker } from '@/xUiDesign/components/DatePicker';
|
|
5
|
+
export { TimePicker } from '@/xUiDesign/components/DatePicker/TimePicker';
|
|
6
|
+
export { RangePicker } from '@/xUiDesign/components/DatePicker/RangePicker';
|
|
7
|
+
export { ButtonComponent } from '@/xUiDesign/components/Button';
|
|
8
|
+
export { EmptyContent } from '@/xUiDesign/components/Empty';
|
|
9
|
+
export { Input } from '@/xUiDesign/components/Input';
|
|
10
|
+
export { Textarea } from '@/xUiDesign/components/Input/Textarea';
|
|
11
|
+
export { Radio } from '@/xUiDesign/components/Radio';
|
|
12
|
+
export { RadioGroup } from '@/xUiDesign/components/Radio/Group';
|
|
13
|
+
export { RadioButton } from '@/xUiDesign/components/Radio/Button';
|
|
14
|
+
export { Select } from '@/xUiDesign/components/Select';
|
|
15
|
+
export { Option } from '@/xUiDesign/components/Select/Option';
|
|
16
|
+
export { Tag } from '@/xUiDesign/components/Select/Tag';
|
|
17
|
+
export { Skeleton } from '@/xUiDesign/components/Skeleton';
|
|
18
|
+
export { SkeletonAvatar } from '@/xUiDesign/components/Skeleton/Avatar';
|
|
19
|
+
export { SkeletonButton } from '@/xUiDesign/components/Skeleton/Button';
|
|
20
|
+
export { SkeletonImage } from '@/xUiDesign/components/Skeleton/Image';
|
|
21
|
+
export { SkeletonInput } from '@/xUiDesign/components/Skeleton/Input';
|
|
22
|
+
export { Upload } from '@/xUiDesign/components/Upload';
|
|
23
|
+
export { useForm } from '@/xUiDesign/hooks/useForm';
|
|
24
|
+
export { useWatch } from '@/xUiDesign/hooks/useWatch';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export { Form } from '@/xUiDesign/components/Form';
|
|
2
|
+
export { FormItem } from '@/xUiDesign/components/Form/Item';
|
|
3
|
+
export { Checkbox } from '@/xUiDesign/components/Checkbox';
|
|
4
|
+
export { DatePicker } from '@/xUiDesign/components/DatePicker';
|
|
5
|
+
export { TimePicker } from '@/xUiDesign/components/DatePicker/TimePicker';
|
|
6
|
+
export { RangePicker } from '@/xUiDesign/components/DatePicker/RangePicker';
|
|
7
|
+
export { ButtonComponent } from '@/xUiDesign/components/Button';
|
|
8
|
+
export { EmptyContent } from '@/xUiDesign/components/Empty';
|
|
9
|
+
export { Input } from '@/xUiDesign/components/Input';
|
|
10
|
+
export { Textarea } from '@/xUiDesign/components/Input/Textarea';
|
|
11
|
+
export { Radio } from '@/xUiDesign/components/Radio';
|
|
12
|
+
export { RadioGroup } from '@/xUiDesign/components/Radio/Group';
|
|
13
|
+
export { RadioButton } from '@/xUiDesign/components/Radio/Button';
|
|
14
|
+
export { Select } from '@/xUiDesign/components/Select';
|
|
15
|
+
export { Option } from '@/xUiDesign/components/Select/Option';
|
|
16
|
+
export { Tag } from '@/xUiDesign/components/Select/Tag';
|
|
17
|
+
export { Skeleton } from '@/xUiDesign/components/Skeleton';
|
|
18
|
+
export { SkeletonAvatar } from '@/xUiDesign/components/Skeleton/Avatar';
|
|
19
|
+
export { SkeletonButton } from '@/xUiDesign/components/Skeleton/Button';
|
|
20
|
+
export { SkeletonImage } from '@/xUiDesign/components/Skeleton/Image';
|
|
21
|
+
export { SkeletonInput } from '@/xUiDesign/components/Skeleton/Input';
|
|
22
|
+
export { Upload } from '@/xUiDesign/components/Upload';
|
|
23
|
+
export { useForm } from '@/xUiDesign/hooks/useForm';
|
|
24
|
+
export { useWatch } from '@/xUiDesign/hooks/useWatch';
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,26 +1,39 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "x-ui-design",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"license": "ISC",
|
|
5
5
|
"author": "Gabriel Boyajyan",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
6
11
|
"scripts": {
|
|
7
12
|
"dev": "next dev --turbopack",
|
|
8
13
|
"build": "next build",
|
|
14
|
+
"rollup-build": "rollup -c --bundleConfigAsCjs",
|
|
9
15
|
"start": "next start",
|
|
10
16
|
"lint": "next lint"
|
|
11
17
|
},
|
|
12
18
|
"dependencies": {
|
|
13
19
|
"next": "15.2.0",
|
|
14
|
-
"react": "^
|
|
15
|
-
"react-dom": "^
|
|
20
|
+
"react": "^18.0.0",
|
|
21
|
+
"react-dom": "^18.0.0"
|
|
16
22
|
},
|
|
17
23
|
"devDependencies": {
|
|
18
24
|
"@eslint/eslintrc": "^3",
|
|
25
|
+
"@rollup/plugin-commonjs": "^28.0.3",
|
|
26
|
+
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
27
|
+
"@rollup/plugin-typescript": "^12.1.2",
|
|
19
28
|
"@types/node": "^20",
|
|
20
29
|
"@types/react": "^19",
|
|
21
30
|
"@types/react-dom": "^19",
|
|
22
31
|
"eslint": "^9",
|
|
23
32
|
"eslint-config-next": "15.2.0",
|
|
24
|
-
"
|
|
33
|
+
"rollup": "^4.40.2",
|
|
34
|
+
"rollup-plugin-dts": "^6.2.1",
|
|
35
|
+
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
36
|
+
"rollup-plugin-postcss": "^4.0.2",
|
|
37
|
+
"typescript": "^5.8.3"
|
|
25
38
|
}
|
|
26
39
|
}
|
package/eslint.config.mjs
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { dirname } from "path";
|
|
2
|
-
import { fileURLToPath } from "url";
|
|
3
|
-
import { FlatCompat } from "@eslint/eslintrc";
|
|
4
|
-
|
|
5
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
6
|
-
const __dirname = dirname(__filename);
|
|
7
|
-
|
|
8
|
-
const compat = new FlatCompat({
|
|
9
|
-
baseDirectory: __dirname,
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
const eslintConfig = [
|
|
13
|
-
...compat.extends("next/core-web-vitals", "next/typescript"),
|
|
14
|
-
];
|
|
15
|
-
|
|
16
|
-
export default eslintConfig;
|
package/next.config.ts
DELETED
package/src/app/favicon.ico
DELETED
|
Binary file
|
package/src/app/globals.css
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
:root {
|
|
2
|
-
/* MAIN */
|
|
3
|
-
--xui-color-hover: #f5f5f5;
|
|
4
|
-
--xui-color-disabled: #e6e6e6;
|
|
5
|
-
|
|
6
|
-
--xui-primary-color: #1677ff;
|
|
7
|
-
--xui-primary-color-light: #40a9ff;
|
|
8
|
-
|
|
9
|
-
--xui-text-color: rgba(0, 0, 0, 0.88);
|
|
10
|
-
--xui-text-color-light: rgba(0, 0, 0, 0.5);
|
|
11
|
-
|
|
12
|
-
--xui-error-color: #ff4d4f;
|
|
13
|
-
--xui-success-color: #52c41a;
|
|
14
|
-
|
|
15
|
-
--xui-background-color: #ffffff;
|
|
16
|
-
|
|
17
|
-
/* FONTS */
|
|
18
|
-
--xui-font-size-xs: 12px;
|
|
19
|
-
--xui-font-size-sm: 14px;
|
|
20
|
-
--xui-font-size-md: 14px;
|
|
21
|
-
--xui-font-size-lg: 16px;
|
|
22
|
-
|
|
23
|
-
/* BORDERS */
|
|
24
|
-
--xui-border-radius-sm: 4px;
|
|
25
|
-
--xui-border-radius-md: 4px;
|
|
26
|
-
--xui-border-radius-lg: 6px;
|
|
27
|
-
|
|
28
|
-
--xui-border-color: #d9d9d9;
|
|
29
|
-
|
|
30
|
-
/* SELECT */
|
|
31
|
-
--xui-select-primary-color: var(--xui-primary-color);
|
|
32
|
-
--xui-select-background-color: var(--xui-background-color);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
html {
|
|
36
|
-
font-family: sans-serif;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.globalEllipsis {
|
|
40
|
-
text-overflow: ellipsis;
|
|
41
|
-
overflow: hidden;
|
|
42
|
-
white-space: nowrap;
|
|
43
|
-
}
|
package/src/app/layout.tsx
DELETED
package/src/app/page.tsx
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
|
|
3
|
-
import Upload from "@/xUiDesign/components/Upload";
|
|
4
|
-
|
|
5
|
-
export default function Home() {
|
|
6
|
-
return (
|
|
7
|
-
<>
|
|
8
|
-
<Upload
|
|
9
|
-
action="https://660d2bd96ddfa2943b33731c.mockapi.io/api/upload"
|
|
10
|
-
listType="picture"
|
|
11
|
-
multiple
|
|
12
|
-
onChange={(e) => console.log(e)}
|
|
13
|
-
>
|
|
14
|
-
<button>Select File</button>
|
|
15
|
-
</Upload>
|
|
16
|
-
</>
|
|
17
|
-
)
|
|
18
|
-
}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
"use client"
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
ForwardedRef,
|
|
5
|
-
forwardRef,
|
|
6
|
-
MouseEvent,
|
|
7
|
-
ReactElement,
|
|
8
|
-
useEffect,
|
|
9
|
-
useState
|
|
10
|
-
} from 'react';
|
|
11
|
-
import { SyntheticBaseEvent } from '@/xUiDesign/types';
|
|
12
|
-
import { CheckboxProps } from '@/xUiDesign/types/checkbox';
|
|
13
|
-
import { prefixClsCheckbox } from '@/xUiDesign/utils';
|
|
14
|
-
import './style.css';
|
|
15
|
-
import { clsx } from '@/xUiDesign/helpers';
|
|
16
|
-
|
|
17
|
-
const Checkbox = forwardRef<HTMLDivElement, CheckboxProps>(({
|
|
18
|
-
prefixCls = prefixClsCheckbox,
|
|
19
|
-
className = '',
|
|
20
|
-
defaultChecked = false,
|
|
21
|
-
checked,
|
|
22
|
-
style,
|
|
23
|
-
disabled = false,
|
|
24
|
-
onChange,
|
|
25
|
-
onClick,
|
|
26
|
-
onMouseEnter,
|
|
27
|
-
onMouseLeave,
|
|
28
|
-
onKeyPress,
|
|
29
|
-
onKeyDown,
|
|
30
|
-
tabIndex,
|
|
31
|
-
name,
|
|
32
|
-
children,
|
|
33
|
-
id,
|
|
34
|
-
autoFocus,
|
|
35
|
-
type = 'checkbox',
|
|
36
|
-
value = false,
|
|
37
|
-
required = false,
|
|
38
|
-
noStyle
|
|
39
|
-
}, ref: ForwardedRef<HTMLDivElement>): ReactElement => {
|
|
40
|
-
const isChecked = checked !== undefined ? checked : defaultChecked || value;
|
|
41
|
-
const [internalChecked, setInternalChecked] = useState(isChecked);
|
|
42
|
-
|
|
43
|
-
const handleClick = (
|
|
44
|
-
e: MouseEvent<HTMLInputElement> & SyntheticBaseEvent
|
|
45
|
-
) => {
|
|
46
|
-
e.stopPropagation();
|
|
47
|
-
|
|
48
|
-
if (disabled) {
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
setInternalChecked(!internalChecked);
|
|
53
|
-
e.target.value = !internalChecked;
|
|
54
|
-
|
|
55
|
-
onClick?.(e);
|
|
56
|
-
onChange?.(e);
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
useEffect(() => {
|
|
60
|
-
if (checked !== undefined) {
|
|
61
|
-
setInternalChecked(checked);
|
|
62
|
-
}
|
|
63
|
-
}, [checked]);
|
|
64
|
-
|
|
65
|
-
return (
|
|
66
|
-
<div className={`${prefixCls}-wrapper`}>
|
|
67
|
-
<div
|
|
68
|
-
ref={ref}
|
|
69
|
-
style={style}
|
|
70
|
-
onClick={handleClick}
|
|
71
|
-
className={clsx([
|
|
72
|
-
prefixCls,
|
|
73
|
-
className,
|
|
74
|
-
{
|
|
75
|
-
'noStyle': noStyle,
|
|
76
|
-
[`${prefixCls}-disabled`]: disabled,
|
|
77
|
-
[`${prefixCls}-checked`]: internalChecked
|
|
78
|
-
}
|
|
79
|
-
])}
|
|
80
|
-
>
|
|
81
|
-
<input
|
|
82
|
-
id={id}
|
|
83
|
-
type={type}
|
|
84
|
-
name={name}
|
|
85
|
-
disabled={disabled}
|
|
86
|
-
tabIndex={tabIndex}
|
|
87
|
-
required={required}
|
|
88
|
-
autoFocus={autoFocus}
|
|
89
|
-
onKeyDown={onKeyDown}
|
|
90
|
-
onKeyPress={onKeyPress}
|
|
91
|
-
onMouseEnter={onMouseEnter}
|
|
92
|
-
onMouseLeave={onMouseLeave}
|
|
93
|
-
/>
|
|
94
|
-
|
|
95
|
-
<span className={`${prefixCls}-box`}>
|
|
96
|
-
<span
|
|
97
|
-
className={`${prefixCls}-check`}
|
|
98
|
-
style={{ opacity: Number(internalChecked) }}
|
|
99
|
-
/>
|
|
100
|
-
</span>
|
|
101
|
-
</div>
|
|
102
|
-
|
|
103
|
-
{children && <span className={`${prefixCls}-label`}>{children}</span>}
|
|
104
|
-
</div>
|
|
105
|
-
);
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
Checkbox.displayName = "Checkbox"
|
|
109
|
-
|
|
110
|
-
export { Checkbox };
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
.xUi-checkbox-wrapper {
|
|
2
|
-
cursor: pointer;
|
|
3
|
-
font-size: var(--xui-font-size-md);
|
|
4
|
-
align-items: center;
|
|
5
|
-
display: inline-flex;
|
|
6
|
-
color: var(--xui-main-color);
|
|
7
|
-
margin: 16px 0;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
.xUi-checkbox {
|
|
11
|
-
width: 14px;
|
|
12
|
-
height: 14px;
|
|
13
|
-
position: relative;
|
|
14
|
-
border-radius: var(--xui-border-radius-sm);
|
|
15
|
-
transition: all 0.3s;
|
|
16
|
-
display: inline-block;
|
|
17
|
-
background-color: transparent;
|
|
18
|
-
border: 1px solid var(--xui-border-color);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
.xUi-checkbox.xUi-checkbox-checked {
|
|
22
|
-
border-color: var(--xui-primary-color);
|
|
23
|
-
background-color: #f0f5ff;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
.xUi-checkbox input {
|
|
27
|
-
inset: 0;
|
|
28
|
-
opacity: 0;
|
|
29
|
-
cursor: pointer;
|
|
30
|
-
position: absolute;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.xUi-checkbox-inner {
|
|
34
|
-
top: 50%;
|
|
35
|
-
left: 50%;
|
|
36
|
-
width: 10px;
|
|
37
|
-
height: 6px;
|
|
38
|
-
border-top: 0;
|
|
39
|
-
border-left: 0;
|
|
40
|
-
position: absolute;
|
|
41
|
-
border: 2px solid var(--xui-background-color);
|
|
42
|
-
transform: rotate(45deg) scale(0);
|
|
43
|
-
transition: transform 0.2s ease-in-out;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.xUi-checkbox-check {
|
|
47
|
-
width: 100%;
|
|
48
|
-
height: 100%;
|
|
49
|
-
display: block;
|
|
50
|
-
position: relative;
|
|
51
|
-
transition: 0.1s ease;
|
|
52
|
-
border-color: var(--xui-primary-color);
|
|
53
|
-
background-color: var(--xui-primary-color);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
.xUi-checkbox-check::after {
|
|
57
|
-
top: 1px;
|
|
58
|
-
left: 3px;
|
|
59
|
-
width: 5px;
|
|
60
|
-
height: 8px;
|
|
61
|
-
content: "";
|
|
62
|
-
position: absolute;
|
|
63
|
-
border: solid white;
|
|
64
|
-
transform: rotate(45deg);
|
|
65
|
-
border-width: 0 2px 2px 0;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
.xUi-checkbox-disabled,
|
|
69
|
-
.xUi-checkbox-disabled .xUi-checkbox-check {
|
|
70
|
-
opacity: 0.5;
|
|
71
|
-
cursor: not-allowed;
|
|
72
|
-
background-color: var(--xui-color-disabled);
|
|
73
|
-
border-color: var(--xui-border-color) !important;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
.xUi-checkbox-label {
|
|
77
|
-
margin-left: 8px;
|
|
78
|
-
user-select: none;
|
|
79
|
-
font-size: 14px;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
.xUi-checkbox:hover:not(.disabled),
|
|
83
|
-
.xUi-checkbox:focus:not(.disabled) {
|
|
84
|
-
border-color: var(--xui-primary-color);
|
|
85
|
-
cursor: pointer;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
.xUi-checkbox.disabled {
|
|
89
|
-
opacity: 0.5;
|
|
90
|
-
cursor: not-allowed;
|
|
91
|
-
}
|