@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.
@@ -0,0 +1,365 @@
1
+ .tebas-container {
2
+ --tebas-primary: #f43f5e;
3
+ --tebas-secondary: #8b5cf6;
4
+ --tebas-success: #10b981;
5
+ --tebas-neutral: #64748b;
6
+ --tebas-bg: #f8fafc;
7
+ --tebas-card: #fff;
8
+ --tebas-border: #e2e8f0;
9
+ --tebas-text: #0f172a;
10
+ --tebas-text-muted: #64748b;
11
+ --tebas-console-bg: #0c0c0c;
12
+
13
+ width: 100%;
14
+ max-width: 42rem;
15
+ margin: 0 auto;
16
+ padding: 1rem;
17
+ }
18
+
19
+ .theme-dark .tebas-container {
20
+ --tebas-bg: #020617;
21
+ --tebas-card: #0f172a;
22
+ --tebas-border: #1e293b;
23
+ --tebas-text: #f1f5f9;
24
+ --tebas-text-muted: #94a3b8;
25
+ }
26
+
27
+ .tebas-card {
28
+ background: var(--tebas-card);
29
+ border-radius: 2rem;
30
+ border: 1px solid var(--tebas-border);
31
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
32
+ position: relative;
33
+ overflow: hidden;
34
+ }
35
+
36
+ .tebas-card-bg-icon {
37
+ position: absolute;
38
+ top: 0;
39
+ right: 0;
40
+ padding: 1.5rem;
41
+ opacity: 0.05;
42
+ pointer-events: none;
43
+ }
44
+
45
+ .tebas-card-bg-icon [data-icon] {
46
+ width: 8rem;
47
+ height: 8rem;
48
+ }
49
+
50
+ .tebas-content {
51
+ padding: 2.5rem;
52
+ display: flex;
53
+ flex-direction: column;
54
+ gap: 2rem;
55
+ }
56
+
57
+ .tebas-status-view {
58
+ min-height: 14rem;
59
+ display: flex;
60
+ align-items: center;
61
+ justify-content: center;
62
+ text-align: center;
63
+ }
64
+
65
+ .tebas-loading {
66
+ display: flex;
67
+ flex-direction: column;
68
+ align-items: center;
69
+ gap: 1.5rem;
70
+ }
71
+
72
+ .tebas-spinner-wrapper {
73
+ position: relative;
74
+ }
75
+
76
+ .tebas-spinner {
77
+ width: 5rem;
78
+ height: 5rem;
79
+ background: var(--tebas-card);
80
+ border: 3px solid var(--tebas-border);
81
+ border-radius: 50%;
82
+ display: flex;
83
+ align-items: center;
84
+ justify-content: center;
85
+ z-index: 10;
86
+ position: relative;
87
+ }
88
+
89
+ .tebas-spinner [data-icon] {
90
+ width: 2.5rem;
91
+ height: 2.5rem;
92
+ color: var(--tebas-secondary);
93
+ }
94
+
95
+ .tebas-ping-ring {
96
+ position: absolute;
97
+ inset: 0;
98
+ background: var(--tebas-secondary);
99
+ border-radius: 50%;
100
+ opacity: 0.2;
101
+ animation: tebas-ping 1.5s cubic-bezier(0, 0, 0.2, 1) infinite;
102
+ }
103
+
104
+ @keyframes tebas-ping {
105
+ 75%,
106
+ 100% {
107
+ transform: scale(2);
108
+ opacity: 0;
109
+ }
110
+ }
111
+
112
+ .tebas-title-main {
113
+ margin: 0;
114
+ font-size: 1.5rem;
115
+ font-weight: 900;
116
+ color: var(--tebas-text);
117
+ text-transform: uppercase;
118
+ font-style: italic;
119
+ }
120
+
121
+ .tebas-subtitle-pulse {
122
+ margin: 0.5rem 0 0;
123
+ color: var(--tebas-text-muted);
124
+ font-weight: 500;
125
+ animation: tebas-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
126
+ }
127
+
128
+ @keyframes tebas-pulse {
129
+ 0%, 100% { opacity: 1; }
130
+ 50% { opacity: 0.5; }
131
+ }
132
+
133
+ .tebas-result-box {
134
+ width: 100%;
135
+ padding: 1.5rem;
136
+ border-radius: 1.25rem;
137
+ display: flex;
138
+ flex-direction: column;
139
+ gap: 1.5rem;
140
+ align-items: center;
141
+ border-width: 2px;
142
+ border-style: solid;
143
+ animation: tebas-slide-up 0.5s ease-out;
144
+ }
145
+
146
+ @media (min-width: 640px) {
147
+ .tebas-result-box {
148
+ flex-direction: row;
149
+ text-align: left;
150
+ }
151
+ }
152
+
153
+ @keyframes tebas-slide-up {
154
+ from {
155
+ opacity: 0;
156
+ transform: translateY(20px);
157
+ }
158
+ to {
159
+ opacity: 1;
160
+ transform: translateY(0);
161
+ }
162
+ }
163
+
164
+ .tebas-result-box.blocked {
165
+ background: rgba(244, 63, 94, 0.05);
166
+ border-color: var(--tebas-primary);
167
+ box-shadow: 0 0 30px rgba(244, 63, 94, 0.2);
168
+ }
169
+
170
+ .tebas-result-box.success {
171
+ background: rgba(16, 185, 129, 0.05);
172
+ border-color: var(--tebas-success);
173
+ }
174
+
175
+ .tebas-result-box.error {
176
+ background: rgba(100, 116, 139, 0.05);
177
+ border-color: var(--tebas-neutral);
178
+ }
179
+
180
+ .tebas-result-icon-badge {
181
+ position: relative;
182
+ flex-shrink: 0;
183
+ }
184
+
185
+ .tebas-result-main-icon {
186
+ width: 5rem;
187
+ height: 5rem;
188
+ border-radius: 1rem;
189
+ padding: 0.75rem;
190
+ background: var(--tebas-card);
191
+ border: 1px solid var(--tebas-border);
192
+ }
193
+
194
+ .blocked .tebas-result-main-icon { color: var(--tebas-primary); }
195
+ .success .tebas-result-main-icon { color: var(--tebas-success); }
196
+ .error .tebas-result-main-icon { color: var(--tebas-neutral); }
197
+
198
+ .tebas-badge-overlay {
199
+ position: absolute;
200
+ top: -0.5rem;
201
+ right: -0.5rem;
202
+ background: var(--tebas-primary);
203
+ color: white;
204
+ padding: 0.25rem;
205
+ border-radius: 50%;
206
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
207
+ }
208
+
209
+ .success .tebas-badge-overlay {
210
+ background: var(--tebas-success);
211
+ }
212
+
213
+ .tebas-result-status {
214
+ margin: 0;
215
+ font-size: 1.5rem;
216
+ font-weight: 900;
217
+ text-transform: uppercase;
218
+ font-style: italic;
219
+ transform: skew(-5deg);
220
+ }
221
+
222
+ .blocked .tebas-result-status { color: var(--tebas-primary); }
223
+ .success .tebas-result-status { color: var(--tebas-success); }
224
+
225
+ .tebas-result-details {
226
+ margin-top: 0.5rem;
227
+ display: flex;
228
+ flex-direction: column;
229
+ gap: 0.25rem;
230
+ }
231
+
232
+ .tebas-font-bold {
233
+ font-weight: 700;
234
+ }
235
+
236
+ .tebas-text-sm {
237
+ margin: 0;
238
+ font-size: 0.875rem;
239
+ opacity: 0.8;
240
+ }
241
+
242
+ .tebas-actions {
243
+ display: flex;
244
+ justify-content: center;
245
+ border-top: 1px solid var(--tebas-border);
246
+ padding-top: 1.5rem;
247
+ }
248
+
249
+ .tebas-btn {
250
+ background: var(--tebas-text);
251
+ color: var(--tebas-card);
252
+ border: none;
253
+ padding: 0.75rem 1.5rem;
254
+ border-radius: 0.75rem;
255
+ font-weight: 700;
256
+ display: flex;
257
+ align-items: center;
258
+ gap: 0.5rem;
259
+ cursor: pointer;
260
+ transition: transform 0.2s;
261
+ }
262
+
263
+ .theme-dark .tebas-btn {
264
+ background: #fff;
265
+ color: #000;
266
+ }
267
+
268
+ .tebas-btn:hover { transform: scale(1.05); }
269
+
270
+ .tebas-note {
271
+ background: rgba(245, 158, 11, 0.05);
272
+ border: 1px solid rgba(245, 158, 11, 0.2);
273
+ border-radius: 1.25rem;
274
+ padding: 1.25rem;
275
+ display: flex;
276
+ gap: 1rem;
277
+ align-items: flex-start;
278
+ }
279
+
280
+ .tebas-note-icon {
281
+ width: 1.5rem;
282
+ height: 1.5rem;
283
+ color: #f59e0b;
284
+ flex-shrink: 0;
285
+ }
286
+
287
+ .tebas-note-label {
288
+ display: block;
289
+ font-weight: 900;
290
+ text-transform: uppercase;
291
+ font-size: 0.75rem;
292
+ color: #b45309;
293
+ margin-bottom: 0.25rem;
294
+ }
295
+
296
+ .tebas-note-text {
297
+ margin: 0;
298
+ font-size: 0.8125rem;
299
+ line-height: 1.5;
300
+ color: var(--tebas-text-muted);
301
+ font-weight: 500;
302
+ }
303
+
304
+ .tebas-console {
305
+ background: var(--tebas-console-bg);
306
+ padding: 1.25rem;
307
+ font-size: 0.75rem;
308
+ color: #94a3b8;
309
+ }
310
+
311
+ .tebas-console-header {
312
+ display: flex;
313
+ justify-content: space-between;
314
+ align-items: center;
315
+ margin-bottom: 0.75rem;
316
+ opacity: 0.5;
317
+ }
318
+
319
+ .tebas-console-dots {
320
+ display: flex;
321
+ gap: 0.4rem;
322
+ }
323
+
324
+ .tebas-console-dots span {
325
+ width: 0.6rem;
326
+ height: 0.6rem;
327
+ border-radius: 50%;
328
+ background: #334155;
329
+ }
330
+
331
+ .tebas-console-body {
332
+ height: 8rem;
333
+ overflow-y: auto;
334
+ display: flex;
335
+ flex-direction: column;
336
+ gap: 0.25rem;
337
+ }
338
+
339
+ .tebas-log-line {
340
+ border-left: 2px solid transparent;
341
+ padding-left: 0.5rem;
342
+ }
343
+
344
+ .tebas-log-time {
345
+ opacity: 0.3;
346
+ margin-right: 0.5rem;
347
+ }
348
+
349
+ .tebas-log-error {
350
+ color: #f87171;
351
+ background: rgba(127, 29, 29, 0.2);
352
+ border-left-color: #7f1d1d;
353
+ }
354
+
355
+ .tebas-log-success {
356
+ color: #34d399;
357
+ background: rgba(6, 78, 59, 0.2);
358
+ border-left-color: #064e3b;
359
+ }
360
+
361
+ .tebas-log-neutral {
362
+ color: #94a3b8;
363
+ }
364
+
365
+ .hidden { display: none; }
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 { SORTEO_TOOL } from './tool/sorteo/index';
3
4
  import { TEBAS_CHECK_TOOL } from './tool/tebasCheck/index';
@@ -7,4 +8,3 @@ export const ALL_TOOLS: ToolDefinition[] = [
7
8
  TEBAS_CHECK_TOOL,
8
9
  ];
9
10
 
10
- export const ALL_ENTRIES = ALL_TOOLS.map(t => t.entry);