senangwebs-photobooth 1.0.1 → 1.0.2

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/swp.css CHANGED
@@ -1,448 +1,454 @@
1
- @import url(https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css);
2
1
  /**
3
2
  * SenangWebs Photobooth (SWP) - Styles
4
- * @version 1.0.0
3
+ * @version 1.0.2
5
4
  */
6
5
 
7
- /* Font Awesome */
8
-
9
6
  /* Container */
10
7
  .swp-container {
11
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
12
- max-width: 1200px;
13
- box-sizing: border-box;
8
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
9
+ Ubuntu, Cantarell, sans-serif;
10
+ max-width: 1200px;
11
+ box-sizing: border-box;
14
12
  }
15
13
 
16
14
  .swp-wrapper {
17
- background: #ffffff;
18
- overflow: hidden;
19
- height: 100%;
20
- display: flex;
21
- flex-direction: column;
15
+ background: #ffffff;
16
+ overflow: hidden;
17
+ height: 100%;
18
+ display: flex;
19
+ flex-direction: column;
22
20
  }
23
21
 
24
22
  /* Toolbar */
25
23
  .swp-toolbar {
26
- display: flex;
27
- gap: 8px;
28
- padding: 8px;
29
- background: #f8f9fa;
30
- flex-wrap: wrap;
31
- justify-content: space-between;
24
+ display: flex;
25
+ gap: 8px;
26
+ padding: 8px;
27
+ background: #f8f9fa;
28
+ flex-wrap: wrap;
29
+ justify-content: space-between;
32
30
  }
33
31
 
34
32
  .swp-toolbar-group {
35
- display: flex;
36
- gap: 0px;
37
- align-items: center;
38
- border: 1px solid #dee2e6;
39
- border-radius: 8px;
40
- overflow: hidden;
33
+ display: flex;
34
+ gap: 0px;
35
+ align-items: center;
36
+ border: 1px solid #dee2e6;
37
+ border-radius: 8px;
38
+ overflow: hidden;
41
39
  }
42
40
 
43
41
  .swp-toolbar-group .swp-btn {
44
- display: flex;
45
- flex-direction: column;
46
- gap: 0px;
47
- height: 48px;
48
- width: 80px;
49
- min-width: 48px;
50
- align-items: center;
51
- justify-content: center;
52
- border-radius: 0px;
53
- border: none;
54
- padding: 0px;
42
+ display: flex;
43
+ flex-direction: column;
44
+ gap: 0px;
45
+ height: 48px;
46
+ width: 80px;
47
+ min-width: 48px;
48
+ align-items: center;
49
+ justify-content: center;
50
+ border-radius: 0px;
51
+ border: none;
52
+ padding: 0px;
55
53
  }
56
54
 
57
55
  .swp-toolbar-group .swp-btn span {
58
- font-size: 12px;
56
+ font-size: 12px;
57
+ font-weight: 500;
58
+ }
59
+
60
+ .swp-toolbar-group .swp-btn .swp-icon {
61
+ font-size: 18px;
62
+ padding: 2px;
63
+ display: flex;
64
+ align-items: center;
65
+ justify-content: center;
59
66
  }
60
67
 
61
68
  .swp-btn {
62
- display: flex;
63
- align-items: center;
64
- justify-content: center;
65
- gap: 8px;
66
- padding: 0px 12px;
67
- border: 1px solid #dee2e6;
68
- background: #ffffff;
69
- border-radius: 6px;
70
- cursor: pointer;
71
- font-size: 14px;
72
- color: #495057;
73
- transition: all 0.2s ease;
74
- font-family: inherit;
75
- height: 40px;
69
+ display: flex;
70
+ align-items: center;
71
+ justify-content: center;
72
+ gap: 8px;
73
+ padding: 0px 12px;
74
+ border: 1px solid #dee2e6;
75
+ background: #ffffff;
76
+ border-radius: 6px;
77
+ cursor: pointer;
78
+ font-size: 14px;
79
+ color: #495057;
80
+ transition: all 0.2s ease;
81
+ font-family: inherit;
82
+ height: 40px;
76
83
  }
77
84
 
