ar-design 0.4.11 → 0.4.12

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.
@@ -1,142 +1,166 @@
1
- .ar-upload-button > .button.dropzone > .preview {
2
- position: relative;
3
- display: flex;
4
- flex-direction: row;
5
- flex-wrap: nowrap;
6
- width: 100%;
7
- height: 100%;
8
- }
9
- .ar-upload-button > .button.dropzone > .preview > .selected-image {
10
- background-color: var(--black);
11
- height: 100%;
12
- object-fit: contain;
13
- object-position: center;
14
- }
1
+ .ar-upload-button {
2
+ > .button.dropzone {
3
+ > .preview {
4
+ position: relative;
5
+ display: flex;
6
+ flex-direction: row;
7
+ flex-wrap: nowrap;
8
+ width: 100%;
9
+ height: 100%;
15
10
 
16
- .ar-upload-button > .button.dropzone > .items {
17
- display: flex;
18
- flex-direction: column;
19
- flex-wrap: nowrap;
20
- background-color: var(--primary);
21
- backdrop-filter: blur(5px);
22
- width: 10rem;
23
- height: 12.5rem;
24
- border-left: solid 1px rgba(var(--black-rgb), 0.75);
25
- overflow-x: hidden;
26
- overflow-y: auto;
27
- }
28
- .ar-upload-button > .button.dropzone > .items > .item {
29
- --size: 5rem;
30
-
31
- display: flex;
32
- justify-content: center;
33
- align-items: center;
34
- position: relative;
35
- min-width: var(--size);
36
- min-height: var(--size);
37
- height: var(--size);
38
- border-bottom: solid 1px rgba(var(--black-rgb), 0.75);
39
- overflow: hidden;
40
- }
41
- .ar-upload-button > .button.dropzone > .items > .item > .buttons {
42
- position: absolute;
43
- inset: 0;
44
- display: flex;
45
- justify-content: center;
46
- align-items: center;
47
- }
48
- .ar-upload-button > .button.dropzone > .items > .item > .buttons::before {
49
- position: absolute;
50
- inset: 0;
51
- content: "";
52
- background-color: transparent;
53
- z-index: 1;
54
- transition: background-color 250ms ease-in-out;
55
- }
56
- .ar-upload-button > .button.dropzone > .items > .item > .buttons:hover::before {
57
- background-color: rgba(var(--black-rgb), 0.75);
58
- }
59
- .ar-upload-button > .button.dropzone > .items > .item > .buttons > div {
60
- display: flex;
61
- flex-direction: row;
62
- visibility: hidden;
63
- opacity: 0;
64
- z-index: 2;
65
- transition: visibility 250ms, opacity 250ms ease-in-out;
66
- }
67
- .ar-upload-button > .button.dropzone > .items > .item > .buttons:hover div {
68
- visibility: visible;
69
- opacity: 1;
70
- }
71
- .ar-upload-button > .button.dropzone > .items > .item > img {
72
- width: 100%;
73
- height: 100%;
74
- object-fit: cover;
75
- object-position: top;
76
- }
77
- .ar-upload-button > .button.dropzone > .items > .item .error {
78
- position: absolute;
79
- inset: 0;
80
- display: flex;
81
- flex-direction: column;
82
- justify-content: center;
83
- align-items: center;
84
- gap: 0.5rem;
85
- background-color: rgba(var(--danger-rgb), 0.75);
86
- color: var(--white);
87
- font-size: 0.75rem;
88
- font-weight: 700;
89
- text-align: center;
90
- z-index: 5;
91
- }
11
+ > .selected-image {
12
+ background-color: var(--black);
13
+ height: 100%;
14
+ object-fit: contain;
15
+ object-position: center;
16
+ }
92
17
 
93
- .ar-upload-button > .button.dropzone > .preview > .informations {
94
- visibility: visible;
95
- opacity: 1;
96
- display: flex;
97
- flex-direction: row;
98
- flex-wrap: wrap;
99
- justify-content: space-between;
100
- align-items: center;
101
- gap: 0.5rem;
102
- position: absolute;
103
- inset: auto 0 0 0;
104
- background-color: rgba(var(--black-rgb), 0.75);
105
- padding: 0.5rem;
106
- transition: visibility 250ms, opacity 250ms ease-in-out;
107
- font-family: var(--system);
108
- }
109
- .ar-upload-button > .button.dropzone > .preview > .informations > .file-name {
110
- color: var(--white);
111
- font-size: 0.75rem;
112
- font-weight: 700;
113
- }
114
- .ar-upload-button > .button.dropzone > .preview > .informations > div {
115
- display: flex;
116
- gap: 0.25rem;
117
- }
118
- .ar-upload-button > .button.dropzone > .preview > .informations > div > .file-size {
119
- background-color: var(--primary);
120
- padding: 0.25rem 0 0.25rem 0.25rem;
121
- border-radius: var(--border-radius-sm);
122
- color: var(--white);
123
- font-size: 0.75rem;
124
- font-weight: 700;
125
- }
126
- .ar-upload-button > .button.dropzone > .preview > .informations > div > .file-size > .size-type {
127
- background-color: rgba(var(--black-rgb), 0.5);
128
- margin-left: 0.25rem;
129
- border-top-right-radius: var(--border-radius-sm);
130
- border-bottom-right-radius: var(--border-radius-sm);
131
- padding: 0.25rem;
132
- color: var(--primary);
133
- font-weight: 700;
134
- }
135
- .ar-upload-button > .button.dropzone > .preview > .informations > div > .file-type {
136
- background-color: var(--warning);
137
- padding: 0.25rem;
138
- border-radius: var(--border-radius-sm);
139
- color: var(--black);
140
- font-size: 0.75rem;
141
- font-weight: 700;
18
+ > .informations {
19
+ visibility: visible;
20
+ opacity: 1;
21
+ display: flex;
22
+ flex-direction: row;
23
+ flex-wrap: wrap;
24
+ justify-content: space-between;
25
+ align-items: center;
26
+ gap: 0.5rem;
27
+ position: absolute;
28
+ inset: auto 0 0 0;
29
+ background-color: rgba(var(--black-rgb), 0.75);
30
+ padding: 0.5rem;
31
+ transition:
32
+ visibility 250ms,
33
+ opacity 250ms ease-in-out;
34
+ font-family: var(--system);
35
+
36
+ > .file-name {
37
+ color: var(--white);
38
+ font-size: 0.75rem;
39
+ font-weight: 700;
40
+ }
41
+
42
+ > div {
43
+ display: flex;
44
+ gap: 0.25rem;
45
+
46
+ > .file-size {
47
+ background-color: var(--primary);
48
+ padding: 0.25rem 0 0.25rem 0.25rem;
49
+ border-radius: var(--border-radius-sm);
50
+ color: var(--white);
51
+ font-size: 0.75rem;
52
+ font-weight: 700;
53
+
54
+ > .size-type {
55
+ background-color: rgba(var(--black-rgb), 0.5);
56
+ margin-left: 0.25rem;
57
+ border-top-right-radius: var(--border-radius-sm);
58
+ border-bottom-right-radius: var(--border-radius-sm);
59
+ padding: 0.25rem;
60
+ color: var(--primary);
61
+ font-weight: 700;
62
+ }
63
+ }
64
+
65
+ > .file-type {
66
+ background-color: var(--warning);
67
+ padding: 0.25rem;
68
+ border-radius: var(--border-radius-sm);
69
+ color: var(--black);
70
+ font-size: 0.75rem;
71
+ font-weight: 700;
72
+ }
73
+ }
74
+ }
75
+ }
76
+
77
+ > .items {
78
+ display: flex;
79
+ flex-direction: column;
80
+ flex-wrap: nowrap;
81
+ background-color: var(--primary);
82
+ backdrop-filter: blur(5px);
83
+ width: 10rem;
84
+ height: 12.5rem;
85
+ border-left: solid 1px rgba(var(--black-rgb), 0.75);
86
+ overflow-x: hidden;
87
+ overflow-y: auto;
88
+
89
+ > .item {
90
+ --size: 5rem;
91
+
92
+ display: flex;
93
+ justify-content: center;
94
+ align-items: center;
95
+ position: relative;
96
+ min-width: var(--size);
97
+ min-height: var(--size);
98
+ height: var(--size);
99
+ border-bottom: solid 1px rgba(var(--black-rgb), 0.75);
100
+ overflow: hidden;
101
+
102
+ > .buttons {
103
+ position: absolute;
104
+ inset: 0;
105
+ display: flex;
106
+ justify-content: center;
107
+ align-items: center;
108
+
109
+ &::before {
110
+ position: absolute;
111
+ inset: 0;
112
+ content: "";
113
+ background-color: transparent;
114
+ z-index: 1;
115
+ transition: background-color 250ms ease-in-out;
116
+ }
117
+
118
+ &:hover {
119
+ &::before {
120
+ background-color: rgba(var(--black-rgb), 0.75);
121
+ }
122
+
123
+ div {
124
+ visibility: visible;
125
+ opacity: 1;
126
+ }
127
+ }
128
+
129
+ > div {
130
+ display: flex;
131
+ flex-direction: row;
132
+ visibility: hidden;
133
+ opacity: 0;
134
+ z-index: 2;
135
+ transition:
136
+ visibility 250ms,
137
+ opacity 250ms ease-in-out;
138
+ }
139
+ }
140
+
141
+ > img {
142
+ width: 100%;
143
+ height: 100%;
144
+ object-fit: cover;
145
+ object-position: top;
146
+ }
147
+
148
+ .error {
149
+ position: absolute;
150
+ inset: 0;
151
+ display: flex;
152
+ flex-direction: column;
153
+ justify-content: center;
154
+ align-items: center;
155
+ gap: 0.5rem;
156
+ background-color: rgba(var(--danger-rgb), 0.75);
157
+ color: var(--white);
158
+ font-size: 0.75rem;
159
+ font-weight: 700;
160
+ text-align: center;
161
+ z-index: 5;
162
+ }
163
+ }
164
+ }
165
+ }
142
166
  }
@@ -11,7 +11,7 @@
11
11
  width: max-content !important;
12
12
  }
