@phpsoftbox/react-softbox 0.2.0 → 0.3.0
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/components/Button/Button.d.ts +3 -1
- package/dist/components/Button/Button.js +16 -17
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/FileUploader/FileUploader.d.ts +22 -0
- package/dist/components/FileUploader/FileUploader.js +156 -0
- package/dist/components/FileUploader/FileUploader.js.map +1 -0
- package/dist/components/FileUploader/FileUploader.module.css +142 -0
- package/dist/components/Input/Checkbox/Checkbox.d.ts +8 -0
- package/dist/components/Input/Checkbox/Checkbox.js +15 -0
- package/dist/components/Input/Checkbox/Checkbox.js.map +1 -0
- package/dist/components/Input/Checkbox/Checkbox.module.css +105 -0
- package/dist/components/Input/FloatLabel/FloatLabel.module.css +6 -6
- package/dist/components/Input/Input.d.ts +2 -0
- package/dist/components/Input/Input.js +2 -0
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/Input/Select/Select.js +1 -1
- package/dist/components/Input/Select/Select.js.map +1 -1
- package/dist/components/Table/Table.d.ts +56 -0
- package/dist/components/Table/Table.js +199 -0
- package/dist/components/Table/Table.js.map +1 -0
- package/dist/components/Table/Table.module.css +203 -0
- package/dist/{components/Button/Button.module.css → foundations/buttons.css} +47 -19
- package/dist/foundations/index.css +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/docs/README.md +1 -1
- package/docs/forms.md +27 -0
- package/docs/layout.md +16 -0
- package/package.json +5 -1
|
@@ -1,45 +1,73 @@
|
|
|
1
|
-
.
|
|
1
|
+
.btn {
|
|
2
|
+
display: inline-flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
justify-content: center;
|
|
5
|
+
gap: var(--spacing-2);
|
|
2
6
|
border: 1px solid var(--btn-border, rgba(30, 51, 85, 0.6));
|
|
3
7
|
cursor: pointer;
|
|
4
8
|
font-weight: 600;
|
|
9
|
+
font-family: inherit;
|
|
10
|
+
line-height: 1;
|
|
5
11
|
padding: 12px 18px;
|
|
6
12
|
border-radius: var(--radius-sm);
|
|
13
|
+
font-size: var(--font-size-3);
|
|
7
14
|
background: var(--btn-bg, rgba(15, 30, 51, 0.9));
|
|
8
15
|
color: var(--btn-color, var(--color-text));
|
|
9
16
|
box-shadow: var(--btn-shadow, none);
|
|
10
17
|
transition: transform 0.15s ease, box-shadow 0.2s ease, background 0.2s ease, border-color 0.2s ease,
|
|
11
18
|
color 0.2s ease;
|
|
19
|
+
text-decoration: none;
|
|
12
20
|
}
|
|
13
21
|
|
|
14
|
-
.
|
|
22
|
+
.btn:focus-visible {
|
|
15
23
|
outline: none;
|
|
16
24
|
box-shadow: 0 0 0 3px rgba(20, 201, 214, 0.3);
|
|
17
25
|
}
|
|
18
26
|
|
|
19
|
-
.
|
|
27
|
+
.btn:hover:not(.btn-disabled):not(:disabled) {
|
|
20
28
|
background: var(--btn-bg-hover, var(--btn-bg));
|
|
21
29
|
box-shadow: var(--btn-shadow-hover, var(--btn-shadow, none));
|
|
22
30
|
}
|
|
23
31
|
|
|
24
|
-
.
|
|
32
|
+
.btn:active:not(.btn-disabled):not(:disabled) {
|
|
25
33
|
transform: translateY(1px);
|
|
26
34
|
}
|
|
27
35
|
|
|
28
|
-
.
|
|
36
|
+
.btn:disabled,
|
|
37
|
+
.btn.btn-disabled {
|
|
29
38
|
opacity: 0.6;
|
|
30
39
|
cursor: not-allowed;
|
|
40
|
+
pointer-events: none;
|
|
31
41
|
}
|
|
32
42
|
|
|
33
|
-
.solid {
|
|
43
|
+
.btn-solid {
|
|
34
44
|
transform: translateY(0);
|
|
35
45
|
}
|
|
36
46
|
|
|
37
|
-
.solid:hover:not(:disabled) {
|
|
47
|
+
.btn-solid:hover:not(.btn-disabled):not(:disabled) {
|
|
38
48
|
transform: translateY(-1px);
|
|
39
49
|
}
|
|
40
50
|
|
|
41
|
-
.
|
|
42
|
-
|
|
51
|
+
.btn-sm {
|
|
52
|
+
padding: 8px 14px;
|
|
53
|
+
font-size: var(--font-size-2);
|
|
54
|
+
border-radius: var(--radius-xs);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.btn-md {
|
|
58
|
+
padding: 12px 18px;
|
|
59
|
+
font-size: var(--font-size-3);
|
|
60
|
+
border-radius: var(--radius-sm);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.btn-lg {
|
|
64
|
+
padding: 14px 22px;
|
|
65
|
+
font-size: var(--font-size-4);
|
|
66
|
+
border-radius: var(--radius-md);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.btn-outline,
|
|
70
|
+
.btn-ghost {
|
|
43
71
|
background: transparent;
|
|
44
72
|
color: var(--btn-accent, var(--color-teal));
|
|
45
73
|
border-color: var(--btn-accent, var(--color-teal));
|
|
@@ -48,16 +76,16 @@
|
|
|
48
76
|
--btn-shadow-hover: none;
|
|
49
77
|
}
|
|
50
78
|
|
|
51
|
-
.ghost {
|
|
79
|
+
.btn-ghost {
|
|
52
80
|
border-color: transparent;
|
|
53
81
|
}
|
|
54
82
|
|
|
55
|
-
.outline:hover:not(:disabled),
|
|
56
|
-
.ghost:hover:not(:disabled) {
|
|
83
|
+
.btn-outline:hover:not(.btn-disabled):not(:disabled),
|
|
84
|
+
.btn-ghost:hover:not(.btn-disabled):not(:disabled) {
|
|
57
85
|
background: var(--btn-accent-soft, rgba(20, 201, 214, 0.12));
|
|
58
86
|
}
|
|
59
87
|
|
|
60
|
-
.
|
|
88
|
+
.btn-default {
|
|
61
89
|
--btn-accent: var(--btn-default-accent, rgba(158, 178, 204, 0.9));
|
|
62
90
|
--btn-accent-soft: var(--btn-default-soft, rgba(30, 51, 85, 0.35));
|
|
63
91
|
--btn-bg: linear-gradient(135deg, var(--btn-default-start, #2a3750), var(--btn-default-end, #1b263c));
|
|
@@ -68,7 +96,7 @@
|
|
|
68
96
|
--btn-shadow-hover: 0 14px 30px rgba(10, 20, 35, 0.28);
|
|
69
97
|
}
|
|
70
98
|
|
|
71
|
-
.
|
|
99
|
+
.btn-primary {
|
|
72
100
|
--btn-accent: var(--btn-primary-accent, rgba(20, 201, 214, 0.9));
|
|
73
101
|
--btn-accent-soft: var(--btn-primary-soft, rgba(20, 201, 214, 0.18));
|
|
74
102
|
--btn-bg: linear-gradient(135deg, var(--btn-primary-start, #14c9d6), var(--btn-primary-end, #1e63e9));
|
|
@@ -79,7 +107,7 @@
|
|
|
79
107
|
--btn-shadow-hover: 0 16px 36px rgba(20, 201, 214, 0.4);
|
|
80
108
|
}
|
|
81
109
|
|
|
82
|
-
.
|
|
110
|
+
.btn-info {
|
|
83
111
|
--btn-accent: var(--btn-info-accent, rgba(30, 99, 233, 0.9));
|
|
84
112
|
--btn-accent-soft: var(--btn-info-soft, rgba(30, 99, 233, 0.18));
|
|
85
113
|
--btn-bg: linear-gradient(135deg, var(--btn-info-start, #4f7bff), var(--btn-info-end, #2e5be6));
|
|
@@ -90,7 +118,7 @@
|
|
|
90
118
|
--btn-shadow-hover: 0 16px 36px rgba(30, 99, 233, 0.4);
|
|
91
119
|
}
|
|
92
120
|
|
|
93
|
-
.
|
|
121
|
+
.btn-success {
|
|
94
122
|
--btn-accent: var(--btn-success-accent, rgba(79, 230, 163, 0.9));
|
|
95
123
|
--btn-accent-soft: var(--btn-success-soft, rgba(79, 230, 163, 0.16));
|
|
96
124
|
--btn-bg: linear-gradient(135deg, var(--btn-success-start, #35d092), var(--btn-success-end, #1faf75));
|
|
@@ -101,7 +129,7 @@
|
|
|
101
129
|
--btn-shadow-hover: 0 16px 36px rgba(79, 230, 163, 0.36);
|
|
102
130
|
}
|
|
103
131
|
|
|
104
|
-
.
|
|
132
|
+
.btn-warning {
|
|
105
133
|
--btn-accent: var(--btn-warning-accent, rgba(246, 200, 106, 0.95));
|
|
106
134
|
--btn-accent-soft: var(--btn-warning-soft, rgba(246, 200, 106, 0.2));
|
|
107
135
|
--btn-bg: linear-gradient(135deg, var(--btn-warning-start, #ffd166), var(--btn-warning-end, #f4a62a));
|
|
@@ -112,7 +140,7 @@
|
|
|
112
140
|
--btn-shadow-hover: 0 16px 36px rgba(246, 200, 106, 0.36);
|
|
113
141
|
}
|
|
114
142
|
|
|
115
|
-
.
|
|
143
|
+
.btn-danger {
|
|
116
144
|
--btn-accent: var(--btn-danger-accent, rgba(255, 107, 107, 0.95));
|
|
117
145
|
--btn-accent-soft: var(--btn-danger-soft, rgba(255, 107, 107, 0.2));
|
|
118
146
|
--btn-bg: linear-gradient(135deg, var(--btn-danger-start, #ff8f8f), var(--btn-danger-end, #ff5b5b));
|
|
@@ -124,7 +152,7 @@
|
|
|
124
152
|
}
|
|
125
153
|
|
|
126
154
|
@media (prefers-reduced-motion: reduce) {
|
|
127
|
-
.
|
|
155
|
+
.btn {
|
|
128
156
|
transition: none;
|
|
129
157
|
}
|
|
130
158
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export { default as Input } from './components/Input/Input';
|
|
|
7
7
|
export { default as Textarea } from './components/Input/Textarea/Textarea';
|
|
8
8
|
export { default as Radio } from './components/Input/Radio/Radio';
|
|
9
9
|
export { default as Switch } from './components/Input/Switch/Switch';
|
|
10
|
+
export { default as Checkbox } from './components/Input/Checkbox/Checkbox';
|
|
10
11
|
export { default as Select } from './components/Input/Select/Select';
|
|
11
12
|
export { default as Alert } from './components/Alert/Alert';
|
|
12
13
|
export { default as Notifier } from './components/Notifier/Notifier';
|
|
@@ -23,6 +24,9 @@ export { default as Tabs } from './components/Tabs/Tabs';
|
|
|
23
24
|
export { default as Progress } from './components/Progress/Progress';
|
|
24
25
|
export { default as Breadcrumbs } from './components/Breadcrumbs/Breadcrumbs';
|
|
25
26
|
export { default as Image } from './components/Image/Image';
|
|
27
|
+
export { default as FileUploader } from './components/FileUploader/FileUploader';
|
|
28
|
+
export { default as Table } from './components/Table/Table';
|
|
29
|
+
export type { TableColumn, TableSortDirection, TableSortOptions, TableSortState } from './components/Table/Table';
|
|
26
30
|
export { default as Text } from './components/Typography/Text';
|
|
27
31
|
export { default as Heading } from './components/Typography/Heading';
|
|
28
32
|
export { default as useMediaQuery } from './hooks/useMediaQuery';
|
package/dist/index.js
CHANGED
|
@@ -7,6 +7,7 @@ export { default as Input } from './components/Input/Input';
|
|
|
7
7
|
export { default as Textarea } from './components/Input/Textarea/Textarea';
|
|
8
8
|
export { default as Radio } from './components/Input/Radio/Radio';
|
|
9
9
|
export { default as Switch } from './components/Input/Switch/Switch';
|
|
10
|
+
export { default as Checkbox } from './components/Input/Checkbox/Checkbox';
|
|
10
11
|
export { default as Select } from './components/Input/Select/Select';
|
|
11
12
|
export { default as Alert } from './components/Alert/Alert';
|
|
12
13
|
export { default as Notifier } from './components/Notifier/Notifier';
|
|
@@ -23,6 +24,8 @@ export { default as Tabs } from './components/Tabs/Tabs';
|
|
|
23
24
|
export { default as Progress } from './components/Progress/Progress';
|
|
24
25
|
export { default as Breadcrumbs } from './components/Breadcrumbs/Breadcrumbs';
|
|
25
26
|
export { default as Image } from './components/Image/Image';
|
|
27
|
+
export { default as FileUploader } from './components/FileUploader/FileUploader';
|
|
28
|
+
export { default as Table } from './components/Table/Table';
|
|
26
29
|
export { default as Text } from './components/Typography/Text';
|
|
27
30
|
export { default as Heading } from './components/Typography/Heading';
|
|
28
31
|
export { default as useMediaQuery } from './hooks/useMediaQuery';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC"}
|
package/docs/README.md
CHANGED
|
@@ -28,7 +28,7 @@ import { Button, Card, Menu } from '@phpsoftbox/react-softbox';
|
|
|
28
28
|
|
|
29
29
|
- `layout.md` — Grid, Flex, утилиты
|
|
30
30
|
- `navigation.md` — Menu, Dropdown, CollapseButton
|
|
31
|
-
- `forms.md` — Input (Field/Select/FloatLabel), Switch, Radio
|
|
31
|
+
- `forms.md` — Input (Field/Select/FloatLabel), Switch, Radio, Checkbox, FileUploader
|
|
32
32
|
- `overlays.md` — Modal, Drawer
|
|
33
33
|
- `feedback.md` — Badge, Alert, Notifier
|
|
34
34
|
- `card.md` — Card и его секции
|
package/docs/forms.md
CHANGED
|
@@ -41,6 +41,13 @@
|
|
|
41
41
|
<Input.Radio name="mode" label="Резервный" />
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
+
## Checkbox
|
|
45
|
+
|
|
46
|
+
```tsx
|
|
47
|
+
<Input.Checkbox label="Согласен с условиями" />
|
|
48
|
+
<Input.Checkbox label="Премиум" description="Расширенные права" />
|
|
49
|
+
```
|
|
50
|
+
|
|
44
51
|
## Switch
|
|
45
52
|
|
|
46
53
|
```tsx
|
|
@@ -173,3 +180,23 @@ const options = [
|
|
|
173
180
|
</Input.Group>
|
|
174
181
|
</Input>
|
|
175
182
|
```
|
|
183
|
+
|
|
184
|
+
## FileUploader
|
|
185
|
+
|
|
186
|
+
```tsx
|
|
187
|
+
<FileUploader
|
|
188
|
+
allowedTypes={['.jpg', '.png', '.pdf']}
|
|
189
|
+
maxFileSizeKb={2048}
|
|
190
|
+
multiple
|
|
191
|
+
showPreview
|
|
192
|
+
onChange={(files) => console.log(files)}
|
|
193
|
+
onUpload={(files) => api.upload(files)}
|
|
194
|
+
/>;
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Параметры:
|
|
198
|
+
- `allowedTypes` — допустимые типы (расширения `.png` или MIME `image/*`)
|
|
199
|
+
- `maxFileSizeKb` — ограничение размера
|
|
200
|
+
- `multiple` — разрешить множественный выбор
|
|
201
|
+
- `showPreview` — превью для изображений
|
|
202
|
+
- `onUpload` — колбэк загрузки (опционально)
|
package/docs/layout.md
CHANGED
|
@@ -52,3 +52,19 @@
|
|
|
52
52
|
- `p-`, `px-`, `py-`, `pt-`, `pr-`, `pb-`, `pl-`
|
|
53
53
|
- `m-`, `mx-`, `my-`, `mt-`, `mr-`, `mb-`, `ml-`
|
|
54
54
|
- `gap-`
|
|
55
|
+
|
|
56
|
+
## Классы кнопок
|
|
57
|
+
|
|
58
|
+
Глобальные классы для кнопок, которые можно применять к `a`/`button`.
|
|
59
|
+
|
|
60
|
+
```tsx
|
|
61
|
+
<a className="btn btn-primary btn-solid" href="/create">Создать</a>
|
|
62
|
+
<a className="btn btn-info btn-outline" href="/details">Подробнее</a>
|
|
63
|
+
<button className="btn btn-danger btn-ghost">Удалить</button>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Доступны:
|
|
67
|
+
- базовый класс: `btn`
|
|
68
|
+
- варианты: `btn-default`, `btn-primary`, `btn-info`, `btn-success`, `btn-warning`, `btn-danger`
|
|
69
|
+
- внешность: `btn-solid`, `btn-outline`, `btn-ghost`
|
|
70
|
+
- размеры: `btn-sm`, `btn-md`, `btn-lg`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@phpsoftbox/react-softbox",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -42,6 +42,10 @@
|
|
|
42
42
|
"axios": "^1.12.2"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
+
"@testing-library/dom": "^10.4.1",
|
|
46
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
47
|
+
"@testing-library/react": "^16.3.2",
|
|
48
|
+
"@types/jest": "^30.0.0",
|
|
45
49
|
"@types/react": "^19.2.0",
|
|
46
50
|
"@types/react-dom": "^19.2.0",
|
|
47
51
|
"typescript": "^5.9.3"
|