@faviovazquez/deliberate 0.1.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,517 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>deliberate -- {{FILENAME}}</title>
7
+ <style>
8
+ :root {
9
+ --bg-primary: #0d1117;
10
+ --bg-secondary: #161b22;
11
+ --bg-tertiary: #21262d;
12
+ --bg-hover: #30363d;
13
+ --border: #30363d;
14
+ --text-primary: #e6edf3;
15
+ --text-secondary: #8b949e;
16
+ --text-muted: #484f58;
17
+ --accent: #58a6ff;
18
+ --accent-hover: #79c0ff;
19
+ --success: #3fb950;
20
+ --warning: #d29922;
21
+ --danger: #f85149;
22
+ --info: #58a6ff;
23
+
24
+ /* Agent colors */
25
+ --agent-coral: #ff6b6b;
26
+ --agent-orange: #ff9f43;
27
+ --agent-amber: #feca57;
28
+ --agent-cyan: #48dbfb;
29
+ --agent-violet: #a55eea;
30
+ --agent-teal: #0abde3;
31
+ --agent-silver: #c8d6e5;
32
+ --agent-red: #ee5a24;
33
+ --agent-indigo: #686de0;
34
+ --agent-dark-red: #b33939;
35
+ --agent-yellow: #f6e58d;
36
+ --agent-purple: #be2edd;
37
+ --agent-black: #535c68;
38
+ --agent-gold: #f9ca24;
39
+ --agent-green: #6ab04c;
40
+ --agent-ice-blue: #7ed6df;
41
+ --agent-white-smoke: #dfe6e9;
42
+
43
+ --font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;
44
+ --font-mono: 'SF Mono', 'Fira Code', 'Fira Mono', 'Roboto Mono', monospace;
45
+ --radius: 8px;
46
+ --radius-lg: 12px;
47
+ }
48
+
49
+ * { box-sizing: border-box; margin: 0; padding: 0; }
50
+
51
+ body {
52
+ font-family: var(--font-sans);
53
+ background: var(--bg-primary);
54
+ color: var(--text-primary);
55
+ line-height: 1.6;
56
+ min-height: 100vh;
57
+ padding: 0;
58
+ }
59
+
60
+ .deliberate-header {
61
+ background: var(--bg-secondary);
62
+ border-bottom: 1px solid var(--border);
63
+ padding: 12px 24px;
64
+ display: flex;
65
+ align-items: center;
66
+ justify-content: space-between;
67
+ position: sticky;
68
+ top: 0;
69
+ z-index: 100;
70
+ }
71
+
72
+ .deliberate-header__logo {
73
+ font-size: 14px;
74
+ font-weight: 600;
75
+ color: var(--text-secondary);
76
+ letter-spacing: 0.5px;
77
+ }
78
+
79
+ .deliberate-header__logo span {
80
+ color: var(--accent);
81
+ }
82
+
83
+ .deliberate-header__status {
84
+ font-size: 12px;
85
+ color: var(--text-muted);
86
+ font-family: var(--font-mono);
87
+ }
88
+
89
+ .deliberate-selection-bar {
90
+ background: var(--accent);
91
+ color: var(--bg-primary);
92
+ padding: 8px 24px;
93
+ font-size: 13px;
94
+ font-weight: 600;
95
+ display: none;
96
+ align-items: center;
97
+ justify-content: space-between;
98
+ position: sticky;
99
+ top: 45px;
100
+ z-index: 99;
101
+ }
102
+
103
+ .deliberate-selection-bar.visible {
104
+ display: flex;
105
+ }
106
+
107
+ .deliberate-content {
108
+ max-width: 960px;
109
+ margin: 0 auto;
110
+ padding: 32px 24px;
111
+ }
112
+
113
+ /* Typography */
114
+ h2 {
115
+ font-size: 24px;
116
+ font-weight: 600;
117
+ color: var(--text-primary);
118
+ margin-bottom: 8px;
119
+ line-height: 1.3;
120
+ }
121
+
122
+ h3 {
123
+ font-size: 18px;
124
+ font-weight: 600;
125
+ color: var(--text-primary);
126
+ margin-bottom: 6px;
127
+ margin-top: 20px;
128
+ line-height: 1.3;
129
+ }
130
+
131
+ h4 {
132
+ font-size: 14px;
133
+ font-weight: 600;
134
+ color: var(--text-secondary);
135
+ text-transform: uppercase;
136
+ letter-spacing: 0.5px;
137
+ margin-bottom: 8px;
138
+ }
139
+
140
+ p { margin-bottom: 12px; color: var(--text-primary); }
141
+
142
+ .subtitle {
143
+ font-size: 15px;
144
+ color: var(--text-secondary);
145
+ margin-bottom: 24px;
146
+ }
147
+
148
+ .label {
149
+ font-size: 11px;
150
+ font-weight: 600;
151
+ color: var(--text-muted);
152
+ text-transform: uppercase;
153
+ letter-spacing: 1px;
154
+ }
155
+
156
+ .section {
157
+ margin-bottom: 32px;
158
+ }
159
+
160
+ /* Options (A/B/C choices) */
161
+ .options {
162
+ display: flex;
163
+ flex-direction: column;
164
+ gap: 12px;
165
+ margin: 16px 0;
166
+ }
167
+
168
+ .option {
169
+ display: flex;
170
+ align-items: flex-start;
171
+ gap: 16px;
172
+ padding: 16px;
173
+ background: var(--bg-secondary);
174
+ border: 2px solid var(--border);
175
+ border-radius: var(--radius-lg);
176
+ cursor: pointer;
177
+ transition: border-color 0.15s, background 0.15s, transform 0.1s;
178
+ }
179
+
180
+ .option:hover {
181
+ border-color: var(--accent);
182
+ background: var(--bg-tertiary);
183
+ }
184
+
185
+ .option.selected {
186
+ border-color: var(--accent);
187
+ background: rgba(88, 166, 255, 0.08);
188
+ }
189
+
190
+ .option:active { transform: scale(0.995); }
191
+
192
+ .option .letter {
193
+ width: 36px;
194
+ height: 36px;
195
+ min-width: 36px;
196
+ display: flex;
197
+ align-items: center;
198
+ justify-content: center;
199
+ background: var(--bg-tertiary);
200
+ border-radius: 50%;
201
+ font-weight: 700;
202
+ font-size: 14px;
203
+ color: var(--text-secondary);
204
+ transition: background 0.15s, color 0.15s;
205
+ }
206
+
207
+ .option.selected .letter {
208
+ background: var(--accent);
209
+ color: var(--bg-primary);
210
+ }
211
+
212
+ .option .content h3 { margin-top: 0; margin-bottom: 4px; font-size: 16px; }
213
+ .option .content p { margin-bottom: 0; font-size: 14px; color: var(--text-secondary); }
214
+
215
+ /* Cards (visual designs) */
216
+ .cards {
217
+ display: grid;
218
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
219
+ gap: 16px;
220
+ margin: 16px 0;
221
+ }
222
+
223
+ .card {
224
+ background: var(--bg-secondary);
225
+ border: 2px solid var(--border);
226
+ border-radius: var(--radius-lg);
227
+ overflow: hidden;
228
+ cursor: pointer;
229
+ transition: border-color 0.15s, transform 0.1s;
230
+ }
231
+
232
+ .card:hover { border-color: var(--accent); }
233
+ .card.selected { border-color: var(--accent); background: rgba(88, 166, 255, 0.05); }
234
+ .card:active { transform: scale(0.98); }
235
+
236
+ .card-image {
237
+ background: var(--bg-tertiary);
238
+ min-height: 160px;
239
+ display: flex;
240
+ align-items: center;
241
+ justify-content: center;
242
+ padding: 16px;
243
+ }
244
+
245
+ .card-body { padding: 16px; }
246
+ .card-body h3 { margin-top: 0; font-size: 16px; }
247
+ .card-body p { font-size: 14px; color: var(--text-secondary); margin-bottom: 0; }
248
+
249
+ /* Mockup container */
250
+ .mockup {
251
+ background: var(--bg-secondary);
252
+ border: 1px solid var(--border);
253
+ border-radius: var(--radius-lg);
254
+ overflow: hidden;
255
+ margin: 16px 0;
256
+ }
257
+
258
+ .mockup-header {
259
+ background: var(--bg-tertiary);
260
+ padding: 8px 16px;
261
+ font-size: 12px;
262
+ font-weight: 600;
263
+ color: var(--text-secondary);
264
+ border-bottom: 1px solid var(--border);
265
+ }
266
+
267
+ .mockup-body { padding: 16px; }
268
+
269
+ /* Split view (side-by-side) */
270
+ .split {
271
+ display: grid;
272
+ grid-template-columns: 1fr 1fr;
273
+ gap: 16px;
274
+ margin: 16px 0;
275
+ }
276
+
277
+ @media (max-width: 700px) {
278
+ .split { grid-template-columns: 1fr; }
279
+ }
280
+
281
+ /* Pros/Cons */
282
+ .pros-cons {
283
+ display: grid;
284
+ grid-template-columns: 1fr 1fr;
285
+ gap: 16px;
286
+ margin: 16px 0;
287
+ }
288
+
289
+ .pros, .cons {
290
+ background: var(--bg-secondary);
291
+ border-radius: var(--radius);
292
+ padding: 16px;
293
+ }
294
+
295
+ .pros { border-left: 3px solid var(--success); }
296
+ .cons { border-left: 3px solid var(--danger); }
297
+
298
+ .pros h4 { color: var(--success); }
299
+ .cons h4 { color: var(--danger); }
300
+
301
+ .pros ul, .cons ul { padding-left: 20px; }
302
+ .pros li, .cons li { font-size: 14px; color: var(--text-secondary); margin-bottom: 4px; }
303
+
304
+ @media (max-width: 700px) {
305
+ .pros-cons { grid-template-columns: 1fr; }
306
+ }
307
+
308
+ /* Mock elements (wireframe building blocks) */
309
+ .mock-nav {
310
+ background: var(--bg-tertiary);
311
+ padding: 12px 16px;
312
+ font-size: 13px;
313
+ color: var(--text-secondary);
314
+ border-bottom: 1px solid var(--border);
315
+ display: flex;
316
+ gap: 16px;
317
+ align-items: center;
318
+ }
319
+
320
+ .mock-sidebar {
321
+ background: var(--bg-secondary);
322
+ padding: 16px;
323
+ min-width: 180px;
324
+ border-right: 1px solid var(--border);
325
+ font-size: 13px;
326
+ color: var(--text-muted);
327
+ }
328
+
329
+ .mock-content {
330
+ background: var(--bg-primary);
331
+ padding: 16px;
332
+ flex: 1;
333
+ font-size: 13px;
334
+ color: var(--text-muted);
335
+ }
336
+
337
+ .mock-button {
338
+ background: var(--accent);
339
+ color: var(--bg-primary);
340
+ border: none;
341
+ padding: 8px 20px;
342
+ border-radius: var(--radius);
343
+ font-size: 14px;
344
+ font-weight: 600;
345
+ cursor: pointer;
346
+ transition: background 0.15s;
347
+ }
348
+
349
+ .mock-button:hover { background: var(--accent-hover); }
350
+
351
+ .mock-input {
352
+ background: var(--bg-tertiary);
353
+ border: 1px solid var(--border);
354
+ color: var(--text-primary);
355
+ padding: 8px 12px;
356
+ border-radius: var(--radius);
357
+ font-size: 14px;
358
+ width: 100%;
359
+ max-width: 300px;
360
+ }
361
+
362
+ .mock-input::placeholder { color: var(--text-muted); }
363
+
364
+ .placeholder {
365
+ background: var(--bg-tertiary);
366
+ border: 2px dashed var(--border);
367
+ border-radius: var(--radius);
368
+ padding: 32px;
369
+ text-align: center;
370
+ color: var(--text-muted);
371
+ font-size: 13px;
372
+ }
373
+
374
+ /* Agent badge */
375
+ .agent-badge {
376
+ display: inline-flex;
377
+ align-items: center;
378
+ gap: 6px;
379
+ padding: 4px 10px;
380
+ border-radius: 20px;
381
+ font-size: 12px;
382
+ font-weight: 600;
383
+ background: var(--bg-tertiary);
384
+ color: var(--text-secondary);
385
+ border: 1px solid var(--border);
386
+ }
387
+
388
+ .agent-badge .dot {
389
+ width: 8px;
390
+ height: 8px;
391
+ border-radius: 50%;
392
+ }
393
+
394
+ /* Agent position indicators */
395
+ .agent-position {
396
+ display: flex;
397
+ align-items: center;
398
+ gap: 8px;
399
+ padding: 8px 12px;
400
+ background: var(--bg-secondary);
401
+ border-radius: var(--radius);
402
+ margin-bottom: 8px;
403
+ border-left: 3px solid var(--border);
404
+ }
405
+
406
+ .agent-position.agree { border-left-color: var(--success); }
407
+ .agent-position.disagree { border-left-color: var(--danger); }
408
+ .agent-position.partial { border-left-color: var(--warning); }
409
+
410
+ /* Verdict styles */
411
+ .verdict {
412
+ background: var(--bg-secondary);
413
+ border: 2px solid var(--accent);
414
+ border-radius: var(--radius-lg);
415
+ padding: 24px;
416
+ margin: 24px 0;
417
+ }
418
+
419
+ .verdict h3 {
420
+ color: var(--accent);
421
+ margin-top: 0;
422
+ }
423
+
424
+ .minority-report {
425
+ background: rgba(248, 81, 73, 0.08);
426
+ border: 1px solid var(--danger);
427
+ border-radius: var(--radius);
428
+ padding: 16px;
429
+ margin: 16px 0;
430
+ }
431
+
432
+ .minority-report h4 { color: var(--danger); }
433
+
434
+ /* Canvas container for visualizations */
435
+ .canvas-container {
436
+ background: var(--bg-secondary);
437
+ border: 1px solid var(--border);
438
+ border-radius: var(--radius-lg);
439
+ padding: 16px;
440
+ margin: 16px 0;
441
+ position: relative;
442
+ }
443
+
444
+ .canvas-container canvas {
445
+ width: 100%;
446
+ display: block;
447
+ border-radius: var(--radius);
448
+ }
449
+
450
+ /* Tooltip */
451
+ .tooltip {
452
+ position: absolute;
453
+ background: var(--bg-tertiary);
454
+ border: 1px solid var(--border);
455
+ border-radius: var(--radius);
456
+ padding: 8px 12px;
457
+ font-size: 13px;
458
+ color: var(--text-primary);
459
+ pointer-events: none;
460
+ z-index: 200;
461
+ max-width: 300px;
462
+ box-shadow: 0 4px 12px rgba(0,0,0,0.3);
463
+ display: none;
464
+ }
465
+
466
+ .tooltip.visible { display: block; }
467
+
468
+ /* Agreement matrix */
469
+ .agreement-matrix {
470
+ display: grid;
471
+ gap: 2px;
472
+ margin: 16px 0;
473
+ }
474
+
475
+ .agreement-cell {
476
+ width: 100%;
477
+ aspect-ratio: 1;
478
+ border-radius: 4px;
479
+ cursor: pointer;
480
+ transition: transform 0.1s;
481
+ }
482
+
483
+ .agreement-cell:hover { transform: scale(1.1); }
484
+ .agreement-cell.agree { background: var(--success); opacity: 0.7; }
485
+ .agreement-cell.disagree { background: var(--danger); opacity: 0.7; }
486
+ .agreement-cell.partial { background: var(--warning); opacity: 0.7; }
487
+ .agreement-cell.empty { background: var(--bg-tertiary); }
488
+
489
+ /* Scrollbar */
490
+ ::-webkit-scrollbar { width: 8px; }
491
+ ::-webkit-scrollbar-track { background: var(--bg-primary); }
492
+ ::-webkit-scrollbar-thumb { background: var(--bg-tertiary); border-radius: 4px; }
493
+ ::-webkit-scrollbar-thumb:hover { background: var(--border); }
494
+ </style>
495
+ </head>
496
+ <body>
497
+ <header class="deliberate-header">
498
+ <div class="deliberate-header__logo"><span>deliberate</span> visual companion</div>
499
+ <div class="deliberate-header__status" id="status-text">connected</div>
500
+ </header>
501
+
502
+ <div class="deliberate-selection-bar" id="selection-bar">
503
+ <span id="selection-text">1 selected</span>
504
+ <span style="font-size:11px;opacity:0.7">Respond in your terminal to continue</span>
505
+ </div>
506
+
507
+ <main class="deliberate-content">
508
+ {{CONTENT}}
509
+ </main>
510
+
511
+ <div class="tooltip" id="tooltip"></div>
512
+
513
+ <script>
514
+ {{HELPER_JS}}
515
+ </script>
516
+ </body>
517
+ </html>