78
85
  .swp-btn:hover {
79
- background: #e9ecef;
80
- border-color: #adb5bd;
86
+ background: #e9ecef;
87
+ border-color: #adb5bd;
81
88
  }
82
89
 
83
90
  .swp-btn:active {
84
- transform: scale(0.98);
91
+ transform: scale(0.98);
85
92
  }
86
93
 
87
94
  .swp-btn-primary {
88
- background: #007bff;
89
- color: white;
90
- border-color: #007bff;
95
+ background: #007bff;
96
+ color: white;
97
+ border-color: #007bff;
91
98
  }
92
99
 
93
100
  .swp-btn-primary:hover {
94
- background: #0056b3;
95
- border-color: #0056b3;
101
+ background: #0056b3;
102
+ border-color: #0056b3;
96
103
  }
97
104
 
98
105
  .swp-btn-icon-only {
99
- padding: 0px 12px;
100
- justify-content: center;
101
- align-items: center;
102
- aspect-ratio: 1 / 1;
103
- max-width: 40px;
106
+ padding: 0px 12px;
107
+ justify-content: center;
108
+ align-items: center;
109
+ aspect-ratio: 1 / 1;
110
+ max-width: 40px;
104
111
  }
105
112
 
106
113
  .swp-icon {
107
- font-size: 18px;
114
+ font-size: 18px;
108
115
  }
109
116
 
110
117
  .swp-layout-container {
111
- display: flex;
112
- flex-grow: 1;
118
+ display: flex;
119
+ flex-grow: 1;
113
120
  }
114
121
 
115
122
  .swp-control-container {
116
- min-width: 348px;
117
- background: #f8f9fa;
118
- padding: 8px 16px;
123
+ min-width: 348px;
124
+ background: #f8f9fa;
125
+ padding: 8px 16px;
119
126
  }
120
127
 
121
128
  .swp-control-container.hidden {
122
- display: block;
129
+ display: block;
123
130
  }
124
131
 
125
132
  /* Canvas Container */
126
133
  .swp-canvas-container {
127
- position: relative;
128
- display: flex;
129
- align-items: center;
130
- justify-content: center;
131
- min-height: 400px;
132
- padding: 8px;
133
- border-top: 1px solid #dee2e6;
134
- border-right: 1px solid #dee2e6;
135
- border-top-right-radius: 8px;
136
- flex-grow: 1;
137
- min-width: 452px;;
134
+ position: relative;
135
+ display: flex;
136
+ align-items: center;
137
+ justify-content: center;
138
+ min-height: 400px;
139
+ padding: 8px;
140
+ border-top: 1px solid #dee2e6;
141
+ border-right: 1px solid #dee2e6;
142
+ border-top-right-radius: 8px;
143
+ flex-grow: 1;
144
+ min-width: 452px;
138
145
  }
139
146
 
140
147
  .swp-canvas {
141
- max-width: 100%;
142
- height: auto;
143
- background: white;
148
+ max-width: 100%;
149
+ height: auto;
150
+ background: white;
144
151
  }
145
152
 
146
153
  /* Adjustments Panel */
147
154
  .swp-adjustments-panel,
148
155
  .swp-filters-panel,
149
156
  .swp-resize-panel {
150
- display: none;
157
+ display: none;
151
158
  }
152
159
 
153
160
  .swp-adjustments-panel.active,
154
161
  .swp-filters-panel.active,
155
162
  .swp-resize-panel.active {
156
- display: block;
163
+ display: block;
157
164
  }
158
165
 
159
166
  .swp-adjustments-panel h3,
160
167
  .swp-filters-panel h3,
161
168
  .swp-resize-panel h3 {
162
- margin: 0 0 15px 0;
163
- font-size: 16px;
164
- font-weight: 600;
165
- color: #212529;
169
+ margin: 0 0 15px 0;
170
+ font-size: 16px;
171
+ font-weight: 600;
172
+ color: #212529;
166
173
  }
167
174
 
168
175
  .swp-adjustment {
169
- display: flex;
170
- align-items: center;
171
- gap: 12px;
172
- margin-bottom: 15px;
173
- width: 100%;
176
+ display: flex;
177
+ align-items: center;
178
+ gap: 12px;
179
+ margin-bottom: 15px;
180
+ width: 100%;
174
181
  }