13
13
 
14
- > ul {
14
+ > ul.list {
15
15
  display: flex;
16
16
  flex-wrap: wrap;
17
17
  gap: 0.75rem;
@@ -19,6 +19,13 @@
19
19
  &.list {
20
20
  flex-direction: column;
21
21
  }
22
+
23
+ &.column {
24
+ > li {
25
+ width: 100%;
26
+ }
27
+ }
28
+
22
29
  &.grid {
23
30
  flex-direction: row;
24
31
  }
@@ -102,14 +109,20 @@
102
109
  visibility: hidden;
103
110
  opacity: 0;
104
111
  z-index: 2;
105
- transition: visibility 250ms, opacity 250ms ease-in-out;
112
+ transition:
113
+ visibility 250ms,
114
+ opacity 250ms ease-in-out;
106
115
  }
107
116
  }
108
117
 
109
118
  > .file-name {
119
+ width: 100%;
110
120
  color: var(--gray-700);
111
121
  font-size: 0.75rem;
112
122
  font-weight: 700;
123
+ white-space: nowrap;
124
+ overflow: hidden;
125
+ text-overflow: ellipsis;
113
126
  }
114
127
 
115
128
  > div {
@@ -1,166 +1,214 @@
1
1
  .ar-upload {
2
2
  position: relative;
3
- }
4
- .ar-upload > input {
5
- display: none;
6
- }
7
3
 
8
- .ar-upload > .ar-upload-button .selected-files {
9
- list-style: none;
10
- }
11
- .ar-upload > .ar-upload-button .selected-files > li {
12
- display: flex;
13
- flex-direction: row;
14
- gap: 0 0.5rem;
15
- }
16
- .ar-upload > .ar-upload-button .selected-files > li > span:first-child {
17
- font-size: 0.15rem;
18
- }
4
+ > input {
5
+ display: none;
6
+ }
19
7
 
20
- .ar-upload-button > .button {
21
- position: relative;
22
- display: flex;
23
- flex-direction: column;
24
- justify-content: center;
25
- align-items: center;
26
- gap: 1rem;
27
- height: 8.5rem;
28
- border: dashed 1px var(--gray-300);
29
- border-radius: var(--border-radius-sm);
30
- cursor: pointer;
31
- user-select: none;
32
- transition: border 250ms, box-shadow 250ms ease-in-out;
33
- }
34
- .ar-upload-button > .button.dropzone {
35
- height: 12.5rem !important;
36
- }
37
- .ar-upload-button > .button.has-file {
38
- flex-direction: row !important;
39
- justify-content: flex-end !important;
40
- gap: 0 !important;
41
- align-items: flex-start !important;
42
- }
43
- .ar-upload-button > .button:not(.dropzone):hover .preview > .informations {
44
- visibility: hidden;
45
- opacity: 0;
46
- }
47
- .ar-upload-button > .button:not(.dropzone):has(.preview > img):hover {
48
- border: solid 1px transparent !important;
49
- }
50
- .ar-upload-button > .button:has(.preview > img) {
51
- padding: 0;
52
- border: solid 1px rgba(var(--black-rgb), 0.75);
53
- overflow: hidden;
54
- }
55
- .ar-upload-button > .button.dragging {
56
- box-shadow: 0 0 0 2.5px rgba(var(--primary-rgb), 0.75);
57
- }
8
+ > .ar-upload-button {
9
+ &.selected-files {
10
+ list-style: none;
58
11
 
59
- .ar-upload-button > .button > .preview > .buttons {
60
- position: absolute;
61
- inset: 0;
62
- display: flex;
63
- justify-content: center;
64
- align-items: center;
65
- }
66
- .ar-upload-button > .button > .preview > .buttons::before {
67
- position: absolute;
68
- inset: 0;
69
- content: "";
70
- background-color: transparent;
71
- z-index: 1;
72
- transition: background-color 250ms ease-in-out;
73
- }
74
- .ar-upload-button > .button > .preview > .buttons:hover::before {
75
- background-color: rgba(var(--black-rgb), 0.75);
76
- }
77
- .ar-upload-button > .button > .preview > .buttons > div {
78
- display: flex;
79
- flex-direction: row;
80
- visibility: hidden;
81
- opacity: 0;
82
- z-index: 2;
83
- transition: visibility 250ms, opacity 250ms ease-in-out;
84
- }
85
- .ar-upload-button > .button > .preview > .buttons:hover div {
86
- visibility: visible;
87
- opacity: 1;
88
- }
89
- .ar-upload-button > .button > .preview > img {
90
- width: 100%;
91
- height: 100%;
92
- object-fit: fill;
93
- object-position: top;
94
- }
12
+ > li {
13
+ display: flex;
14
+ flex-direction: row;
15
+ gap: 0 0.5rem;
95
16
 
96
- .ar-upload-button > .button > .preview > .informations {
97
- visibility: visible;
98
- opacity: 1;
99
- display: flex;
100
- flex-direction: row;
101
- flex-wrap: wrap;
102
- justify-content: space-between;
103
- align-items: center;
104
- gap: 0.5rem;
105
- position: absolute;
106
- inset: auto 0 0 0;
107
- background-color: rgba(var(--black-rgb), 0.75);
108
- padding: 0.5rem;
109
- transition: visibility 250ms, opacity 250ms ease-in-out;
110
- }
111
- .ar-upload-button > .button > .preview > .informations > .file-name {
112
- color: var(--white);
113
- font-size: 0.75rem;
114
- font-weight: 700;
115
- }
116
- .ar-upload-button > .button > .preview > .informations > div {
117
- display: flex;
118
- gap: 0.25rem;
119
- }
120
- .ar-upload-button > .button > .preview > .informations > div > .file-size {
121
- background-color: var(--primary);
122
- padding: 0.25rem 0 0.25rem 0.25rem;
123
- border-radius: var(--border-radius-sm);
124
- color: var(--white);
125
- font-size: 0.75rem;
126
- font-weight: 700;
127
- }
128
- .ar-upload-button > .button > .preview > .informations > div > .file-size > .size-type {
129
- background-color: rgba(var(--black-rgb), 0.5);
130
- margin-left: 0.25rem;
131
- border-top-right-radius: var(--border-radius-sm);
132
- border-bottom-right-radius: var(--border-radius-sm);
133
- padding: 0.25rem;
134
- color: var(--primary);
135
- font-weight: 700;
136
- }
137
- .ar-upload-button > .button > .preview > .informations > div > .file-type {
138
- background-color: var(--warning);
139
- padding: 0.25rem;
140
- border-radius: var(--border-radius-sm);
141
- color: var(--black);
142
- font-size: 0.75rem;
143
- font-weight: 700;
144
- }
17
+ > span {
18
+ &:first-child {
19
+ font-size: 0.15rem;
20
+ }
21
+ }
22
+ }
23
+ }
145
24
 
146
- .ar-upload-button > .button > .upload {
147
- display: flex;
148
- flex-direction: column;
149
- justify-content: center;
150
- align-items: center;
151
- gap: 0.5rem;
152
- }
153
- .ar-upload-button > .button > .upload > .properies {
154
- display: flex;
155
- flex-direction: row;
156
- gap: 0.5rem;
157
- font-size: 0.85rem;
158
- }
159
- .ar-upload-button > .button > .upload > .properies > .max-size {
160
- color: var(--gray-500);
161
- }
162
- .ar-upload-button > .button > .upload > .properies > .allow-types {
163
- color: var(--gray-500);
25
+ > .button {
26
+ position: relative;
27
+ display: flex;
28
+ flex-direction: column;
29
+ justify-content: center;
30
+ align-items: center;
31
+ gap: 1rem;
32
+ height: 8.5rem;
33
+ border: dashed 1px var(--gray-300);
34
+ border-radius: var(--border-radius-sm);
35
+ cursor: pointer;
36
+ user-select: none;
37
+ transition:
38
+ border 250ms,
39
+ box-shadow 250ms ease-in-out;
40
+
41
+ &:has(.preview > img) {
42
+ padding: 0;
43
+ border: solid 1px rgba(var(--black-rgb), 0.75);
44
+ overflow: hidden;
45
+ }
46
+
47
+ &:not(.dropzone) {
48
+ &:hover {
49
+ .preview {
50
+ > .informations {
51
+ visibility: hidden;
52
+ opacity: 0;
53
+ }
54
+ }
55
+ }
56
+
57
+ &:has(.preview > img) {
58
+ &:hover {
59
+ border: solid 1px transparent !important;
60
+ }
61
+ }
62
+ }
63
+
64
+ &.dropzone {
65
+ height: 12.5rem !important;
66
+ }
67
+
68
+ &.has-file {
69
+ flex-direction: row !important;
70
+ justify-content: flex-end !important;
71
+ gap: 0 !important;
72
+ align-items: flex-start !important;
73
+ }
74
+
75
+ &.dragging {
76
+ box-shadow: 0 0 0 2.5px rgba(var(--primary-rgb), 0.75);
77
+ }
78
+
79
+ > .preview {
80
+ > .buttons {
81
+ position: absolute;
82
+ inset: 0;
83
+ display: flex;
84
+ justify-content: center;
85
+ align-items: center;
86
+
87
+ &::before {
88
+ position: absolute;
89
+ inset: 0;
90
+ content: "";
91
+ background-color: transparent;
92
+ z-index: 1;
93
+ transition: background-color 250ms ease-in-out;
94
+ }
95
+
96
+ &:hover {
97
+ &::before {
98
+ background-color: rgba(var(--black-rgb), 0.75);
99
+ }
100
+
101
+ div {
102
+ visibility: visible;
103
+ opacity: 1;
104
+ }
105
+ }
106
+
107
+ > div {
108
+ display: flex;
109
+ flex-direction: row;
110
+ visibility: hidden;
111
+ opacity: 0;
112
+ z-index: 2;
113
+ transition:
114
+ visibility 250ms,
115
+ opacity 250ms ease-in-out;
116
+ }
117
+ }
118
+
119
+ > img {
120
+ width: 100%;
121
+ height: 100%;
122
+ object-fit: fill;
123
+ object-position: top;
124
+ }
125
+
126
+ > .informations {
127
+ visibility: visible;
128
+ opacity: 1;
129
+ display: flex;
130
+ flex-direction: row;
131
+ flex-wrap: wrap;
132
+ justify-content: space-between;
133
+ align-items: center;
134
+ gap: 0.5rem;
135
+ position: absolute;
136
+ inset: auto 0 0 0;
137
+ background-color: rgba(var(--black-rgb), 0.75);
138
+ padding: 0.5rem;
139
+ transition:
140
+ visibility 250ms,
141
+ opacity 250ms ease-in-out;
142
+
143
+ > .file-name {
144
+ width: 100%;
145
+ color: var(--white);
146
+ font-size: 0.75rem;
147
+ font-weight: 700;
148
+ white-space: nowrap;
149
+ overflow: hidden;
150
+ text-overflow: ellipsis;
151
+ }
152
+
153
+ > div {
154
+ display: flex;
155
+ gap: 0.25rem;
156
+
157
+ > .file-size {
158
+ background-color: var(--primary);
159
+ padding: 0.25rem 0 0.25rem 0.25rem;
160
+ border-radius: var(--border-radius-sm);
161
+ color: var(--white);
162
+ font-size: 0.75rem;
163
+ font-weight: 700;
164
+
165
+ > .size-type {
166
+ background-color: rgba(var(--black-rgb), 0.5);
167
+ margin-left: 0.25rem;
168
+ border-top-right-radius: var(--border-radius-sm);
169
+ border-bottom-right-radius: var(--border-radius-sm);
170
+ padding: 0.25rem;
171
+ color: var(--primary);
172
+ font-weight: 700;
173
+ }
174
+ }
175
+
176
+ > .file-type {
177
+ background-color: var(--warning);
178
+ padding: 0.25rem;
179
+ border-radius: var(--border-radius-sm);
180
+ color: var(--black);
181
+ font-size: 0.75rem;
182
+ font-weight: 700;
183
+ }
184
+ }
185
+ }
186
+ }
187
+
188
+ > .upload {
189
+ display: flex;
190
+ flex-direction: column;
191
+ justify-content: center;
192
+ align-items: center;
193
+ gap: 0.5rem;
194
+
195
+ > .properies {
196
+ display: flex;
197
+ flex-direction: row;
198
+ gap: 0.5rem;
199
+ font-size: 0.85rem;
200
+
201
+ > .max-size {
202
+ color: var(--gray-500);
203
+ }
204
+
205
+ > .allow-types {
206
+ color: var(--gray-500);
207
+ }
208
+ }
209
+ }
210
+ }
211
+ }
164
212
  }
165
213
 
166
214
  @import url("./list.css");
@@ -1,61 +1,169 @@
1
1
  .ar-pagination {
2
2
  display: flex;
3
3
  flex-direction: row;
4
+
4
5
  align-items: center;
5
6
  gap: 0 0.5rem;
7
+
8
+ > ul {
9
+ display: flex;
10
+ flex-direction: row;
11
+ align-items: center;
12
+ list-style: none;
13
+ gap: 0 0.5rem;
14
+ height: 1.75rem;
15
+
16
+ > li {
17
+ display: flex;
18
+ justify-content: center;
19
+ align-items: center;
20
+ min-width: 1.75rem;
21
+ height: 100%;
22
+ border-radius: var(--border-radius-pill);
23
+ box-shadow: 0 0 0 0 rgba(var(--primary-rgb), 0.1);
24
+ transform: scale(1);
25
+ color: var(--gray-700);
26
+ font-weight: 400;
27
+ cursor: pointer;
28
+ user-select: none;
29
+
30
+ &:hover {
31
+ background-color: var(--gray-300);
32
+ }
33
+
34
+ &:is(.selection-page) {
35
+ background-color: var(--primary);
36
+ box-shadow: 0 0 0 3.5px rgba(var(--primary-rgb), 0.1);
37
+ color: var(--white);
38
+ font-size: 0.9rem;
39
+ transform: scale(1.15);
40
+ transition:
41
+ transform 250ms,
42
+ box-shadow 250ms 250ms ease-in-out;
43
+ }
44
+
45
+ &:is(.passive) {
46
+ color: var(--gray-300);
47
+ cursor: no-drop;
48
+
49
+ &:hover {
50
+ background-color: transparent;
51
+ }
52
+ }
53
+
54
+ &:is(:nth-child(2)) {
55
+ margin-right: 1rem;
56
+ }
57
+
58
+ &:is(:nth-last-child(2)) {
59
+ margin-left: 1rem;
60
+ }
61
+
62
+ &:is(:nth-child(1), :nth-child(2), :nth-last-child(1), :nth-last-child(2)) {
63
+ > span {
64
+ position: relative;
65
+ top: -2px;
66
+ font-size: 1.5rem;
67
+ }
68
+ }
69
+
70
+ &:is(.start-ellipsis, .end-ellipsis),
71
+ &:is(.start-ellipsis, .end-ellipsis):hover {
72
+ background-color: transparent;
73
+ cursor: no-drop;
74
+ }
75
+ }
76
+ }
6
77
  }
7
- .ar-pagination > ul {
8
- display: flex;
9
- flex-direction: row;
10
- list-style: none;
11
- gap: 0 0.5rem;
12
- height: 1.75rem;
13
- }
14
- .ar-pagination > ul > li {
15
- display: flex;
16
- justify-content: center;
17
- align-items: center;
18
- min-width: 1.75rem;
19
- height: 100%;
20
- border-radius: var(--border-radius-pill);
21
- box-shadow: 0 0 0 0 rgba(var(--primary-rgb), 0.1);
22
- transform: scale(1);
23
- color: var(--gray-700);
24
- font-weight: 400;
25
- cursor: pointer;
26
- user-select: none;
27
- }
28
- .ar-pagination > ul > li:hover {
29
- background-color: var(--gray-300);
30
- }
31
- .ar-pagination > ul > li:is(.selection-page) {
32
- background-color: var(--primary);
33
- box-shadow: 0 0 0 3.5px rgba(var(--primary-rgb), 0.1);
34
- color: var(--white);
35
- font-size: 0.9rem;
36
- transform: scale(1.15);
37
- transition: transform 250ms, box-shadow 250ms 250ms ease-in-out;
38
- }
39
- .ar-pagination > ul > li:is(.passive) {
40
- color: var(--gray-300);
41
- cursor: no-drop;
42
- }
43
- .ar-pagination > ul > li:is(.passive):hover {
44
- background-color: transparent;
45
- }
46
- .ar-pagination > ul > li:is(:nth-child(2)) {
47
- margin-right: 1rem;
78
+
79
+ /* --- [KÜÇÜK MOBİL - IPHONE SE VB.] --- */
80
+ /* Çok dar ekranlar için özel düzeltmeler */
81
+ @media (max-width: 375px) {
48
82
  }
49
- .ar-pagination > ul > li:is(:nth-last-child(2)) {
50
- margin-left: 1rem;
83
+
84
+ /* --- [MOBİL - STANDART] --- */
85
+ /* Ekran 576px ve altına düştüğünde çalışır */
86
+ @media (max-width: 576px) {
87
+ .ar-pagination {
88
+ > ul {
89
+ > li {
90
+ min-width: 1rem;
91
+ height: 1rem;
92
+
93
+ &:hover {
94
+ }
95
+
96
+ &:is(.selection-page) {
97
+ }
98
+
99
+ &:is(.passive) {
100
+ &:hover {
101
+ }
102
+ }
103
+
104
+ &:is(:nth-child(2)) {
105
+ margin-right: 0.5rem;
106
+ }
107
+
108
+ &:is(:nth-last-child(2)) {
109
+ margin-left: 0.5rem;
110
+ }
111
+
112
+ &:is(:nth-child(1), :nth-child(2), :nth-last-child(1), :nth-last-child(2)) {
113
+ > span {
114
+ }
115
+ }
116
+
117
+ &:is(.start-ellipsis, .end-ellipsis),
118
+ &:is(.start-ellipsis, .end-ellipsis):hover {
119
+ }
120
+ }
121
+ }
122
+ }
51
123
  }
52
- .ar-pagination > ul > li:is(:nth-child(1), :nth-child(2), :nth-last-child(1), :nth-last-child(2)) > span {
53
- position: relative;
54
- top: -2px;
55
- font-size: 1.5rem;
124
+
125
+ /* --- [TABLET DİKEY & BÜYÜK TELEFONLAR] --- */
126
+ /* Ekran 768px ve altına düştüğünde çalışır */
127
+ @media (max-width: 768px) {
128
+ .ar-pagination {
129
+ > ul {
130
+ > li {
131
+ min-width: 1rem;
132
+ height: 1rem;
133
+
134
+ &:hover {
135
+ }
136
+
137
+ &:is(.selection-page) {
138
+ }
139
+
140
+ &:is(.passive) {
141
+ &:hover {
142
+ }
143
+ }
144
+
145
+ &:is(:nth-child(2)) {
146
+ margin-right: 0.5rem;
147
+ }
148
+
149
+ &:is(:nth-last-child(2)) {
150
+ margin-left: 0.5rem;
151
+ }
152
+
153
+ &:is(:nth-child(1), :nth-child(2), :nth-last-child(1), :nth-last-child(2)) {
154
+ > span {
155
+ }
156
+ }
157
+
158
+ &:is(.start-ellipsis, .end-ellipsis),
159
+ &:is(.start-ellipsis, .end-ellipsis):hover {
160
+ }
161
+ }
162
+ }
163
+ }
56
164
  }
57
- .ar-pagination > ul > li:is(.start-ellipsis, .end-ellipsis),
58
- .ar-pagination > ul > li:is(.start-ellipsis, .end-ellipsis):hover {
59
- background-color: transparent;
60
- cursor: no-drop;
165
+
166
+ /* --- [TABLET & KÜÇÜK LAPTOP] --- */
167
+ /* Ekran 1024px ve altına düştüğünde çalışır */
168
+ @media (max-width: 1024px) {
61
169
  }
@@ -669,12 +669,15 @@ const Table = forwardRef(({ children, trackBy, title, description, data, columns
669
669
  React.createElement("div", { className: "actions" }, actions && (React.createElement(React.Fragment, null,
670
670
  actions.import && (React.createElement(Popover, { title: actions.import.title ?? "İçeri Aktar", message: actions.import.message ??
671
671
  "Seçtiğiniz dosyaları uygulamaya yükleyebilirsiniz. Bu işlem, dosyalardaki verileri sistemimize aktarır ve verilerle işlem yapmanıza olanak tanır.", content: React.createElement(React.Fragment, null,
672
- actions.import.prefixItem,
673
- React.createElement(Upload, { text: actions.import.buttonText ?? "Belge Yükleyin", allowedTypes: actions.import.allowedTypes, files: files, onChange: (formData, files, base64) => {
674
- setFormData(formData);
675
- setFiles(files);
676
- setBase64(base64);
677
- }, size: "small", fullWidth: true }),
672
+ React.createElement(Row, null,
673
+ React.createElement(Column, { size: 12 }, actions.import.prefixItem)),
674
+ React.createElement(Row, null,
675
+ React.createElement(Column, { size: 12 },
676
+ React.createElement(Upload, { text: actions.import.buttonText ?? "Belge Yükleyin", allowedTypes: actions.import.allowedTypes, files: files, onChange: (formData, files, base64) => {
677
+ setFormData(formData);
678
+ setFiles(files);
679
+ setBase64(base64);
680
+ }, size: "small", fullWidth: true }))),
678
681
  actions.import.suffixItem), onConfirm: (confirm) => {
679
682
  if (!confirm) {
680
683
  setFiles([]);
@@ -2,10 +2,11 @@ import React from "react";
2
2
  import { ValidationError } from ".";
3
3
  interface IProps {
4
4
  type: "list" | "grid";
5
+ direction?: "row" | "column";
5
6
  selectedFiles: File[];
6
7
  validationErrors?: ValidationError[];
7
8
  handleFileToBase64: (file: File) => Promise<string>;
8
9
  handleFileRemove: (fileToRemove: File) => void;
9
10
  }
10
- declare const _default: React.MemoExoticComponent<({ type, selectedFiles, validationErrors, handleFileToBase64, handleFileRemove }: IProps) => React.JSX.Element>;
11
+ declare const _default: React.MemoExoticComponent<({ type, direction, selectedFiles, validationErrors, handleFileToBase64, handleFileRemove, }: IProps) => React.JSX.Element>;
11
12
  export default _default;
@@ -2,8 +2,8 @@ import React, { memo } from "react";
2
2
  import { ARIcon } from "../../icons";
3
3
  import Utils from "../../../libs/infrastructure/shared/Utils";
4
4
  import Buttons from "./Buttons";
5
- const List = ({ type, selectedFiles, validationErrors = [], handleFileToBase64, handleFileRemove }) => {
6
- return (React.createElement("ul", { className: type }, selectedFiles.map((selectedFile) => {
5
+ const List = ({ type, direction, selectedFiles, validationErrors = [], handleFileToBase64, handleFileRemove, }) => {
6
+ return (React.createElement("ul", { className: `${type} ${direction}` }, selectedFiles.map((selectedFile) => {
7
7
  const message = validationErrors.find((v) => v.fileName === selectedFile.name)?.message;
8
8
  return (React.createElement("li", null,
9
9
  message && (React.createElement("div", { className: "error" },
@@ -1,70 +1,15 @@
1
1
  import { MimeTypes } from "../../../libs/types";
2
2
  import { IDisabled, ISize, IValidation } from "../../../libs/types/IGlobalProps";
3
3
  interface IMultiple {
4
- /**
5
- * Yüklenen dosyalar dizisi.
6
- *
7
- * Örneğin;
8
- *
9
- * ```jsx
10
- * <Upload
11
- * file={[file1, file2]}
12
- * multiple={true}
13
- * onChange={(formData, files, isInvalid) => {}}
14
- * />
15
- * ```
16
- */
17
4
  files: File[];
18
- /**
19
- * Dosya seçimi veya değişikliğinde tetiklenen fonksiyon.
20
- *
21
- * @param formData - Dosyalarla oluşturulmuş FormData nesnesi.
22
- * @param files - Seçilen dosyalar dizisi.
23
- * @param isInvalidFileExist - Geçersiz dosya olup olmadığını belirtir.
24
- *
25
- * Örneğin;
26
- *
27
- * ```jsx
28
- * <Upload
29
- * onChange={(formData, files, isInvalid) => {
30
- * console.log(files.length, isInvalid);
31
- * }}
32
- * />
33
- * ```
34
- */
35
5
  onChange: (formData: FormData, files: File[], base64: string[], isInvalidFileExist: boolean) => void;
36
6
  }
37
7
  type Props = {
38
- /**
39
- * Bileşen ile ilgili açıklayıcı veya gösterilecek metin.
40
- *
41
- * Örneğin;
42
- *
43
- * ```jsx
44
- * <Upload text="Dosya yükle" />
45
- * ```
46
- */
47
8
  text: string;
48
- /**
49
- * Kabul edilen dosya türlerinin listesi.
50
- *
51
- * Örneğin;
52
- * ```jsx
53
- * <Upload allowedTypes={["image/png", "application/pdf"]} />
54
- * ```
55
- */
56
9
  allowedTypes?: MimeTypes[];
57
- /**
58
- * Kabul edilen maksimum dosya boyutu (byte cinsinden).
59
- *
60
- * Örneğin;
61
- *
62
- * ```jsx
63
- * <Upload maxSize={1} /> // 1 MB
64
- * ```
65
- */
66
10
  maxSize?: number;
67
11
  type?: "list" | "grid" | "dropzone";
12
+ direction?: "row" | "column";
68
13
  fullWidth?: boolean;
69
14
  multiple?: boolean;
70
15
  } & IMultiple & ISize & IValidation & IDisabled;
@@ -6,7 +6,7 @@ import Dropzone from "./Dropzone";
6
6
  import Button from "../button";
7
7
  import List from "./List";
8
8
  import Utils from "../../../libs/infrastructure/shared/Utils";
9
- const Upload = ({ text, files, onChange, allowedTypes, maxSize, type = "list", size, fullWidth, multiple, }) => {
9
+ const Upload = ({ text, files, onChange, allowedTypes, maxSize, type = "list", direction = "column", size, fullWidth, multiple, }) => {
10
10
  // refs
11
11
  const _input = useRef(null);
12
12
  const _arUplaod = useRef(null);
@@ -152,7 +152,7 @@ const Upload = ({ text, files, onChange, allowedTypes, maxSize, type = "list", s
152
152
  if (_input.current)
153
153
  _input.current.click();
154
154
  }, fullWidth: fullWidth, size: size }, text && React.createElement("span", null, text)),
155
- React.createElement(List, { type: type, selectedFiles: selectedFiles ?? [], validationErrors: validationErrors, handleFileToBase64: handleFileToBase64, handleFileRemove: handleFileRemove }))),
155
+ React.createElement(List, { type: type, direction: direction, selectedFiles: selectedFiles ?? [], validationErrors: validationErrors, handleFileToBase64: handleFileToBase64, handleFileRemove: handleFileRemove }))),
156
156
  });
157
157
  case "dropzone":
158
158
  return renderUploadFile({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ar-design",
3
- "version": "0.4.11",
3
+ "version": "0.4.12",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",