@phpsoftbox/react-softbox 0.1.1 → 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.
Files changed (52) hide show
  1. package/README.md +8 -3
  2. package/dist/components/Badge/Badge.module.css +12 -12
  3. package/dist/components/Button/Button.d.ts +3 -1
  4. package/dist/components/Button/Button.js +16 -17
  5. package/dist/components/Button/Button.js.map +1 -1
  6. package/dist/components/FileUploader/FileUploader.d.ts +22 -0
  7. package/dist/components/FileUploader/FileUploader.js +156 -0
  8. package/dist/components/FileUploader/FileUploader.js.map +1 -0
  9. package/dist/components/FileUploader/FileUploader.module.css +142 -0
  10. package/dist/components/Image/Image.d.ts +7 -0
  11. package/dist/components/Image/Image.js +15 -0
  12. package/dist/components/Image/Image.js.map +1 -0
  13. package/dist/components/Image/Image.module.css +17 -0
  14. package/dist/components/Input/Checkbox/Checkbox.d.ts +8 -0
  15. package/dist/components/Input/Checkbox/Checkbox.js +15 -0
  16. package/dist/components/Input/Checkbox/Checkbox.js.map +1 -0
  17. package/dist/components/Input/Checkbox/Checkbox.module.css +105 -0
  18. package/dist/components/Input/FloatLabel/FloatLabel.module.css +18 -4
  19. package/dist/components/Input/Input.d.ts +2 -0
  20. package/dist/components/Input/Input.js +2 -0
  21. package/dist/components/Input/Input.js.map +1 -1
  22. package/dist/components/Input/NumberInput.d.ts +3 -1
  23. package/dist/components/Input/NumberInput.js +97 -28
  24. package/dist/components/Input/NumberInput.js.map +1 -1
  25. package/dist/components/Input/Select/Select.js +1 -1
  26. package/dist/components/Input/Select/Select.js.map +1 -1
  27. package/dist/components/Menu/Dropdown.d.ts +36 -3
  28. package/dist/components/Menu/Dropdown.js +71 -3
  29. package/dist/components/Menu/Dropdown.js.map +1 -1
  30. package/dist/components/Menu/Menu.d.ts +4 -1
  31. package/dist/components/Menu/Menu.js +10 -3
  32. package/dist/components/Menu/Menu.js.map +1 -1
  33. package/dist/components/Menu/Menu.module.css +50 -4
  34. package/dist/components/Table/Table.d.ts +56 -0
  35. package/dist/components/Table/Table.js +199 -0
  36. package/dist/components/Table/Table.js.map +1 -0
  37. package/dist/components/Table/Table.module.css +203 -0
  38. package/dist/{components/Button/Button.module.css → foundations/buttons.css} +47 -19
  39. package/dist/foundations/index.css +2 -0
  40. package/dist/foundations/tokens.css +31 -22
  41. package/dist/foundations/utilities.css +675 -0
  42. package/dist/index.d.ts +5 -0
  43. package/dist/index.js +4 -0
  44. package/dist/index.js.map +1 -1
  45. package/docs/README.md +2 -1
  46. package/docs/forms.md +36 -0
  47. package/docs/layout.md +31 -0
  48. package/docs/media.md +12 -0
  49. package/docs/navigation.md +29 -1
  50. package/docs/theme.md +28 -0
  51. package/docs/typography.md +11 -0
  52. package/package.json +5 -1
