@jjlmoya/utils-audiovisual 1.16.0 → 1.17.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 (21) hide show
  1. package/package.json +1 -1
  2. package/src/tool/chromaticLens/chromatic-lens-color-palette-extraction-online.css +39 -39
  3. package/src/tool/collageMaker/free-online-photo-collage-maker-professional-compositions.css +47 -47
  4. package/src/tool/exifCleaner/exif-metadata-cleaner-remove-gps-photo-privacy.css +36 -36
  5. package/src/tool/imageCompressor/online-image-compressor-reduce-file-size-no-quality-loss.css +71 -64
  6. package/src/tool/printQualityCalculator/print-quality-calculator-pixels-to-cm-dpi.css +89 -81
  7. package/src/tool/privacyBlur/online-privacy-editor-pixelate-blur-faces-photos.css +36 -36
  8. package/src/tool/subtitleSync/synchronize-srt-subtitles-online-adjust-timing-free.css +43 -43
  9. package/src/tool/timelapseCalculator/timelapse-hyperlapse-calculator-perfect-intervals.css +44 -42
  10. package/src/tool/tvDistance/tv-viewing-distance-calculator-thx-4k-optimal-screen.css +56 -56
  11. package/src/tool/videoFrameExtractor/online-video-frame-extractor-capture-hd-stills.css +55 -55
  12. package/src/tool/chromaticLens/style.css +0 -308
  13. package/src/tool/collageMaker/style.css +0 -386
  14. package/src/tool/exifCleaner/style.css +0 -289
  15. package/src/tool/imageCompressor/style.css +0 -503
  16. package/src/tool/printQualityCalculator/style.css +0 -491
  17. package/src/tool/privacyBlur/style.css +0 -332
  18. package/src/tool/subtitleSync/style.css +0 -325
  19. package/src/tool/timelapseCalculator/style.css +0 -285
  20. package/src/tool/tvDistance/style.css +0 -435
  21. package/src/tool/videoFrameExtractor/style.css +0 -426
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jjlmoya/utils-audiovisual",
3
- "version": "1.16.0",
3
+ "version": "1.17.0",
4
4
  "type": "module",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
