@xyd-js/plugin-xspec 0.0.0-build-83b15db-20251213220910

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/dist/index.css ADDED
@@ -0,0 +1,1226 @@
1
+ xyd-layout-primary {
2
+ @media (min-width: 1024px) {
3
+ &:not([data-layout="page"]):not([data-layout="wide"]):has(.xspec) {
4
+ [part=page-article] {
5
+ --xyd-layout-width-small: 900px;
6
+ }
7
+ }
8
+ }
9
+ }
10
+
11
+ @media (prefers-color-scheme: light) {
12
+ .xspec {
13
+ --color-foreground: #333333;
14
+ --color-background: #var(--white);
15
+
16
+ --color-light-grey: #ccc;
17
+ --color-grey: #666666;
18
+ --color-white: #var(--white);
19
+ --color-link: #3b5998;
20
+
21
+ --color-subsection-link: var(--color-foreground);
22
+ --color-toc-link: var(--color-foreground);
23
+ --color-toc-id: var(--color-link);
24
+ --color-toggle-border: #bbc;
25
+
26
+ --color-sidebar-background: #f0f0f0;
27
+ --color-sidebar-viewing-link: #8b9;
28
+ --color-sidebar-toggle-button: rgba(0, 0, 0, 0.7);
29
+ --color-sidebar-shadow-inset: rgba(0, 0, 0, 0.05);
30
+ --color-sidebar-shadow: rgba(0, 0, 0, 0.04);
31
+ --color-sidebar-large-shadow: rgba(0, 0, 0, 0.08);
32
+
33
+ --color-pre-background: #fafafa;
34
+ --color-pre-border: #e9e9e9;
35
+ --color-code-background: rgba(0, 0, 0, 0.03);
36
+
37
+ --color-spec-todo: var(--color-grey);
38
+ --color-spec-example: #fafaff;
39
+ --color-spec-example-border: #bbbbff;
40
+ --color-spec-counter-example: #var(--white)afa;
41
+ --color-spec-counter-border: #ffbbbb;
42
+ --color-spec-counter-example-link: #98593b;
43
+ --color-spec-added-border: #396;
44
+ --color-spec-removed-border: #933;
45
+ --color-spec-prose: var(--color-grey);
46
+ --color-spec-quantifier-list: var(--color-link);
47
+ --color-spec-quantifier-optional: #83238e;
48
+ --color-spec-condition: #1c7758;
49
+ --color-spec-param: var(--color-grey);
50
+ --color-spec-rx: var(--color-foreground);
51
+ --color-spec-note-border: #f4e925;
52
+ --color-spec-note-background: #fefef3;
53
+ --color-spec-note-first-link: #6c6613;
54
+
55
+ --color-source-link: var(--color-light-grey);
56
+
57
+ --color-table-header: #f9f9f9;
58
+ --color-table-header-border: #d0d0d0;
59
+
60
+ --color-token-inserted: hsla(241, 71%, 34%, 0.69);
61
+ --color-token-deleted: hsla(324, 92%, 33%, 0.74);
62
+
63
+ --color-inserts-background: rgba(0, 200, 30, 0.08);
64
+ --color-deletions-background: rgba(200, 0, 0, 0.08);
65
+
66
+ --selection-background-color: #cacee0;
67
+ --selection-background-color-link: #f0babe;
68
+ }
69
+
70
+ .xspec .selection-link:hover {
71
+ --selection-background-color: #3b5998;
72
+ }
73
+ }
74
+
75
+ @media (prefers-color-scheme: dark) {
76
+ .xspec {
77
+ --color-foreground: #b6b6b6;
78
+ --color-background: #262626;
79
+
80
+ --color-light-grey: #373737;
81
+ --color-grey: #828282;
82
+ --color-white: rgb(29, 29, 29);
83
+ --color-link: #89b7da;
84
+
85
+ --color-subsection-link: var(--color-foreground);
86
+ --color-toc-link: var(--color-foreground);
87
+ --color-toc-id: var(--color-link);
88
+ --color-toggle-border: #bbc;
89
+
90
+ --color-sidebar-background: #323232;
91
+ --color-sidebar-viewing-link: #8b9;
92
+ --color-sidebar-toggle-button: rgba(220, 220, 220, 0.7);
93
+ --color-sidebar-shadow-inset: rgba(0, 0, 0, 0.05);
94
+ --color-sidebar-shadow: rgba(0, 0, 0, 0.04);
95
+ --color-sidebar-large-shadow: rgba(0, 0, 0, 0.08);
96
+
97
+ --color-pre-background: #2e2e2e;
98
+ --color-pre-border: #3a3a3a;
99
+ --color-code-background: rgba(41, 41, 41, 0.03);
100
+
101
+ --color-spec-todo: var(--color-grey);
102
+ --color-spec-example: #2b2b35;
103
+ --color-spec-example-border: #4d4d6d;
104
+ --color-spec-counter-example: #322828;
105
+ --color-spec-counter-border: #664040;
106
+ --color-spec-counter-example-link: #ff702d;
107
+ --color-spec-added-border: #396;
108
+ --color-spec-removed-border: #933;
109
+ --color-spec-prose: var(--color-grey);
110
+ --color-spec-quantifier-list: var(--color-link);
111
+ --color-spec-quantifier-optional: #c689ce;
112
+ --color-spec-condition: #6fa889;
113
+ --color-spec-param: var(--color-grey);
114
+ --color-spec-rx: var(--color-foreground);
115
+ --color-spec-note-border: #605e39;
116
+ --color-spec-note-background: #303028;
117
+ --color-spec-note-first-link: #f0e330;
118
+
119
+ --color-source-link: var(--color-grey);
120
+
121
+ --color-table-header: #373737;
122
+ --color-table-header-border: #525252;
123
+
124
+ --color-token-inserted: hsla(241, 63%, 70%, 0.69);
125
+ --color-token-deleted: hsla(325, 64%, 67%, 0.74);
126
+
127
+ --color-inserts-background: rgba(0, 200, 30, 0.08);
128
+ --color-deletions-background: rgba(200, 0, 0, 0.08);
129
+
130
+ --selection-background-color: #656565;
131
+ --selection-background-color-link: #f0babe;
132
+ }
133
+
134
+ .xspec .selection-link:hover {
135
+ --selection-background-color: #829edb;
136
+ }
137
+ }
138
+
139
+ .xspec {
140
+ color: var(--color-foreground);
141
+ background-color: var(--color-background);
142
+ font-family: var(--font-family);
143
+ font-size: 15px;
144
+ line-height: 1.5;
145
+
146
+ --mono-font-size: 13px;
147
+ --indent: 1rem;
148
+ --list-indent: 1.5rem;
149
+ --dfn-indent: 0rem;
150
+
151
+ --font-family: Cambria, "Palatino Linotype", Palatino, "Liberation Serif",
152
+ serif;
153
+ --font-family-monospace: Consolas, Monaco, "Andale Mono", "Ubuntu Mono",
154
+ monospace;
155
+
156
+ border: 1px solid #6c575757;
157
+ padding-inline: 50px;
158
+ border-radius: 5px;
159
+ border-color: var(--dark32);
160
+ --dot-color: #6e6e6e88;
161
+ --dot-size: 1px;
162
+ --dot-step: 58px;
163
+ --device-pixel-ratio: 2;
164
+ --dot-stop: calc(var(--dot-size) - min(.5px, 1px / var(--device-pixel-ratio)));
165
+ /* background: #f2f5fa; */
166
+ background-size: var(--dot-step) var(--dot-step);
167
+ background-position: calc(50% + var(--dot-step) / 2) 0;
168
+ background-image: radial-gradient(var(--dot-step) circle, var(--dot-color) var(--dot-stop), transparent var(--dot-size));
169
+ }
170
+
171
+ @media (min-width: 720px) {
172
+ .xspec {
173
+ font-size: 17px;
174
+ --mono-font-size: 15px;
175
+ --indent: 2rem;
176
+ --list-indent: 2rem;
177
+ --dfn-indent: 2rem;
178
+ }
179
+ }
180
+
181
+ .xspec body {
182
+ margin: 3rem 0 3rem;
183
+ }
184
+
185
+ .xspec article {
186
+ margin: 0 1rem;
187
+ }
188
+
189
+ /* @media (min-width: 720px) {
190
+ body {
191
+ margin: 6rem auto 3rem;
192
+ max-width: 800px;
193
+ padding-left: 75px;
194
+ padding-right: clamp(0px, calc((100vw - 800px) * 0.25), 75px);
195
+ }
196
+ } */
197
+
198
+ .xspec
199
+ /* Source Links */
200
+
201
+ .source-link {
202
+ display: none;
203
+ }
204
+
205
+ @media screen and (min-width: 720px) {
206
+ .source-link {
207
+ display: block;
208
+ position: absolute;
209
+ width: 18px;
210
+ fill: var(--color-source-link);
211
+ opacity: 0.3;
212
+ }
213
+
214
+ .xspec .source-link:hover {
215
+ opacity: 1;
216
+ }
217
+ }
218
+
219
+ .xspec
220
+ /* Selections */
221
+
222
+ .outdated-selection-link,
223
+ .xspec .selection-link {
224
+ position: absolute;
225
+ display: block;
226
+ color: var(--color-white);
227
+ background: var(--selection-background-color);
228
+ border-radius: 4px;
229
+ font-size: 36px;
230
+ height: 23px;
231
+ line-height: 48px;
232
+ text-align: center;
233
+ text-decoration: none;
234
+ width: 25px;
235
+ user-select: none;
236
+ -moz-user-select: none;
237
+ -webkit-user-select: none;
238
+ -ms-user-select: none;
239
+ }
240
+
241
+ .xspec .outdated-selection-link:hover,
242
+ .xspec .selection-link:hover {
243
+ text-decoration: none;
244
+ }
245
+
246
+ .xspec .outdated-selection-link:before,
247
+ .xspec .selection-link:before {
248
+ border: 5px solid transparent;
249
+ content: "";
250
+ height: 0;
251
+ margin-top: -5px;
252
+ margin-right: -5px;
253
+ position: absolute;
254
+ right: 1px;
255
+ top: 50%;
256
+ width: 0;
257
+ }
258
+
259
+ @media (max-width: 719px) {
260
+
261
+ .outdated-selection-link:before,
262
+ .selection-link:before {
263
+ border-bottom-color: var(--selection-background-color);
264
+ border-top: 0;
265
+ right: 50%;
266
+ top: 1px;
267
+ }
268
+ }
269
+
270
+ @media (min-width: 720px) {
271
+
272
+ .outdated-selection-link:before,
273
+ .selection-link:before {
274
+ border-left-color: var(--selection-background-color);
275
+ border-right: 0;
276
+ right: 1px;
277
+ top: 50%;
278
+ }
279
+ }
280
+
281
+ .xspec .outdated-selection-link {
282
+ background: var(--selection-background-color-link);
283
+ font-size: 21px;
284
+ font-weight: 800;
285
+ line-height: 27px;
286
+ }
287
+
288
+ .xspec .outdated-selection-link:hover:after {
289
+ content: "This selection content has changed since this link was created.";
290
+ font: 9pt/11pt var(--font-family);
291
+ position: absolute;
292
+ display: block;
293
+ white-space: nowrap;
294
+ padding: 2px 5px 1px;
295
+ top: -20px;
296
+ background: black;
297
+ color: var(--color-white);
298
+ }
299
+
300
+ .xspec
301
+ /* Links */
302
+
303
+ a {
304
+ color: var(--color-link);
305
+ text-decoration: none;
306
+ }
307
+
308
+ .xspec a:hover {
309
+ text-decoration: underline;
310
+ }
311
+
312
+ .xspec
313
+ /* Images */
314
+
315
+ img {
316
+ max-width: 100%;
317
+ }
318
+
319
+ .xspec
320
+ /* Definitions */
321
+
322
+ dl {
323
+ margin: 1rem 0 1rem var(--dfn-indent);
324
+ }
325
+
326
+ .xspec dd {
327
+ margin: 0.25em 0 0.5em var(--indent);
328
+ }
329
+
330
+ .xspec dd+dd {
331
+ margin-top: 1rem;
332
+ }
333
+
334
+ .xspec dfn,
335
+ .xspec .spec-ref {
336
+ font-style: italic;
337
+ }
338
+
339
+ .xspec dfn>a,
340
+ .xspec .spec-ref>a {
341
+ color: inherit;
342
+ }
343
+
344
+ .xspec
345
+ /* Section headers */
346
+
347
+ h1,
348
+ .xspec h2,
349
+ .xspec h3,
350
+ .xspec h4,
351
+ .xspec h5,
352
+ .xspec h6 {
353
+ font-weight: bold;
354
+ margin: 3em 0 1em;
355
+ position: relative;
356
+ }
357
+
358
+ @media (min-width: 720px) {
359
+ header>h1 {
360
+ margin: 6em 0 3em;
361
+ }
362
+ }
363
+
364
+ .xspec h1 {
365
+ font-size: 1.5em;
366
+ margin-top: 5em;
367
+ }
368
+
369
+ .xspec h2,
370
+ .xspec h3 {
371
+ font-size: 1.25em;
372
+ }
373
+
374
+ .xspec h4,
375
+ .xspec h5,
376
+ .xspec h6 {
377
+ font-size: 1em;
378
+ }
379
+
380
+ .xspec section {
381
+ padding-top: 1rem;
382
+ margin-top: -1rem;
383
+ }
384
+
385
+ .xspec section.subsec>h6 {
386
+ margin-top: 2em;
387
+ }
388
+
389
+ .xspec section.subsec>h6>a {
390
+ color: var(--color-subsection-link);
391
+ }
392
+
393
+ .xspec section .spec-secid {
394
+ margin-right: 1ex;
395
+ }
396
+
397
+ @media (min-width: 720px) {
398
+ section .spec-secid {
399
+ position: absolute;
400
+ right: 100%;
401
+ text-align: right;
402
+ white-space: nowrap;
403
+ }
404
+ }
405
+
406
+ .xspec footer {
407
+ font-size: 75%;
408
+ opacity: 0.5;
409
+ text-align: center;
410
+ margin-top: 12rem;
411
+ }
412
+
413
+ .xspec
414
+ /* Table of contents */
415
+
416
+ .spec-toc {
417
+ margin: 1rem 0 3rem;
418
+ }
419
+
420
+ .xspec .spec-toc .title {
421
+ content: "Contents";
422
+ display: block;
423
+ font-weight: bold;
424
+ margin: 5em 0 1em;
425
+ }
426
+
427
+ .xspec .spec-toc .spec-secid {
428
+ margin-right: 1ex;
429
+ }
430
+
431
+ .xspec .spec-toc ol {
432
+ list-style: none;
433
+ padding-left: 0;
434
+ margin-top: 0;
435
+ margin-bottom: 0;
436
+ }
437
+
438
+ .xspec .spec-toc ol ol {
439
+ list-style: none;
440
+ padding-left: 2ex;
441
+ margin-bottom: 0.25em;
442
+ }
443
+
444
+ .xspec .spec-toc li {
445
+ position: relative;
446
+ padding: 5px 0 0 30px;
447
+ margin: -5px 0 0 -30px;
448
+ }
449
+
450
+ .xspec .spec-toc a {
451
+ color: var(--color-toc-link);
452
+ }
453
+
454
+ .xspec .spec-toc a:hover {
455
+ text-decoration: none;
456
+ }
457
+
458
+ .xspec .spec-toc a .spec-secid {
459
+ color: var(--color-toc-id);
460
+ }
461
+
462
+ .xspec .spec-toc a:hover .spec-secid {
463
+ text-decoration: underline;
464
+ }
465
+
466
+ .xspec .spec-toc .toggle {
467
+ display: none;
468
+ }
469
+
470
+ .xspec .spec-toc .toggle+label {
471
+ cursor: pointer;
472
+ left: 6px;
473
+ opacity: 1;
474
+ padding: 5px 6px 5px 7px;
475
+ position: absolute;
476
+ top: 6px;
477
+ transform: rotate(0deg);
478
+ transition: all 0.18s ease-in-out;
479
+ }
480
+
481
+ .xspec .spec-toc .toggle+label:after {
482
+ border-color: transparent transparent transparent var(--color-toggle-border);
483
+ border-style: solid;
484
+ border-width: 6px 0 6px 7px;
485
+ content: " ";
486
+ display: block;
487
+ height: 0;
488
+ width: 0;
489
+ }
490
+
491
+ @media (pointer: fine) {
492
+ .spec-toc .toggle+label {
493
+ left: 10px;
494
+ padding: 3px 5px 3px 6px;
495
+ top: 8px;
496
+ }
497
+ }
498
+
499
+ .xspec .spec-toc .toggle:checked+label {
500
+ transform: rotate(90deg);
501
+ }
502
+
503
+ @media (hover: hover) {
504
+ .spec-toc li:not(:hover)>.toggle:checked+label {
505
+ opacity: 0;
506
+ }
507
+ }
508
+
509
+ .xspec .spec-toc .toggle:not(:checked)~ol {
510
+ max-height: 0;
511
+ overflow: hidden;
512
+ margin: 0;
513
+ }
514
+
515
+ .xspec
516
+ /* Sidebar */
517
+
518
+ .spec-sidebar-toggle {
519
+ display: none;
520
+ }
521
+
522
+ .xspec .spec-sidebar-toggle+label>.spec-sidebar-button {
523
+ position: fixed;
524
+ right: 0;
525
+ top: 0;
526
+ padding: 10px 15px;
527
+ font-size: 30px;
528
+ color: var(--color-sidebar-toggle-button);
529
+ z-index: 2;
530
+ cursor: pointer;
531
+ user-select: none;
532
+ -moz-user-select: none;
533
+ -webkit-user-select: none;
534
+ -ms-user-select: none;
535
+ }
536
+
537
+ .xspec .spec-sidebar-toggle:checked+label:after {
538
+ content: "";
539
+ position: fixed;
540
+ top: 0;
541
+ left: 0;
542
+ width: 100vw;
543
+ height: 100vh;
544
+ z-index: 0;
545
+ }
546
+
547
+ .xspec .spec-sidebar {
548
+ display: none;
549
+ position: fixed;
550
+ right: 0;
551
+ top: 0;
552
+ width: min(320px, calc(100vw - 48px));
553
+ font-size: 14px;
554
+ line-height: 1.75;
555
+ overflow-y: scroll;
556
+ height: 100%;
557
+ padding: 0 0 5rem 30px;
558
+ box-sizing: border-box;
559
+ background: var(--color-sidebar-background);
560
+ box-shadow: inset 1px 0 var(--color-sidebar-shadow-inset),
561
+ -4px 0 8px -2px var(--color-sidebar-shadow);
562
+ overscroll-behavior: contain;
563
+ }
564
+
565
+ .xspec .spec-sidebar {
566
+ user-select: none;
567
+ -moz-user-select: none;
568
+ -webkit-user-select: none;
569
+ -ms-user-select: none;
570
+ }
571
+
572
+ .xspec .spec-sidebar-toggle:checked~.spec-sidebar {
573
+ display: block;
574
+ }
575
+
576
+ .xspec .spec-sidebar .viewing>a:after {
577
+ color: var(--color-sidebar-viewing-link);
578
+ content: "\2022";
579
+ margin-left: 1ex;
580
+ }
581
+
582
+ @media (min-width: 1220px) {
583
+ .spec-sidebar-toggle+label {
584
+ display: none;
585
+ }
586
+
587
+ .xspec .spec-sidebar {
588
+ display: block;
589
+ box-shadow: inset 1px 0 var(--color-sidebar-shadow-inset),
590
+ inset 4px 0 8px -2px var(--color-sidebar-large-shadow) !important;
591
+ }
592
+
593
+ .xspec body {
594
+ padding-right: 345px;
595
+ }
596
+ }
597
+
598
+ .xspec
599
+ /* Notes */
600
+
601
+ .spec-note {
602
+ background: var(--color-spec-note-background);
603
+ border-left: solid 4px var(--color-spec-note-border);
604
+ margin: 1rem -1rem;
605
+ /* min-width: 70vw; */
606
+ min-width: 100%;
607
+ padding: 8px 1rem 12px calc(1rem - 4px);
608
+ width: -moz-fit-content;
609
+ width: -webkit-fit-content;
610
+ width: fit-content;
611
+ }
612
+
613
+ @media (min-width: 720px) {
614
+ .spec-note {
615
+ min-width: 416px;
616
+ }
617
+ }
618
+
619
+ .xspec .spec-note>a:first-child {
620
+ color: var(--color-spec-note-first-link);
621
+ display: block;
622
+ font: italic 11pt/18pt var(--font-family);
623
+ opacity: 0.6;
624
+ user-select: none;
625
+ }
626
+
627
+ .xspec
628
+ /* Todos */
629
+
630
+ .spec-todo {
631
+ color: var(--color-spec-todo);
632
+ margin: 1em 0 1em 5em;
633
+ min-height: 1em;
634
+ }
635
+
636
+ .xspec .spec-todo::before {
637
+ content: "todo";
638
+ display: block;
639
+ float: left;
640
+ margin-left: -5em;
641
+ text-transform: uppercase;
642
+ }
643
+
644
+ .xspec
645
+ /* Index table */
646
+
647
+ .spec-index ol {
648
+ list-style-type: none;
649
+ margin: 0 0 0 var(--indent);
650
+ padding: 0;
651
+ column-width: 210px;
652
+ column-gap: var(--indent);
653
+ }
654
+
655
+ .xspec .spec-index ol li {
656
+ width: min-content;
657
+ white-space: nowrap;
658
+ }
659
+
660
+ .xspec
661
+ /* Code */
662
+
663
+ pre,
664
+ .xspec code {
665
+ font-family: var(--font-family-monospace);
666
+ font-size: var(--mono-font-size);
667
+ font-weight: inherit;
668
+ }
669
+
670
+ .xspec code {
671
+ background: var(--color-code-background);
672
+ margin: -2px -1px;
673
+ padding: 3px 3px;
674
+ white-space: pre-wrap;
675
+ }
676
+
677
+ .xspec pre>code {
678
+ background: none;
679
+ font-weight: inherit;
680
+ margin: 0;
681
+ padding: 0;
682
+ white-space: pre;
683
+ }
684
+
685
+ .xspec pre {
686
+ background: var(--color-pre-background);
687
+ border-left: solid 4px var(--color-pre-border);
688
+ margin: 1rem -1rem;
689
+ /* min-width: 70vw; */
690
+ min-width: 100%;
691
+ padding: 12px 1rem 12px calc(1rem - 4px);
692
+ width: -moz-fit-content;
693
+ width: -webkit-fit-content;
694
+ width: fit-content;
695
+ max-width: calc(100vw - 2rem);
696
+ overflow-y: auto;
697
+ }
698
+
699
+ @media (min-width: 720px) {
700
+ pre {
701
+ min-width: 40ch;
702
+ }
703
+ }
704
+
705
+ .xspec .spec-example {
706
+ background: var(--color-spec-example);
707
+ border-left: solid 4px var(--color-spec-example-border);
708
+ padding-top: 8px;
709
+ }
710
+
711
+ .xspec .spec-counter-example {
712
+ background: var(--color-spec-counter-example);
713
+ border-left: solid 4px var(--color-spec-counter-border);
714
+ padding-top: 8px;
715
+ }
716
+
717
+ .xspec .spec-example>a,
718
+ .xspec .spec-counter-example>a {
719
+ display: block;
720
+ font: italic 11pt/18pt var(--font-family);
721
+ opacity: 0.6;
722
+ user-select: none;
723
+ }
724
+
725
+ .xspec .spec-counter-example>a {
726
+ color: var(--color-spec-counter-example-link);
727
+ }
728
+
729
+ .xspec
730
+ /* Tables */
731
+
732
+ table {
733
+ border-collapse: collapse;
734
+ }
735
+
736
+ .xspec th {
737
+ background-color: var(--color-table-header);
738
+ }
739
+
740
+ .xspec td,
741
+ .xspec th {
742
+ border: 1px solid var(--color-table-header-border);
743
+ padding: 0.4em;
744
+ vertical-align: baseline;
745
+ }
746
+
747
+ .xspec
748
+ /* Lists */
749
+
750
+ ol,
751
+ .xspec ul {
752
+ padding-left: var(--list-indent);
753
+ }
754
+
755
+ .xspec li>ol,
756
+ .xspec li>ul {
757
+ margin-top: 0.25em;
758
+ margin-bottom: 0.5em;
759
+ }
760
+
761
+ .xspec li+li {
762
+ margin-top: 0.25em;
763
+ }
764
+
765
+ .xspec li.task {
766
+ list-style-type: none;
767
+ position: relative;
768
+ }
769
+
770
+ .xspec li.task>input:first-child {
771
+ margin-left: 0;
772
+ position: absolute;
773
+ transform: translateX(calc(-100% - 1ch));
774
+ }
775
+
776
+ .xspec
777
+ /* Edits */
778
+
779
+ ins {
780
+ background-color: var(--color-inserts-background);
781
+ text-decoration: none;
782
+ }
783
+
784
+ .xspec del {
785
+ background-color: var(--color-deletions-background);
786
+ }
787
+
788
+ .xspec .spec-added,
789
+ .xspec .spec-removed {
790
+ border-left: 4px solid;
791
+ margin-left: -18px;
792
+ padding-left: 14px;
793
+ }
794
+
795
+ .xspec .spec-added {
796
+ border-color: var(--color-spec-added-border);
797
+ }
798
+
799
+ .xspec .spec-removed {
800
+ border-color: var(--color-spec-removed-border);
801
+ text-decoration: line-through;
802
+ }
803
+
804
+ .xspec
805
+ /* Values */
806
+
807
+ .spec-keyword {
808
+ font-weight: bold;
809
+ }
810
+
811
+ .xspec .spec-string {
812
+ font-family: var(--font-family-monospace);
813
+ font-size: 85%;
814
+ white-space: pre;
815
+ }
816
+
817
+ .xspec var {
818
+ font-style: italic;
819
+ }
820
+
821
+ .xspec *[data-name] {
822
+ transition: 0.15s background ease-out;
823
+ border-radius: 2px;
824
+ padding: 0 3px;
825
+ margin: 0 -3px;
826
+ }
827
+
828
+ .xspec
829
+ /* Grammar semantics, .xspec algorithms and calls */
830
+
831
+ .spec-semantic,
832
+ .xspec .spec-algo {
833
+ margin: 1rem 0 1rem var(--dfn-indent);
834
+ }
835
+
836
+ .xspec .spec-semantic>.spec-nt::after,
837
+ .xspec .spec-algo>.spec-call:first-child::after {
838
+ content: ":";
839
+ font-style: normal;
840
+ font-weight: bold;
841
+ margin-left: 1ex;
842
+ }
843
+
844
+ .xspec .spec-semantic ol,
845
+ .xspec .spec-semantic ol ol ol ol,
846
+ .xspec .spec-algo ol,
847
+ .xspec .spec-algo ol ol ol ol {
848
+ list-style-type: decimal;
849
+ }
850
+
851
+ .xspec .spec-semantic ol ol,
852
+ .xspec .spec-semantic ol ol ol ol ol,
853
+ .xspec .spec-algo ol ol,
854
+ .xspec .spec-algo ol ol ol ol ol {
855
+ list-style-type: lower-alpha;
856
+ }
857
+
858
+ .xspec .spec-semantic ol ol ol,
859
+ .xspec .spec-semantic ol ol ol ol ol ol,
860
+ .xspec .spec-algo ol ol ol,
861
+ .xspec .spec-algo ol ol ol ol ol ol {
862
+ list-style-type: lower-roman;
863
+ }
864
+
865
+ .xspec .spec-call>a {
866
+ color: inherit;
867
+ }
868
+
869
+ .xspec
870
+ /* Grammar productions */
871
+
872
+ .spec-production {
873
+ margin: 1rem 0 1rem var(--dfn-indent);
874
+ }
875
+
876
+ .xspec .spec-production>.spec-nt::after {
877
+ content: ":";
878
+ font-style: normal;
879
+ font-weight: bold;
880
+ margin: 0 1ex;
881
+ }
882
+
883
+ .xspec .spec-semantic.d2>.spec-nt::after,
884
+ .xspec .spec-production.d2>.spec-nt::after {
885
+ content: "::";
886
+ }
887
+
888
+ .xspec .spec-semantic.d3>.spec-nt::after,
889
+ .xspec .spec-production.d3>.spec-nt::after {
890
+ content: ":::";
891
+ }
892
+
893
+ .xspec .spec-production>.spec-rhs {
894
+ line-height: 1.1;
895
+ margin: 0.25em 0 0.5em calc(2 * var(--indent));
896
+ text-indent: calc(-1 * var(--indent));
897
+ }
898
+
899
+ .xspec .spec-semantic>.spec-rhs {
900
+ display: inline-block;
901
+ text-indent: calc(-1 * var(--indent));
902
+ margin-left: calc(1ex + var(--indent));
903
+ }
904
+
905
+ .xspec .spec-rhs>* {
906
+ text-indent: 0;
907
+ }
908
+
909
+ .xspec .spec-oneof {
910
+ display: inline;
911
+ }
912
+
913
+ .xspec .spec-oneof::before {
914
+ content: "one of";
915
+ font-style: normal;
916
+ font-weight: bold;
917
+ }
918
+
919
+ .xspec .spec-oneof-grid {
920
+ max-width: calc(100vw - 2rem);
921
+ overflow: auto;
922
+ margin: -1ex -1rem;
923
+ padding: 1ex 1rem;
924
+ }
925
+
926
+ .xspec .spec-oneof-grid>table {
927
+ margin-left: var(--indent);
928
+ }
929
+
930
+ .xspec .spec-oneof .spec-rhs {
931
+ border: none;
932
+ margin: 0;
933
+ padding: 0 0 0 1rem;
934
+ vertical-align: baseline;
935
+ white-space: pre;
936
+ }
937
+
938
+ .xspec .spec-oneof .spec-rhs:first-child {
939
+ padding: 0;
940
+ }
941
+
942
+ .xspec .spec-rhs .spec-constrained:not(:first-child),
943
+ .xspec .spec-rhs .spec-quantified:not(:first-child),
944
+ .xspec .spec-rhs .spec-nt:not(:first-child),
945
+ .xspec .spec-rhs .spec-t:not(:first-child),
946
+ .xspec .spec-rhs .spec-rx:not(:first-child),
947
+ .xspec .spec-rhs .spec-prose:not(:first-child),
948
+ .xspec .spec-rhs .spec-empty:not(:first-child),
949
+ .xspec .spec-rhs .spec-lookahead:not(:first-child) {
950
+ margin-left: 1ex;
951
+ display: inline-block;
952
+ }
953
+
954
+ .xspec .spec-condition {
955
+ font-size: 85%;
956
+ }
957
+
958
+ .xspec .spec-condition::before {
959
+ content: "[if ";
960
+ }
961
+
962
+ .xspec .spec-condition.not::before {
963
+ content: "[if not ";
964
+ }
965
+
966
+ .xspec .spec-condition::after {
967
+ content: "]";
968
+ }
969
+
970
+ .xspec .spec-empty,
971
+ .xspec .spec-prose {
972
+ color: var(--color-spec-prose);
973
+ }
974
+
975
+ .xspec .spec-nt {
976
+ font-style: italic;
977
+ }
978
+
979
+ .xspec .spec-nt>a {
980
+ color: inherit;
981
+ }
982
+
983
+ .xspec .spec-quantifiers,
984
+ .xspec .spec-params {
985
+ font-size: 65%;
986
+ font-style: normal;
987
+ vertical-align: sub;
988
+ }
989
+
990
+ .xspec .spec-quantifier.list {
991
+ color: var(--color-spec-quantifier-list);
992
+ }
993
+
994
+ .xspec .spec-quantifier.optional {
995
+ color: var(--color-spec-quantifier-optional);
996
+ }
997
+
998
+ .xspec .spec-params,
999
+ .xspec .spec-condition {
1000
+ color: var(--color-spec-condition);
1001
+ }
1002
+
1003
+ .xspec .spec-params::before {
1004
+ content: "[";
1005
+ }
1006
+
1007
+ .xspec .spec-params::after {
1008
+ content: "]";
1009
+ }
1010
+
1011
+ .xspec .spec-quantifier:not(:last-child)::after,
1012
+ .xspec .spec-param:not(:last-child)::after {
1013
+ color: var(--color-spec-param);
1014
+ content: ", ";
1015
+ }
1016
+
1017
+ .xspec .spec-param.conditional::before {
1018
+ content: "?";
1019
+ }
1020
+
1021
+ .xspec .spec-param.negated::before {
1022
+ content: "!";
1023
+ }
1024
+
1025
+ .xspec .spec-t,
1026
+ .xspec .spec-rx {
1027
+ color: var(--color-spec-rx);
1028
+ font-family: var(--font-family-monospace);
1029
+ font-weight: bold;
1030
+ }
1031
+
1032
+ .xspec .spec-butnot::before {
1033
+ color: var(--color-grey);
1034
+ content: "but not";
1035
+ font-family: var(--font-family);
1036
+ font-weight: normal;
1037
+ margin-right: 1ex;
1038
+ }
1039
+
1040
+ .xspec .spec-butnot>*:not(:first-child)::before {
1041
+ color: var(--color-grey);
1042
+ content: "or";
1043
+ font-family: var(--font-family);
1044
+ font-weight: normal;
1045
+ margin-right: 1ex;
1046
+ }
1047
+
1048
+ .xspec .spec-rhs .spec-oneof::before,
1049
+ .xspec .spec-rhs .spec-butnot::before {
1050
+ margin-left: 1ex;
1051
+ }
1052
+
1053
+ .xspec .spec-lookahead>* {
1054
+ margin: 0 !important;
1055
+ }
1056
+
1057
+ .xspec .spec-lookahead>*:not(:first-child)::before {
1058
+ color: var(--color-grey);
1059
+ content: ", ";
1060
+ font-family: var(--font-family);
1061
+ font-style: normal;
1062
+ font-weight: normal;
1063
+ }
1064
+
1065
+ .xspec .spec-lookahead::before {
1066
+ color: var(--color-grey);
1067
+ content: "[lookahead = ";
1068
+ font-family: var(--font-family);
1069
+ font-style: normal;
1070
+ font-weight: normal;
1071
+ }
1072
+
1073
+ .xspec .spec-lookahead.not::before {
1074
+ content: "[lookahead \2260 ";
1075
+ }
1076
+
1077
+ .xspec .spec-lookahead.set::before {
1078
+ content: "[lookahead \2208 {";
1079
+ margin-right: 0;
1080
+ }
1081
+
1082
+ .xspec .spec-lookahead.set.not::before {
1083
+ content: "[lookahead \2209 {";
1084
+ }
1085
+
1086
+ .xspec .spec-lookahead.ntset::before {
1087
+ content: "[lookahead \2208 ";
1088
+ margin-right: 0;
1089
+ }
1090
+
1091
+ .xspec .spec-lookahead.ntset.not::before {
1092
+ content: "[lookahead \2209 ";
1093
+ }
1094
+
1095
+ .xspec .spec-lookahead::after {
1096
+ color: var(--color-grey);
1097
+ content: "]";
1098
+ }
1099
+
1100
+ .xspec .spec-lookahead.set::after {
1101
+ content: "}]";
1102
+ }
1103
+
1104
+ .xspec
1105
+ /* Prism color scheme */
1106
+
1107
+ code[class*="language-"],
1108
+ .xspec pre[class*="language-"] {
1109
+ color: var(--color-prism-foreground);
1110
+ background: none;
1111
+ text-shadow: 0 1px var(--color-prism-text-shadow);
1112
+ font-family: var(--font-family-monospace);
1113
+ font-size: 1em;
1114
+ text-align: left;
1115
+ white-space: pre;
1116
+ word-spacing: normal;
1117
+ word-break: normal;
1118
+ word-wrap: normal;
1119
+ line-height: 1.5;
1120
+
1121
+ -moz-tab-size: 4;
1122
+ -o-tab-size: 4;
1123
+ tab-size: 4;
1124
+
1125
+ -webkit-hyphens: none;
1126
+ -moz-hyphens: none;
1127
+ -ms-hyphens: none;
1128
+ hyphens: none;
1129
+ }
1130
+
1131
+ .xspec pre[class*="language-"]::-moz-selection,
1132
+ .xspec pre[class*="language-"] ::-moz-selection,
1133
+ .xspec code[class*="language-"]::-moz-selection,
1134
+ .xspec code[class*="language-"] ::-moz-selection {
1135
+ text-shadow: none;
1136
+ background: var(--color-prism-background);
1137
+ }
1138
+
1139
+ .xspec pre[class*="language-"]::selection,
1140
+ .xspec pre[class*="language-"] ::selection,
1141
+ .xspec code[class*="language-"]::selection,
1142
+ .xspec code[class*="language-"] ::selection {
1143
+ text-shadow: none;
1144
+ background: var(--color-prism-background);
1145
+ }
1146
+
1147
+ @media print {
1148
+
1149
+ code[class*="language-"],
1150
+ pre[class*="language-"] {
1151
+ text-shadow: none;
1152
+ }
1153
+ }
1154
+
1155
+ .xspec
1156
+
1157
+ /* Code blocks */
1158
+ pre[class*="language-"] {
1159
+ padding: 1em;
1160
+ margin: 0.5em 0;
1161
+ overflow: auto;
1162
+ }
1163
+
1164
+ .xspec :not(pre)>code[class*="language-"],
1165
+ .xspec pre[class*="language-"] {
1166
+ background: var(--color-prism-block-background);
1167
+ }
1168
+
1169
+ .xspec
1170
+
1171
+ /* Inline code */
1172
+ :not(pre)>code[class*="language-"] {
1173
+ padding: 0.1em;
1174
+ border-radius: 0.3em;
1175
+ white-space: normal;
1176
+ }
1177
+
1178
+ .xspec .token.atrule,
1179
+ .xspec .token.attr-value,
1180
+ .xspec .token.keyword,
1181
+ .xspec .token.property,
1182
+ .xspec .token.selector,
1183
+ .xspec .token.attr-name,
1184
+ .xspec .token.builtin,
1185
+ .xspec .token.entity,
1186
+ .xspec .token.url,
1187
+ .xspec .token.inserted {
1188
+ color: var(--color-token-inserted);
1189
+ background: none;
1190
+ }
1191
+
1192
+ .xspec .token.tag,
1193
+ .xspec .token.boolean,
1194
+ .xspec .token.number,
1195
+ .xspec .token.string,
1196
+ .xspec .token.char,
1197
+ .xspec .token.constant,
1198
+ .xspec .token.symbol,
1199
+ .xspec .token.regex,
1200
+ .xspec .token.important,
1201
+ .xspec .token.variable,
1202
+ .xspec .token.function,
1203
+ .xspec .token.class-name,
1204
+ .xspec .token.deleted {
1205
+ color: var(--color-token-deleted);
1206
+ }
1207
+
1208
+ .xspec .token.comment,
1209
+ .xspec .token.prolog,
1210
+ .xspec .token.doctype,
1211
+ .xspec .token.cdata,
1212
+ .xspec .token.description {
1213
+ color: inherit;
1214
+ opacity: 0.3;
1215
+ }
1216
+
1217
+ .xspec .token.punctuation {
1218
+ color: inherit;
1219
+ opacity: 0.5;
1220
+ }
1221
+
1222
+ .xspec .token.operator,
1223
+ .xspec .token.namespace {
1224
+ color: inherit;
1225
+ opacity: 0.7;
1226
+ }