@azure-id/orc 1.2.1 → 1.4.1

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,595 @@
1
+ /* css/panels/hookui.css — the CLI Hook Interface.
2
+
3
+ Every colour comes from a token defined once, on bare :root, in
4
+ 00-tokens.css. This file defines none.
5
+
6
+ Nothing here declares an animation or a @keyframes, deliberately: the motion
7
+ rules live in 04-motion.css and nowhere else, because THE ONE reduced-motion
8
+ media block lives there and a rule in this file — which loads BEFORE it —
9
+ could not be switched off from there at equal specificity. What is here is
10
+ state that survives a reader who asked for less motion: borders, opacity and
11
+ a drop marker drawn as a real edge. */
12
+
13
+ /* ── the preview ───────────────────────────────────────────────────────── */
14
+ /* A terminal is a monospaced grid, so the preview has to be one too. Anything
15
+ proportional here would misrepresent every width decision the user makes. */
16
+ .hk-preview {
17
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
18
+ font-size: 13px;
19
+ line-height: 1.55;
20
+ margin: 0;
21
+ padding: 10px 12px;
22
+ border-radius: 8px;
23
+ background: var(--bg-sunken);
24
+ border: 1px solid var(--line);
25
+ /* A wide line SCROLLS inside its own box. The page body must never scroll
26
+ sideways — and squeezing a status line to fit would misreport its width,
27
+ which is the one thing this preview exists to get right. */
28
+ overflow-x: auto;
29
+ white-space: pre;
30
+ scrollbar-width: thin;
31
+ scrollbar-color: var(--line) transparent;
32
+ }
33
+ .hk-preview::-webkit-scrollbar {
34
+ height: 8px;
35
+ }
36
+ .hk-preview::-webkit-scrollbar-track {
37
+ background: transparent;
38
+ }
39
+ .hk-preview::-webkit-scrollbar-thumb {
40
+ background: var(--line);
41
+ border-radius: 4px;
42
+ }
43
+ .hk-preview-sm {
44
+ font-size: 12px;
45
+ padding: 6px 10px;
46
+ }
47
+ .hk-preview-chip {
48
+ font-size: 12px;
49
+ padding: 4px 8px;
50
+ border: none;
51
+ background: transparent;
52
+ }
53
+ .hk-line {
54
+ min-height: 1.55em;
55
+ }
56
+ .hk-fixtures {
57
+ margin-bottom: 10px;
58
+ }
59
+
60
+ .hk-degrade {
61
+ margin-top: 14px;
62
+ display: grid;
63
+ gap: 6px;
64
+ }
65
+ .hk-degrade-row {
66
+ display: grid;
67
+ grid-template-columns: 90px 1fr;
68
+ gap: 10px;
69
+ align-items: center;
70
+ }
71
+ .hk-degrade-label {
72
+ font-size: 11px;
73
+ color: var(--fg-dim);
74
+ text-align: right;
75
+ }
76
+
77
+ /* ── cautions ──────────────────────────────────────────────────────────── */
78
+ .hk-caution {
79
+ display: grid;
80
+ grid-template-columns: 20px 1fr;
81
+ gap: 8px;
82
+ align-items: start;
83
+ padding: 6px 0;
84
+ font-size: 13px;
85
+ }
86
+ .hk-caution-mark {
87
+ color: var(--warn);
88
+ }
89
+ .hk-caution-bad .hk-caution-mark {
90
+ color: var(--bad);
91
+ }
92
+
93
+ /* ── the board ─────────────────────────────────────────────────────────── */
94
+ .hk-line-wrap {
95
+ margin-bottom: 18px;
96
+ }
97
+ .hk-line-head {
98
+ display: flex;
99
+ justify-content: space-between;
100
+ align-items: center;
101
+ flex-wrap: wrap;
102
+ gap: 8px;
103
+ margin-bottom: 6px;
104
+ }
105
+ .hk-line-title {
106
+ display: flex;
107
+ align-items: baseline;
108
+ gap: 10px;
109
+ }
110
+ .hk-line-name {
111
+ font-size: 12px;
112
+ font-weight: 600;
113
+ color: var(--fg-dim);
114
+ }
115
+ .hk-line-count {
116
+ font-size: 11px;
117
+ color: var(--fg-dim);
118
+ }
119
+ .hk-full {
120
+ color: var(--warn);
121
+ }
122
+
123
+ .hk-zone {
124
+ display: flex;
125
+ flex-wrap: wrap;
126
+ gap: 10px;
127
+ padding: 12px;
128
+ border: 1px dashed var(--line);
129
+ border-radius: 10px;
130
+ min-height: 84px;
131
+ align-items: stretch;
132
+ }
133
+ /* The zone under a chip being dragged over it. A border change, not a glow:
134
+ the affordance has to survive a reader who asked for less motion. */
135
+ .hk-zone-hot {
136
+ border-color: var(--accent);
137
+ border-style: solid;
138
+ background: var(--bg-sunken);
139
+ }
140
+ .hk-zone-why {
141
+ flex-basis: 100%;
142
+ }
143
+ /* An illegal line is DISABLED with its reason on the zone itself — never a
144
+ toast after the fact, never a validation error on Apply. A user should not be
145
+ able to do the wrong thing and then be told off for it. */
146
+ .hk-line-blocked .hk-zone {
147
+ opacity: 0.55;
148
+ background: repeating-linear-gradient(
149
+ 45deg,
150
+ transparent,
151
+ transparent 6px,
152
+ var(--bg-sunken) 6px,
153
+ var(--bg-sunken) 12px
154
+ );
155
+ }
156
+ .hk-blocked {
157
+ display: flex;
158
+ gap: 8px;
159
+ align-items: center;
160
+ font-size: 12px;
161
+ color: var(--fg-dim);
162
+ padding: 8px;
163
+ }
164
+
165
+ /* A chip's child count CHANGES with its state — a part with no description is
166
+ one row shorter — so it is a FLEX COLUMN and never declares its rows. A card
167
+ whose child count changes with its state must not have a row template; that
168
+ is what put a 250px ellipse on the Extra panel. */
169
+ .hk-chip {
170
+ display: flex;
171
+ flex-direction: column;
172
+ gap: 5px;
173
+ padding: 9px 10px;
174
+ border: 1px solid var(--line);
175
+ border-radius: 9px;
176
+ background: var(--bg-raised);
177
+ min-width: 150px;
178
+ max-width: 280px;
179
+ cursor: grab;
180
+ /* The drop marker is drawn on this edge, so the space for it is reserved
181
+ always — a border that appears on hover would shift every chip to its
182
+ right by two pixels at the moment of the drop decision. */
183
+ box-shadow: inset 0 0 0 0 var(--accent);
184
+ }
185
+ .hk-chip:focus-visible {
186
+ outline: 2px solid var(--accent);
187
+ outline-offset: 2px;
188
+ }
189
+ .hk-chip:active {
190
+ cursor: grabbing;
191
+ }
192
+ .hk-chip-dragging {
193
+ opacity: 0.4;
194
+ border-style: dashed;
195
+ }
196
+ /* WHERE IT WILL LAND, on the edge it will land on. A gap that opens up would
197
+ move every other chip while the pointer is deciding. */
198
+ .hk-drop-before {
199
+ box-shadow: inset 3px 0 0 0 var(--accent);
200
+ }
201
+ .hk-drop-after {
202
+ box-shadow: inset -3px 0 0 0 var(--accent);
203
+ }
204
+ /* Staged, not written. The dashed accent edge is the same language the edit bar
205
+ uses at the bottom of the page. */
206
+ .hk-chip-new {
207
+ border-color: var(--accent);
208
+ border-style: dashed;
209
+ }
210
+ .hk-chip-face {
211
+ display: flex;
212
+ align-items: center;
213
+ gap: 6px;
214
+ min-height: 24px;
215
+ }
216
+ .hk-grip {
217
+ color: var(--fg-dim);
218
+ font-size: 14px;
219
+ line-height: 1;
220
+ cursor: grab;
221
+ user-select: none;
222
+ }
223
+ .hk-chip-id {
224
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
225
+ font-size: 11px;
226
+ color: var(--fg-dim);
227
+ }
228
+ /* "What is this thing" is the first question anybody asks of a bar full of
229
+ symbols, and until v1.4.1 the answer lived only in a tooltip. */
230
+ .hk-chip-desc {
231
+ font-size: 11px;
232
+ line-height: 1.45;
233
+ color: var(--fg-dim);
234
+ }
235
+ .hk-chip-acts {
236
+ display: flex;
237
+ gap: 4px;
238
+ flex-wrap: wrap;
239
+ margin-top: 2px;
240
+ }
241
+ .hk-act {
242
+ font-size: 11px;
243
+ padding: 3px 8px;
244
+ border: 1px solid var(--line);
245
+ border-radius: 5px;
246
+ background: var(--bg-sunken);
247
+ color: var(--fg-dim);
248
+ cursor: pointer;
249
+ }
250
+ .hk-act:hover {
251
+ border-color: var(--accent);
252
+ color: var(--fg);
253
+ }
254
+ .hk-act-remove:hover {
255
+ border-color: var(--bad);
256
+ color: var(--bad);
257
+ }
258
+
259
+ .hk-add {
260
+ border: 1px dashed var(--line);
261
+ background: none;
262
+ color: var(--fg-dim);
263
+ border-radius: 9px;
264
+ padding: 10px 18px;
265
+ cursor: pointer;
266
+ font-size: 12px;
267
+ min-width: 150px;
268
+ }
269
+ .hk-add:hover:not(:disabled) {
270
+ border-color: var(--accent);
271
+ color: var(--fg);
272
+ }
273
+ .hk-add:disabled {
274
+ cursor: not-allowed;
275
+ opacity: 0.5;
276
+ }
277
+
278
+ .hk-line-opts {
279
+ display: flex;
280
+ align-items: center;
281
+ gap: 8px;
282
+ }
283
+ .hk-select,
284
+ .hk-input {
285
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
286
+ font-size: 12px;
287
+ padding: 4px 8px;
288
+ border: 1px solid var(--line);
289
+ border-radius: 6px;
290
+ background: var(--bg-sunken);
291
+ color: var(--fg);
292
+ max-width: 260px;
293
+ }
294
+
295
+ /* ── the part picker ───────────────────────────────────────────────────── */
296
+ .hk-picker {
297
+ display: flex;
298
+ flex-direction: column;
299
+ gap: 10px;
300
+ min-width: min(560px, 76vw);
301
+ }
302
+ .hk-picker-search {
303
+ display: flex;
304
+ align-items: center;
305
+ gap: 10px;
306
+ }
307
+ .hk-picker-input {
308
+ flex: 1 1 auto;
309
+ max-width: none;
310
+ }
311
+ .hk-picker-list {
312
+ display: flex;
313
+ flex-direction: column;
314
+ gap: 6px;
315
+ max-height: 46vh;
316
+ overflow-y: auto;
317
+ scrollbar-width: thin;
318
+ scrollbar-color: var(--line) transparent;
319
+ }
320
+ .hk-picker-list::-webkit-scrollbar {
321
+ width: 8px;
322
+ }
323
+ .hk-picker-list::-webkit-scrollbar-track {
324
+ background: transparent;
325
+ }
326
+ .hk-picker-list::-webkit-scrollbar-thumb {
327
+ background: var(--line);
328
+ border-radius: 4px;
329
+ }
330
+ /* One click, one part. A refused row is drawn as a plain div and gets NO button
331
+ at all — never a disabled one: "we decided against this" and "we forgot" must
332
+ not look the same. */
333
+ .hk-pick-row {
334
+ display: flex;
335
+ flex-direction: column;
336
+ align-items: stretch;
337
+ gap: 4px;
338
+ width: 100%;
339
+ padding: 9px 11px;
340
+ border: 1px solid var(--line);
341
+ border-radius: 8px;
342
+ background: var(--bg-raised);
343
+ text-align: left;
344
+ cursor: pointer;
345
+ color: inherit;
346
+ }
347
+ button.hk-pick-row:hover {
348
+ border-color: var(--accent);
349
+ background: var(--bg-sunken);
350
+ }
351
+ .hk-pick-row-off {
352
+ cursor: default;
353
+ opacity: 0.7;
354
+ background: none;
355
+ }
356
+ .hk-pick-top {
357
+ display: flex;
358
+ align-items: center;
359
+ gap: 8px;
360
+ flex-wrap: wrap;
361
+ }
362
+ .hk-pick-desc {
363
+ font-size: 12px;
364
+ line-height: 1.5;
365
+ color: var(--fg-dim);
366
+ }
367
+
368
+ /* ── move ──────────────────────────────────────────────────────────────── */
369
+ .hk-move-line {
370
+ display: flex;
371
+ flex-direction: column;
372
+ gap: 6px;
373
+ padding: 9px 0;
374
+ border-bottom: 1px solid var(--line);
375
+ }
376
+ .hk-move-slots {
377
+ display: flex;
378
+ gap: 6px;
379
+ flex-wrap: wrap;
380
+ }
381
+
382
+ /* ── the part editor ───────────────────────────────────────────────────── */
383
+ .hk-editor {
384
+ display: flex;
385
+ flex-direction: column;
386
+ gap: 9px;
387
+ min-width: min(620px, 78vw);
388
+ }
389
+ .hk-editor-live {
390
+ position: sticky;
391
+ top: 0;
392
+ z-index: 1;
393
+ background: var(--bg-raised);
394
+ padding-bottom: 4px;
395
+ }
396
+ /* The editor is a flex COLUMN that stretches its children, which turned a small
397
+ secondary button into a full-width box that read as a text field. */
398
+ .hk-swap {
399
+ align-self: flex-start;
400
+ }
401
+ .hk-section-wrap {
402
+ display: flex;
403
+ flex-direction: column;
404
+ gap: 3px;
405
+ margin-top: 10px;
406
+ }
407
+ .hk-section {
408
+ font-size: 11px;
409
+ text-transform: uppercase;
410
+ letter-spacing: 0.06em;
411
+ color: var(--fg-dim);
412
+ border-bottom: 1px solid var(--line);
413
+ padding-bottom: 3px;
414
+ }
415
+ /* THE SHAPE PICKER IS A GALLERY, NOT A DROPDOWN: every option drawn with this
416
+ component's real value. A dropdown containing a renderer's name tells nobody
417
+ anything. */
418
+ .hk-gallery {
419
+ display: grid;
420
+ grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
421
+ gap: 6px;
422
+ }
423
+ .hk-sample {
424
+ display: flex;
425
+ flex-direction: column;
426
+ align-items: flex-start;
427
+ gap: 2px;
428
+ padding: 6px 8px;
429
+ border: 1px solid var(--line);
430
+ border-radius: 6px;
431
+ background: var(--bg-sunken);
432
+ cursor: pointer;
433
+ text-align: left;
434
+ }
435
+ .hk-sample:hover {
436
+ border-color: var(--accent);
437
+ }
438
+ .hk-sample-on {
439
+ border-color: var(--accent);
440
+ background: var(--bg-raised);
441
+ }
442
+ .hk-sample-id {
443
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
444
+ font-size: 10px;
445
+ color: var(--fg-dim);
446
+ }
447
+
448
+ /* A control, its name, and the sentence that says what it does. The sentence is
449
+ why this is a two-line left column rather than a label. */
450
+ .hk-field {
451
+ display: grid;
452
+ grid-template-columns: 190px 1fr;
453
+ gap: 12px;
454
+ align-items: start;
455
+ padding: 5px 0;
456
+ }
457
+ .hk-field-left {
458
+ display: flex;
459
+ flex-direction: column;
460
+ gap: 2px;
461
+ }
462
+ .hk-field-name {
463
+ font-size: 12px;
464
+ font-weight: 600;
465
+ color: var(--fg);
466
+ }
467
+ .hk-picks {
468
+ display: flex;
469
+ flex-wrap: wrap;
470
+ gap: 4px;
471
+ }
472
+ .hk-pick {
473
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
474
+ font-size: 11px;
475
+ padding: 3px 7px;
476
+ border: 1px solid var(--line);
477
+ border-radius: 5px;
478
+ background: var(--bg-sunken);
479
+ color: var(--fg-dim);
480
+ cursor: pointer;
481
+ }
482
+ .hk-pick:hover {
483
+ border-color: var(--accent);
484
+ }
485
+ .hk-pick-on {
486
+ border-color: var(--accent);
487
+ color: var(--fg);
488
+ background: var(--bg-raised);
489
+ }
490
+ .hk-checks {
491
+ display: grid;
492
+ gap: 4px;
493
+ }
494
+ .hk-check {
495
+ display: grid;
496
+ grid-template-columns: 20px 90px 1fr;
497
+ gap: 6px;
498
+ align-items: center;
499
+ font-size: 12px;
500
+ }
501
+
502
+ /* ── the reference list ────────────────────────────────────────────────── */
503
+ .hk-palette-search {
504
+ min-width: 180px;
505
+ }
506
+ /* A row's child count changes with its state — a refused row carries a reason —
507
+ so it is a flex column, not a grid with declared columns. */
508
+ .hk-prow {
509
+ display: flex;
510
+ flex-direction: column;
511
+ gap: 4px;
512
+ padding: 9px 0;
513
+ border-bottom: 1px solid var(--line);
514
+ }
515
+ .hk-prow-head {
516
+ display: flex;
517
+ align-items: center;
518
+ gap: 10px;
519
+ flex-wrap: wrap;
520
+ }
521
+ .hk-prow-id {
522
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
523
+ font-size: 12px;
524
+ }
525
+ .hk-prow-desc {
526
+ font-size: 12px;
527
+ line-height: 1.5;
528
+ color: var(--fg-dim);
529
+ }
530
+ .hk-prow-why {
531
+ flex-basis: 100%;
532
+ }
533
+
534
+ /* ── presets ───────────────────────────────────────────────────────────── */
535
+ .hk-preset {
536
+ padding: 10px 0;
537
+ border-bottom: 1px solid var(--line);
538
+ display: grid;
539
+ gap: 6px;
540
+ }
541
+ .hk-preset-head {
542
+ display: flex;
543
+ gap: 8px;
544
+ align-items: center;
545
+ }
546
+
547
+ /* ── the colour set picker ─────────────────────────────────────────────── */
548
+ /* Each option carries the CLI's own sentence about what it is FOR, so it is a
549
+ card and not a word in a row of words. */
550
+ .hk-theme-list {
551
+ display: flex;
552
+ flex-wrap: wrap;
553
+ gap: 8px;
554
+ }
555
+ .hk-theme {
556
+ display: flex;
557
+ flex-direction: column;
558
+ align-items: flex-start;
559
+ gap: 3px;
560
+ flex: 1 1 220px;
561
+ max-width: 320px;
562
+ padding: 8px 10px;
563
+ border: 1px solid var(--line);
564
+ border-radius: 8px;
565
+ background: var(--bg-sunken);
566
+ cursor: pointer;
567
+ text-align: left;
568
+ color: inherit;
569
+ }
570
+ .hk-theme:hover {
571
+ border-color: var(--accent);
572
+ }
573
+ .hk-theme-on {
574
+ border-color: var(--accent);
575
+ background: var(--bg-raised);
576
+ }
577
+ .hk-theme-name {
578
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
579
+ font-size: 12px;
580
+ font-weight: 600;
581
+ color: var(--fg);
582
+ }
583
+
584
+ /* A number field is a NUMBER field: wide enough for three digits and its
585
+ spinner, and no wider. A 200px box for a value between 0 and 8 reads as a
586
+ free-text field somebody has to think about. */
587
+ .hk-num {
588
+ max-width: 90px;
589
+ }
590
+
591
+ /* The board switch. Two buttons, and the card holds nothing else — a heading
592
+ above two tabs would just say "boards" twice. */
593
+ .hk-boards {
594
+ margin-bottom: 4px;
595
+ }