@jjlmoya/utils-developer 1.11.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 (100) hide show
  1. package/package.json +7 -4
  2. package/scripts/postinstall.mjs +27 -0
  3. package/src/entries.ts +74 -0
  4. package/src/tool/aspectRatio/aspect-ratio-calculator.css +276 -0
  5. package/src/tool/aspectRatio/component.astro +0 -278
  6. package/src/tool/aspectRatio/entry.ts +30 -0
  7. package/src/tool/aspectRatio/index.ts +2 -32
  8. package/src/tool/calculadoraTiempoDatos/component.astro +0 -524
  9. package/src/tool/calculadoraTiempoDatos/data-time-calculator-web-speed-impact.css +522 -0
  10. package/src/tool/calculadoraTiempoDatos/entry.ts +29 -0
  11. package/src/tool/calculadoraTiempoDatos/index.ts +2 -31
  12. package/src/tool/colorConverter/color-converter-rgb-hex-hsl.css +262 -0
  13. package/src/tool/colorConverter/component.astro +0 -264
  14. package/src/tool/colorConverter/entry.ts +29 -0
  15. package/src/tool/colorConverter/index.ts +2 -31
  16. package/src/tool/conversorExcelCsvHtml/component.astro +0 -360
  17. package/src/tool/conversorExcelCsvHtml/entry.ts +29 -0
  18. package/src/tool/conversorExcelCsvHtml/excel-csv-html-table-converter.css +358 -0
  19. package/src/tool/conversorExcelCsvHtml/index.ts +2 -31
  20. package/src/tool/cronGenerator/component.astro +0 -317
  21. package/src/tool/cronGenerator/cron.css +315 -0
  22. package/src/tool/cronGenerator/entry.ts +30 -0
  23. package/src/tool/cronGenerator/index.ts +2 -32
  24. package/src/tool/cssSpecificityCalculator/component.astro +0 -205
  25. package/src/tool/cssSpecificityCalculator/css-specificity-calculator.css +203 -0
  26. package/src/tool/cssSpecificityCalculator/entry.ts +30 -0
  27. package/src/tool/cssSpecificityCalculator/index.ts +2 -32
  28. package/src/tool/cssToInlineConverter/component.astro +0 -150
  29. package/src/tool/cssToInlineConverter/css-to-inline-converter.css +148 -0
  30. package/src/tool/cssToInlineConverter/entry.ts +30 -0
  31. package/src/tool/cssToInlineConverter/index.ts +2 -32
  32. package/src/tool/duplicateCssRemover/component.astro +0 -197
  33. package/src/tool/duplicateCssRemover/duplicate-css-remover.css +195 -0
  34. package/src/tool/duplicateCssRemover/entry.ts +30 -0
  35. package/src/tool/duplicateCssRemover/index.ts +2 -32
  36. package/src/tool/generadorSecurityTxt/component.astro +0 -231
  37. package/src/tool/generadorSecurityTxt/entry.ts +29 -0
  38. package/src/tool/generadorSecurityTxt/index.ts +2 -31
  39. package/src/tool/generadorSecurityTxt/security-txt-generator-rfc-9116.css +229 -0
  40. package/src/tool/hashGenerator/component.astro +0 -229
  41. package/src/tool/hashGenerator/entry.ts +29 -0
  42. package/src/tool/hashGenerator/hash-generator.css +227 -0
  43. package/src/tool/hashGenerator/index.ts +2 -31
  44. package/src/tool/inspectorCertificadosSsl/component.astro +0 -261
  45. package/src/tool/inspectorCertificadosSsl/entry.ts +45 -0
  46. package/src/tool/inspectorCertificadosSsl/index.ts +2 -47
  47. package/src/tool/inspectorCertificadosSsl/ssl-tls-certificate-inspector.css +259 -0
  48. package/src/tool/jsonFormatter/component.astro +0 -346
  49. package/src/tool/jsonFormatter/entry.ts +30 -0
  50. package/src/tool/jsonFormatter/index.ts +2 -32
  51. package/src/tool/jsonFormatter/json-formatter.css +344 -0
  52. package/src/tool/keycode/component.astro +0 -298
  53. package/src/tool/keycode/entry.ts +30 -0
  54. package/src/tool/keycode/index.ts +2 -32
  55. package/src/tool/keycode/keycode.css +296 -0
  56. package/src/tool/llmCostCalculator/component.astro +0 -253
  57. package/src/tool/llmCostCalculator/entry.ts +46 -0
  58. package/src/tool/llmCostCalculator/index.ts +2 -48
  59. package/src/tool/llmCostCalculator/llm-cost-calculator.css +251 -0
  60. package/src/tool/mobileMockupGenerator/component.astro +0 -906
  61. package/src/tool/mobileMockupGenerator/entry.ts +45 -0
  62. package/src/tool/mobileMockupGenerator/index.ts +2 -47
  63. package/src/tool/mobileMockupGenerator/mobile-mockup-generator.css +904 -0
  64. package/src/tool/musicalTypography/component.astro +0 -291
  65. package/src/tool/musicalTypography/entry.ts +29 -0
  66. package/src/tool/musicalTypography/index.ts +2 -31
  67. package/src/tool/musicalTypography/musical-typography.css +289 -0
  68. package/src/tool/placeholderGenerator/component.astro +0 -255
  69. package/src/tool/placeholderGenerator/entry.ts +46 -0
  70. package/src/tool/placeholderGenerator/index.ts +2 -48
  71. package/src/tool/placeholderGenerator/placeholder-image-generator.css +253 -0
  72. package/src/tool/promptLibrary/component.astro +0 -689
  73. package/src/tool/promptLibrary/entry.ts +45 -0
  74. package/src/tool/promptLibrary/index.ts +2 -47
  75. package/src/tool/promptLibrary/prompt-library.css +687 -0
  76. package/src/tool/readabilityCalculator/component.astro +0 -322
  77. package/src/tool/readabilityCalculator/entry.ts +45 -0
  78. package/src/tool/readabilityCalculator/index.ts +2 -47
  79. package/src/tool/readabilityCalculator/visual-readability-calculator-wcag-apca.css +320 -0
  80. package/src/tool/svgSanitizer/component.astro +0 -289
  81. package/src/tool/svgSanitizer/entry.ts +45 -0
  82. package/src/tool/svgSanitizer/index.ts +2 -47
  83. package/src/tool/svgSanitizer/svg-sanitizer.css +287 -0
  84. package/src/tool/svgToCss/component.astro +0 -196
  85. package/src/tool/svgToCss/entry.ts +30 -0
  86. package/src/tool/svgToCss/index.ts +2 -32
  87. package/src/tool/svgToCss/svg-to-css-converter.css +194 -0
  88. package/src/tool/urlCleaner/component.astro +0 -282
  89. package/src/tool/urlCleaner/entry.ts +45 -0
  90. package/src/tool/urlCleaner/index.ts +2 -47
  91. package/src/tool/urlCleaner/url-tracking-cleaner.css +280 -0
  92. package/src/tool/urlEncoderDecoder/component.astro +0 -168
  93. package/src/tool/urlEncoderDecoder/entry.ts +30 -0
  94. package/src/tool/urlEncoderDecoder/index.ts +2 -32
  95. package/src/tool/urlEncoderDecoder/url-encoder-decoder.css +166 -0
  96. package/src/tool/utmGenerator/component.astro +0 -156
  97. package/src/tool/utmGenerator/entry.ts +29 -0
  98. package/src/tool/utmGenerator/index.ts +2 -31
  99. package/src/tool/utmGenerator/utm-generator.css +154 -0
  100. package/src/tools.ts +1 -1
