@vicaniddouglas/js_aide 1.12.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.
package/demo/style.css ADDED
@@ -0,0 +1,541 @@
1
+ :root {
2
+ --primary: #066088;
3
+ --primary-light: #71a3c1;
4
+ --primary-hover: #135f7e;
5
+ --primary-dark: #044a6b;
6
+ --danger: #ef4444;
7
+ --danger-hover: #dc2626;
8
+ --danger-dark: #b91c1c;
9
+ --accent: #0c7390;
10
+ --grey-text: #455a64;
11
+ --grey-border: #c1c5cb;
12
+
13
+ --bg-main: #fcfdfe;
14
+ --bg-sidebar: #ffffff;
15
+ --text-main: #06111a;
16
+ --text-muted: #455a64;
17
+ --border: #c1c5cb88;
18
+ --sidebar-width: 300px;
19
+ }
20
+
21
+ * { box-sizing: border-box; }
22
+
23
+ body {
24
+ font-family: 'Inter', -apple-system, sans-serif;
25
+ margin: 0;
26
+ color: var(--text-main);
27
+ background-color: var(--bg-main);
28
+ line-height: 1.6;
29
+ }
30
+
31
+ .app-container {
32
+ display: flex;
33
+ min-height: 100vh;
34
+ }
35
+
36
+ /* Sidebar */
37
+ .sidebar {
38
+ width: var(--sidebar-width);
39
+ background: var(--bg-sidebar);
40
+ border-right: 1px solid var(--border);
41
+ display: flex;
42
+ flex-direction: column;
43
+ position: fixed;
44
+ height: 100vh;
45
+ z-index: 100;
46
+ overflow-y: auto;
47
+ }
48
+
49
+ .sidebar-header {
50
+ padding: 32px 24px 24px 24px;
51
+ }
52
+
53
+ .brand-group {
54
+ display: flex;
55
+ align-items: center;
56
+ gap: 12px;
57
+ }
58
+
59
+ .logo {
60
+ font-size: 1.5rem;
61
+ font-weight: 800;
62
+ color: var(--primary);
63
+ letter-spacing: -1px;
64
+ }
65
+
66
+ .version {
67
+ font-size: 0.7rem;
68
+ font-weight: 700;
69
+ background: #71a3c122;
70
+ color: var(--primary);
71
+ padding: 2px 10px;
72
+ border-radius: 99px;
73
+ height: 22px;
74
+ display: flex;
75
+ align-items: center;
76
+ }
77
+
78
+ .sidebar-divider {
79
+ height: 1px;
80
+ margin: 0 24px 16px 24px;
81
+ background: linear-gradient(to right, var(--grey-border), transparent);
82
+ opacity: 0.5;
83
+ }
84
+
85
+ .sidebar-nav {
86
+ flex: 1;
87
+ padding: 0 16px 40px 16px;
88
+ }
89
+
90
+ .nav-item {
91
+ display: flex;
92
+ align-items: center;
93
+ padding: 12px 16px;
94
+ color: var(--text-main);
95
+ text-decoration: none;
96
+ border-radius: 10px;
97
+ font-weight: 600;
98
+ margin-bottom: 4px;
99
+ transition: all 0.2s;
100
+ font-size: 0.95rem;
101
+ }
102
+
103
+ .nav-item:hover {
104
+ background: #f1f5f9;
105
+ }
106
+
107
+ .nav-item.active {
108
+ background: var(--primary);
109
+ color: #ffffff;
110
+ }
111
+
112
+ .nav-item.active svg {
113
+ color: #ffffff !important;
114
+ }
115
+
116
+ .nav-item .icon {
117
+ margin-right: 12px;
118
+ display: flex;
119
+ width: 20px;
120
+ height: 20px;
121
+ }
122
+
123
+ .nav-item .icon svg {
124
+ width: 20px;
125
+ height: 20px;
126
+ }
127
+
128
+ /* Dropdown / Group Section */
129
+ .nav-group {
130
+ margin-top: 16px;
131
+ margin-bottom: 8px;
132
+ }
133
+
134
+ .nav-group-header {
135
+ padding: 12px 16px;
136
+ font-size: 0.75rem;
137
+ font-weight: 800;
138
+ text-transform: uppercase;
139
+ color: var(--grey-text);
140
+ letter-spacing: 1px;
141
+ cursor: pointer;
142
+ display: flex;
143
+ align-items: center;
144
+ justify-content: space-between;
145
+ }
146
+
147
+ .nav-group-header:hover {
148
+ color: var(--primary);
149
+ }
150
+
151
+ .nav-group-content {
152
+ display: block; /* Default to open for docs */
153
+ padding-left: 12px;
154
+ }
155
+
156
+ .sub-nav-item {
157
+ display: flex;
158
+ padding: 8px 16px;
159
+ font-size: 0.9rem;
160
+ color: var(--text-muted);
161
+ text-decoration: none;
162
+ border-radius: 8px;
163
+ margin-bottom: 2px;
164
+ font-weight: 500;
165
+ }
166
+
167
+ .sub-nav-item:hover {
168
+ background: #f1f5f9;
169
+ color: var(--primary);
170
+ }
171
+
172
+ .sub-nav-item.active {
173
+ color: var(--primary);
174
+ font-weight: 700;
175
+ background: #71a3c111;
176
+ }
177
+
178
+ .sidebar-footer {
179
+ padding: 24px;
180
+ border-top: 1px solid var(--border);
181
+ font-size: 0.8rem;
182
+ color: var(--text-muted);
183
+ background: #fcfdfe;
184
+ }
185
+
186
+ /* Main */
187
+ .main-wrapper {
188
+ margin-left: var(--sidebar-width);
189
+ flex: 1;
190
+ }
191
+
192
+ .main-header {
193
+ height: 72px;
194
+ background: rgba(252, 253, 254, 0.8);
195
+ backdrop-filter: blur(12px);
196
+ border-bottom: 1px solid var(--border);
197
+ display: flex;
198
+ align-items: center;
199
+ justify-content: space-between;
200
+ padding: 0 48px;
201
+ position: sticky;
202
+ top: 0;
203
+ z-index: 90;
204
+ }
205
+
206
+ .breadcrumb { font-size: 0.9rem; font-weight: 500; color: var(--grey-text); }
207
+ #current-view-title { color: var(--primary); font-weight: 700; }
208
+
209
+ .content-area {
210
+ padding: 64px 64px;
211
+ width: 100%;
212
+ }
213
+
214
+ .content-view {
215
+ display: none;
216
+ animation: fadeIn 0.4s ease-out;
217
+ }
218
+
219
+ .content-view.active {
220
+ display: block;
221
+ }
222
+
223
+ @keyframes fadeIn {
224
+ from { opacity: 0; transform: translateY(8px); }
225
+ to { opacity: 1; transform: translateY(0); }
226
+ }
227
+
228
+ h1 { font-size: 2.75rem; font-weight: 900; letter-spacing: -1.5px; margin-bottom: 20px; color: var(--primary); }
229
+ .info-icon { width: 32px; height: 32px; color: var(--primary); margin-bottom: 16px; }
230
+ h3 { font-size: 1.35rem; color: var(--primary); margin-top: 40px; margin-bottom: 16px; border-bottom: 2px solid #deebf2; padding-bottom: 8px; }
231
+
232
+ .lead { font-size: 1.25rem; color: var(--text-muted); margin-bottom: 48px; }
233
+
234
+ /* Components */
235
+ .grid {
236
+ display: grid;
237
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
238
+ gap: 32px;
239
+ }
240
+
241
+ /* Accordion System */
242
+ .accordion-container {
243
+ display: flex;
244
+ flex-direction: column;
245
+ gap: 12px;
246
+ }
247
+
248
+ .accordion-item {
249
+ background: white;
250
+ border-radius: 12px;
251
+ border: 1px solid var(--border);
252
+ overflow: hidden;
253
+ transition: all 0.3s ease;
254
+ }
255
+
256
+ .accordion-item.active {
257
+ border-color: var(--primary-light);
258
+ box-shadow: 0 10px 15px -3px rgba(113, 163, 193, 0.1);
259
+ }
260
+
261
+ .accordion-header {
262
+ padding: 20px 24px;
263
+ display: flex;
264
+ align-items: center;
265
+ justify-content: space-between;
266
+ cursor: pointer;
267
+ background: white;
268
+ transition: background 0.2s;
269
+ }
270
+
271
+ .accordion-header:hover {
272
+ background: #f8fafc;
273
+ }
274
+
275
+ .brand-info {
276
+ display: flex;
277
+ align-items: center;
278
+ gap: 20px;
279
+ }
280
+
281
+ .brand-info .info-icon {
282
+ width: 32px;
283
+ height: 32px;
284
+ margin-bottom: 0;
285
+ color: var(--primary);
286
+ }
287
+
288
+ .header-text {
289
+ display: flex;
290
+ align-items: center;
291
+ gap: 12px;
292
+ }
293
+
294
+ .header-text h3 {
295
+ margin: 0;
296
+ font-size: 1.1rem;
297
+ font-weight: 700;
298
+ border: none;
299
+ padding: 0;
300
+ }
301
+
302
+ .header-text .badge {
303
+ position: static;
304
+ font-size: 0.6rem;
305
+ }
306
+
307
+ .accordion-arrow {
308
+ color: var(--grey-border);
309
+ font-size: 1.2rem;
310
+ font-weight: bold;
311
+ }
312
+
313
+ .accordion-content {
314
+ padding: 0 24px 24px 76px; /* Offset to align with text, not icon */
315
+ max-height: 0;
316
+ opacity: 0;
317
+ transition: all 0.3s ease;
318
+ overflow: hidden;
319
+ }
320
+
321
+ .accordion-item.active .accordion-content {
322
+ max-height: 500px;
323
+ opacity: 1;
324
+ padding-top: 8px;
325
+ }
326
+
327
+ .spec-list {
328
+ margin: 12px 0 0 0;
329
+ padding: 0;
330
+ list-style: none;
331
+ display: flex;
332
+ flex-wrap: wrap;
333
+ gap: 8px;
334
+ }
335
+
336
+ .spec-list li {
337
+ font-size: 0.75rem;
338
+ font-weight: 600;
339
+ color: var(--primary);
340
+ background: #71a3c115;
341
+ padding: 2px 10px;
342
+ border-radius: 99px;
343
+ }
344
+ .info-icon svg { width: 100%; height: 100%; }
345
+
346
+ /* Configuration Panel */
347
+ .config-panel {
348
+ background: #f1f5f9;
349
+ border-color: var(--grey-border);
350
+ margin-bottom: 40px;
351
+ }
352
+
353
+ .panel-header {
354
+ display: flex;
355
+ align-items: center;
356
+ gap: 12px;
357
+ margin-bottom: 24px;
358
+ }
359
+
360
+ .panel-header h3 {
361
+ margin: 0;
362
+ font-size: 1.1rem;
363
+ color: var(--primary);
364
+ border: none;
365
+ }
366
+
367
+ .config-grid {
368
+ display: grid;
369
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
370
+ gap: 24px;
371
+ }
372
+
373
+ .input-group {
374
+ display: flex;
375
+ flex-direction: column;
376
+ gap: 8px;
377
+ }
378
+
379
+ .input-group label {
380
+ font-size: 0.85rem;
381
+ font-weight: 700;
382
+ color: var(--text-main);
383
+ }
384
+
385
+ .input-group input[type="number"] {
386
+ padding: 10px 14px;
387
+ border: 1px solid var(--grey-border);
388
+ border-radius: 8px;
389
+ font-family: 'Inter', sans-serif;
390
+ font-size: 0.9rem;
391
+ font-weight: 600;
392
+ }
393
+
394
+ .input-group small {
395
+ font-size: 0.7rem;
396
+ color: var(--text-muted);
397
+ }
398
+
399
+ /* Demo UI Refinements */
400
+ .demo-card {
401
+ background: white;
402
+ padding: 32px;
403
+ border-radius: 16px;
404
+ border: 1px solid var(--border);
405
+ margin-bottom: 24px;
406
+ transition: box-shadow 0.3s;
407
+ }
408
+
409
+ .demo-card:hover {
410
+ box-shadow: 0 8px 24px -10px rgba(0,0,0,0.1);
411
+ }
412
+
413
+ .demo-actions {
414
+ display: flex;
415
+ align-items: center;
416
+ gap: 16px;
417
+ }
418
+
419
+ /* Priority Queue Styles */
420
+ .queue-monitor {
421
+ background: #0f172a;
422
+ padding: 4px 12px;
423
+ border-radius: 8px;
424
+ color: white;
425
+ font-size: 0.75rem;
426
+ font-weight: 700;
427
+ }
428
+
429
+ .queue-monitor .pending-count { color: #facc15; margin-left: 8px; }
430
+
431
+ .queue-log-area {
432
+ margin-top: 20px;
433
+ padding: 16px;
434
+ background: #f8fafc;
435
+ border: 1px solid var(--grey-border);
436
+ border-radius: 12px;
437
+ height: 150px;
438
+ overflow-y: auto;
439
+ display: flex;
440
+ flex-direction: column;
441
+ gap: 8px;
442
+ }
443
+
444
+ .queue-item {
445
+ font-size: 0.7rem;
446
+ padding: 4px 12px;
447
+ background: white;
448
+ border-radius: 6px;
449
+ border-left: 3px solid var(--grey-border);
450
+ display: flex;
451
+ justify-content: space-between;
452
+ align-items: center;
453
+ }
454
+
455
+ .queue-item.high { border-left-color: #ef4444; }
456
+ .queue-item.low { border-left-color: #3b82f6; }
457
+ .queue-item.complete { opacity: 0.5; background: #f1f5f9; }
458
+
459
+ /* Dashboard Buttons */
460
+ .btn-primary, .btn-secondary, .btn-danger {
461
+ padding: 12px 24px;
462
+ border: none;
463
+ border-radius: 10px;
464
+ font-family: 'Inter', sans-serif;
465
+ font-weight: 700;
466
+ font-size: 0.9rem;
467
+ cursor: pointer;
468
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
469
+ box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1);
470
+ }
471
+
472
+ .btn-primary { background: var(--primary); color: white; }
473
+ .btn-primary:hover { background: var(--primary-dark); transform: scale(1.02); }
474
+
475
+ .btn-secondary { background: #e2e8f0; color: #475569; }
476
+ .btn-secondary:hover { background: #cbd5e1; transform: scale(1.02); }
477
+
478
+ .btn-danger { background: #ef4444; color: white; }
479
+ .btn-danger:hover { background: #dc2626; transform: scale(1.02); }
480
+
481
+ .btn-primary:active, .btn-secondary:active, .btn-danger:active { transform: scale(0.98); }
482
+
483
+ /* Syntax Highlighting */
484
+ .code-block pre { margin: 0; }
485
+ .code-block code { font-family: inherit; }
486
+
487
+ .token-comment { color: #8b949e; font-style: italic; }
488
+ .token-keyword { color: #ff7b72; font-weight: 700; }
489
+ .token-string { color: #a5d6ff; }
490
+ .token-function { color: #d2a8ff; }
491
+ .token-operator { color: #ff7b72; }
492
+ .token-number { color: #79c0ff; }
493
+ .token-boolean { color: #79c0ff; }
494
+ .token-class { color: #ffa657; }
495
+
496
+ .docs-section h3 {
497
+ margin-top: 48px;
498
+ font-size: 1.25rem;
499
+ color: var(--primary);
500
+ border-bottom: 2px solid #deebf2;
501
+ padding-bottom: 12px;
502
+ }
503
+
504
+ .code-block {
505
+ background: #06111a;
506
+ color: #f1f5f9;
507
+ padding: 24px;
508
+ border-radius: 16px;
509
+ margin: 24px 0;
510
+ font-family: 'Fira Code', monospace;
511
+ font-size: 0.95rem;
512
+ box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);
513
+ }
514
+
515
+ /* Loading Bar (Replacement for Spinner) */
516
+ .loading-bar {
517
+ position: absolute;
518
+ top: 0;
519
+ left: 0;
520
+ height: 3px;
521
+ width: 0;
522
+ background: linear-gradient(90deg, var(--primary-light), var(--primary));
523
+ z-index: 1000;
524
+ transition: width 0.3s ease, opacity 0.3s ease;
525
+ opacity: 0;
526
+ }
527
+
528
+ .loading-bar.active {
529
+ opacity: 1;
530
+ width: 70%; /* Initial jump */
531
+ }
532
+
533
+ .loading-bar.complete {
534
+ width: 100%;
535
+ opacity: 0;
536
+ }
537
+
538
+ @media (max-width: 900px) {
539
+ .sidebar { width: 0; display: none; }
540
+ .main-wrapper { margin-left: 0; }
541
+ }