@jjlmoya/utils-developer 1.12.0 → 1.13.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
@@ -95,323 +95,6 @@ const advFields = [
95
95
  </div>
96
96
  </div>
97
97
 
98
- <style>
99
- .cron-root {
100
- --cron-primary: #8b5cf6;
101
- --cron-success: #10b981;
102
- --cron-card-bg: #fff;
103
- --cron-bg: #f8fafc;
104
- --cron-text: #0f172a;
105
- --cron-text-muted: #64748b;
106
- --cron-border: #e2e8f0;
107
-
108
- max-width: 900px;
109
- margin: 2rem auto;
110
- color: var(--cron-text);
111
- }
112
-
113
- :global(.theme-dark) .cron-root {
114
- --cron-card-bg: #1e293b;
115
- --cron-bg: #0f172a;
116
- --cron-text: #f1f5f9;
117
- --cron-text-muted: #94a3b8;
118
- --cron-border: #334155;
119
- }
120
-
121
- .cron-outer-card {
122
- background: var(--cron-card-bg);
123
- border: 1px solid var(--cron-border);
124
- border-radius: 1.5rem;
125
- box-shadow: 0 4px 24px rgba(0, 0, 0, 0.07);
126
- overflow: hidden;
127
- }
128
-
129
- .cron-hero {
130
- background: #0f172a;
131
- padding: 2.25rem 2rem 1.75rem;
132
- display: flex;
133
- flex-direction: column;
134
- align-items: center;
135
- gap: 1.25rem;
136
- }
137
-
138
- .cron-expr-row {
139
- display: flex;
140
- align-items: flex-start;
141
- gap: 1.25rem;
142
- flex-wrap: wrap;
143
- justify-content: center;
144
- }
145
-
146
- .cron-part-wrapper {
147
- display: flex;
148
- flex-direction: column;
149
- align-items: center;
150
- gap: 0.375rem;
151
- }
152
-
153
- .cron-disp-part {
154
- font-size: 3rem;
155
- font-weight: 800;
156
- color: #a78bfa;
157
- line-height: 1;
158
- font-variant-numeric: tabular-nums;
159
- transition: color 0.2s;
160
- }
161
-
162
- .cron-part-label {
163
- font-size: 0.65rem;
164
- font-weight: 600;
165
- color: #475569;
166
- text-transform: uppercase;
167
- letter-spacing: 0.08em;
168
- white-space: nowrap;
169
- }
170
-
171
- .cron-human-wrap {
172
- background: rgba(255, 255, 255, 0.06);
173
- border: 1px solid rgba(255, 255, 255, 0.1);
174
- border-radius: 0.75rem;
175
- padding: 0.5rem 1.25rem;
176
- }
177
-
178
- .cron-human-text {
179
- color: #cbd5e1;
180
- font-size: 0.925rem;
181
- font-weight: 500;
182
- }
183
-
184
- .cron-human-text[data-error] {
185
- color: #f87171;
186
- }
187
-
188
- .cron-body {
189
- padding: 1.5rem;
190
- display: flex;
191
- flex-direction: column;
192
- gap: 1.25rem;
193
- }
194
-
195
- .cron-grid {
196
- display: grid;
197
- grid-template-columns: 1fr 1fr;
198
- gap: 1.25rem;
199
- }
200
-
201
- @media (max-width: 700px) {
202
- .cron-grid {
203
- grid-template-columns: 1fr;
204
- }
205
- }
206
-
207
- .cron-controls {
208
- background: var(--cron-bg);
209
- border: 1px solid var(--cron-border);
210
- border-radius: 1rem;
211
- padding: 1.125rem;
212
- }
213
-
214
- .cron-tabs {
215
- display: flex;
216
- gap: 0.5rem;
217
- margin-bottom: 1.125rem;
218
- border-bottom: 1px solid var(--cron-border);
219
- padding-bottom: 0.875rem;
220
- }
221
-
222
- .cron-tab-btn {
223
- padding: 0.375rem 1rem;
224
- border-radius: 0.5rem;
225
- border: none;
226
- background: transparent;
227
- color: var(--cron-text-muted);
228
- font-size: 0.875rem;
229
- font-weight: 600;
230
- cursor: pointer;
231
- transition: background 0.15s, color 0.15s;
232
- }
233
-
234
- .cron-tab-btn[data-active] {
235
- background: rgba(139, 92, 246, 0.12);
236
- color: var(--cron-primary);
237
- }
238
-
239
- .cron-presets {
240
- display: grid;
241
- grid-template-columns: 1fr 1fr;
242
- gap: 0.5rem;
243
- }
244
-
245
- .cron-preset-btn {
246
- display: flex;
247
- flex-direction: column;
248
- align-items: flex-start;
249
- gap: 0.2rem;
250
- padding: 0.75rem;
251
- background: var(--cron-card-bg);
252
- border: 1px solid var(--cron-border);
253
- border-radius: 0.75rem;
254
- cursor: pointer;
255
- text-align: left;
256
- transition: border-color 0.15s, background 0.15s;
257
- }
258
-
259
- .cron-preset-btn:hover {
260
- border-color: var(--cron-primary);
261
- background: rgba(139, 92, 246, 0.06);
262
- }
263
-
264
- .cron-preset-label {
265
- font-size: 0.825rem;
266
- font-weight: 700;
267
- color: var(--cron-text);
268
- }
269
-
270
- .cron-preset-expr {
271
- font-size: 0.72rem;
272
- color: var(--cron-text-muted);
273
- }
274
-
275
- .cron-field {
276
- display: flex;
277
- flex-direction: column;
278
- gap: 0.3rem;
279
- margin-bottom: 0.75rem;
280
- }
281
-
282
- .cron-field:last-child {
283
- margin-bottom: 0;
284
- }
285
-
286
- .cron-field-label {
287
- font-size: 0.78rem;
288
- font-weight: 600;
289
- color: var(--cron-text-muted);
290
- }
291
-
292
- .cron-input {
293
- width: 100%;
294
- padding: 0.45rem 0.75rem;
295
- font-size: 0.875rem;
296
- background: var(--cron-card-bg);
297
- border: 1px solid var(--cron-border);
298
- border-radius: 0.5rem;
299
- color: var(--cron-text);
300
- outline: none;
301
- box-sizing: border-box;
302
- transition: border-color 0.2s, box-shadow 0.2s;
303
- }
304
-
305
- .cron-input:focus {
306
- border-color: var(--cron-primary);
307
- box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.14);
308
- }
309
-
310
- .cron-field-hint {
311
- font-size: 0.7rem;
312
- color: var(--cron-text-muted);
313
- }
314
-
315
- .cron-runs-section {
316
- background: var(--cron-bg);
317
- border: 1px solid var(--cron-border);
318
- border-radius: 1rem;
319
- padding: 1.125rem;
320
- display: flex;
321
- flex-direction: column;
322
- }
323
-
324
- .cron-runs-title {
325
- font-size: 0.8rem;
326
- font-weight: 700;
327
- color: var(--cron-text-muted);
328
- text-transform: uppercase;
329
- letter-spacing: 0.06em;
330
- margin: 0 0 0.75rem;
331
- }
332
-
333
- .cron-runs-list {
334
- list-style: none;
335
- margin: 0;
336
- padding: 0;
337
- display: flex;
338
- flex-direction: column;
339
- gap: 0.4rem;
340
- flex: 1;
341
- }
342
-
343
- .cron-run-skeleton {
344
- height: 2.25rem;
345
- background: var(--cron-card-bg);
346
- border-radius: 0.5rem;
347
- border: 1px solid var(--cron-border);
348
- }
349
-
350
- :global(.cron-run-item) {
351
- display: flex;
352
- align-items: center;
353
- justify-content: space-between;
354
- padding: 0.5rem 0.75rem;
355
- background: var(--cron-card-bg);
356
- border: 1px solid var(--cron-border);
357
- border-radius: 0.5rem;
358
- font-size: 0.825rem;
359
- }
360
-
361
- :global(.cron-run-date) {
362
- font-weight: 600;
363
- color: var(--cron-text);
364
- text-transform: capitalize;
365
- }
366
-
367
- :global(.cron-run-rel) {
368
- font-size: 0.72rem;
369
- color: var(--cron-text-muted);
370
- }
371
-
372
- :global(.cron-no-runs) {
373
- padding: 1rem;
374
- text-align: center;
375
- color: var(--cron-text-muted);
376
- font-size: 0.825rem;
377
- font-style: italic;
378
- }
379
-
380
- .cron-copy-btn {
381
- width: 100%;
382
- padding: 0.8rem;
383
- background: var(--cron-primary);
384
- color: #fff;
385
- border: none;
386
- border-radius: 0.875rem;
387
- font-size: 0.925rem;
388
- font-weight: 700;
389
- cursor: pointer;
390
- transition: background 0.2s, transform 0.1s;
391
- }
392
-
393
- .cron-copy-btn:hover {
394
- background: #7c3aed;
395
- }
396
-
397
- .cron-copy-btn:active {
398
- transform: scale(0.98);
399
- }
400
-
401
- .cron-copy-btn[data-copied] {
402
- background: var(--cron-success);
403
- }
404
-
405
- @media (max-width: 480px) {
406
- .cron-disp-part {
407
- font-size: 2rem;
408
- }
409
-
410
- .cron-presets {
411
- grid-template-columns: 1fr;
412
- }
413
- }
414
- </style>
415
98
 