175
182
 
176
183
  .swp-adjustment label {
177
- min-width: 100px;
178
- font-size: 14px;
179
- color: #495057;
180
- font-weight: 500;
184
+ min-width: 100px;
185
+ font-size: 14px;
186
+ color: #495057;
187
+ font-weight: 500;
181
188
  }
182
189
 
183
190
  .swp-adjustment input[type="range"] {
184
- flex: 1;
185
- flex-shrink: 1;
186
- height: 6px;
187
- border-radius: 3px;
188
- background: #e9ecef;
189
- outline: none;
190
- -webkit-appearance: none;
191
+ flex: 1;
192
+ flex-shrink: 1;
193
+ height: 6px;
194
+ border-radius: 3px;
195
+ background: #e9ecef;
196
+ outline: none;
197
+ -webkit-appearance: none;
191
198
  }
192
199
 
193
200
  .swp-adjustment input[type="range"]::-webkit-slider-thumb {
194
- -webkit-appearance: none;
195
- appearance: none;
196
- width: 18px;
197
- height: 18px;
198
- border-radius: 50%;
199
- background: #007bff;
200
- cursor: pointer;
201
- transition: all 0.2s ease;
201
+ -webkit-appearance: none;
202
+ appearance: none;
203
+ width: 18px;
204
+ height: 18px;
205
+ border-radius: 50%;
206
+ background: #007bff;
207
+ cursor: pointer;
208
+ transition: all 0.2s ease;
202
209
  }
203
210
 
204
211
  .swp-adjustment input[type="range"]::-webkit-slider-thumb:hover {
205
- background: #0056b3;
206
- transform: scale(1.1);
212
+ background: #0056b3;
213
+ transform: scale(1.1);
207
214
  }
208
215
 
209
216
  .swp-adjustment input[type="range"]::-moz-range-thumb {
210
- width: 18px;
211
- height: 18px;
212
- border-radius: 50%;
213
- background: #007bff;
214
- cursor: pointer;
215
- border: none;
216
- transition: all 0.2s ease;
217
+ width: 18px;
218
+ height: 18px;
219
+ border-radius: 50%;
220
+ background: #007bff;
221
+ cursor: pointer;
222
+ border: none;
223
+ transition: all 0.2s ease;
217
224
  }
218
225
 
219
226
  .swp-adjustment input[type="range"]::-moz-range-thumb:hover {
220
- background: #0056b3;
221
- transform: scale(1.1);
227
+ background: #0056b3;
228
+ transform: scale(1.1);
222
229
  }
223
230
 
224
231
  .swp-value {
225
- text-align: right;
226
- font-size: 14px;
227
- color: #6c757d;
228
- font-weight: 500;
232
+ text-align: right;
233
+ font-size: 14px;
234
+ color: #6c757d;
235
+ font-weight: 500;
229
236
  }
230
237
 
231
238
  /* Resize Panel */
232
239
  .swp-resize-controls {
233
- display: flex;
234
- flex-direction: column;
235
- gap: 15px;
240
+ display: flex;
241
+ flex-direction: column;
242
+ gap: 15px;
236
243
  }
237
244
 
238
245
  .swp-resize-controls .swp-adjustment {
239
- display: flex;
240
- align-items: center;
241
- gap: 10px;
246
+ display: flex;
247
+ align-items: center;
248
+ gap: 10px;
242
249
  }
243
250
 
244
251
  .swp-resize-controls input[type="number"] {
245
- flex: 1;
246
- padding: 8px 12px;
247
- border: 1px solid #dee2e6;
248
- border-radius: 6px;
249
- font-size: 14px;
250
- color: #495057;
252
+ flex: 1;
253
+ padding: 8px 12px;
254
+ border: 1px solid #dee2e6;
255
+ border-radius: 6px;
256
+ font-size: 14px;
257
+ color: #495057;
251
258
  }
252
259
 
253
260
  .swp-resize-controls input[type="number"]:focus {
254
- outline: none;
255
- border-color: #007bff;
261
+ outline: none;
262
+ border-color: #007bff;
256
263
  }
257
264
 
