@visns-studio/visns-components 5.8.1 → 5.8.3

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.
@@ -0,0 +1,347 @@
1
+ /* DropZone Component Styles */
2
+
3
+ /* Dropzone wrapper */
4
+ .dropzoneWrapper {
5
+ display: flex;
6
+ flex-direction: column;
7
+ width: 100%;
8
+ }
9
+
10
+ /* Gallery container */
11
+ .imageContainer {
12
+ width: 100%;
13
+ padding: 1rem;
14
+ box-sizing: border-box;
15
+ }
16
+
17
+ /* Override the sortlist styles for gallery view */
18
+ :global(.sortlist) {
19
+ display: grid;
20
+ grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
21
+ gap: 16px;
22
+ width: 100%;
23
+ }
24
+
25
+ :global(.sortlist li) {
26
+ position: relative;
27
+ display: flex;
28
+ flex-direction: column;
29
+ padding: 0;
30
+ border-radius: 8px;
31
+ overflow: hidden;
32
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
33
+ transition: transform 0.2s ease, box-shadow 0.2s ease;
34
+ margin-bottom: 16px;
35
+ }
36
+
37
+ :global(.sortlist li:hover) {
38
+ transform: translateY(-4px);
39
+ box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
40
+ }
41
+
42
+ :global(.sortlist .sortimg) {
43
+ width: 100%;
44
+ height: auto;
45
+ max-height: 500px;
46
+ margin: 0;
47
+ overflow: hidden;
48
+ }
49
+
50
+ :global(.sortlist .sortimg img) {
51
+ width: 100%;
52
+ height: auto;
53
+ max-height: 500px;
54
+ object-fit: contain;
55
+ display: block;
56
+ background-color: #f5f5f5;
57
+ }
58
+
59
+ :global(.sortlist .drag-handle) {
60
+ position: absolute;
61
+ top: 10px;
62
+ left: 10px;
63
+ z-index: 10;
64
+ background-color: rgba(0, 0, 0, 0.7);
65
+ border-radius: 50%;
66
+ width: 32px;
67
+ height: 32px;
68
+ display: flex;
69
+ align-items: center;
70
+ justify-content: center;
71
+ cursor: grab;
72
+ color: rgba(255, 255, 255, 0.9);
73
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
74
+ }
75
+
76
+ :global(.sortlist .actionIcons) {
77
+ position: absolute;
78
+ top: 10px;
79
+ right: 10px;
80
+ display: flex;
81
+ gap: 8px;
82
+ z-index: 10;
83
+ }
84
+
85
+ :global(.sortlist .delete),
86
+ :global(.sortlist .pencil-edit) {
87
+ background-color: rgba(0, 0, 0, 0.7);
88
+ border-radius: 50%;
89
+ width: 32px;
90
+ height: 32px;
91
+ display: flex;
92
+ align-items: center;
93
+ justify-content: center;
94
+ transition: all 0.2s ease;
95
+ cursor: pointer;
96
+ color: rgba(255, 255, 255, 0.9);
97
+ }
98
+
99
+ :global(.sortlist .delete:hover),
100
+ :global(.sortlist .pencil-edit:hover) {
101
+ transform: scale(1.05);
102
+ background-color: rgba(0, 0, 0, 0.9);
103
+ color: rgba(255, 255, 255, 1);
104
+ }
105
+
106
+ /* Dropzone container */
107
+ .dropzoneContainer {
108
+ padding: 1rem;
109
+ display: flex;
110
+ flex-direction: column;
111
+ gap: 1rem;
112
+ margin-bottom: 1rem;
113
+ width: 100%;
114
+ box-sizing: border-box;
115
+ }
116
+
117
+ .dropzoneContainer > div {
118
+ flex: 1;
119
+ display: flex;
120
+ flex-direction: column;
121
+ align-items: center;
122
+ justify-content: center;
123
+ padding: 2rem;
124
+ border: 2px dashed rgba(var(--primary-rgb, 0, 0, 0), 0.2);
125
+ border-radius: 6px;
126
+ background-color: rgba(var(--tertiary-color-rgb, 240, 240, 240), 0.5);
127
+ color: var(--paragraph-color, #666);
128
+ outline: none;
129
+ transition: all 0.2s ease;
130
+ }
131
+
132
+ .dropzoneContainer > div:hover {
133
+ border-color: rgba(var(--primary-rgb, 0, 0, 0), 0.4);
134
+ background-color: rgba(var(--tertiary-color-rgb, 240, 240, 240), 0.7);
135
+ }
136
+
137
+ .dropzoneContainer p {
138
+ padding: 0;
139
+ margin: 0;
140
+ font-size: 1rem;
141
+ text-align: center;
142
+ }
143
+
144
+ /* Progress bar */
145
+ .progress {
146
+ width: 100%;
147
+ height: 4px;
148
+ background-color: rgba(var(--tertiary-color-rgb, 240, 240, 240), 1);
149
+ border-radius: 2px;
150
+ overflow: hidden;
151
+ margin: 0.5rem 0;
152
+ }
153
+
154
+ .progressBar {
155
+ height: 100%;
156
+ background-color: var(--primary-color, #333);
157
+ border-radius: 2px;
158
+ }
159
+
160
+ /* File list container */
161
+ .dropzoneFiles {
162
+ list-style: none;
163
+ padding: 0;
164
+ margin: 1em 0;
165
+ box-sizing: border-box;
166
+ display: grid;
167
+ grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
168
+ gap: 12px;
169
+ }
170
+
171
+ /* File item */
172
+ .dropzoneFileItem {
173
+ display: flex;
174
+ justify-content: space-between;
175
+ align-items: center;
176
+ background: rgba(var(--tertiary-color-rgb, 240, 240, 240), 1);
177
+ color: var(--primary-color, #333);
178
+ border-radius: 6px;
179
+ transition: all 0.2s ease;
180
+ cursor: pointer;
181
+ padding: 12px 16px;
182
+ box-sizing: border-box;
183
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
184
+ border: 1px solid rgba(0, 0, 0, 0.05);
185
+ }
186
+
187
+ .dropzoneFileItem:hover {
188
+ background: rgba(var(--secondary-color-rgb, 220, 220, 220), 0.65);
189
+ transform: translateY(-2px);
190
+ box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1);
191
+ }
192
+
193
+ /* File content container */
194
+ .dropzoneFileContent {
195
+ display: flex;
196
+ align-items: center;
197
+ gap: 12px;
198
+ overflow: hidden;
199
+ flex: 1;
200
+ }
201
+
202
+ /* File icon */
203
+ .dropzoneFileIcon {
204
+ color: var(--primary-color, #333);
205
+ flex-shrink: 0;
206
+ }
207
+
208
+ /* File name */
209
+ .dropzoneFileName {
210
+ font-size: 0.95rem;
211
+ white-space: nowrap;
212
+ overflow: hidden;
213
+ text-overflow: ellipsis;
214
+ }
215
+
216
+ /* Delete button */
217
+ .dropzoneDeleteBtn {
218
+ background: none;
219
+ border: none;
220
+ outline: none;
221
+ cursor: pointer;
222
+ color: var(--primary-color, #fff);
223
+ padding: 6px;
224
+ border-radius: 4px;
225
+ display: flex;
226
+ align-items: center;
227
+ justify-content: center;
228
+ transition: all 0.2s ease;
229
+ margin-left: 8px;
230
+ }
231
+
232
+ .dropzoneDeleteBtn:hover {
233
+ color: var(--secondary-color, #f44336);
234
+ background-color: rgba(244, 67, 54, 0.1);
235
+ }
236
+
237
+ /* Modal styles */
238
+ .modalwrap {
239
+ width: 100%;
240
+ max-width: 500px;
241
+ }
242
+
243
+ .modal {
244
+ background: white;
245
+ border-radius: 8px;
246
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
247
+ overflow: hidden;
248
+ }
249
+
250
+ .modalHeader {
251
+ display: flex;
252
+ justify-content: space-between;
253
+ align-items: center;
254
+ padding: 1rem 1.5rem;
255
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
256
+ }
257
+
258
+ .modalHeader h1 {
259
+ margin: 0;
260
+ font-size: 1.25rem;
261
+ font-weight: 600;
262
+ color: var(--heading-color, #333);
263
+ }
264
+
265
+ .modalClose {
266
+ background: none;
267
+ border: none;
268
+ cursor: pointer;
269
+ color: var(--paragraph-color, #666);
270
+ padding: 4px;
271
+ border-radius: 4px;
272
+ display: flex;
273
+ align-items: center;
274
+ justify-content: center;
275
+ transition: all 0.2s ease;
276
+ }
277
+
278
+ .modalClose:hover {
279
+ color: var(--secondary-color, #f44336);
280
+ background-color: rgba(244, 67, 54, 0.1);
281
+ }
282
+
283
+ .modalContent {
284
+ padding: 1.5rem;
285
+ }
286
+
287
+ .formItem {
288
+ margin-bottom: 1.25rem;
289
+ }
290
+
291
+ .fiLabel {
292
+ position: relative;
293
+ display: block;
294
+ }
295
+
296
+ .fiLabel input,
297
+ .fiLabel textarea {
298
+ width: 100%;
299
+ padding: 0.75rem 1rem;
300
+ border: 1px solid rgba(0, 0, 0, 0.2);
301
+ border-radius: 4px;
302
+ font-size: 1rem;
303
+ transition: all 0.2s ease;
304
+ }
305
+
306
+ .fiLabel input:focus,
307
+ .fiLabel textarea:focus {
308
+ border-color: var(--primary-color, #333);
309
+ outline: none;
310
+ box-shadow: 0 0 0 2px rgba(var(--primary-rgb, 0, 0, 0), 0.1);
311
+ }
312
+
313
+ .fiSpan {
314
+ position: absolute;
315
+ top: -0.5rem;
316
+ left: 0.75rem;
317
+ padding: 0 0.25rem;
318
+ background-color: white;
319
+ font-size: 0.8rem;
320
+ color: var(--paragraph-color, #666);
321
+ }
322
+
323
+ .btnModalsave {
324
+ background-color: var(--primary-color, #333);
325
+ color: white;
326
+ border: none;
327
+ border-radius: 4px;
328
+ padding: 0.75rem 1.5rem;
329
+ font-size: 1rem;
330
+ cursor: pointer;
331
+ transition: all 0.2s ease;
332
+ }
333
+
334
+ .btnModalsave:hover {
335
+ background-color: var(--secondary-color, #555);
336
+ }
337
+
338
+ /* Responsive adjustments */
339
+ @media (max-width: 768px) {
340
+ .dropzoneFiles {
341
+ grid-template-columns: 1fr;
342
+ }
343
+
344
+ .modalwrap {
345
+ width: 90%;
346
+ }
347
+ }
@@ -0,0 +1,197 @@
1
+ /* Gallery grid */
2
+ .galleryGrid {
3
+ display: grid;
4
+ grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
5
+ gap: 20px;
6
+ margin-top: 20px;
7
+ }
8
+
9
+ .galleryItem {
10
+ position: relative;
11
+ border-radius: 8px;
12
+ overflow: hidden;
13
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
14
+ background-color: white;
15
+ transition: transform 0.2s ease, box-shadow 0.2s ease;
16
+ height: 100%;
17
+ display: flex;
18
+ flex-direction: column;
19
+ }
20
+
21
+ .galleryItem:hover {
22
+ transform: translateY(-3px);
23
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
24
+ }
25
+
26
+ .galleryImage {
27
+ position: relative;
28
+ width: 100%;
29
+ height: 200px;
30
+ overflow: hidden;
31
+ background-color: #f5f5f5;
32
+ }
33
+
34
+ .galleryImage img {
35
+ width: 100%;
36
+ height: 100%;
37
+ object-fit: cover;
38
+ transition: transform 0.3s ease;
39
+ }
40
+
41
+ .galleryItem:hover .galleryImage img {
42
+ transform: scale(1.05);
43
+ }
44
+
45
+ .galleryInfo {
46
+ padding: 15px;
47
+ flex-grow: 1;
48
+ display: flex;
49
+ flex-direction: column;
50
+ }
51
+
52
+ .galleryTitle {
53
+ margin: 0 0 8px 0;
54
+ font-size: 16px;
55
+ font-weight: 600;
56
+ color: #333;
57
+ }
58
+
59
+ .galleryDescription {
60
+ margin: 0;
61
+ font-size: 14px;
62
+ color: #666;
63
+ line-height: 1.4;
64
+ display: -webkit-box;
65
+ -webkit-line-clamp: 3;
66
+ -webkit-box-orient: vertical;
67
+ overflow: hidden;
68
+ }
69
+
70
+ /* Gallery controls */
71
+ .galleryControls {
72
+ position: absolute;
73
+ top: 10px;
74
+ right: 10px;
75
+ display: flex;
76
+ gap: 8px;
77
+ z-index: 10;
78
+ }
79
+
80
+ .galleryControl {
81
+ background-color: rgba(0, 0, 0, 0.7);
82
+ border-radius: 50%;
83
+ width: 32px;
84
+ height: 32px;
85
+ display: flex;
86
+ align-items: center;
87
+ justify-content: center;
88
+ transition: all 0.2s ease;
89
+ cursor: pointer;
90
+ border: none;
91
+ outline: none;
92
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
93
+ padding: 0;
94
+ color: rgba(255, 255, 255, 0.9);
95
+ }
96
+
97
+ .galleryControl svg {
98
+ width: 16px;
99
+ height: 16px;
100
+ }
101
+
102
+ .galleryControl:hover {
103
+ transform: scale(1.05);
104
+ background-color: rgba(0, 0, 0, 0.9);
105
+ box-shadow: 0 3px 6px rgba(0, 0, 0, 0.25);
106
+ color: rgba(255, 255, 255, 1);
107
+ }
108
+
109
+ .edit {
110
+ background-color: rgba(0, 0, 0, 0.7);
111
+ }
112
+
113
+ .delete {
114
+ background-color: rgba(0, 0, 0, 0.7);
115
+ }
116
+
117
+ .galleryDragHandle {
118
+ position: absolute;
119
+ top: 10px;
120
+ left: 10px;
121
+ z-index: 10;
122
+ background-color: rgba(0, 0, 0, 0.7);
123
+ border-radius: 50%;
124
+ width: 32px;
125
+ height: 32px;
126
+ display: flex;
127
+ align-items: center;
128
+ justify-content: center;
129
+ cursor: grab;
130
+ color: rgba(255, 255, 255, 0.9);
131
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
132
+ }
133
+
134
+ .galleryDragHandle svg {
135
+ width: 16px;
136
+ height: 16px;
137
+ }
138
+
139
+ /* Empty state */
140
+ .galleryEmpty {
141
+ display: flex;
142
+ flex-direction: column;
143
+ align-items: center;
144
+ justify-content: center;
145
+ padding: 40px;
146
+ background-color: #f9f9f9;
147
+ border-radius: 8px;
148
+ border: 2px dashed #ddd;
149
+ margin-top: 20px;
150
+ }
151
+
152
+ .galleryEmptyIcon {
153
+ color: #ccc;
154
+ margin-bottom: 16px;
155
+ }
156
+
157
+ .galleryEmptyText {
158
+ color: #888;
159
+ text-align: center;
160
+ font-size: 16px;
161
+ margin: 0;
162
+ }
163
+
164
+ /* Responsive adjustments */
165
+ @media (max-width: 1200px) {
166
+ .galleryGrid {
167
+ grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
168
+ }
169
+ }
170
+
171
+ @media (max-width: 768px) {
172
+ .galleryGrid {
173
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
174
+ }
175
+
176
+ .galleryImage {
177
+ height: 160px;
178
+ }
179
+
180
+ .galleryInfo {
181
+ padding: 12px;
182
+ }
183
+
184
+ .galleryTitle {
185
+ font-size: 14px;
186
+ }
187
+
188
+ .galleryDescription {
189
+ font-size: 12px;
190
+ }
191
+ }
192
+
193
+ @media (max-width: 480px) {
194
+ .galleryGrid {
195
+ grid-template-columns: 1fr;
196
+ }
197
+ }