@@ -1,45 +1,73 @@
1
- .button {
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
- .button:focus-visible {
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
- .button:hover:not(:disabled) {
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
- .button:active:not(:disabled) {
32
+ .btn:active:not(.btn-disabled):not(:disabled) {
25
33
  transform: translateY(1px);
26
34
  }
27
35
 
28
- .button:disabled {
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
- .outline,
42
- .ghost {
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
- .variantDefault {
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
- .variantPrimary {
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
- .variantInfo {
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
- .variantSuccess {
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
- .variantWarning {
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
- .variantDanger {
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
- .button {
155
+ .btn {
128
156
  transition: none;
129
157
  }
130
158
  }
@@ -1,3 +1,5 @@
1
1
  @import "./tokens.css";
2
2
  @import "./typography.css";
3
3
  @import "./layout.css";
4
+ @import "./buttons.css";
5
+ @import "./utilities.css";
@@ -1,6 +1,15 @@
1
1
  :root {
2
2
  color-scheme: dark;
3
3
  --font-sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
4
+ --font-size-1: 11px;
5
+ --font-size-2: 12px;
6
+ --font-size-3: 13px;
7
+ --font-size-4: 14px;
8
+ --font-size-5: 16px;
9
+ --font-size-6: 18px;
10
+ --font-size-7: 20px;
11
+ --font-size-8: 24px;
12
+ --font-size-9: 28px;
4
13
 
5
14
  --color-bg: #0b1626;
6
15
  --color-surface: #0f1e33;
@@ -14,28 +23,28 @@
14
23
 
15
24
  --color-on-solid: #06201c;
16
25
 
17
- --badge-default-bg: rgba(30, 51, 85, 0.45);
18
- --badge-default-border: rgba(30, 51, 85, 0.7);
26
+ --badge-default-bg: #1e3355;
27
+ --badge-default-border: #2b4268;
19
28
  --badge-default-color: var(--color-muted);
20
29
 
21
- --badge-primary-bg: rgba(79, 230, 163, 0.2);
22
- --badge-primary-border: rgba(79, 230, 163, 0.4);
30
+ --badge-primary-bg: #0f3a2d;
31
+ --badge-primary-border: #1a6a4f;
23
32
  --badge-primary-color: var(--color-mint);
24
33
 
25
- --badge-info-bg: rgba(30, 99, 233, 0.2);
26
- --badge-info-border: rgba(30, 99, 233, 0.45);
34
+ --badge-info-bg: #122a4d;
35
+ --badge-info-border: #264a8b;
27
36
  --badge-info-color: #9cc0ff;
28
37
 
29
- --badge-success-bg: rgba(47, 186, 122, 0.16);
30
- --badge-success-border: rgba(47, 186, 122, 0.45);
38
+ --badge-success-bg: #103b2a;
39
+ --badge-success-border: #1f6b4a;
31
40
  --badge-success-color: #2fba7a;
32
41
 
33
- --badge-warning-bg: rgba(246, 200, 106, 0.18);
34
- --badge-warning-border: rgba(246, 200, 106, 0.45);
42
+ --badge-warning-bg: #5a4318;
43
+ --badge-warning-border: #8b6425;
35
44
  --badge-warning-color: #f6c86a;
36
45
 
37
- --badge-danger-bg: rgba(255, 107, 107, 0.18);
38
- --badge-danger-border: rgba(255, 107, 107, 0.45);
46
+ --badge-danger-bg: #4c2222;
47
+ --badge-danger-border: #7a3030;
39
48
  --badge-danger-color: #ff6b6b;
40
49
 
41
50
  --btn-default-start: #4b5d78;
@@ -171,24 +180,24 @@
171
180
  --badge-default-border: #c5d2e6;
172
181
  --badge-default-color: #4f5d73;
173
182
 
174
- --badge-primary-bg: rgba(20, 201, 214, 0.22);
175
- --badge-primary-border: rgba(20, 201, 214, 0.6);
183
+ --badge-primary-bg: #c9f3f0;
184
+ --badge-primary-border: #86d7dc;
176
185
  --badge-primary-color: #0a6f7a;
177
186
 
178
- --badge-info-bg: rgba(30, 99, 233, 0.18);
179
- --badge-info-border: rgba(30, 99, 233, 0.55);
187
+ --badge-info-bg: #cddcff;
188
+ --badge-info-border: #8aa8ff;
180
189
  --badge-info-color: #1e4fb8;
181
190
 
182
- --badge-success-bg: rgba(79, 230, 163, 0.22);
183
- --badge-success-border: rgba(42, 186, 122, 0.6);
191
+ --badge-success-bg: #c8f0dc;
192
+ --badge-success-border: #7fceaa;
184
193
  --badge-success-color: #1b7f58;
185
194
 
186
- --badge-warning-bg: rgba(246, 200, 106, 0.25);
187
- --badge-warning-border: rgba(246, 200, 106, 0.65);
195
+ --badge-warning-bg: #ffe0a6;
196
+ --badge-warning-border: #e0b255;
188
197
  --badge-warning-color: #9a6b00;
189
198
 
190
- --badge-danger-bg: rgba(255, 107, 107, 0.2);
191
- --badge-danger-border: rgba(255, 107, 107, 0.6);
199
+ --badge-danger-bg: #ffc2c2;
200
+ --badge-danger-border: #e08b8b;
192
201
  --badge-danger-color: #b93c3c;
193
202
 
194
203
  --btn-default-start: #8a9bb6;