@jjlmoya/utils-developer 1.12.0 → 1.14.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 (50) hide show
  1. package/package.json +5 -3
  2. package/scripts/postinstall.mjs +27 -0
  3. package/src/tool/aspectRatio/aspect-ratio-calculator.css +276 -0
  4. package/src/tool/aspectRatio/component.astro +0 -278
  5. package/src/tool/calculadoraTiempoDatos/component.astro +0 -524
  6. package/src/tool/calculadoraTiempoDatos/data-time-calculator-web-speed-impact.css +522 -0
  7. package/src/tool/colorConverter/color-converter-rgb-hex-hsl.css +262 -0
  8. package/src/tool/colorConverter/component.astro +0 -264
  9. package/src/tool/conversorExcelCsvHtml/component.astro +0 -360
  10. package/src/tool/conversorExcelCsvHtml/excel-csv-html-table-converter.css +358 -0
  11. package/src/tool/cronGenerator/component.astro +0 -317
  12. package/src/tool/cronGenerator/cron.css +315 -0
  13. package/src/tool/cssSpecificityCalculator/component.astro +0 -205
  14. package/src/tool/cssSpecificityCalculator/css-specificity-calculator.css +203 -0
  15. package/src/tool/cssToInlineConverter/component.astro +0 -150
  16. package/src/tool/cssToInlineConverter/css-to-inline-converter.css +148 -0
  17. package/src/tool/duplicateCssRemover/component.astro +0 -197
  18. package/src/tool/duplicateCssRemover/duplicate-css-remover.css +195 -0
  19. package/src/tool/generadorSecurityTxt/component.astro +0 -231
  20. package/src/tool/generadorSecurityTxt/security-txt-generator-rfc-9116.css +229 -0
  21. package/src/tool/hashGenerator/component.astro +0 -229
  22. package/src/tool/hashGenerator/hash-generator.css +227 -0
  23. package/src/tool/inspectorCertificadosSsl/component.astro +0 -261
  24. package/src/tool/inspectorCertificadosSsl/ssl-tls-certificate-inspector.css +259 -0
  25. package/src/tool/jsonFormatter/component.astro +0 -346
  26. package/src/tool/jsonFormatter/json-formatter.css +344 -0
  27. package/src/tool/keycode/component.astro +0 -298
  28. package/src/tool/keycode/keycode.css +296 -0
  29. package/src/tool/llmCostCalculator/component.astro +0 -253
  30. package/src/tool/llmCostCalculator/llm-cost-calculator.css +251 -0
  31. package/src/tool/mobileMockupGenerator/component.astro +0 -906
  32. package/src/tool/mobileMockupGenerator/mobile-mockup-generator.css +904 -0
  33. package/src/tool/musicalTypography/component.astro +0 -291
  34. package/src/tool/musicalTypography/musical-typography.css +289 -0
  35. package/src/tool/placeholderGenerator/component.astro +0 -255
  36. package/src/tool/placeholderGenerator/placeholder-image-generator.css +253 -0
  37. package/src/tool/promptLibrary/component.astro +0 -689
  38. package/src/tool/promptLibrary/prompt-library.css +687 -0
  39. package/src/tool/readabilityCalculator/component.astro +0 -322
  40. package/src/tool/readabilityCalculator/visual-readability-calculator-wcag-apca.css +320 -0
  41. package/src/tool/svgSanitizer/component.astro +0 -289
  42. package/src/tool/svgSanitizer/svg-sanitizer.css +287 -0
  43. package/src/tool/svgToCss/component.astro +0 -196
  44. package/src/tool/svgToCss/svg-to-css-converter.css +194 -0
  45. package/src/tool/urlCleaner/component.astro +0 -282
  46. package/src/tool/urlCleaner/url-tracking-cleaner.css +280 -0
  47. package/src/tool/urlEncoderDecoder/component.astro +0 -168
  48. package/src/tool/urlEncoderDecoder/url-encoder-decoder.css +166 -0
  49. package/src/tool/utmGenerator/component.astro +0 -156
  50. package/src/tool/utmGenerator/utm-generator.css +154 -0