416
99
  <script>
417
100
  import type { CronGeneratorUI } from './ui';
@@ -0,0 +1,315 @@
1
+ .cron-root {
2
+ --cron-primary: #8b5cf6;
3
+ --cron-success: #10b981;
4
+ --cron-card-bg: #fff;
5
+ --cron-bg: #f8fafc;
6
+ --cron-text: #0f172a;
7
+ --cron-text-muted: #64748b;
8
+ --cron-border: #e2e8f0;
9
+
10
+ max-width: 900px;
11
+ margin: 2rem auto;
12
+ color: var(--cron-text);
13
+ }
14
+
15
+ :global(.theme-dark) .cron-root {
16
+ --cron-card-bg: #1e293b;
17
+ --cron-bg: #0f172a;
18
+ --cron-text: #f1f5f9;
19
+ --cron-text-muted: #94a3b8;
20
+ --cron-border: #334155;
21
+ }
22
+
23
+ .cron-outer-card {
24
+ background: var(--cron-card-bg);
25
+ border: 1px solid var(--cron-border);
26
+ border-radius: 1.5rem;
27
+ box-shadow: 0 4px 24px rgba(0, 0, 0, 0.07);
28
+ overflow: hidden;
29
+ }
30
+
31
+ .cron-hero {
32
+ background: #0f172a;
33
+ padding: 2.25rem 2rem 1.75rem;
34
+ display: flex;
35
+ flex-direction: column;
36
+ align-items: center;
37
+ gap: 1.25rem;
38
+ }
39
+
40
+ .cron-expr-row {
41
+ display: flex;
42
+ align-items: flex-start;
43
+ gap: 1.25rem;
44
+ flex-wrap: wrap;
45
+ justify-content: center;
46
+ }
47
+
48
+ .cron-part-wrapper {
49
+ display: flex;
50
+ flex-direction: column;
51
+ align-items: center;
52
+ gap: 0.375rem;
53
+ }
54
+
55
+ .cron-disp-part {
56
+ font-size: 3rem;
57
+ font-weight: 800;
58
+ color: #a78bfa;
59
+ line-height: 1;
60
+ font-variant-numeric: tabular-nums;
61
+ transition: color 0.2s;
62
+ }
63
+
64
+ .cron-part-label {
65
+ font-size: 0.65rem;
66
+ font-weight: 600;
67
+ color: #475569;
68
+ text-transform: uppercase;
69
+ letter-spacing: 0.08em;
70
+ white-space: nowrap;
71
+ }
72
+
73
+ .cron-human-wrap {
74
+ background: rgba(255, 255, 255, 0.06);
75
+ border: 1px solid rgba(255, 255, 255, 0.1);
76
+ border-radius: 0.75rem;
77
+ padding: 0.5rem 1.25rem;
78
+ }
79
+
80
+ .cron-human-text {
81
+ color: #cbd5e1;
82
+ font-size: 0.925rem;
83
+ font-weight: 500;
84
+ }
85
+
86
+ .cron-human-text[data-error] {
87
+ color: #f87171;
88
+ }
89
+
90
+ .cron-body {
91
+ padding: 1.5rem;
92
+ display: flex;
93
+ flex-direction: column;
94
+ gap: 1.25rem;
95
+ }
96
+
97
+ .cron-grid {
98
+ display: grid;
99
+ grid-template-columns: 1fr 1fr;
100
+ gap: 1.25rem;
101
+ }
102
+
103
+ @media (max-width: 700px) {
104
+ .cron-grid {
105
+ grid-template-columns: 1fr;
106
+ }
107
+ }
108
+
109
+ .cron-controls {
110
+ background: var(--cron-bg);
111
+ border: 1px solid var(--cron-border);
112
+ border-radius: 1rem;
113
+ padding: 1.125rem;
114
+ }
115
+
116
+ .cron-tabs {
117
+ display: flex;
118
+ gap: 0.5rem;
119
+ margin-bottom: 1.125rem;
120
+ border-bottom: 1px solid var(--cron-border);
121
+ padding-bottom: 0.875rem;
122
+ }
123
+
124
+ .cron-tab-btn {
125
+ padding: 0.375rem 1rem;
126
+ border-radius: 0.5rem;
127
+ border: none;
128
+ background: transparent;
129
+ color: var(--cron-text-muted);
130
+ font-size: 0.875rem;
131
+ font-weight: 600;
132
+ cursor: pointer;
133
+ transition: background 0.15s, color 0.15s;
134
+ }
135
+
136
+ .cron-tab-btn[data-active] {
137
+ background: rgba(139, 92, 246, 0.12);
138
+ color: var(--cron-primary);
139
+ }
140
+
141
+ .cron-presets {
142
+ display: grid;
143
+ grid-template-columns: 1fr 1fr;
144
+ gap: 0.5rem;
145
+ }
146
+
147
+ .cron-preset-btn {
148
+ display: flex;
149
+ flex-direction: column;
150
+ align-items: flex-start;
151
+ gap: 0.2rem;
152
+ padding: 0.75rem;
153
+ background: var(--cron-card-bg);
154
+ border: 1px solid var(--cron-border);
155
+ border-radius: 0.75rem;
156
+ cursor: pointer;
157
+ text-align: left;
158
+ transition: border-color 0.15s, background 0.15s;
159
+ }
160
+
161
+ .cron-preset-btn:hover {
162
+ border-color: var(--cron-primary);
163
+ background: rgba(139, 92, 246, 0.06);
164
+ }
165
+
166
+ .cron-preset-label {
167
+ font-size: 0.825rem;
168
+ font-weight: 700;
169
+ color: var(--cron-text);
170
+ }
171
+
172
+ .cron-preset-expr {
173
+ font-size: 0.72rem;
174
+ color: var(--cron-text-muted);
175
+ }
176
+
177
+ .cron-field {
178
+ display: flex;
179
+ flex-direction: column;
180
+ gap: 0.3rem;
181
+ margin-bottom: 0.75rem;
182
+ }
183
+
184
+ .cron-field:last-child {
185
+ margin-bottom: 0;
186
+ }
187
+
188
+ .cron-field-label {
189
+ font-size: 0.78rem;
190
+ font-weight: 600;
191
+ color: var(--cron-text-muted);
192
+ }
193
+
194
+ .cron-input {
195
+ width: 100%;
196
+ padding: 0.45rem 0.75rem;
197
+ font-size: 0.875rem;
198
+ background: var(--cron-card-bg);
199
+ border: 1px solid var(--cron-border);
200
+ border-radius: 0.5rem;
201
+ color: var(--cron-text);
202
+ outline: none;
203
+ box-sizing: border-box;
204
+ transition: border-color 0.2s, box-shadow 0.2s;
205
+ }
206
+
207
+ .cron-input:focus {
208
+ border-color: var(--cron-primary);
209
+ box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.14);
210
+ }
211
+
212
+ .cron-field-hint {
213
+ font-size: 0.7rem;
214
+ color: var(--cron-text-muted);
215
+ }
216
+
217
+ .cron-runs-section {
218
+ background: var(--cron-bg);
219
+ border: 1px solid var(--cron-border);
220
+ border-radius: 1rem;
221
+ padding: 1.125rem;
222
+ display: flex;
223
+ flex-direction: column;
224
+ }
225
+
226
+ .cron-runs-title {
227
+ font-size: 0.8rem;
228
+ font-weight: 700;
229
+ color: var(--cron-text-muted);
230
+ text-transform: uppercase;
231
+ letter-spacing: 0.06em;
232
+ margin: 0 0 0.75rem;
233
+ }
234
+
235
+ .cron-runs-list {
236
+ list-style: none;
237
+ margin: 0;
238
+ padding: 0;
239
+ display: flex;
240
+ flex-direction: column;
241
+ gap: 0.4rem;
242
+ flex: 1;
243
+ }
244
+
245
+ .cron-run-skeleton {
246
+ height: 2.25rem;
247
+ background: var(--cron-card-bg);
248
+ border-radius: 0.5rem;
249
+ border: 1px solid var(--cron-border);
250
+ }
251
+
252
+ :global(.cron-run-item) {
253
+ display: flex;
254
+ align-items: center;
255
+ justify-content: space-between;
256
+ padding: 0.5rem 0.75rem;
257
+ background: var(--cron-card-bg);
258
+ border: 1px solid var(--cron-border);
259
+ border-radius: 0.5rem;
260
+ font-size: 0.825rem;
261
+ }
262
+
263
+ :global(.cron-run-date) {
264
+ font-weight: 600;
265
+ color: var(--cron-text);
266
+ text-transform: capitalize;
267
+ }
268
+
269
+ :global(.cron-run-rel) {
270
+ font-size: 0.72rem;
271
+ color: var(--cron-text-muted);
272
+ }
273
+
274
+ :global(.cron-no-runs) {
275
+ padding: 1rem;
276
+ text-align: center;
277
+ color: var(--cron-text-muted);
278
+ font-size: 0.825rem;
279
+ font-style: italic;
280
+ }
281
+
282
+ .cron-copy-btn {
283
+ width: 100%;
284
+ padding: 0.8rem;
285
+ background: var(--cron-primary);
286
+ color: #fff;
287
+ border: none;
288
+ border-radius: 0.875rem;
289
+ font-size: 0.925rem;
290
+ font-weight: 700;
291
+ cursor: pointer;
292
+ transition: background 0.2s, transform 0.1s;
293
+ }
294
+
295
+ .cron-copy-btn:hover {
296
+ background: #7c3aed;
297
+ }
298
+
299
+ .cron-copy-btn:active {
300
+ transform: scale(0.98);
301
+ }
302
+
303
+ .cron-copy-btn[data-copied] {
304
+ background: var(--cron-success);
305
+ }
306
+
307
+ @media (max-width: 480px) {
308
+ .cron-disp-part {
309
+ font-size: 2rem;
310
+ }
311
+
312
+ .cron-presets {
313
+ grid-template-columns: 1fr;
314
+ }
315
+ }