@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
@@ -53,162 +53,6 @@ const t = (ui ?? {}) as UtmGeneratorUI;
53
53
  </div>
54
54
  </div>
55
55
 
56
- <style>
57
- .ug-root {
58
- width: 100%;
59
- }
60
-
61
- .ug-container {
62
- max-width: 800px;
63
- margin: 0 auto;
64
- padding: 2rem;
65
- background: rgba(255, 255, 255, 0.75);
66
- backdrop-filter: blur(14px);
67
- -webkit-backdrop-filter: blur(14px);
68
- border: 1px solid rgba(255, 255, 255, 0.35);
69
- border-radius: 1.5rem;
70
- box-shadow: 0 8px 32px rgba(31, 38, 135, 0.06);
71
- }
72
-
73
- :global(.theme-dark) .ug-container {
74
- background: rgba(15, 23, 42, 0.75);
75
- border-color: rgba(255, 255, 255, 0.06);
76
- }
77
-
78
- .ug-grid {
79
- display: grid;
80
- grid-template-columns: 1fr 1fr;
81
- gap: 1.5rem;
82
- }
83
-
84
- @media (max-width: 640px) {
85
- .ug-grid {
86
- grid-template-columns: 1fr;
87
- }
88
-
89
- .ug-grid .ug-col-span-2 {
90
- grid-column: span 1;
91
- }
92
-
93
- .ug-container {
94
- padding: 1.5rem;
95
- }
96
- }
97
-
98
- .ug-input-group {
99
- display: flex;
100
- flex-direction: column;
101
- gap: 0.5rem;
102
- }
103
-
104
- .ug-input-group label {
105
- font-size: 0.875rem;
106
- font-weight: 600;
107
- color: rgb(100, 116, 139);
108
- }
109
-
110
- :global(.theme-dark) .ug-input-group label {
111
- color: rgb(148, 163, 184);
112
- }
113
-
114
- .ug-input {
115
- padding: 0.8rem 1rem;
116
- border-radius: 0.75rem;
117
- border: 1px solid rgb(226, 232, 240);
118
- background: white;
119
- color: rgb(51, 65, 85);
120
- transition: all 0.2s ease;
121
- }
122
-
123
- :global(.theme-dark) .ug-input {
124
- background: rgba(255, 255, 255, 0.04);
125
- border-color: rgb(51, 65, 85);
126
- color: rgb(203, 213, 225);
127
- }
128
-
129
- .ug-input:focus {
130
- outline: none;
131
- border-color: rgb(99, 102, 241);
132
- box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);
133
- }
134
-
135
- .ug-col-span-2 {
136
- grid-column: span 2;
137
- }
138
-
139
- .ug-result {
140
- margin-top: 2rem;
141
- padding: 1.5rem;
142
- background: rgba(99, 102, 241, 0.1);
143
- border-radius: 1rem;
144
- border: 1px solid rgba(99, 102, 241, 0.2);
145
- }
146
-
147
- :global(.theme-dark) .ug-result {
148
- background: rgba(99, 102, 241, 0.05);
149
- border-color: rgba(99, 102, 241, 0.15);
150
- }
151
-
152
- .ug-result-header {
153
- display: flex;
154
- justify-content: space-between;
155
- align-items: center;
156
- margin-bottom: 0.75rem;
157
- flex-wrap: wrap;
158
- gap: 0.5rem;
159
- }
160
-
161
- .ug-result-label {
162
- font-weight: 600;
163
- color: rgb(51, 65, 85);
164
- font-size: 0.875rem;
165
- }
166
-
167
- :global(.theme-dark) .ug-result-label {
168
- color: rgb(203, 213, 225);
169
- }
170
-
171
- .ug-result-url {
172
- word-break: break-all;
173
- font-size: 0.875rem;
174
- color: rgb(99, 102, 241);
175
- background: white;
176
- padding: 1rem;
177
- border-radius: 0.5rem;
178
- border: 1px solid rgba(0, 0, 0, 0.05);
179
- }
180
-
181
- :global(.theme-dark) .ug-result-url {
182
- background: rgb(30, 41, 59);
183
- border-color: rgb(51, 65, 85);
184
- color: rgb(129, 140, 248);
185
- }
186
-
187
- .ug-btn-copy {
188
- padding: 0.5rem 1rem;
189
- background: rgb(99, 102, 241);
190
- color: white;
191
- border: none;
192
- border-radius: 0.5rem;
193
- font-weight: 600;
194
- font-size: 0.875rem;
195
- cursor: pointer;
196
- transition: all 0.2s ease;
197
- }
198
-
199
- .ug-btn-copy:hover {
200
- opacity: 0.9;
201
- transform: translateY(-1px);
202
- }
203
-
204
- .ug-btn-copy:active {
205
- transform: translateY(0);
206
- }
207
-
208
- .ug-btn-copy.ug-copied {
209
- background: rgb(16, 185, 129);
210
- }
211
- </style>
212
56
 
