@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
@@ -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
+ :global(.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
+ :global(.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';
@@ -0,0 +1,45 @@
1
+ import type { DeveloperToolEntry, ToolLocaleContent } from '../../types';
2
+ import type { UrlCleanerUI } from './ui';
3
+
4
+ export type UrlCleanerLocaleContent = ToolLocaleContent<UrlCleanerUI>;
5
+
6
+ import { content as es } from './i18n/es';
7
+ import { content as en } from './i18n/en';
8
+ import { content as fr } from './i18n/fr';
9
+ import { content as de } from './i18n/de';
10
+ import { content as id } from './i18n/id';
11
+ import { content as it } from './i18n/it';
12
+ import { content as ja } from './i18n/ja';
13
+ import { content as ko } from './i18n/ko';
14
+ import { content as nl } from './i18n/nl';
15
+ import { content as pl } from './i18n/pl';
16
+ import { content as pt } from './i18n/pt';
17
+ import { content as ru } from './i18n/ru';
18
+ import { content as sv } from './i18n/sv';
19
+ import { content as tr } from './i18n/tr';
20
+ import { content as zh } from './i18n/zh';
21
+
22
+ export const urlCleaner: DeveloperToolEntry<UrlCleanerUI> = {
23
+ id: 'url-cleaner',
24
+ icons: {
25
+ bg: 'mdi:link-variant-off',
26
+ fg: 'mdi:broom',
27
+ },
28
+ i18n: {
29
+ es: async () => es,
30
+ en: async () => en,
31
+ fr: async () => fr,
32
+ de: async () => de,
33
+ id: async () => id,
34
+ it: async () => it,
35
+ ja: async () => ja,
36
+ ko: async () => ko,
37
+ nl: async () => nl,
38
+ pl: async () => pl,
39
+ pt: async () => pt,
40
+ ru: async () => ru,
41
+ sv: async () => sv,
42
+ tr: async () => tr,
43
+ zh: async () => zh,
44
+ },
45
+ };
@@ -1,50 +1,5 @@
1
- import type { DeveloperToolEntry, ToolLocaleContent, ToolDefinition } from '../../types';
2
- import type { UrlCleanerUI } from './ui';
3
-
4
- export type UrlCleanerLocaleContent = ToolLocaleContent<UrlCleanerUI>;
5
-
6
- import { content as es } from './i18n/es';
7
- import { content as en } from './i18n/en';
8
- import { content as fr } from './i18n/fr';
9
- import { content as de } from './i18n/de';
10
- import { content as id } from './i18n/id';
11
- import { content as it } from './i18n/it';
12
- import { content as ja } from './i18n/ja';
13
- import { content as ko } from './i18n/ko';
14
- import { content as nl } from './i18n/nl';
15
- import { content as pl } from './i18n/pl';
16
- import { content as pt } from './i18n/pt';
17
- import { content as ru } from './i18n/ru';
18
- import { content as sv } from './i18n/sv';
19
- import { content as tr } from './i18n/tr';
20
- import { content as zh } from './i18n/zh';
21
-
22
- export const urlCleaner: DeveloperToolEntry<UrlCleanerUI> = {
23
- id: 'url-cleaner',
24
- icons: {
25
- bg: 'mdi:link-variant-off',
26
- fg: 'mdi:broom',
27
- },
28
- i18n: {
29
- es: async () => es,
30
- en: async () => en,
31
- fr: async () => fr,
32
- de: async () => de,
33
- id: async () => id,
34
- it: async () => it,
35
- ja: async () => ja,
36
- ko: async () => ko,
37
- nl: async () => nl,
38
- pl: async () => pl,
39
- pt: async () => pt,
40
- ru: async () => ru,
41
- sv: async () => sv,
42
- tr: async () => tr,
43
- zh: async () => zh,
44
- },
45
- };
46
-
47
-
1
+ import { urlCleaner } from './entry';
2
+ export * from './entry';
48
3
  export const URL_CLEANER_TOOL: ToolDefinition = {
49
4
  entry: urlCleaner,
50
5
  Component: () => import('./component.astro'),