258
265
  .swp-resize-controls input[type="checkbox"] {
259
- width: 18px;
260
- height: 18px;
261
- cursor: pointer;
266
+ width: 18px;
267
+ height: 18px;
268
+ cursor: pointer;
262
269
  }
263
270
 
264
271
  .swp-resize-controls label {
265
- display: flex;
266
- align-items: center;
267
- gap: 8px;
268
- cursor: pointer;
269
- font-size: 14px;
270
- color: #495057;
272
+ display: flex;
273
+ align-items: center;
274
+ gap: 8px;
275
+ cursor: pointer;
276
+ font-size: 14px;
277
+ color: #495057;
271
278
  }
272
279
 
273
280
  .swp-resize-controls button {
274
- margin-top: 10px;
281
+ margin-top: 10px;
275
282
  }
276
283
 
277
-
278
284
  /* Filters Panel */
279
285
  .swp-filters-grid {
280
- display: grid;
281
- grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
282
- gap: 15px;
286
+ display: grid;
287
+ grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
288
+ gap: 15px;
283
289
  }
284
290
 
285
291
  .swp-filter-btn {
286
- display: flex;
287
- flex-direction: column;
288
- align-items: center;
289
- gap: 8px;
290
- padding: 12px;
291
- border: 2px solid #dee2e6;
292
- background: #ffffff;
293
- border-radius: 8px;
294
- cursor: pointer;
295
- font-size: 13px;
296
- color: #495057;
297
- transition: all 0.2s ease;
298
- font-family: inherit;
292
+ display: flex;
293
+ flex-direction: column;
294
+ align-items: center;
295
+ gap: 8px;
296
+ padding: 12px;
297
+ border: 2px solid #dee2e6;
298
+ background: #ffffff;
299
+ border-radius: 8px;
300
+ cursor: pointer;
301
+ font-size: 13px;
302
+ color: #495057;
303
+ transition: all 0.2s ease;
304
+ font-family: inherit;
299
305
  }
300
306
 
301
307
  .swp-filter-btn:hover {
302
- border-color: #007bff;
303
- background: #f8f9fa;
308
+ border-color: #007bff;
309
+ background: #f8f9fa;
304
310
  }
305
311
 
306
312
  .swp-filter-btn.active {
307
- border-color: #007bff;
308
- background: #e7f3ff;
309
- color: #007bff;
310
- font-weight: 600;
313
+ border-color: #007bff;
314
+ background: #e7f3ff;
315
+ color: #007bff;
316
+ font-weight: 600;
311
317
  }
312
318
 
313
319
  .swp-filter-preview {
314
- width: 60px;
315
- height: 60px;
316
- border-radius: 6px;
317
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
318
- display: block;
320
+ width: 60px;
321
+ height: 60px;
322
+ border-radius: 6px;
323
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
324
+ display: block;
319
325
  }
320
326
 
321
327
  .swp-filter-preview[data-filter="grayscale"] {
322
- filter: grayscale(100%);
328
+ filter: grayscale(100%);
323
329
  }
324
330
 
325
331
  .swp-filter-preview[data-filter="sepia"] {
326
- filter: sepia(100%);
332
+ filter: sepia(100%);
327
333
  }
328
334
 
329
335
  .swp-filter-preview[data-filter="invert"] {
330
- filter: invert(100%);
336
+ filter: invert(100%);
331
337
  }
332
338
 
333
339
  .swp-filter-preview[data-filter="blur"] {
334
- filter: blur(3px);
340
+ filter: blur(3px);
335
341
  }
336
342
 
337
343
  .swp-filter-preview[data-filter="none"] {
338
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
344
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
339
345
  }
340
346
 
341
347
  /* Responsive Design */
