@jjlmoya/utils-streaming 1.8.0 → 1.10.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.
@@ -1,34 +1,5 @@
1
- import type { StreamingToolEntry, ToolLocaleContent, ToolDefinition } from '../../types';
2
- import type { SorteoUI } from './ui';
3
-
4
- export type SorteoLocaleContent = ToolLocaleContent<SorteoUI>;
5
-
6
- export const sorteo: StreamingToolEntry<SorteoUI> = {
7
- id: 'sorteo',
8
- icons: {
9
- bg: 'mdi:ticket',
10
- fg: 'mdi:account-group',
11
- },
12
- i18n: {
13
- es: () => import('./i18n/es').then((m) => m.content),
14
- en: () => import('./i18n/en').then((m) => m.content),
15
- fr: () => import('./i18n/fr').then((m) => m.content),
16
- de: () => import('./i18n/de').then((m) => m.content),
17
- id: () => import('./i18n/id').then((m) => m.content),
18
- it: () => import('./i18n/it').then((m) => m.content),
19
- ja: () => import('./i18n/ja').then((m) => m.content),
20
- ko: () => import('./i18n/ko').then((m) => m.content),
21
- nl: () => import('./i18n/nl').then((m) => m.content),
22
- pl: () => import('./i18n/pl').then((m) => m.content),
23
- pt: () => import('./i18n/pt').then((m) => m.content),
24
- ru: () => import('./i18n/ru').then((m) => m.content),
25
- sv: () => import('./i18n/sv').then((m) => m.content),
26
- tr: () => import('./i18n/tr').then((m) => m.content),
27
- zh: () => import('./i18n/zh').then((m) => m.content),
28
- },
29
- };
30
-
31
-
1
+ import { sorteo } from './entry';
2
+ export * from './entry';
32
3
  export const SORTEO_TOOL: ToolDefinition = {
33
4
  entry: sorteo,
34
5
  Component: () => import('./component.astro'),
@@ -216,370 +216,3 @@ const ui = (rawUi ?? {}) as TebasCheckUI;
216
216
  els.retryBtn?.addEventListener('click', runDiagnostic);
217
217
  </script>
218
218
 
219
- <style is:global>
220
- .tebas-container {
221
- --tebas-primary: #f43f5e;
222
- --tebas-secondary: #8b5cf6;
223
- --tebas-success: #10b981;
224
- --tebas-neutral: #64748b;
225
- --tebas-bg: #f8fafc;
226
- --tebas-card: #fff;
227
- --tebas-border: #e2e8f0;
228
- --tebas-text: #0f172a;
229
- --tebas-text-muted: #64748b;
230
- --tebas-console-bg: #0c0c0c;
231
-
232
- width: 100%;
233
- max-width: 42rem;
234
- margin: 0 auto;
235
- padding: 1rem;
236
- }
237
-
238
- .theme-dark .tebas-container {
239
- --tebas-bg: #020617;
240
- --tebas-card: #0f172a;
241
- --tebas-border: #1e293b;
242
- --tebas-text: #f1f5f9;
243
- --tebas-text-muted: #94a3b8;
244
- }
245
-
246
- .tebas-card {
247
- background: var(--tebas-card);
248
- border-radius: 2rem;
249
- border: 1px solid var(--tebas-border);
250
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
251
- position: relative;
252
- overflow: hidden;
253
- }
254
-
255
- .tebas-card-bg-icon {
256
- position: absolute;
257
- top: 0;
258
- right: 0;
259
- padding: 1.5rem;
260
- opacity: 0.05;
261
- pointer-events: none;
262
- }
263
-
264
- .tebas-card-bg-icon [data-icon] {
265
- width: 8rem;
266
- height: 8rem;
267
- }
268
-
269
- .tebas-content {
270
- padding: 2.5rem;
271
- display: flex;
272
- flex-direction: column;
273
- gap: 2rem;
274
- }
275
-
276
- .tebas-status-view {
277
- min-height: 14rem;
278
- display: flex;
279
- align-items: center;
280
- justify-content: center;
281
- text-align: center;
282
- }
283
-
284
- .tebas-loading {
285
- display: flex;
286
- flex-direction: column;
287
- align-items: center;
288
- gap: 1.5rem;
289
- }
290
-
291
- .tebas-spinner-wrapper {
292
- position: relative;
293
- }
294
-
295
- .tebas-spinner {
296
- width: 5rem;
297
- height: 5rem;
298
- background: var(--tebas-card);
299
- border: 3px solid var(--tebas-border);
300
- border-radius: 50%;
301
- display: flex;
302
- align-items: center;
303
- justify-content: center;
304
- z-index: 10;
305
- position: relative;
306
- }
307
-
308
- .tebas-spinner [data-icon] {
309
- width: 2.5rem;
310
- height: 2.5rem;
311
- color: var(--tebas-secondary);
312
- }
313
-
314
- .tebas-ping-ring {
315
- position: absolute;
316
- inset: 0;
317
- background: var(--tebas-secondary);
318
- border-radius: 50%;
319
- opacity: 0.2;
320
- animation: tebas-ping 1.5s cubic-bezier(0, 0, 0.2, 1) infinite;
321
- }
322
-
323
- @keyframes tebas-ping {
324
- 75%,
325
- 100% {
326
- transform: scale(2);
327
- opacity: 0;
328
- }
329
- }
330
-
331
- .tebas-title-main {
332
- margin: 0;
333
- font-size: 1.5rem;
334
- font-weight: 900;
335
- color: var(--tebas-text);
336
- text-transform: uppercase;
337
- font-style: italic;
338
- }
339
-
340
- .tebas-subtitle-pulse {
341
- margin: 0.5rem 0 0;
342
- color: var(--tebas-text-muted);
343
- font-weight: 500;
344
- animation: tebas-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
345
- }
346
-
347
- @keyframes tebas-pulse {
348
- 0%, 100% { opacity: 1; }
349
- 50% { opacity: 0.5; }
350
- }
351
-
352
- .tebas-result-box {
353
- width: 100%;
354
- padding: 1.5rem;
355
- border-radius: 1.25rem;
356
- display: flex;
357
- flex-direction: column;
358
- gap: 1.5rem;
359
- align-items: center;
360
- border-width: 2px;
361
- border-style: solid;
362
- animation: tebas-slide-up 0.5s ease-out;
363
- }
364
-
365
- @media (min-width: 640px) {
366
- .tebas-result-box {
367
- flex-direction: row;
368
- text-align: left;
369
- }
370
- }
371
-
372
- @keyframes tebas-slide-up {
373
- from {
374
- opacity: 0;
375
- transform: translateY(20px);
376
- }
377
- to {
378
- opacity: 1;
379
- transform: translateY(0);
380
- }
381
- }
382
-
383
- .tebas-result-box.blocked {
384
- background: rgba(244, 63, 94, 0.05);
385
- border-color: var(--tebas-primary);
386
- box-shadow: 0 0 30px rgba(244, 63, 94, 0.2);
387
- }
388
-
389
- .tebas-result-box.success {
390
- background: rgba(16, 185, 129, 0.05);
391
- border-color: var(--tebas-success);
392
- }
393
-
394
- .tebas-result-box.error {
395
- background: rgba(100, 116, 139, 0.05);
396
- border-color: var(--tebas-neutral);
397
- }
398
-
399
- .tebas-result-icon-badge {
400
- position: relative;
401
- flex-shrink: 0;
402
- }
403
-
404
- .tebas-result-main-icon {
405
- width: 5rem;
406
- height: 5rem;
407
- border-radius: 1rem;
408
- padding: 0.75rem;
409
- background: var(--tebas-card);
410
- border: 1px solid var(--tebas-border);
411
- }
412
-
413
- .blocked .tebas-result-main-icon { color: var(--tebas-primary); }
414
- .success .tebas-result-main-icon { color: var(--tebas-success); }
415
- .error .tebas-result-main-icon { color: var(--tebas-neutral); }
416
-
417
- .tebas-badge-overlay {
418
- position: absolute;
419
- top: -0.5rem;
420
- right: -0.5rem;
421
- background: var(--tebas-primary);
422
- color: white;
423
- padding: 0.25rem;
424
- border-radius: 50%;
425
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
426
- }
427
-
428
- .success .tebas-badge-overlay {
429
- background: var(--tebas-success);
430
- }
431
-
432
- .tebas-result-status {
433
- margin: 0;
434
- font-size: 1.5rem;
435
- font-weight: 900;
436
- text-transform: uppercase;
437
- font-style: italic;
438
- transform: skew(-5deg);
439
- }
440
-
441
- .blocked .tebas-result-status { color: var(--tebas-primary); }
442
- .success .tebas-result-status { color: var(--tebas-success); }
443
-
444
- .tebas-result-details {
445
- margin-top: 0.5rem;
446
- display: flex;
447
- flex-direction: column;
448
- gap: 0.25rem;
449
- }
450
-
451
- .tebas-font-bold {
452
- font-weight: 700;
453
- }
454
-
455
- .tebas-text-sm {
456
- margin: 0;
457
- font-size: 0.875rem;
458
- opacity: 0.8;
459
- }
460
-
461
- .tebas-actions {
462
- display: flex;
463
- justify-content: center;
464
- border-top: 1px solid var(--tebas-border);
465
- padding-top: 1.5rem;
466
- }
467
-
468
- .tebas-btn {
469
- background: var(--tebas-text);
470
- color: var(--tebas-card);
471
- border: none;
472
- padding: 0.75rem 1.5rem;
473
- border-radius: 0.75rem;
474
- font-weight: 700;
475
- display: flex;
476
- align-items: center;
477
- gap: 0.5rem;
478
- cursor: pointer;
479
- transition: transform 0.2s;
480
- }
481
-
482
- .theme-dark .tebas-btn {
483
- background: #fff;
484
- color: #000;
485
- }
486
-
487
- .tebas-btn:hover { transform: scale(1.05); }
488
-
489
- .tebas-note {
490
- background: rgba(245, 158, 11, 0.05);
491
- border: 1px solid rgba(245, 158, 11, 0.2);
492
- border-radius: 1.25rem;
493
- padding: 1.25rem;
494
- display: flex;
495
- gap: 1rem;
496
- align-items: flex-start;
497
- }
498
-
499
- .tebas-note-icon {
500
- width: 1.5rem;
501
- height: 1.5rem;
502
- color: #f59e0b;
503
- flex-shrink: 0;
504
- }
505
-
506
- .tebas-note-label {
507
- display: block;
508
- font-weight: 900;
509
- text-transform: uppercase;
510
- font-size: 0.75rem;
511
- color: #b45309;
512
- margin-bottom: 0.25rem;
513
- }
514
-
515
- .tebas-note-text {
516
- margin: 0;
517
- font-size: 0.8125rem;
518
- line-height: 1.5;
519
- color: var(--tebas-text-muted);
520
- font-weight: 500;
521
- }
522
-
523
- .tebas-console {
524
- background: var(--tebas-console-bg);
525
- padding: 1.25rem;
526
- font-size: 0.75rem;
527
- color: #94a3b8;
528
- }
529
-
530
- .tebas-console-header {
531
- display: flex;
532
- justify-content: space-between;
533
- align-items: center;
534
- margin-bottom: 0.75rem;
535
- opacity: 0.5;
536
- }
537
-
538
- .tebas-console-dots {
539
- display: flex;
540
- gap: 0.4rem;
541
- }
542
-
543
- .tebas-console-dots span {
544
- width: 0.6rem;
545
- height: 0.6rem;
546
- border-radius: 50%;
547
- background: #334155;
548
- }
549
-
550
- .tebas-console-body {
551
- height: 8rem;
552
- overflow-y: auto;
553
- display: flex;
554
- flex-direction: column;
555
- gap: 0.25rem;
556
- }
557
-
558
- .tebas-log-line {
559
- border-left: 2px solid transparent;
560
- padding-left: 0.5rem;
561
- }
562
-
563
- .tebas-log-time {
564
- opacity: 0.3;
565
- margin-right: 0.5rem;
566
- }
567
-
568
- .tebas-log-error {
569
- color: #f87171;
570
- background: rgba(127, 29, 29, 0.2);
571
- border-left-color: #7f1d1d;
572
- }
573
-
574
- .tebas-log-success {
575
- color: #34d399;
576
- background: rgba(6, 78, 59, 0.2);
577
- border-left-color: #064e3b;
578
- }
579
-
580
- .tebas-log-neutral {
581
- color: #94a3b8;
582
- }
583
-
584
- .hidden { display: none; }
585
- </style>
@@ -0,0 +1,29 @@
1
+ import type { StreamingToolEntry, ToolLocaleContent } from '../../types';
2
+ import type { TebasCheckUI } from './types';
3
+
4
+ export type TebasCheckLocaleContent = ToolLocaleContent<TebasCheckUI>;
5
+
6
+ export const tebasCheck: StreamingToolEntry<TebasCheckUI> = {
7
+ id: 'tebas-check',
8
+ icons: {
9
+ bg: 'mdi:shield-search',
10
+ fg: 'mdi:security',
11
+ },
12
+ i18n: {
13
+ es: () => import('./i18n/es').then((m) => m.content),
14
+ en: () => import('./i18n/en').then((m) => m.content),
15
+ fr: () => import('./i18n/fr').then((m) => m.content),
16
+ de: () => import('./i18n/de').then((m) => m.content),
17
+ id: () => import('./i18n/id').then((m) => m.content),
18
+ it: () => import('./i18n/it').then((m) => m.content),
19
+ ja: () => import('./i18n/ja').then((m) => m.content),
20
+ ko: () => import('./i18n/ko').then((m) => m.content),
21
+ nl: () => import('./i18n/nl').then((m) => m.content),
22
+ pl: () => import('./i18n/pl').then((m) => m.content),
23
+ pt: () => import('./i18n/pt').then((m) => m.content),
24
+ ru: () => import('./i18n/ru').then((m) => m.content),
25
+ sv: () => import('./i18n/sv').then((m) => m.content),
26
+ tr: () => import('./i18n/tr').then((m) => m.content),
27
+ zh: () => import('./i18n/zh').then((m) => m.content),
28
+ },
29
+ };
@@ -1,34 +1,5 @@
1
- import type { StreamingToolEntry, ToolLocaleContent, ToolDefinition } from '../../types';
2
- import type { TebasCheckUI } from './types';
3
-
4
- export type TebasCheckLocaleContent = ToolLocaleContent<TebasCheckUI>;
5
-
6
- export const tebasCheck: StreamingToolEntry<TebasCheckUI> = {
7
- id: 'tebas-check',
8
- icons: {
9
- bg: 'mdi:shield-search',
10
- fg: 'mdi:security',
11
- },
12
- i18n: {
13
- es: () => import('./i18n/es').then((m) => m.content),
14
- en: () => import('./i18n/en').then((m) => m.content),
15
- fr: () => import('./i18n/fr').then((m) => m.content),
16
- de: () => import('./i18n/de').then((m) => m.content),
17
- id: () => import('./i18n/id').then((m) => m.content),
18
- it: () => import('./i18n/it').then((m) => m.content),
19
- ja: () => import('./i18n/ja').then((m) => m.content),
20
- ko: () => import('./i18n/ko').then((m) => m.content),
21
- nl: () => import('./i18n/nl').then((m) => m.content),
22
- pl: () => import('./i18n/pl').then((m) => m.content),
23
- pt: () => import('./i18n/pt').then((m) => m.content),
24
- ru: () => import('./i18n/ru').then((m) => m.content),
25
- sv: () => import('./i18n/sv').then((m) => m.content),
26
- tr: () => import('./i18n/tr').then((m) => m.content),
27
- zh: () => import('./i18n/zh').then((m) => m.content),
28
- },
29
- };
30
-
31
-
1
+ import { tebasCheck } from './entry';
2
+ export * from './entry';
32
3
  export const TEBAS_CHECK_TOOL: ToolDefinition = {
33
4
  entry: tebasCheck,
34
5
  Component: () => import('./component.astro'),