@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,296 @@
1
+ .kc-root {
2
+ --kc-primary: #7c3aed;
3
+ --kc-primary-light: #8b5cf6;
4
+ --kc-success: #10b981;
5
+ --kc-card-bg: #fff;
6
+ --kc-bg: #f8fafc;
7
+ --kc-text: #0f172a;
8
+ --kc-text-muted: #64748b;
9
+ --kc-border: #e2e8f0;
10
+ --kc-key-border: #cbd5e1;
11
+
12
+ max-width: 56rem;
13
+ margin: 2rem auto;
14
+ color: var(--kc-text);
15
+ }
16
+
17
+ :global(.theme-dark) .kc-root {
18
+ --kc-card-bg: #1e293b;
19
+ --kc-bg: #0f172a;
20
+ --kc-text: #f1f5f9;
21
+ --kc-text-muted: #94a3b8;
22
+ --kc-border: #334155;
23
+ --kc-key-border: #0f172a;
24
+ }
25
+
26
+ .kc-outer-card {
27
+ background: var(--kc-card-bg);
28
+ border: 1px solid var(--kc-border);
29
+ border-radius: 1.5rem;
30
+ box-shadow: 0 4px 24px rgba(0, 0, 0, 0.07);
31
+ padding: 2rem;
32
+ }
33
+
34
+ .kc-initial {
35
+ min-height: 360px;
36
+ display: flex;
37
+ flex-direction: column;
38
+ align-items: center;
39
+ justify-content: center;
40
+ gap: 2rem;
41
+ }
42
+
43
+ .kc-kbd-wrap {
44
+ width: 8rem;
45
+ height: 8rem;
46
+ background: var(--kc-bg);
47
+ border-radius: 1.5rem;
48
+ border: 1px solid var(--kc-border);
49
+ border-bottom: 8px solid var(--kc-border);
50
+ display: flex;
51
+ align-items: center;
52
+ justify-content: center;
53
+ }
54
+
55
+ .kc-kbd-icon {
56
+ width: 3.5rem;
57
+ height: 3.5rem;
58
+ color: var(--kc-text-muted);
59
+ }
60
+
61
+ .kc-prompt {
62
+ text-align: center;
63
+ display: flex;
64
+ flex-direction: column;
65
+ gap: 0.5rem;
66
+ }
67
+
68
+ .kc-prompt-title {
69
+ font-size: 2rem;
70
+ font-weight: 900;
71
+ color: var(--kc-text);
72
+ margin: 0;
73
+ letter-spacing: -0.02em;
74
+ }
75
+
76
+ .kc-prompt-sub {
77
+ font-size: 1rem;
78
+ color: var(--kc-text-muted);
79
+ margin: 0;
80
+ }
81
+
82
+ .kc-dots {
83
+ display: flex;
84
+ gap: 0.5rem;
85
+ opacity: 0.4;
86
+ }
87
+
88
+ @keyframes kc-bounce {
89
+ 0%, 100% { transform: translateY(0); }
90
+ 50% { transform: translateY(-6px); }
91
+ }
92
+
93
+ .kc-dot {
94
+ width: 0.5rem;
95
+ height: 0.5rem;
96
+ border-radius: 50%;
97
+ background: var(--kc-border);
98
+ animation: kc-bounce 1s ease infinite;
99
+ }
100
+
101
+ .kc-active {
102
+ display: flex;
103
+ flex-direction: column;
104
+ gap: 2rem;
105
+ }
106
+
107
+ .kc-key-outer {
108
+ display: flex;
109
+ justify-content: center;
110
+ }
111
+
112
+ .kc-key-display {
113
+ min-width: 12rem;
114
+ min-height: 12rem;
115
+ padding: 2rem 3rem;
116
+ background: var(--kc-bg);
117
+ border-radius: 1.5rem;
118
+ border: 1px solid var(--kc-border);
119
+ border-bottom: 12px solid var(--kc-border);
120
+ display: flex;
121
+ flex-direction: column;
122
+ align-items: center;
123
+ justify-content: center;
124
+ gap: 0.5rem;
125
+ transition: transform 0.1s, border-bottom-width 0.1s, box-shadow 0.1s;
126
+ }
127
+
128
+ .kc-key-char {
129
+ font-size: 5rem;
130
+ font-weight: 900;
131
+ color: var(--kc-text);
132
+ line-height: 1;
133
+ text-align: center;
134
+ max-width: 20rem;
135
+ overflow-wrap: break-word;
136
+ }
137
+
138
+ .kc-key-code {
139
+ font-size: 0.8rem;
140
+ color: var(--kc-text-muted);
141
+ text-transform: uppercase;
142
+ letter-spacing: 0.12em;
143
+ }
144
+
145
+ .kc-info-grid {
146
+ display: grid;
147
+ grid-template-columns: repeat(4, 1fr);
148
+ gap: 0.75rem;
149
+ }
150
+
151
+ @media (max-width: 640px) {
152
+ .kc-info-grid {
153
+ grid-template-columns: repeat(2, 1fr);
154
+ }
155
+ }
156
+
157
+ .kc-info-card {
158
+ background: var(--kc-bg);
159
+ border: 1px solid var(--kc-border);
160
+ border-radius: 1rem;
161
+ padding: 1rem 0.875rem;
162
+ display: flex;
163
+ flex-direction: column;
164
+ align-items: center;
165
+ gap: 0.5rem;
166
+ min-height: 8rem;
167
+ justify-content: space-between;
168
+ transition: border-color 0.15s;
169
+ }
170
+
171
+ .kc-info-card:hover {
172
+ border-color: var(--kc-primary-light);
173
+ }
174
+
175
+ .kc-info-label {
176
+ font-size: 0.68rem;
177
+ text-transform: uppercase;
178
+ letter-spacing: 0.07em;
179
+ color: var(--kc-text-muted);
180
+ font-weight: 600;
181
+ }
182
+
183
+ .kc-info-value {
184
+ font-size: 1.1rem;
185
+ font-weight: 800;
186
+ color: var(--kc-primary-light);
187
+ text-align: center;
188
+ overflow-wrap: break-word;
189
+ max-width: 100%;
190
+ }
191
+
192
+ .kc-copy-btn {
193
+ background: transparent;
194
+ border: none;
195
+ cursor: pointer;
196
+ padding: 0.35rem;
197
+ border-radius: 0.375rem;
198
+ color: var(--kc-text-muted);
199
+ display: flex;
200
+ align-items: center;
201
+ transition: background 0.15s, color 0.15s;
202
+ }
203
+
204
+ .kc-copy-btn:hover {
205
+ background: rgba(139, 92, 246, 0.1);
206
+ color: var(--kc-primary-light);
207
+ }
208
+
209
+ .kc-mods-row {
210
+ display: flex;
211
+ justify-content: center;
212
+ gap: 0.75rem;
213
+ flex-wrap: wrap;
214
+ }
215
+
216
+ .kc-mod-key {
217
+ padding: 0.625rem 1.5rem;
218
+ border: 2px solid var(--kc-border);
219
+ border-radius: 0.75rem;
220
+ color: var(--kc-text-muted);
221
+ font-weight: 800;
222
+ font-size: 0.875rem;
223
+ letter-spacing: 0.05em;
224
+ transition: border-color 0.15s, background 0.15s, color 0.15s, transform 0.15s;
225
+ }
226
+
227
+ .kc-snippets-section {
228
+ border-top: 1px solid var(--kc-border);
229
+ padding-top: 1.5rem;
230
+ display: flex;
231
+ flex-direction: column;
232
+ gap: 1rem;
233
+ }
234
+
235
+ .kc-snippets-title {
236
+ font-size: 0.7rem;
237
+ text-transform: uppercase;
238
+ letter-spacing: 0.1em;
239
+ color: var(--kc-text-muted);
240
+ margin: 0;
241
+ text-align: center;
242
+ font-weight: 700;
243
+ }
244
+
245
+ .kc-snippets-grid {
246
+ display: grid;
247
+ grid-template-columns: 1fr 1fr;
248
+ gap: 0.625rem;
249
+ }
250
+
251
+ @media (max-width: 520px) {
252
+ .kc-snippets-grid {
253
+ grid-template-columns: 1fr;
254
+ }
255
+ }
256
+
257
+ .kc-snippet-btn {
258
+ display: flex;
259
+ align-items: center;
260
+ justify-content: space-between;
261
+ gap: 0.5rem;
262
+ padding: 0.875rem 1rem;
263
+ background: var(--kc-card-bg);
264
+ border: 1px solid var(--kc-border);
265
+ border-radius: 0.875rem;
266
+ cursor: pointer;
267
+ text-align: left;
268
+ transition: border-color 0.15s, background 0.15s;
269
+ }
270
+
271
+ .kc-snippet-btn:hover {
272
+ border-color: var(--kc-primary-light);
273
+ }
274
+
275
+ .kc-snippet-code {
276
+ font-size: 0.8rem;
277
+ color: var(--kc-text);
278
+ flex: 1;
279
+ overflow: hidden;
280
+ text-overflow: ellipsis;
281
+ white-space: nowrap;
282
+ }
283
+
284
+ .kc-snippet-copy {
285
+ font-size: 0.72rem;
286
+ font-weight: 700;
287
+ color: var(--kc-primary-light);
288
+ opacity: 0;
289
+ transition: opacity 0.15s;
290
+ white-space: nowrap;
291
+ flex-shrink: 0;
292
+ }
293
+
294
+ .kc-snippet-btn:hover .kc-snippet-copy {
295
+ opacity: 1;
296
+ }
@@ -233,256 +233,3 @@ const t = (ui ?? {}) as LlmCostCalculatorUI;
233
233
  init();