213
57
  <script>
214
58
  import type { UtmGeneratorUI } from './ui';
@@ -0,0 +1,29 @@
1
+ import type { DeveloperToolEntry, ToolLocaleContent } from '../../types';
2
+ import type { UtmGeneratorUI } from './ui';
3
+
4
+ export type UtmGeneratorLocaleContent = ToolLocaleContent<UtmGeneratorUI>;
5
+
6
+ export const utmGenerator: DeveloperToolEntry<UtmGeneratorUI> = {
7
+ id: 'utm-generator',
8
+ icons: {
9
+ bg: 'mdi:link-variant',
10
+ fg: 'mdi:tag-multiple',
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
+ };
@@ -1,34 +1,5 @@
1
- import type { DeveloperToolEntry, ToolLocaleContent, ToolDefinition } from '../../types';
2
- import type { UtmGeneratorUI } from './ui';
3
-
4
- export type UtmGeneratorLocaleContent = ToolLocaleContent<UtmGeneratorUI>;
5
-
6
- export const utmGenerator: DeveloperToolEntry<UtmGeneratorUI> = {
7
- id: 'utm-generator',
8
- icons: {
9
- bg: 'mdi:link-variant',
10
- fg: 'mdi:tag-multiple',
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
- };
30
-
31
-
1
+ import { utmGenerator } from './entry';
2
+ export * from './entry';
32
3
  export const UTM_GENERATOR_TOOL: ToolDefinition = {
33
4
  entry: utmGenerator,
34
5
  Component: () => import('./component.astro'),
@@ -0,0 +1,154 @@
1
+ .ug-root {
2
+ width: 100%;
3
+ }
4
+
5
+ .ug-container {
6
+ max-width: 800px;
7
+ margin: 0 auto;
8
+ padding: 2rem;
9
+ background: rgba(255, 255, 255, 0.75);
10
+ backdrop-filter: blur(14px);
11
+ -webkit-backdrop-filter: blur(14px);
12
+ border: 1px solid rgba(255, 255, 255, 0.35);
13
+ border-radius: 1.5rem;
14
+ box-shadow: 0 8px 32px rgba(31, 38, 135, 0.06);
15
+ }
16
+
17
+ :global(.theme-dark) .ug-container {
18
+ background: rgba(15, 23, 42, 0.75);
19
+ border-color: rgba(255, 255, 255, 0.06);
20
+ }
21
+
22
+ .ug-grid {
23
+ display: grid;
24
+ grid-template-columns: 1fr 1fr;
25
+ gap: 1.5rem;
26
+ }
27
+
28
+ @media (max-width: 640px) {
29
+ .ug-grid {
30
+ grid-template-columns: 1fr;
31
+ }
32
+
33
+ .ug-grid .ug-col-span-2 {
34
+ grid-column: span 1;
35
+ }
36
+
37
+ .ug-container {
38
+ padding: 1.5rem;
39
+ }
40
+ }
41
+
42
+ .ug-input-group {
43
+ display: flex;
44
+ flex-direction: column;
45
+ gap: 0.5rem;
46
+ }
47
+
48
+ .ug-input-group label {
49
+ font-size: 0.875rem;
50
+ font-weight: 600;
51
+ color: rgb(100, 116, 139);
52
+ }
53
+
54
+ :global(.theme-dark) .ug-input-group label {
55
+ color: rgb(148, 163, 184);
56
+ }
57
+
58
+ .ug-input {
59
+ padding: 0.8rem 1rem;
60
+ border-radius: 0.75rem;
61
+ border: 1px solid rgb(226, 232, 240);
62
+ background: white;
63
+ color: rgb(51, 65, 85);
64
+ transition: all 0.2s ease;
65
+ }
66
+
67
+ :global(.theme-dark) .ug-input {
68
+ background: rgba(255, 255, 255, 0.04);
69
+ border-color: rgb(51, 65, 85);
70
+ color: rgb(203, 213, 225);
71
+ }
72
+
73
+ .ug-input:focus {
74
+ outline: none;
75
+ border-color: rgb(99, 102, 241);
76
+ box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);
77
+ }
78
+
79
+ .ug-col-span-2 {
80
+ grid-column: span 2;
81
+ }
82
+
83
+ .ug-result {
84
+ margin-top: 2rem;
85
+ padding: 1.5rem;
86
+ background: rgba(99, 102, 241, 0.1);
87
+ border-radius: 1rem;
88
+ border: 1px solid rgba(99, 102, 241, 0.2);
89
+ }
90
+
91
+ :global(.theme-dark) .ug-result {
92
+ background: rgba(99, 102, 241, 0.05);
93
+ border-color: rgba(99, 102, 241, 0.15);
94
+ }
95
+
96
+ .ug-result-header {
97
+ display: flex;
98
+ justify-content: space-between;
99
+ align-items: center;
100
+ margin-bottom: 0.75rem;
101
+ flex-wrap: wrap;
102
+ gap: 0.5rem;
103
+ }
104
+
105
+ .ug-result-label {
106
+ font-weight: 600;
107
+ color: rgb(51, 65, 85);
108
+ font-size: 0.875rem;
109
+ }
110
+
111
+ :global(.theme-dark) .ug-result-label {
112
+ color: rgb(203, 213, 225);
113
+ }
114
+
115
+ .ug-result-url {
116
+ word-break: break-all;
117
+ font-size: 0.875rem;
118
+ color: rgb(99, 102, 241);
119
+ background: white;
120
+ padding: 1rem;
121
+ border-radius: 0.5rem;
122
+ border: 1px solid rgba(0, 0, 0, 0.05);
123
+ }
124
+
125
+ :global(.theme-dark) .ug-result-url {
126
+ background: rgb(30, 41, 59);
127
+ border-color: rgb(51, 65, 85);
128
+ color: rgb(129, 140, 248);
129
+ }
130
+
131
+ .ug-btn-copy {
132
+ padding: 0.5rem 1rem;
133
+ background: rgb(99, 102, 241);
134
+ color: white;
135
+ border: none;
136
+ border-radius: 0.5rem;
137
+ font-weight: 600;
138
+ font-size: 0.875rem;
139
+ cursor: pointer;
140
+ transition: all 0.2s ease;
141
+ }
142
+
143
+ .ug-btn-copy:hover {
144
+ opacity: 0.9;
145
+ transform: translateY(-1px);
146
+ }
147
+
148
+ .ug-btn-copy:active {
149
+ transform: translateY(0);
150
+ }
151
+
152
+ .ug-btn-copy.ug-copied {
153
+ background: rgb(16, 185, 129);
154
+ }
package/src/tools.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export { ALL_ENTRIES } from './entries';
1
2
  import type { ToolDefinition } from './types';
2
3
  import { JSON_FORMATTER_TOOL } from './tool/jsonFormatter/index';
3
4
  import { SVG_TO_CSS_TOOL } from './tool/svgToCss/index';
@@ -26,4 +27,3 @@ import { CONVERSOR_EXCEL_CSV_HTML_TOOL } from './tool/conversorExcelCsvHtml/inde
26
27
 
27
28
  export const ALL_TOOLS: ToolDefinition[] = [JSON_FORMATTER_TOOL, SVG_TO_CSS_TOOL, ASPECT_RATIO_TOOL, PLACEHOLDER_GENERATOR_TOOL, URL_ENCODER_DECODER_TOOL, DUPLICATE_CSS_REMOVER_TOOL, CSS_TO_INLINE_CONVERTER_TOOL, CSS_SPECIFICITY_CALCULATOR_TOOL, CRON_GENERATOR_TOOL, KEYCODE_TOOL, LLM_COST_CALCULATOR_TOOL, MUSICAL_TYPOGRAPHY_TOOL, MOBILE_MOCKUP_GENERATOR_TOOL, HASH_GENERATOR_TOOL, PROMPT_LIBRARY_TOOL, COLOR_CONVERTER_TOOL, READABILITY_CALCULATOR_TOOL, SVG_SANITIZER_TOOL, UTM_GENERATOR_TOOL, URL_CLEANER_TOOL, INSPECTOR_CERTIFICADOS_SSL_TOOL, GENERADOR_SECURITY_TXT_TOOL, CALCULADORA_TIEMPO_DATOS_TOOL, CONVERSOR_EXCEL_CSV_HTML_TOOL];
28
29
 
29
- export const ALL_ENTRIES = ALL_TOOLS.map(t => t.entry);