@@ -1,4 +1,4 @@
1
- :global(.cl-root) {
1
+ .cl-root {
2
2
  --cl-bg: #fff;
3
3
  --cl-bg-elevated: #f8fafc;
4
4
  --cl-border: #e2e8f0;
@@ -16,7 +16,7 @@
16
16
  margin: 0 auto;
17
17
  }
18
18
 
19
- :global(.theme-dark .cl-root) {
19
+ .theme-dark .cl-root {
20
20
  --cl-bg: #18181b;
21
21
  --cl-bg-elevated: #27272a;
22
22
  --cl-border: #3f3f46;
@@ -30,7 +30,7 @@
30
30
  --cl-shadow: rgba(0, 0, 0, 0.5);
31
31
  }
32
32
 
33
- :global(.cl-card) {
33
+ .cl-card {
34
34
  background: var(--cl-bg);
35
35
  border: 1px solid var(--cl-border);
36
36
  border-radius: 3rem;
@@ -40,7 +40,7 @@
40
40
  overflow: hidden;
41
41
  }
42
42
 
43
- :global(.cl-drop) {
43
+ .cl-drop {
44
44
  padding: 5rem 2rem;
45
45
  display: flex;
46
46
  flex-direction: column;
@@ -53,13 +53,13 @@
53
53
  gap: 0.5rem;
54
54
  }
55
55
 
56
- :global(.cl-drop:hover),
57
- :global(.cl-drop-active) {
56
+ .cl-drop:hover,
57
+ .cl-drop-active {
58
58
  background: var(--cl-accent-alpha-hover);
59
59
  border-color: var(--cl-accent);
60
60
  }
61
61
 
62
- :global(.cl-drop-icon) {
62
+ .cl-drop-icon {
63
63
  width: 5rem;
64
64
  height: 5rem;
65
65
  background: var(--cl-accent-alpha);
@@ -71,30 +71,30 @@
71
71
  color: var(--cl-accent);
72
72
  }
73
73
 
74
- :global(.cl-drop-icon svg) {
74
+ .cl-drop-icon svg {
75
75
  width: 2.5rem;
76
76
  height: 2.5rem;
77
77
  }
78
78
 
79
- :global(.cl-drop-title) {
79
+ .cl-drop-title {
80
80
  font-size: 2rem;
81
81
  font-weight: 950;
82
82
  color: var(--cl-text);
83
83
  margin: 0;
84
84
  }
85
85
 
86
- :global(.cl-drop-sub) {
86
+ .cl-drop-sub {
87
87
  font-size: 1.1rem;
88
88
  color: var(--cl-text-muted);
89
89
  margin: 0;
90
90
  font-weight: 600;
91
91
  }
92
92
 
93
- :global(.cl-workspace) {
93
+ .cl-workspace {
94
94
  padding: 1.5rem;
95
95
  }
96
96
 
97
- :global(.cl-mini-drop) {
97
+ .cl-mini-drop {
98
98
  display: inline-flex;
99
99
  align-items: center;
100
100
  gap: 0.75rem;
@@ -110,17 +110,17 @@
110
110
  transition: border-color 0.2s, color 0.2s;
111
111
  }
112
112
 
113
- :global(.cl-mini-drop:hover) {
113
+ .cl-mini-drop:hover {
114
114
  border-color: var(--cl-accent);
115
115
  color: var(--cl-accent);
116
116
  }
117
117
 
118
- :global(.cl-mini-drop svg) {
118
+ .cl-mini-drop svg {
119
119
  width: 1.1rem;
120
120
  height: 1.1rem;
121
121
  }
122
122
 
123
- :global(.cl-config-bar) {
123
+ .cl-config-bar {
124
124
  padding: 1rem 0;
125
125
  margin-bottom: 2rem;
126
126
  border-bottom: 1px solid var(--cl-border);
@@ -128,13 +128,13 @@
128
128
  justify-content: flex-end;
129
129
  }
130
130
 
131
- :global(.cl-config-item) {
131
+ .cl-config-item {
132
132
  display: flex;
133
133
  align-items: center;
134
134
  gap: 1rem;
135
135
  }
136
136
 
137
- :global(.cl-config-label) {
137
+ .cl-config-label {
138
138
  font-size: 0.75rem;
139
139
  font-weight: 900;
140
140
  text-transform: uppercase;
@@ -142,7 +142,7 @@
142
142
  letter-spacing: 0.1em;
143
143
  }
144
144
 
145
- :global(.cl-count-select) {
145
+ .cl-count-select {
146
146
  padding: 0.5rem 1rem;
147
147
  border-radius: 0.75rem;
148
148
  background: var(--cl-bg-elevated);
@@ -152,58 +152,58 @@
152
152
  cursor: pointer;
153
153
  }
154
154
 
155
- :global(.cl-result-layout) {
155
+ .cl-result-layout {
156
156
  display: grid;
157
157
  grid-template-columns: 1fr 1.25fr;
158
158
  gap: 3rem;
159
159
  }
160
160
 
161
161
  @media (max-width: 800px) {
162
- :global(.cl-result-layout) {
162
+ .cl-result-layout {
163
163
  grid-template-columns: 1fr;
164
164
  }
165
165
  }
166
166
 
167
- :global(.cl-preview-col) {
167
+ .cl-preview-col {
168
168
  display: flex;
169
169
  flex-direction: column;
170
170
  gap: 1rem;
171
171
  }
172
172
 
173
- :global(.cl-preview-img) {
173
+ .cl-preview-img {
174
174
  width: 100%;
175
175
  border-radius: 1.5rem;
176
176
  box-shadow: 0 20px 40px var(--cl-shadow);
177
177
  display: block;
178
178
  }
179
179
 
180
- :global(.cl-palette-col) {
180
+ .cl-palette-col {
181
181
  display: flex;
182
182
  flex-direction: column;
183
183
  gap: 1.5rem;
184
184
  }
185
185
 
186
- :global(.cl-palette-header) {
186
+ .cl-palette-header {
187
187
  display: flex;
188
188
  align-items: center;
189
189
  gap: 1rem;
190
190
  color: var(--cl-accent);
191
191
  }
192
192
 
193
- :global(.cl-palette-header svg) {
193
+ .cl-palette-header svg {
194
194
  width: 1.25rem;
195
195
  height: 1.25rem;
196
196
  flex-shrink: 0;
197
197
  }
198
198
 
199
- :global(.cl-palette-header h4) {
199
+ .cl-palette-header h4 {
200
200
  font-size: 1.25rem;
201
201
  font-weight: 950;
202
202
  color: var(--cl-text);
203
203
  margin: 0;
204
204
  }
205
205
 
206
- :global(.cl-loader) {
206
+ .cl-loader {
207
207
  display: flex;
208
208
  flex-direction: column;
209
209
  align-items: center;
@@ -211,7 +211,7 @@
211
211
  padding: 2rem 0;
212
212
  }
213
213
 
214
- :global(.cl-spinner) {
214
+ .cl-spinner {
215
215
  width: 3rem;
216
216
  height: 3rem;
217
217
  border: 3px solid var(--cl-accent-alpha);
@@ -220,7 +220,7 @@
220
220
  animation: cl-spin 0.8s linear infinite;
221
221
  }
222
222
 
223
- :global(.cl-loader-text) {
223
+ .cl-loader-text {
224
224
  font-size: 0.75rem;
225
225
  font-weight: 900;
226
226
  text-transform: uppercase;
@@ -229,14 +229,14 @@
229
229
  margin: 0;
230
230
  }
231
231
 
232
- :global(.cl-swatches) {
232
+ .cl-swatches {
233
233
  display: flex;
234
234
  flex-direction: column;
235
235
  gap: 0.75rem;
236
236
  animation: cl-fade-up 0.5s ease;
237
237
  }
238
238
 
239
- :global(.cl-swatch) {
239
+ .cl-swatch {
240
240
  display: flex;
241
241
  align-items: center;
242
242
  gap: 1.25rem;
@@ -248,17 +248,17 @@
248
248
  transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), border-color 0.2s;
249
249
  }
250
250
 
251
- :global(.cl-swatch:hover) {
251
+ .cl-swatch:hover {
252
252
  transform: scale(1.02);
253
253
  border-color: var(--cl-accent);
254
254
  }
255
255
 
256
- :global(.cl-swatch-copied) {
256
+ .cl-swatch-copied {
257
257
  background: var(--cl-emerald-alpha);
258
258
  border-color: var(--cl-emerald);
259
259
  }
260
260
 
261
- :global(.cl-swatch-color) {
261
+ .cl-swatch-color {
262
262
  width: 3.5rem;
263
263
  height: 3.5rem;
264
264
  border-radius: 0.75rem;
@@ -266,19 +266,19 @@
266
266
  flex-shrink: 0;
267
267
  }
268
268
 
269
- :global(.cl-swatch-info) {
269
+ .cl-swatch-info {
270
270
  display: flex;
271
271
  flex-direction: column;
272
272
  gap: 0.2rem;
273
273
  }
274
274
 
275
- :global(.cl-swatch-hex) {
275
+ .cl-swatch-hex {
276
276
  font-weight: 950;
277
277
  color: var(--cl-text);
278
278
  font-size: 1.25rem;
279
279
  }
280
280
 
281
- :global(.cl-swatch-action) {
281
+ .cl-swatch-action {
282
282
  font-size: 0.7rem;
283
283
  font-weight: 900;
284
284
  color: var(--cl-text-muted);
@@ -286,7 +286,7 @@
286
286
  letter-spacing: 0.05em;
287
287
  }
288
288
 
289
- :global(.cl-hidden) {
289
+ .cl-hidden {
290
290
  display: none;
291
291
  }
292
292
 
@@ -305,4 +305,4 @@
305
305
  opacity: 1;
306
306
  transform: translateY(0);
307
307
  }
308
- }
308
+ }
@@ -1,4 +1,4 @@
1
- :global(.cm-root) {
1
+ .cm-root {
2
2
  --cm-bg: #fff;
3
3
  --cm-bg-muted: #f8fafc;
4
4
  --cm-border: #e2e8f0;
@@ -14,7 +14,7 @@
14
14
  padding: 1rem;
15
15
  }
16
16
 
17
- :global(.theme-dark .cm-root) {
17
+ .theme-dark .cm-root {
18
18
  --cm-bg: #1e293b;
19
19
  --cm-bg-muted: #0f172a;
20
20
  --cm-border: #334155;
@@ -25,7 +25,7 @@
25
25
  --cm-shadow: rgba(0,0,0,0.4);
26
26
  }
27
27
 
28
- :global(.cm-card) {
28
+ .cm-card {
29
29
  background: var(--cm-bg);
30
30
  border: 1px solid var(--cm-border);
31
31
  border-radius: var(--cm-radius);
@@ -33,7 +33,7 @@
33
33
  overflow: hidden;
34
34
  }
35
35
 
36
- :global(.cm-top-row) {
36
+ .cm-top-row {
37
37
  display: grid;
38
38
  grid-template-columns: 300px 1fr;
39
39
  gap: 0;
@@ -45,7 +45,7 @@
45
45
  }
46
46
  }
47
47
 
48
- :global(.cm-left-col) {
48
+ .cm-left-col {
49
49
  padding: 1.25rem;
50
50
  border-right: 1px solid var(--cm-border);
51
51
  display: flex;
@@ -60,7 +60,7 @@
60
60
  }
61
61
  }
62
62
 
63
- :global(.cm-drop-zone) {
63
+ .cm-drop-zone {
64
64
  position: relative;
65
65
  background: var(--cm-bg-muted);
66
66
  border: 2px dashed var(--cm-border);
@@ -76,7 +76,7 @@
76
76
  color: var(--cm-primary);
77
77
  }
78
78
 
79
- :global(.cm-drop-zone input[type="file"]) {
79
+ .cm-drop-zone input[type="file"] {
80
80
  position: absolute;
81
81
  inset: 0;
82
82
  opacity: 0;
@@ -85,32 +85,32 @@
85
85
  height: 100%;
86
86
  }
87
87
 
88
- :global(.cm-drop-zone:hover),
89
- :global(.cm-drop-zone-over) {
88
+ .cm-drop-zone:hover,
89
+ .cm-drop-zone-over {
90
90
  border-color: var(--cm-primary);
91
91
  background: var(--cm-primary-light);
92
92
  }
93
93
 
94
- :global(.cm-drop-title) {
94
+ .cm-drop-title {
95
95
  font-size: 0.9rem;
96
96
  font-weight: 700;
97
97
  color: var(--cm-text);
98
98
  margin: 0;
99
99
  }
100
100
 
101
- :global(.cm-drop-sub) {
101
+ .cm-drop-sub {
102
102
  font-size: 0.75rem;
103
103
  color: var(--cm-text-muted);
104
104
  margin: 0;
105
105
  }
106
106
 
107
- :global(.cm-drop-link) {
107
+ .cm-drop-link {
108
108
  color: var(--cm-primary);
109
109
  font-weight: 600;
110
110
  cursor: pointer;
111
111
  }
112
112
 
113
- :global(.cm-section-label) {
113
+ .cm-section-label {
114
114
  display: block;
115
115
  font-size: 0.65rem;
116
116
  font-weight: 700;
@@ -119,13 +119,13 @@
119
119
  color: var(--cm-text-muted);
120
120
  }
121
121
 
122
- :global(.cm-section-header) {
122
+ .cm-section-header {
123
123
  display: flex;
124
124
  justify-content: space-between;
125
125
  align-items: center;
126
126
  }
127
127
 
128
- :global(.cm-badge) {
128
+ .cm-badge {
129
129
  background: var(--cm-primary-light);
130
130
  color: var(--cm-primary);
131
131
  font-size: 0.65rem;
@@ -134,14 +134,14 @@
134
134
  border-radius: 9999px;
135
135
  }
136
136
 
137
- :global(.cm-thumbs) {
137
+ .cm-thumbs {
138
138
  display: grid;
139
139
  grid-template-columns: repeat(auto-fill, minmax(48px, 1fr));
140
140
  gap: 0.35rem;
141
141
  margin-top: 0.5rem;
142
142
  }
143
143
 
144
- :global(.cm-thumb) {
144
+ .cm-thumb {
145
145
  position: relative;
146
146
  aspect-ratio: 1;
147
147
  border-radius: 0.4rem;
@@ -150,18 +150,18 @@
150
150
  transition: border-color 0.15s;
151
151
  }
152
152
 
153
- :global(.cm-thumb:hover) {
153
+ .cm-thumb:hover {
154
154
  border-color: var(--cm-primary);
155
155
  }
156
156
 
157
- :global(.cm-thumb img) {
157
+ .cm-thumb img {
158
158
  width: 100%;
159
159
  height: 100%;
160
160
  object-fit: cover;
161
161
  display: block;
162
162
  }
163
163
 
164
- :global(.cm-thumb-num) {
164
+ .cm-thumb-num {
165
165
  position: absolute;
166
166
  bottom: 2px;
167
167
  left: 3px;
@@ -172,7 +172,7 @@
172
172
  line-height: 1;
173
173
  }
174
174
 
175
- :global(.cm-thumb-del) {
175
+ .cm-thumb-del {
176
176
  position: absolute;
177
177
  top: 2px;
178
178
  right: 2px;
@@ -190,15 +190,15 @@
190
190
  transition: background 0.15s;
191
191
  }
192
192
 
193
- :global(.cm-thumb:hover .cm-thumb-del) {
193
+ .cm-thumb:hover .cm-thumb-del {
194
194
  display: flex;
195
195
  }
196
196
 
197
- :global(.cm-thumb-del:hover) {
197
+ .cm-thumb-del:hover {
198
198
  background: #dc2626;
199
199
  }
200
200
 
201
- :global(.cm-preview-col) {
201
+ .cm-preview-col {
202
202
  padding: 1.25rem;
203
203
  display: flex;
204
204
  flex-direction: column;
@@ -206,7 +206,7 @@
206
206
  min-height: 260px;
207
207
  }
208
208
 
209
- :global(.cm-preview-placeholder) {
209
+ .cm-preview-placeholder {
210
210
  flex: 1;
211
211
  background: var(--cm-bg-muted);
212
212
  border: 2px dashed var(--cm-border);
@@ -219,12 +219,12 @@
219
219
  color: var(--cm-text-muted);
220
220
  }
221
221
 
222
- :global(.cm-preview-placeholder p) {
222
+ .cm-preview-placeholder p {
223
223
  font-size: 0.8rem;
224
224
  margin: 0;
225
225
  }
226
226
 
227
- :global(.cm-canvas) {
227
+ .cm-canvas {
228
228
  width: 100%;
229
229
  height: auto;
230
230
  border-radius: 0.75rem;
@@ -232,7 +232,7 @@
232
232
  display: block;
233
233
  }
234
234
 
235
- :global(.cm-dims-badge) {
235
+ .cm-dims-badge {
236
236
  font-size: 0.65rem;
237
237
  font-weight: 600;
238
238
  color: var(--cm-text-muted);
@@ -242,7 +242,7 @@
242
242
  padding: 0.15rem 0.5rem;
243
243
  }
244
244
 
245
- :global(.cm-section-divider) {
245
+ .cm-section-divider {
246
246
  border-top: 1px solid var(--cm-border);
247
247
  padding: 1rem 1.25rem;
248
248
  display: flex;
@@ -250,13 +250,13 @@
250
250
  gap: 0.75rem;
251
251
  }
252
252
 
253
- :global(.cm-layouts) {
253
+ .cm-layouts {
254
254
  display: grid;
255
255
  grid-template-columns: repeat(auto-fill, minmax(64px, 1fr));
256
256
  gap: 0.4rem;
257
257
  }
258
258
 
259
- :global(.cm-layout-btn) {
259
+ .cm-layout-btn {
260
260
  display: flex;
261
261
  flex-direction: column;
262
262
  align-items: center;
@@ -271,31 +271,31 @@
271
271
  position: relative;
272
272
  }
273
273
 
274
- :global(.cm-layout-btn span) {
274
+ .cm-layout-btn span {
275
275
  font-size: 0.55rem;
276
276
  font-weight: 600;
277
277
  text-align: center;
278
278
  line-height: 1.2;
279
279
  }
280
280
 
281
- :global(.cm-layout-btn:hover:not(:disabled)) {
281
+ .cm-layout-btn:hover:not(:disabled) {
282
282
  border-color: var(--cm-primary);
283
283
  color: var(--cm-primary);
284
284
  background: var(--cm-primary-light);
285
285
  }
286
286
 
287
- :global(.cm-layout-btn-active) {
287
+ .cm-layout-btn-active {
288
288
  border-color: var(--cm-primary);
289
289
  background: var(--cm-primary-light);
290
290
  color: var(--cm-primary);
291
291
  }
292
292
 
293
- :global(.cm-layout-btn-disabled) {
293
+ .cm-layout-btn-disabled {
294
294
  opacity: 0.45;
295
295
  cursor: not-allowed;
296
296
  }
297
297
 
298
- :global(.cm-layout-need) {
298
+ .cm-layout-need {
299
299
  position: absolute;
300
300
  top: 2px;
301
301
  right: 4px;
@@ -309,37 +309,37 @@
309
309
  line-height: 1.4;
310
310
  }
311
311
 
312
- :global(.cm-settings-inline) {
312
+ .cm-settings-inline {
313
313
  display: flex;
314
314
  flex-wrap: wrap;
315
315
  align-items: flex-end;
316
316
  gap: 1rem;
317
317
  }
318
318
 
319
- :global(.cm-setting) {
319
+ .cm-setting {
320
320
  display: flex;
321
321
  flex-direction: column;
322
322
  gap: 0.3rem;
323
323
  }
324
324
 
325
- :global(.cm-setting-label) {
325
+ .cm-setting-label {
326
326
  font-size: 0.7rem;
327
327
  font-weight: 600;
328
328
  color: var(--cm-text-muted);
329
329
  }
330
330
 
331
- :global(.cm-slider) {
331
+ .cm-slider {
332
332
  accent-color: var(--cm-primary);
333
333
  width: 120px;
334
334
  }
335
335
 
336
- :global(.cm-color-row) {
336
+ .cm-color-row {
337
337
  display: flex;
338
338
  align-items: center;
339
339
  gap: 0.5rem;
340
340
  }
341
341
 
342
- :global(.cm-color-swatch) {
342
+ .cm-color-swatch {
343
343
  width: 32px;
344
344
  height: 32px;
345
345
  border: 2px solid var(--cm-border);
@@ -349,14 +349,14 @@
349
349
  background: transparent;
350
350
  }
351
351
 
352
- :global(.cm-color-code) {
352
+ .cm-color-code {
353
353
  font-size: 0.7rem;
354
354
  font-weight: 600;
355
355
  color: var(--cm-text-muted);
356
356
  font-variant-numeric: tabular-nums;
357
357
  }
358
358
 
359
- :global(.cm-download-btn) {
359
+ .cm-download-btn {
360
360
  display: flex;
361
361
  align-items: center;
362
362
  gap: 0.4rem;
@@ -374,13 +374,13 @@
374
374
  margin-left: auto;
375
375
  }
376
376
 
377
- :global(.cm-download-btn:disabled) {
377
+ .cm-download-btn:disabled {
378
378
  opacity: 0.4;
379
379
  cursor: not-allowed;
380
380
  box-shadow: none;
381
381
  }
382
382
 
383
- :global(.cm-download-btn:not(:disabled):hover) {
383
+ .cm-download-btn:not(:disabled):hover {
384
384
  transform: translateY(-1px);
385
385
  box-shadow: 0 6px 18px rgba(99,102,241,0.4);
386
- }
386
+ }