@@ -80,202 +80,6 @@ const defaultSvg = `<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.or
80
80
  </div>
81
81
  </div>
82
82
 
83
- <style>
84
- .stc-container {
85
- --stc-primary: #ec4899;
86
- --stc-secondary: #8b5cf6;
87
- --stc-card-bg: #fff;
88
- --stc-text: #0f172a;
89
- --stc-text-muted: #64748b;
90
- --stc-border: #e2e8f0;
91
- --stc-input-bg: #f1f5f9;
92
- --stc-shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
93
-
94
- max-width: 1000px;
95
- margin: 4rem auto;
96
- color: var(--stc-text);
97
- }
98
-
99
- :global(.theme-dark) .stc-container {
100
- --stc-card-bg: #1e293b;
101
- --stc-text: #f8fafc;
102
- --stc-text-muted: #94a3b8;
103
- --stc-border: #334155;
104
- --stc-input-bg: #0f172a;
105
- }
106
-
107
- .stc-grid {
108
- display: grid;
109
- grid-template-columns: 1fr;
110
- gap: 2rem;
111
- }
112
-
113
- @media (min-width: 850px) {
114
- .stc-grid {
115
- grid-template-columns: 1fr 1fr;
116
- }
117
- }
118
-
119
- .stc-card {
120
- background: var(--stc-card-bg);
121
- border: 1px solid var(--stc-border);
122
- border-radius: 1.5rem;
123
- padding: 2.5rem;
124
- box-shadow: var(--stc-shadow-lg);
125
- display: flex;
126
- flex-direction: column;
127
- gap: 1.5rem;
128
- }
129
-
130
- .stc-title-group {
131
- display: flex;
132
- align-items: center;
133
- gap: 0.75rem;
134
- margin-bottom: 0.5rem;
135
- }
136
-
137
- .stc-icon-box {
138
- width: 40px;
139
- height: 40px;
140
- background: linear-gradient(135deg, var(--stc-primary), var(--stc-secondary));
141
- border-radius: 0.75rem;
142
- display: flex;
143
- align-items: center;
144
- justify-content: center;
145
- color: white;
146
- }
147
-
148
- .stc-card-title {
149
- font-size: 1.5rem;
150
- font-weight: 800;
151
- margin: 0;
152
- }
153
-
154
- .stc-area-label {
155
- font-size: 0.875rem;
156
- font-weight: 700;
157
- color: var(--stc-primary);
158
- text-transform: uppercase;
159
- letter-spacing: 0.05em;
160
- }
161
-
162
- .stc-textarea {
163
- width: 100%;
164
- min-height: 250px;
165
- background: var(--stc-input-bg);
166
- border: 2px solid var(--stc-border);
167
- border-radius: 1rem;
168
- padding: 1.25rem;
169
- font-size: 0.9rem;
170
- color: var(--stc-text);
171
- outline: none;
172
- resize: vertical;
173
- transition: all 0.2s;
174
- }
175
-
176
- .stc-textarea:focus {
177
- border-color: var(--stc-primary);
178
- box-shadow: 0 0 0 4px rgba(236, 72, 153, 0.1);
179
- }
180
-
181
- .stc-result-box {
182
- position: relative;
183
- display: flex;
184
- flex-direction: column;
185
- gap: 1rem;
186
- }
187
-
188
- .stc-copy-btn {
189
- position: absolute;
190
- top: 0.5rem;
191
- right: 0.5rem;
192
- background: var(--stc-primary);
193
- color: white;
194
- border: none;
195
- padding: 0.5rem 1rem;
196
- border-radius: 0.75rem;
197
- font-size: 0.75rem;
198
- font-weight: 700;
199
- cursor: pointer;
200
- transition: all 0.2s;
201
- z-index: 1;
202
- }
203
-
204
- .stc-copy-btn:hover {
205
- transform: translateY(-2px);
206
- box-shadow: 0 4px 12px rgba(236, 72, 153, 0.3);
207
- }
208
-
209
- .stc-preview-container {
210
- background: var(--stc-input-bg);
211
- border: 2px dashed var(--stc-border);
212
- border-radius: 1rem;
213
- height: 120px;
214
- display: flex;
215
- align-items: center;
216
- justify-content: center;
217
- margin-top: 1rem;
218
- position: relative;
219
- overflow: hidden;
220
- }
221
-
222
- .stc-preview-bg {
223
- position: absolute;
224
- inset: 0;
225
- background-image:
226
- linear-gradient(45deg, var(--stc-border) 25%, transparent 25%),
227
- linear-gradient(-45deg, var(--stc-border) 25%, transparent 25%),
228
- linear-gradient(45deg, transparent 75%, var(--stc-border) 75%),
229
- linear-gradient(-45deg, transparent 75%, var(--stc-border) 75%);
230
- background-size: 20px 20px;
231
- background-position:
232
- 0 0,
233
- 0 10px,
234
- 10px -10px,
235
- -10px 0;
236
- opacity: 0.1;
237
- }
238
-
239
- .stc-preview-img {
240
- max-width: 80px;
241
- max-height: 80px;
242
- z-index: 1;
243
- }
244
-
245
- .stc-preview-applied {
246
- width: 60px;
247
- height: 60px;
248
- z-index: 1;
249
- }
250
-
251
- .stc-output-tabs {
252
- display: flex;
253
- gap: 0.5rem;
254
- background: var(--stc-input-bg);
255
- padding: 0.3rem;
256
- border-radius: 0.75rem;
257
- margin-bottom: 0.5rem;
258
- }
259
-
260
- .stc-tab-btn {
261
- flex: 1;
262
- border: none;
263
- background: transparent;
264
- padding: 0.6rem;
265
- border-radius: 0.5rem;
266
- font-size: 0.8rem;
267
- font-weight: 700;
268
- color: var(--stc-text-muted);
269
- cursor: pointer;
270
- transition: all 0.2s;
271
- }
272
-
273
- :global(.stc-tab-btn.active) {
274
- background: var(--stc-card-bg);
275
- color: var(--stc-primary);
276
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
277
- }
278
- </style>
279
83
 
280
84
  <script>
281
85
  const container = document.querySelector('.stc-container') as HTMLElement | null;
@@ -0,0 +1,194 @@
1
+ .stc-container {
2
+ --stc-primary: #ec4899;
3
+ --stc-secondary: #8b5cf6;
4
+ --stc-card-bg: #fff;
5
+ --stc-text: #0f172a;
6
+ --stc-text-muted: #64748b;
7
+ --stc-border: #e2e8f0;
8
+ --stc-input-bg: #f1f5f9;
9
+ --stc-shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
10
+
11
+ max-width: 1000px;
12
+ margin: 4rem auto;
13
+ color: var(--stc-text);
14
+ }
15
+
16
+ .theme-dark .stc-container {
17
+ --stc-card-bg: #1e293b;
18
+ --stc-text: #f8fafc;
19
+ --stc-text-muted: #94a3b8;
20
+ --stc-border: #334155;
21
+ --stc-input-bg: #0f172a;
22
+ }
23
+
24
+ .stc-grid {
25
+ display: grid;
26
+ grid-template-columns: 1fr;
27
+ gap: 2rem;
28
+ }
29
+
30
+ @media (min-width: 850px) {
31
+ .stc-grid {
32
+ grid-template-columns: 1fr 1fr;
33
+ }
34
+ }
35
+
36
+ .stc-card {
37
+ background: var(--stc-card-bg);
38
+ border: 1px solid var(--stc-border);
39
+ border-radius: 1.5rem;
40
+ padding: 2.5rem;
41
+ box-shadow: var(--stc-shadow-lg);
42
+ display: flex;
43
+ flex-direction: column;
44
+ gap: 1.5rem;
45
+ }
46
+
47
+ .stc-title-group {
48
+ display: flex;
49
+ align-items: center;
50
+ gap: 0.75rem;
51
+ margin-bottom: 0.5rem;
52
+ }
53
+
54
+ .stc-icon-box {
55
+ width: 40px;
56
+ height: 40px;
57
+ background: linear-gradient(135deg, var(--stc-primary), var(--stc-secondary));
58
+ border-radius: 0.75rem;
59
+ display: flex;
60
+ align-items: center;
61
+ justify-content: center;
62
+ color: white;
63
+ }
64
+
65
+ .stc-card-title {
66
+ font-size: 1.5rem;
67
+ font-weight: 800;
68
+ margin: 0;
69
+ }
70
+
71
+ .stc-area-label {
72
+ font-size: 0.875rem;
73
+ font-weight: 700;
74
+ color: var(--stc-primary);
75
+ text-transform: uppercase;
76
+ letter-spacing: 0.05em;
77
+ }
78
+
79
+ .stc-textarea {
80
+ width: 100%;
81
+ min-height: 250px;
82
+ background: var(--stc-input-bg);
83
+ border: 2px solid var(--stc-border);
84
+ border-radius: 1rem;
85
+ padding: 1.25rem;
86
+ font-size: 0.9rem;
87
+ color: var(--stc-text);
88
+ outline: none;
89
+ resize: vertical;
90
+ transition: all 0.2s;
91
+ }
92
+
93
+ .stc-textarea:focus {
94
+ border-color: var(--stc-primary);
95
+ box-shadow: 0 0 0 4px rgba(236, 72, 153, 0.1);
96
+ }
97
+
98
+ .stc-result-box {
99
+ position: relative;
100
+ display: flex;
101
+ flex-direction: column;
102
+ gap: 1rem;
103
+ }
104
+
105
+ .stc-copy-btn {
106
+ position: absolute;
107
+ top: 0.5rem;
108
+ right: 0.5rem;
109
+ background: var(--stc-primary);
110
+ color: white;
111
+ border: none;
112
+ padding: 0.5rem 1rem;
113
+ border-radius: 0.75rem;
114
+ font-size: 0.75rem;
115
+ font-weight: 700;
116
+ cursor: pointer;
117
+ transition: all 0.2s;
118
+ z-index: 1;
119
+ }
120
+
121
+ .stc-copy-btn:hover {
122
+ transform: translateY(-2px);
123
+ box-shadow: 0 4px 12px rgba(236, 72, 153, 0.3);
124
+ }
125
+
126
+ .stc-preview-container {
127
+ background: var(--stc-input-bg);
128
+ border: 2px dashed var(--stc-border);
129
+ border-radius: 1rem;
130
+ height: 120px;
131
+ display: flex;
132
+ align-items: center;
133
+ justify-content: center;
134
+ margin-top: 1rem;
135
+ position: relative;
136
+ overflow: hidden;
137
+ }
138
+
139
+ .stc-preview-bg {
140
+ position: absolute;
141
+ inset: 0;
142
+ background-image:
143
+ linear-gradient(45deg, var(--stc-border) 25%, transparent 25%),
144
+ linear-gradient(-45deg, var(--stc-border) 25%, transparent 25%),
145
+ linear-gradient(45deg, transparent 75%, var(--stc-border) 75%),
146
+ linear-gradient(-45deg, transparent 75%, var(--stc-border) 75%);
147
+ background-size: 20px 20px;
148
+ background-position:
149
+ 0 0,
150
+ 0 10px,
151
+ 10px -10px,
152
+ -10px 0;
153
+ opacity: 0.1;
154
+ }
155
+
156
+ .stc-preview-img {
157
+ max-width: 80px;
158
+ max-height: 80px;
159
+ z-index: 1;
160
+ }
161
+
162
+ .stc-preview-applied {
163
+ width: 60px;
164
+ height: 60px;
165
+ z-index: 1;
166
+ }
167
+
168
+ .stc-output-tabs {
169
+ display: flex;
170
+ gap: 0.5rem;
171
+ background: var(--stc-input-bg);
172
+ padding: 0.3rem;
173
+ border-radius: 0.75rem;
174
+ margin-bottom: 0.5rem;
175
+ }
176
+
177
+ .stc-tab-btn {
178
+ flex: 1;
179
+ border: none;
180
+ background: transparent;
181
+ padding: 0.6rem;
182
+ border-radius: 0.5rem;
183
+ font-size: 0.8rem;
184
+ font-weight: 700;
185
+ color: var(--stc-text-muted);
186
+ cursor: pointer;
187
+ transition: all 0.2s;
188
+ }
189
+
190
+ .stc-tab-btn.active {
191
+ background: var(--stc-card-bg);
192
+ color: var(--stc-primary);
193
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
194
+ }
@@ -53,288 +53,6 @@ const t = (ui ?? {}) as UrlCleanerUI;
53
53
  </div>
54
54
  </div>
55
55
 
56
- <style>
57
- .uc-root {
58
- width: 100%;
59
- }
60
-
61
- .uc-container {
62
- max-width: 900px;
63
- margin: 0 auto;
64
- display: flex;
65
- flex-direction: column;
66
- gap: 1.5rem;
67
- padding-bottom: 2rem;
68
- }
69
-
70
- .uc-input-card {
71
- background: rgba(255, 255, 255, 0.75);
72
- backdrop-filter: blur(14px);
73
- -webkit-backdrop-filter: blur(14px);
74
- border: 1px solid rgba(255, 255, 255, 0.35);
75
- border-radius: 1.5rem;
76
- padding: 1.5rem;
77
- box-shadow: 0 8px 32px rgba(31, 38, 135, 0.06);
78
- display: flex;
79
- flex-direction: column;
80
- gap: 1rem;
81
- }
82
-
83
- :global(.theme-dark) .uc-input-card {
84
- background: rgba(15, 23, 42, 0.75);
85
- border-color: rgba(255, 255, 255, 0.06);
86
- }
87
-
88
- .uc-label {
89
- font-size: 0.875rem;
90
- font-weight: 600;
91
- color: rgb(100, 116, 139);
92
- text-transform: uppercase;
93
- letter-spacing: 0.05em;
94
- }
95
-
96
- :global(.theme-dark) .uc-label {
97
- color: rgb(148, 163, 184);
98
- }
99
-
100
- .uc-input-group {
101
- display: flex;
102
- gap: 0.75rem;
103
- }
104
-
105
- .uc-input {
106
- flex-grow: 1;
107
- background: white;
108
- border: 1px solid rgb(226, 232, 240);
109
- border-radius: 0.75rem;
110
- padding: 0.75rem 1rem;
111
- font-size: 1rem;
112
- outline: none;
113
- transition: all 0.2s ease;
114
- color: rgb(51, 65, 85);
115
- }
116
-
117
- :global(.theme-dark) .uc-input {
118
- background: rgb(15, 23, 42);
119
- border-color: rgb(51, 65, 85);
120
- color: rgb(203, 213, 225);
121
- }
122
-
123
- .uc-input:focus {
124
- border-color: rgb(59, 130, 246);
125
- box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
126
- }
127
-
128
- .uc-btn-primary {
129
- background: rgb(59, 130, 246);
130
- color: white;
131
- border: none;
132
- border-radius: 0.75rem;
133
- padding: 0 1.5rem;
134
- font-weight: 600;
135
- cursor: pointer;
136
- display: flex;
137
- align-items: center;
138
- gap: 0.5rem;
139
- transition: all 0.2s ease;
140
- font-size: 0.875rem;
141
- }
142
-
143
- .uc-btn-primary:hover {
144
- background: rgb(37, 99, 235);
145
- transform: translateY(-1px);
146
- }
147
-
148
- .uc-results {
149
- display: grid;
150
- grid-template-columns: 1fr 1fr;
151
- gap: 1.5rem;
152
- }
153
-
154
- @media (max-width: 768px) {
155
- .uc-results {
156
- grid-template-columns: 1fr;
157
- }
158
- }
159
-
160
- .uc-result-card {
161
- background: rgba(255, 255, 255, 0.75);
162
- backdrop-filter: blur(14px);
163
- -webkit-backdrop-filter: blur(14px);
164
- border: 1px solid rgba(255, 255, 255, 0.35);
165
- border-radius: 1.5rem;
166
- padding: 1.5rem;
167
- box-shadow: 0 8px 32px rgba(31, 38, 135, 0.06);
168
- display: flex;
169
- flex-direction: column;
170
- gap: 1rem;
171
- }
172
-
173
- :global(.theme-dark) .uc-result-card {
174
- background: rgba(15, 23, 42, 0.75);
175
- border-color: rgba(255, 255, 255, 0.06);
176
- }
177
-
178
- .uc-card-header {
179
- display: flex;
180
- justify-content: space-between;
181
- align-items: center;
182
- }
183
-
184
- .uc-card-title {
185
- font-size: 0.875rem;
186
- font-weight: 600;
187
- color: rgb(51, 65, 85);
188
- margin: 0;
189
- text-transform: uppercase;
190
- letter-spacing: 0.05em;
191
- }
192
-
193
- :global(.theme-dark) .uc-card-title {
194
- color: rgb(203, 213, 225);
195
- }
196
-
197
- .uc-url-display {
198
- word-break: break-all;
199
- font-size: 0.875rem;
200
- color: rgb(59, 130, 246);
201
- background: white;
202
- padding: 1rem;
203
- border-radius: 0.5rem;
204
- border: 1px solid rgba(0, 0, 0, 0.05);
205
- }
206
-
207
- :global(.theme-dark) .uc-url-display {
208
- background: rgb(30, 41, 59);
209
- border-color: rgb(51, 65, 85);
210
- color: rgb(129, 140, 148);
211
- }
212
-
213
- .uc-copy-btn {
214
- display: flex;
215
- align-items: center;
216
- gap: 0.35rem;
217
- font-size: 0.75rem;
218
- font-weight: 600;
219
- padding: 0.4rem 0.875rem;
220
- border-radius: 2rem;
221
- border: 1.5px solid rgb(226, 232, 240);
222
- background: white;
223
- color: rgb(71, 85, 105);
224
- cursor: pointer;
225
- transition: all 0.2s ease;
226
- }
227
-
228
- :global(.theme-dark) .uc-copy-btn {
229
- background: rgb(30, 41, 59);
230
- border-color: rgb(51, 65, 85);
231
- color: rgb(148, 163, 184);
232
- }
233
-
234
- .uc-copy-btn:hover {
235
- border-color: rgb(59, 130, 246);
236
- color: rgb(59, 130, 246);
237
- }
238
-
239
- .uc-copy-btn.uc-copied {
240
- background: rgb(16, 185, 129);
241
- border-color: rgb(16, 185, 129);
242
- color: white;
243
- }
244
-
245
- .uc-removed-list {
246
- display: flex;
247
- flex-direction: column;
248
- gap: 0.75rem;
249
- }
250
-
251
- .uc-removed-item {
252
- padding: 0.75rem;
253
- background: rgba(0, 0, 0, 0.02);
254
- border-radius: 0.5rem;
255
- border-left: 3px solid rgb(59, 130, 246);
256
- }
257
-
258
- :global(.theme-dark) .uc-removed-item {
259
- background: rgba(255, 255, 255, 0.03);
260
- }
261
-
262
- .uc-item-key {
263
- font-weight: 600;
264
- color: rgb(51, 65, 85);
265
- font-size: 0.875rem;
266
- }
267
-
268
- :global(.theme-dark) .uc-item-key {
269
- color: rgb(203, 213, 225);
270
- }
271
-
272
- .uc-item-val {
273
- font-size: 0.75rem;
274
- color: rgb(100, 116, 139);
275
- margin-left: 0.5rem;
276
- }
277
-
278
- .uc-item-desc {
279
- font-size: 0.8rem;
280
- color: rgb(100, 116, 139);
281
- margin: 0.25rem 0;
282
- }
283
-
284
- :global(.theme-dark) .uc-item-desc {
285
- color: rgb(148, 163, 184);
286
- }
287
-
288
- .uc-none-detected {
289
- font-size: 0.875rem;
290
- color: rgb(100, 116, 139);
291
- font-style: italic;
292
- }
293
-
294
- .uc-stats-card {
295
- background: rgba(255, 255, 255, 0.75);
296
- backdrop-filter: blur(14px);
297
- -webkit-backdrop-filter: blur(14px);
298
- border: 1px solid rgba(255, 255, 255, 0.35);
299
- border-radius: 1.5rem;
300
- padding: 1.5rem;
301
- box-shadow: 0 8px 32px rgba(31, 38, 135, 0.06);
302
- display: grid;
303
- grid-template-columns: 1fr 1fr;
304
- gap: 1.5rem;
305
- }
306
-
307
- :global(.theme-dark) .uc-stats-card {
308
- background: rgba(15, 23, 42, 0.75);
309
- border-color: rgba(255, 255, 255, 0.06);
310
- }
311
-
312
- .uc-stat-item {
313
- display: flex;
314
- flex-direction: column;
315
- align-items: center;
316
- gap: 0.5rem;
317
- text-align: center;
318
- }
319
-
320
- .uc-stat-value {
321
- font-size: 1.5rem;
322
- font-weight: 800;
323
- color: rgb(59, 130, 246);
324
- }
325
-
326
- .uc-stat-label {
327
- font-size: 0.75rem;
328
- font-weight: 600;
329
- text-transform: uppercase;
330
- color: rgb(100, 116, 139);
331
- letter-spacing: 0.04em;
332
- }
333
-
334
- :global(.theme-dark) .uc-stat-label {
335
- color: rgb(148, 163, 184);
336
- }
337
- </style>
338
56
 
339
57
  <script>
340
58
  import type { UrlCleanerUI } from './ui';