@@ -233,363 +233,3 @@ const content = (ui ?? {}) as ConversorExcelCsvHtmlUI;
233
233
  });
234
234
  </script>
235
235
 
236
- <style scoped>
237
- :root {
238
- --cec-primary: rgb(139, 92, 246);
239
- --cec-primary-hover: rgb(124, 58, 202);
240
- --cec-border: rgb(226, 232, 240);
241
- --cec-border-dark: rgb(51, 65, 85);
242
- --cec-bg-light: rgb(248, 250, 252);
243
- --cec-bg-dark: rgb(15, 23, 42);
244
- --cec-text-primary: rgb(30, 41, 59);
245
- --cec-text-secondary: rgb(71, 85, 105);
246
- --cec-text-light: rgb(241, 245, 249);
247
- }
248
-
249
- .cec-container {
250
- display: flex;
251
- flex-direction: column;
252
- gap: 2rem;
253
- width: 100%;
254
- max-width: 1000px;
255
- margin: 0 auto;
256
- }
257
-
258
- .cec-converter-card {
259
- background: rgba(255, 255, 255, 0.7);
260
- backdrop-filter: blur(20px);
261
- border: 1px solid rgba(255, 255, 255, 0.3);
262
- border-radius: 24px;
263
- padding: 2rem;
264
- box-shadow: 0 20px 40px rgba(0, 0, 0, 0.05);
265
- }
266
-
267
- :global(.theme-dark) .cec-converter-card {
268
- background: rgba(15, 23, 42, 0.6);
269
- border-color: rgba(255, 255, 255, 0.05);
270
- }
271
-
272
- .cec-input-grid {
273
- display: grid;
274
- grid-template-columns: 1fr;
275
- gap: 1.5rem;
276
- }
277
-
278
- @media (min-width: 768px) {
279
- .cec-input-grid {
280
- grid-template-columns: 1fr 1fr;
281
- }
282
- }
283
-
284
- .cec-input-group {
285
- display: flex;
286
- flex-direction: column;
287
- gap: 0.75rem;
288
- }
289
-
290
- .cec-input-label {
291
- font-size: 0.875rem;
292
- font-weight: 700;
293
- color: var(--cec-text-secondary);
294
- text-transform: uppercase;
295
- letter-spacing: 0.05em;
296
- }
297
-
298
- :global(.theme-dark) .cec-input-label {
299
- color: rgb(148, 163, 184);
300
- }
301
-
302
- .cec-csv-textarea {
303
- width: 100%;
304
- height: 200px;
305
- background: white;
306
- border: 1px solid var(--cec-border);
307
- border-radius: 12px;
308
- padding: 1rem;
309
- font-size: 0.875rem;
310
- color: var(--cec-text-primary);
311
- resize: vertical;
312
- transition: all 0.2s;
313
- }
314
-
315
- :global(.theme-dark) .cec-csv-textarea {
316
- background: rgb(2, 6, 23);
317
- border-color: rgb(30, 41, 59);
318
- color: var(--cec-text-light);
319
- }
320
-
321
- .cec-csv-textarea:focus {
322
- outline: none;
323
- border-color: var(--cec-primary);
324
- box-shadow: 0 0 0 4px rgba(139, 92, 246, 0.1);
325
- }
326
-
327
- .cec-drop-zone {
328
- border: 2px dashed var(--cec-border);
329
- border-radius: 12px;
330
- height: 200px;
331
- display: flex;
332
- flex-direction: column;
333
- align-items: center;
334
- justify-content: center;
335
- gap: 1rem;
336
- cursor: pointer;
337
- transition: all 0.2s;
338
- background: rgba(248, 250, 252, 0.5);
339
- }
340
-
341
- :global(.theme-dark) .cec-drop-zone {
342
- border-color: var(--cec-border-dark);
343
- background: rgba(30, 41, 59, 0.2);
344
- }
345
-
346
- .cec-drop-zone:hover,
347
- .cec-dragover {
348
- border-color: var(--cec-primary);
349
- background: rgba(139, 92, 246, 0.05);
350
- }
351
-
352
- .cec-drop-zone :global(svg) {
353
- color: var(--cec-primary);
354
- }
355
-
356
- .cec-drop-zone span {
357
- font-size: 0.875rem;
358
- color: rgb(100, 116, 139);
359
- font-weight: 500;
360
- }
361
-
362
- .cec-options-row {
363
- display: flex;
364
- flex-wrap: wrap;
365
- gap: 1.5rem;
366
- margin-top: 1rem;
367
- padding-top: 1.5rem;
368
- border-top: 1px solid rgba(0, 0, 0, 0.05);
369
- }
370
-
371
- :global(.theme-dark) .cec-options-row {
372
- border-top-color: rgba(255, 255, 255, 0.05);
373
- }
374
-
375
- .cec-option-item {
376
- display: flex;
377
- align-items: center;
378
- gap: 0.75rem;
379
- cursor: pointer;
380
- position: relative;
381
- user-select: none;
382
- padding: 0.5rem 0.75rem;
383
- border-radius: 12px;
384
- transition: background-color 0.2s;
385
- }
386
-
387
- .cec-option-item:hover {
388
- background: rgba(139, 92, 246, 0.05);
389
- }
390
-
391
- .cec-option-item input[type="checkbox"] {
392
- appearance: none;
393
- width: 20px;
394
- height: 20px;
395
- border: 2px solid var(--cec-border);
396
- border-radius: 6px;
397
- background: white;
398
- cursor: pointer;
399
- position: relative;
400
- transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
401
- }
402
-
403
- :global(.theme-dark) .cec-option-item input[type="checkbox"] {
404
- background: rgb(15, 23, 42);
405
- border-color: var(--cec-border-dark);
406
- }
407
-
408
- .cec-option-item input[type="checkbox"]:checked {
409
- background: var(--cec-primary);
410
- border-color: var(--cec-primary);
411
- box-shadow: 0 4px 6px -1px rgba(139, 92, 246, 0.2);
412
- }
413
-
414
- .cec-option-item input[type="checkbox"]:checked::after {
415
- content: '';
416
- position: absolute;
417
- left: 6px;
418
- top: 2px;
419
- width: 5px;
420
- height: 10px;
421
- border: solid white;
422
- border-width: 0 2px 2px 0;
423
- transform: rotate(45deg);
424
- }
425
-
426
- .cec-option-item span {
427
- font-size: 0.9rem;
428
- font-weight: 600;
429
- color: var(--cec-text-secondary);
430
- }
431
-
432
- :global(.theme-dark) .cec-option-item span {
433
- color: rgb(148, 163, 184);
434
- }
435
-
436
- .cec-option-item input[type="checkbox"]:checked + span {
437
- color: rgb(88, 28, 135);
438
- }
439
-
440
- :global(.theme-dark) .cec-option-item input[type="checkbox"]:checked + span {
441
- color: rgb(196, 181, 253);
442
- }
443
-
444
- .cec-results-section {
445
- display: flex;
446
- flex-direction: column;
447
- gap: 1.5rem;
448
- }
449
-
450
- .cec-result-tabs {
451
- display: flex;
452
- gap: 0.5rem;
453
- border-bottom: 2px solid var(--cec-border);
454
- }
455
-
456
- :global(.theme-dark) .cec-result-tabs {
457
- border-bottom-color: rgb(30, 41, 59);
458
- }
459
-
460
- .cec-tab-btn {
461
- padding: 0.75rem 1.5rem;
462
- font-size: 0.875rem;
463
- font-weight: 700;
464
- color: rgb(100, 116, 139);
465
- background: transparent;
466
- border: none;
467
- cursor: pointer;
468
- border-bottom: 2px solid transparent;
469
- margin-bottom: -2px;
470
- transition: all 0.2s;
471
- }
472
-
473
- .cec-tab-active {
474
- color: var(--cec-primary);
475
- border-bottom-color: var(--cec-primary);
476
- }
477
-
478
- .cec-preview-container {
479
- background: white;
480
- border: 1px solid var(--cec-border);
481
- border-radius: 12px;
482
- overflow-x: auto;
483
- max-height: 400px;
484
- padding: 1rem;
485
- }
486
-
487
- :global(.theme-dark) .cec-preview-container {
488
- background: rgb(15, 23, 42);
489
- border-color: rgb(30, 41, 59);
490
- }
491
-
492
- .cec-code-container {
493
- position: relative;
494
- }
495
-
496
- .cec-code-textarea {
497
- width: 100%;
498
- height: 300px;
499
- background: rgb(30, 41, 59);
500
- color: rgb(226, 232, 240);
501
- border-radius: 12px;
502
- padding: 1.5rem;
503
- font-size: 0.875rem;
504
- resize: vertical;
505
- border: none;
506
- }
507
-
508
- .cec-copy-btn {
509
- position: absolute;
510
- top: 1rem;
511
- right: 1rem;
512
- background: var(--cec-primary);
513
- color: white;
514
- border: none;
515
- border-radius: 8px;
516
- padding: 0.5rem 1rem;
517
- font-size: 0.75rem;
518
- font-weight: 700;
519
- cursor: pointer;
520
- display: flex;
521
- align-items: center;
522
- gap: 0.5rem;
523
- transition: all 0.2s;
524
- }
525
-
526
- .cec-copy-btn:hover {
527
- background: var(--cec-primary-hover);
528
- }
529
-
530
- .cec-preview-container :global(table) {
531
- width: 100%;
532
- border-collapse: collapse;
533
- font-size: 0.875rem;
534
- }
535
-
536
- .cec-preview-container :global(th) {
537
- background: var(--cec-bg-light);
538
- border-bottom: 2px solid var(--cec-border);
539
- padding: 0.75rem;
540
- text-align: left;
541
- font-weight: 700;
542
- color: var(--cec-text-primary);
543
- }
544
-
545
- :global(.theme-dark) .cec-preview-container :global(th) {
546
- background: rgb(30, 41, 59);
547
- border-bottom-color: var(--cec-border-dark);
548
- color: var(--cec-text-light);
549
- }
550
-
551
- .cec-preview-container :global(td) {
552
- padding: 0.75rem;
553
- border-bottom: 1px solid rgb(241, 245, 249);
554
- color: var(--cec-text-secondary);
555
- }
556
-
557
- :global(.theme-dark) .cec-preview-container :global(td) {
558
- border-bottom-color: rgb(30, 41, 59);
559
- color: rgb(148, 163, 184);
560
- }
561
-
562
- .cec-empty-state {
563
- display: flex;
564
- flex-direction: column;
565
- align-items: center;
566
- justify-content: center;
567
- padding: 3rem;
568
- color: rgb(148, 163, 184);
569
- text-align: center;
570
- gap: 1rem;
571
- }
572
-
573
- .cec-preview-container :global(table.bordered) {
574
- border: 1px solid var(--cec-border);
575
- }
576
-
577
- .cec-preview-container :global(table.bordered th),
578
- .cec-preview-container :global(table.bordered td) {
579
- border: 1px solid var(--cec-border);
580
- }
581
-
582
- :global(.theme-dark) .cec-preview-container :global(table.bordered),
583
- :global(.theme-dark) .cec-preview-container :global(table.bordered th),
584
- :global(.theme-dark) .cec-preview-container :global(table.bordered td) {
585
- border-color: var(--cec-border-dark);
586
- }
587
-
588
- .cec-preview-container :global(table.zebra tbody tr:nth-child(even)) {
589
- background: var(--cec-bg-light);
590
- }
591
-
592
- :global(.theme-dark) .cec-preview-container :global(table.zebra tbody tr:nth-child(even)) {
593
- background: rgba(30, 41, 59, 0.5);
594
- }
595
- </style>
@@ -0,0 +1,29 @@
1
+ import type { DeveloperToolEntry, ToolLocaleContent } from '../../types';
2
+ import type { ConversorExcelCsvHtmlUI } from './ui';
3
+
4
+ export type ConversorExcelCsvHtmlLocaleContent = ToolLocaleContent<ConversorExcelCsvHtmlUI>;
5
+
6
+ export const conversorExcelCsvHtml: DeveloperToolEntry<ConversorExcelCsvHtmlUI> = {
7
+ id: 'conversor-excel-csv-html',
8
+ icons: {
9
+ bg: 'mdi:table',
10
+ fg: 'mdi:file-delimited',
11
+ },
12
+ i18n: {
13
+ de: async () => (await import('./i18n/de')).content,
14
+ en: async () => (await import('./i18n/en')).content,
15
+ es: async () => (await import('./i18n/es')).content,
16
+ fr: async () => (await import('./i18n/fr')).content,
17
+ id: async () => (await import('./i18n/id')).content,
18
+ it: async () => (await import('./i18n/it')).content,
19
+ ja: async () => (await import('./i18n/ja')).content,
20
+ ko: async () => (await import('./i18n/ko')).content,
21
+ nl: async () => (await import('./i18n/nl')).content,
22
+ pl: async () => (await import('./i18n/pl')).content,
23
+ pt: async () => (await import('./i18n/pt')).content,
24
+ ru: async () => (await import('./i18n/ru')).content,
25
+ sv: async () => (await import('./i18n/sv')).content,
26
+ tr: async () => (await import('./i18n/tr')).content,
27
+ zh: async () => (await import('./i18n/zh')).content,
28
+ },
29
+ };