342
348
  @media (max-width: 768px) {
343
- .swp-toolbar {
344
- padding: 10px;
345
- gap: 5px;
346
- }
349
+ .swp-toolbar {
350
+ padding: 10px;
351
+ gap: 5px;
352
+ }
347
353
 
348
- .swp-toolbar-group {
349
- gap: 5px;
350
- }
354
+ .swp-toolbar-group {
355
+ gap: 5px;
356
+ }
351
357
 
352
- .swp-btn {
353
- padding: 6px 12px;
354
- font-size: 12px;
355
- }
358
+ .swp-btn {
359
+ padding: 6px 12px;
360
+ font-size: 12px;
361
+ }
356
362
 
357
- .swp-btn span:not(.swp-icon) {
358
- display: none;
359
- }
363
+ .swp-btn span:not(.swp-icon) {
364
+ display: none;
365
+ }
360
366
 
361
- .swp-canvas-container {
362
- min-height: 300px;
363
- padding: 10px;
364
- }
367
+ .swp-canvas-container {
368
+ min-height: 300px;
369
+ padding: 10px;
370
+ }
365
371
 
366
- .swp-adjustments-panel,
367
- .swp-filters-panel {
368
- padding: 15px;
369
- }
372
+ .swp-adjustments-panel,
373
+ .swp-filters-panel {
374
+ padding: 15px;
375
+ }
370
376
 
371
- .swp-adjustment {
372
- flex-wrap: wrap;
373
- }
377
+ .swp-adjustment {
378
+ flex-wrap: wrap;
379
+ }
374
380
 
375
- .swp-adjustment label {
376
- min-width: 100%;
377
- }
381
+ .swp-adjustment label {
382
+ min-width: 100%;
383
+ }
378
384
 
379
- .swp-filters-grid {
380
- grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
381
- gap: 10px;
382
- }
385
+ .swp-filters-grid {
386
+ grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
387
+ gap: 10px;
388
+ }
383
389
 
384
- .swp-filter-preview {
385
- width: 50px;
386
- height: 50px;
387
- }
390
+ .swp-filter-preview {
391
+ width: 50px;
392
+ height: 50px;
393
+ }
388
394
  }
389
395
 
390
396
  /* Loading State */
391
397
  .swp-loading {
392
- position: absolute;
393
- top: 50%;
394
- left: 50%;
395
- transform: translate(-50%, -50%);
396
- font-size: 14px;
397
- color: #6c757d;
398
+ position: absolute;
399
+ top: 50%;
400
+ left: 50%;
401
+ transform: translate(-50%, -50%);
402
+ font-size: 14px;
403
+ color: #6c757d;
398
404
  }
399
405
 
400
406
  /* Empty State */
401
407
  .swp-empty-state {
402
- text-align: center;
403
- padding: 60px 20px;
404
- color: #6c757d;
408
+ text-align: center;
409
+ padding: 60px 20px;
410
+ color: #6c757d;
405
411
  }
406
412
 
407
413
  .swp-empty-state-icon {
408
- font-size: 48px;
409
- margin-bottom: 15px;
410
- opacity: 0.5;
414
+ font-size: 48px;
415
+ margin-bottom: 15px;
416
+ opacity: 0.5;
411
417
  }
412
418
 
413
419
  .swp-empty-state-text {
414
- font-size: 16px;
415
- margin-bottom: 20px;
420
+ font-size: 16px;
421
+ margin-bottom: 20px;
416
422
  }
417
423
 
418
424
  /* Animations */
419
425
  @keyframes fadeIn {
420
- from {
421
- opacity: 0;
422
- transform: translateY(-10px);
423
- }
424
- to {
425
- opacity: 1;
426
- transform: translateY(0);
427
- }
426
+ from {
427
+ opacity: 0;
428
+ transform: translateY(-10px);
429
+ }
430
+ to {
431
+ opacity: 1;
432
+ transform: translateY(0);
433
+ }
428
434
  }
429
435
 
430
436
  .swp-adjustments-panel.active,
431
437
  .swp-filters-panel.active {
432
- animation: fadeIn 0.3s ease;
438
+ animation: fadeIn 0.3s ease;
433
439
  }
434
440
 
435
441
  /* Print Styles */
436
442
  @media print {
437
- .swp-toolbar,
438
- .swp-adjustments-panel,
439
- .swp-filters-panel {
440
- display: none;
441
- }
442
-
443
- .swp-canvas-container {
444
- padding: 0;
445
- background: transparent;
446
- }
443
+ .swp-toolbar,
444
+ .swp-adjustments-panel,
445
+ .swp-filters-panel {
446
+ display: none;
447
+ }
448
+
449
+ .swp-canvas-container {
450
+ padding: 0;
451
+ background: transparent;
452
+ }
447
453
  }
448
454