234
234
  </script>
235
235
 
236
- <style>
237
- .llm-root {
238
- --llm-card-bg: rgba(255, 255, 255, 0.9);
239
- --llm-card-border: rgba(15, 23, 42, 0.05);
240
- --llm-text: #1e293b;
241
- --llm-muted: #64748b;
242
- --llm-accent: #6366f1;
243
- --llm-input-bg: #f8fafc;
244
- --llm-input-border: #e2e8f0;
245
- --llm-panel-bg: #f8fafc;
246
- --llm-panel-border: #f1f5f9;
247
- --llm-divider: #e2e8f0;
248
- --llm-total-from: #4f46e5;
249
- --llm-total-to: #9333ea;
250
- }
251
-
252
- :global(.theme-dark) .llm-root {
253
- --llm-card-bg: rgba(15, 23, 42, 0.9);
254
- --llm-card-border: rgba(255, 255, 255, 0.1);
255
- --llm-text: #f1f5f9;
256
- --llm-muted: #94a3b8;
257
- --llm-input-bg: #1e293b;
258
- --llm-input-border: #334155;
259
- --llm-panel-bg: rgba(30, 41, 59, 0.5);
260
- --llm-panel-border: rgba(51, 65, 85, 0.5);
261
- --llm-divider: #334155;
262
- --llm-total-from: #818cf8;
263
- --llm-total-to: #c084fc;
264
- }
265
-
266
- .llm-glow-wrap {
267
- position: relative;
268
- }
269
-
270
- .llm-glow {
271
- position: absolute;
272
- inset: -4px;
273
- background: linear-gradient(to right, #6366f1, #a855f7, #ec4899);
274
- border-radius: 1.25rem;
275
- filter: blur(8px);
276
- opacity: 0.25;
277
- transition: opacity 1s;
278
- }
279
-
280
- .llm-glow-wrap:hover .llm-glow {
281
- opacity: 0.5;
282
- transition-duration: 0.2s;
283
- }
284
-
285
- .llm-card {
286
- position: relative;
287
- background: var(--llm-card-bg);
288
- backdrop-filter: blur(12px);
289
- border-radius: 0.75rem;
290
- padding: 1.5rem;
291
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
292
- border: 1px solid var(--llm-card-border);
293
- color: var(--llm-text);
294
- }
295
-
296
- .llm-grid {
297
- display: grid;
298
- grid-template-columns: 1fr 1fr;
299
- gap: 2rem;
300
- }
301
-
302
- @media (max-width: 640px) {
303
- .llm-grid {
304
- grid-template-columns: 1fr;
305
- }
306
- }
307
-
308
- .llm-controls {
309
- display: flex;
310
- flex-direction: column;
311
- gap: 1.5rem;
312
- }
313
-
314
- .llm-label {
315
- display: block;
316
- font-size: 0.875rem;
317
- font-weight: 500;
318
- color: var(--llm-muted);
319
- margin-bottom: 0.5rem;
320
- }
321
-
322
- .llm-select,
323
- .llm-input {
324
- display: block;
325
- width: 100%;
326
- border-radius: 0.5rem;
327
- border: 1px solid var(--llm-input-border);
328
- background: var(--llm-input-bg);
329
- color: var(--llm-text);
330
- font-size: 0.875rem;
331
- padding: 0.625rem;
332
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
333
- box-sizing: border-box;
334
- }
335
-
336
- .llm-select:focus,
337
- .llm-input:focus {
338
- outline: 2px solid var(--llm-accent);
339
- outline-offset: 2px;
340
- border-color: var(--llm-accent);
341
- }
342
-
343
- .llm-tokens-grid {
344
- display: grid;
345
- grid-template-columns: 1fr 1fr;
346
- gap: 1rem;
347
- }
348
-
349
- .llm-word-hint {
350
- margin-top: 0.25rem;
351
- font-size: 0.75rem;
352
- color: var(--llm-muted);
353
- }
354
-
355
- .llm-slider-row {
356
- display: flex;
357
- align-items: center;
358
- gap: 1rem;
359
- }
360
-
361
- .llm-slider {
362
- flex: 1;
363
- accent-color: var(--llm-accent);
364
- cursor: pointer;
365
- }
366
-
367
- .llm-req-num {
368
- width: 6rem;
369
- border-radius: 0.5rem;
370
- border: 1px solid var(--llm-input-border);
371
- background: var(--llm-input-bg);
372
- color: var(--llm-text);
373
- font-size: 0.875rem;
374
- padding: 0.5rem;
375
- text-align: center;
376
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
377
- }
378
-
379
- .llm-req-num:focus {
380
- outline: 2px solid var(--llm-accent);
381
- outline-offset: 2px;
382
- }
383
-
384
- .llm-results {
385
- display: flex;
386
- flex-direction: column;
387
- justify-content: center;
388
- gap: 1.5rem;
389
- background: var(--llm-panel-bg);
390
- border-radius: 0.75rem;
391
- padding: 1.5rem;
392
- border: 1px solid var(--llm-panel-border);
393
- }
394
-
395
- .llm-stat-title {
396
- font-size: 0.75rem;
397
- font-weight: 500;
398
- color: var(--llm-muted);
399
- text-transform: uppercase;
400
- letter-spacing: 0.05em;
401
- text-align: center;
402
- margin: 0 0 0.5rem;
403
- }
404
-
405
- .llm-cost-val {
406
- font-size: 1.875rem;
407
- font-weight: 700;
408
- color: var(--llm-text);
409
- text-align: center;
410
- }
411
-
412
- .llm-divider-wrap {
413
- position: relative;
414
- height: 1px;
415
- background: var(--llm-divider);
416
- }
417
-
418
- .llm-divider-line {
419
- position: absolute;
420
- inset: 0;
421
- background: var(--llm-divider);
422
- }
423
-
424
- .llm-divider-label {
425
- position: absolute;
426
- left: 50%;
427
- top: 50%;
428
- transform: translate(-50%, -50%);
429
- background: var(--llm-panel-bg);
430
- padding: 0 0.5rem;
431
- font-size: 0.75rem;
432
- color: var(--llm-muted);
433
- white-space: nowrap;
434
- }
435
-
436
- .llm-total-title {
437
- font-size: 0.75rem;
438
- font-weight: 500;
439
- color: var(--llm-accent);
440
- text-transform: uppercase;
441
- letter-spacing: 0.05em;
442
- text-align: center;
443
- margin: 0 0 0.5rem;
444
- }
445
-
446
- .llm-total-val {
447
- font-size: 3rem;
448
- font-weight: 900;
449
- text-align: center;
450
- background: linear-gradient(to right, var(--llm-total-from), var(--llm-total-to));
451
- -webkit-background-clip: text;
452
- -webkit-text-fill-color: transparent;
453
- background-clip: text;
454
- }
455
-
456
- .llm-bar-section {
457
- display: flex;
458
- flex-direction: column;
459
- gap: 0.5rem;
460
- }
461
-
462
- .llm-bar-labels {
463
- display: flex;
464
- justify-content: space-between;
465
- font-size: 0.75rem;
466
- color: var(--llm-muted);
467
- }
468
-
469
- .llm-bar-track {
470
- height: 0.5rem;
471
- background: var(--llm-divider);
472
- border-radius: 9999px;
473
- overflow: hidden;
474
- display: flex;
475
- }
476
-
477
- .llm-bar-input {
478
- background: #3b82f6;
479
- height: 100%;
480
- transition: width 0.5s;
481
- }
482
-
483
- .llm-bar-output {
484
- background: #22c55e;
485
- height: 100%;
486
- transition: width 0.5s;
487
- }
488
- </style>
@@ -0,0 +1,46 @@
1
+ import type { DeveloperToolEntry, ToolLocaleContent } from '../../types';
2
+
3
+ import type { LlmCostCalculatorUI } from './ui';
4
+
5
+ export type LlmCostCalculatorLocaleContent = ToolLocaleContent<LlmCostCalculatorUI>;
6
+
7
+ import { content as es } from './i18n/es';
8
+ import { content as en } from './i18n/en';
9
+ import { content as fr } from './i18n/fr';
10
+ import { content as de } from './i18n/de';
11
+ import { content as id } from './i18n/id';
12
+ import { content as it } from './i18n/it';
13
+ import { content as ja } from './i18n/ja';
14
+ import { content as ko } from './i18n/ko';
15
+ import { content as nl } from './i18n/nl';
16
+ import { content as pl } from './i18n/pl';
17
+ import { content as pt } from './i18n/pt';
18
+ import { content as ru } from './i18n/ru';
19
+ import { content as sv } from './i18n/sv';
20
+ import { content as tr } from './i18n/tr';
21
+ import { content as zh } from './i18n/zh';
22
+
23
+ export const llmCostCalculator: DeveloperToolEntry<LlmCostCalculatorUI> = {
24
+ id: 'llm-cost-calculator',
25
+ icons: {
26
+ bg: 'mdi:currency-usd',
27
+ fg: 'mdi:robot-outline',
28
+ },
29
+ i18n: {
30
+ es: async () => es,
31
+ en: async () => en,
32
+ fr: async () => fr,
33
+ de: async () => de,
34
+ id: async () => id,
35
+ it: async () => it,
36
+ ja: async () => ja,
37
+ ko: async () => ko,
38
+ nl: async () => nl,
39
+ pl: async () => pl,
40
+ pt: async () => pt,
41
+ ru: async () => ru,
42
+ sv: async () => sv,
43
+ tr: async () => tr,
44
+ zh: async () => zh,
45
+ },
46
+ };
@@ -1,51 +1,5 @@
1
- import type { DeveloperToolEntry, ToolLocaleContent, ToolDefinition } from '../../types';
2
-
3
- import type { LlmCostCalculatorUI } from './ui';
4
-
5
- export type LlmCostCalculatorLocaleContent = ToolLocaleContent<LlmCostCalculatorUI>;
6
-
7
- import { content as es } from './i18n/es';
8
- import { content as en } from './i18n/en';
9
- import { content as fr } from './i18n/fr';
10
- import { content as de } from './i18n/de';
11
- import { content as id } from './i18n/id';
12
- import { content as it } from './i18n/it';
13
- import { content as ja } from './i18n/ja';
14
- import { content as ko } from './i18n/ko';
15
- import { content as nl } from './i18n/nl';
16
- import { content as pl } from './i18n/pl';
17
- import { content as pt } from './i18n/pt';
18
- import { content as ru } from './i18n/ru';
19
- import { content as sv } from './i18n/sv';
20
- import { content as tr } from './i18n/tr';
21
- import { content as zh } from './i18n/zh';
22
-
23
- export const llmCostCalculator: DeveloperToolEntry<LlmCostCalculatorUI> = {
24
- id: 'llm-cost-calculator',
25
- icons: {
26
- bg: 'mdi:currency-usd',
27
- fg: 'mdi:robot-outline',
28
- },
29
- i18n: {
30
- es: async () => es,
31
- en: async () => en,
32
- fr: async () => fr,
33
- de: async () => de,
34
- id: async () => id,
35
- it: async () => it,
36
- ja: async () => ja,
37
- ko: async () => ko,
38
- nl: async () => nl,
39
- pl: async () => pl,
40
- pt: async () => pt,
41
- ru: async () => ru,
42
- sv: async () => sv,
43
- tr: async () => tr,
44
- zh: async () => zh,
45
- },
46
- };
47
-
48
-
1
+ import { llmCostCalculator } from './entry';
2
+ export * from './entry';
49
3
  export const LLM_COST_CALCULATOR_TOOL: ToolDefinition = {
50
4
  entry: llmCostCalculator,
51
5
  Component: () => import('./component.astro'),