@prosopo/client-bundle-example 2.10.24 → 2.11.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.
Files changed (51) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +5 -4
  2. package/.turbo/turbo-build$colon$tsc.log +11 -11
  3. package/.turbo/turbo-build.log +6 -5
  4. package/CHANGELOG.md +16 -0
  5. package/dist/cjs/index.cjs +13 -41
  6. package/dist/cjs/plugins/pages.cjs +113 -0
  7. package/dist/index.js +2 -42
  8. package/dist/plugins/pages.js +103 -0
  9. package/package.json +2 -2
  10. package/src/frictionless-explicit-web3.html +10 -23
  11. package/src/frictionless-explicit.html +10 -22
  12. package/src/frictionless-implicit.html +60 -86
  13. package/src/frictionless-manual-start.html +13 -33
  14. package/src/image-explicit-web3.html +8 -24
  15. package/src/image-explicit.html +8 -23
  16. package/src/image-implicit.html +192 -0
  17. package/src/index.html +11 -26
  18. package/src/index.ts +1 -62
  19. package/src/invisible-frictionless-explicit.html +8 -17
  20. package/src/invisible-frictionless-implicit.html +8 -25
  21. package/src/invisible-image-explicit.html +8 -23
  22. package/src/invisible-image-implicit.html +8 -24
  23. package/src/invisible-pow-explicit.html +8 -23
  24. package/src/invisible-pow-implicit.html +9 -21
  25. package/src/invisible-puzzle-explicit.html +8 -23
  26. package/src/invisible-puzzle-implicit.html +9 -21
  27. package/src/plugins/code-snippet-injector.ts +179 -0
  28. package/src/plugins/form-filler-injector.ts +36 -121
  29. package/src/plugins/layout-injector.ts +238 -0
  30. package/src/plugins/logo.ts +15 -0
  31. package/src/plugins/pages.ts +219 -0
  32. package/src/plugins/placement-injector.ts +25 -64
  33. package/src/plugins/slots.ts +32 -0
  34. package/src/plugins/status-log-injector.ts +35 -114
  35. package/src/pow-explicit-web3.html +8 -24
  36. package/src/pow-explicit.html +8 -23
  37. package/src/pow-implicit-sessionid.html +10 -24
  38. package/src/pow-implicit.html +9 -24
  39. package/src/puzzle-bind-explicit.html +9 -24
  40. package/src/puzzle-explicit.html +8 -23
  41. package/src/puzzle-implicit.html +9 -24
  42. package/src/styles/demo.css +803 -0
  43. package/src/tests/plugins.unit.test.ts +285 -118
  44. package/tsconfig.tsbuildinfo +1 -1
  45. package/vite.config.ts +5 -5
  46. package/src/plugins/explanation-injector.ts +0 -294
  47. package/src/plugins/navigation-injector.ts +0 -606
  48. package/src/styles/captcha.css +0 -78
  49. package/src/styles/field.css +0 -12
  50. package/src/tests/floatLabel.unit.test.ts +0 -195
  51. package/src/tests/floatLabelReady.unit.test.ts +0 -36
@@ -0,0 +1,803 @@
1
+ /*
2
+ * Copyright 2021-2026 Prosopo (UK) Ltd.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ /* Colours mirror the prosopo.io / portal Tailwind palette. */
18
+ :root {
19
+ --demo-font: "Open Sans", "Segoe UI", system-ui, -apple-system, sans-serif;
20
+ --demo-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
21
+ --gray-50: #f9fafb;
22
+ --gray-100: #f3f4f6;
23
+ --gray-200: #e5e7eb;
24
+ --gray-300: #d1d5db;
25
+ --gray-400: #9ca3af;
26
+ --gray-500: #6b7280;
27
+ --gray-600: #4b5563;
28
+ --gray-700: #374151;
29
+ --gray-900: #111827;
30
+ --propurple-50: #edecf5;
31
+ --propurple-100: #dcd9ec;
32
+ --propurple-300: #8c85c1;
33
+ --propurple-500: #4e439f;
34
+ --propurple-600: #423987;
35
+ --propurple-700: #332c67;
36
+ --propurple-800: #1f1b40;
37
+ --propink-500: #eb427e;
38
+ --progreen-50: #f0fdf4;
39
+ --progreen-200: #bbf7d0;
40
+ --progreen-500: #22c55e;
41
+ --progreen-700: #15803d;
42
+ --prored-500: #ef4444;
43
+ --prored-700: #b91c1c;
44
+ --proamber-500: #f59e0b;
45
+ --problue-500: #0ea5e9;
46
+ }
47
+
48
+ *,
49
+ *::before,
50
+ *::after {
51
+ box-sizing: border-box;
52
+ }
53
+
54
+ body.demo {
55
+ margin: 0;
56
+ font-family: var(--demo-font);
57
+ color: var(--gray-900);
58
+ background: var(--gray-50);
59
+ -webkit-font-smoothing: antialiased;
60
+ }
61
+
62
+ .demo a {
63
+ color: var(--propurple-600);
64
+ text-decoration: none;
65
+ }
66
+
67
+ .demo a:hover {
68
+ color: var(--propurple-700);
69
+ }
70
+
71
+ .demo code {
72
+ font-family: var(--demo-mono);
73
+ font-size: 0.8125rem;
74
+ background: var(--gray-100);
75
+ padding: 1px 4px;
76
+ border-radius: 4px;
77
+ }
78
+
79
+ /* Header */
80
+
81
+ .demo-header {
82
+ display: flex;
83
+ align-items: center;
84
+ gap: 40px;
85
+ height: 72px;
86
+ padding: 0 32px;
87
+ background: #ffffff;
88
+ border-bottom: 1px solid var(--gray-200);
89
+ }
90
+
91
+ .demo-header__logo {
92
+ display: flex;
93
+ color: #1d1d1b;
94
+ }
95
+
96
+ .demo-header__logo svg {
97
+ width: 123px;
98
+ height: 28px;
99
+ }
100
+
101
+ .demo-header__nav {
102
+ display: flex;
103
+ gap: 28px;
104
+ font-size: 15px;
105
+ font-weight: 600;
106
+ }
107
+
108
+ .demo .demo-header__nav a {
109
+ color: var(--gray-700);
110
+ }
111
+
112
+ .demo .demo-header__nav a:hover {
113
+ color: var(--propurple-600);
114
+ }
115
+
116
+ .demo-header__actions {
117
+ margin-left: auto;
118
+ display: flex;
119
+ align-items: center;
120
+ gap: 12px;
121
+ }
122
+
123
+ .demo .demo-link-button {
124
+ display: inline-block;
125
+ padding: 8px 16px;
126
+ border-radius: 6px;
127
+ font-size: 15px;
128
+ font-weight: 500;
129
+ line-height: 24px;
130
+ white-space: nowrap;
131
+ transition: background-color 150ms ease-in-out, color 150ms ease-in-out;
132
+ }
133
+
134
+ .demo .demo-link-button--muted {
135
+ background: var(--gray-200);
136
+ color: #000000;
137
+ }
138
+
139
+ .demo .demo-link-button--primary {
140
+ background: var(--propurple-600);
141
+ color: #ffffff;
142
+ }
143
+
144
+ .demo .demo-link-button--pink {
145
+ background: var(--propink-500);
146
+ color: #ffffff;
147
+ }
148
+
149
+ .demo .demo-link-button--muted:hover,
150
+ .demo .demo-link-button--primary:hover {
151
+ background: var(--propurple-700);
152
+ color: #ffffff;
153
+ }
154
+
155
+ .demo .demo-link-button--pink:hover {
156
+ background: var(--propurple-500);
157
+ color: #ffffff;
158
+ }
159
+
160
+ /* Three-column playground */
161
+
162
+ .demo-layout {
163
+ display: grid;
164
+ grid-template-columns: 300px minmax(0, 1fr) 420px;
165
+ min-height: calc(100vh - 72px);
166
+ }
167
+
168
+ .demo-sidebar {
169
+ display: flex;
170
+ flex-direction: column;
171
+ gap: 22px;
172
+ padding: 28px 24px;
173
+ background: #ffffff;
174
+ border-right: 1px solid var(--gray-200);
175
+ }
176
+
177
+ .demo-intro-block {
178
+ display: flex;
179
+ flex-direction: column;
180
+ gap: 6px;
181
+ }
182
+
183
+ .demo-eyebrow {
184
+ font-size: 12px;
185
+ font-weight: 700;
186
+ letter-spacing: 0.18em;
187
+ text-transform: uppercase;
188
+ color: var(--propurple-600);
189
+ }
190
+
191
+ .demo-title {
192
+ margin: 0;
193
+ font-size: 24px;
194
+ font-weight: 800;
195
+ letter-spacing: -0.02em;
196
+ line-height: 32px;
197
+ }
198
+
199
+ .demo-intro {
200
+ margin: 0;
201
+ font-size: 14px;
202
+ line-height: 20px;
203
+ color: var(--gray-600);
204
+ }
205
+
206
+ .demo-group {
207
+ display: flex;
208
+ flex-direction: column;
209
+ gap: 8px;
210
+ }
211
+
212
+ .demo-group__label {
213
+ font-size: 13px;
214
+ font-weight: 600;
215
+ color: var(--gray-700);
216
+ }
217
+
218
+ .demo-types {
219
+ display: flex;
220
+ flex-direction: column;
221
+ gap: 6px;
222
+ }
223
+
224
+ .demo .demo-choice {
225
+ display: flex;
226
+ gap: 10px;
227
+ padding: 10px 12px;
228
+ border: 1px solid var(--gray-200);
229
+ border-radius: 8px;
230
+ color: var(--gray-900);
231
+ }
232
+
233
+ .demo .demo-choice:hover {
234
+ border-color: var(--gray-300);
235
+ background: var(--gray-50);
236
+ color: var(--gray-900);
237
+ }
238
+
239
+ .demo .demo-choice[aria-current="page"] {
240
+ border-color: var(--propurple-600);
241
+ box-shadow: inset 0 0 0 0.5px var(--propurple-600);
242
+ background: var(--propurple-50);
243
+ }
244
+
245
+ .demo-choice__radio {
246
+ flex-shrink: 0;
247
+ width: 16px;
248
+ height: 16px;
249
+ margin-top: 2px;
250
+ border: 1.5px solid var(--gray-400);
251
+ border-radius: 50%;
252
+ background: #ffffff;
253
+ }
254
+
255
+ .demo-choice[aria-current="page"] .demo-choice__radio {
256
+ border: 5px solid var(--propurple-600);
257
+ }
258
+
259
+ .demo-choice__body {
260
+ display: flex;
261
+ flex-direction: column;
262
+ gap: 2px;
263
+ }
264
+
265
+ .demo-choice__name {
266
+ display: flex;
267
+ align-items: center;
268
+ gap: 8px;
269
+ font-size: 14px;
270
+ font-weight: 600;
271
+ }
272
+
273
+ .demo-choice[aria-current="page"] .demo-choice__name {
274
+ font-weight: 700;
275
+ }
276
+
277
+ .demo-badge {
278
+ font-size: 11px;
279
+ font-weight: 700;
280
+ color: var(--propurple-600);
281
+ background: var(--propurple-100);
282
+ padding: 1px 6px;
283
+ border-radius: 9999px;
284
+ }
285
+
286
+ .demo-choice__description {
287
+ font-size: 13px;
288
+ line-height: 18px;
289
+ color: var(--gray-600);
290
+ }
291
+
292
+ .demo-segmented {
293
+ display: grid;
294
+ grid-auto-flow: column;
295
+ grid-auto-columns: minmax(0, 1fr);
296
+ gap: 4px;
297
+ padding: 4px;
298
+ background: var(--gray-100);
299
+ border-radius: 8px;
300
+ font-size: 13px;
301
+ }
302
+
303
+ .demo .demo-segmented a {
304
+ padding: 6px 4px;
305
+ border-radius: 6px;
306
+ text-align: center;
307
+ font-weight: 500;
308
+ color: var(--gray-600);
309
+ }
310
+
311
+ .demo .demo-segmented a:hover {
312
+ color: var(--gray-900);
313
+ }
314
+
315
+ .demo .demo-segmented a[aria-current="page"] {
316
+ background: #ffffff;
317
+ color: var(--gray-900);
318
+ font-weight: 600;
319
+ box-shadow: 0 1px 2px rgb(0 0 0 / 0.08);
320
+ }
321
+
322
+ .demo-renderings {
323
+ display: flex;
324
+ flex-direction: column;
325
+ gap: 6px;
326
+ }
327
+
328
+ .demo-group__hint {
329
+ margin: 0;
330
+ font-size: 12px;
331
+ line-height: 17px;
332
+ color: var(--gray-500);
333
+ }
334
+
335
+ .demo-advanced {
336
+ padding-top: 18px;
337
+ border-top: 1px solid var(--gray-200);
338
+ }
339
+
340
+ .demo-advanced summary {
341
+ display: flex;
342
+ align-items: center;
343
+ gap: 8px;
344
+ font-size: 13px;
345
+ font-weight: 600;
346
+ color: var(--gray-700);
347
+ list-style: none;
348
+ cursor: pointer;
349
+ }
350
+
351
+ .demo-advanced summary::-webkit-details-marker {
352
+ display: none;
353
+ }
354
+
355
+ .demo-advanced summary::before {
356
+ content: "";
357
+ width: 6px;
358
+ height: 6px;
359
+ border-right: 1.5px solid currentColor;
360
+ border-bottom: 1.5px solid currentColor;
361
+ transform: rotate(-45deg);
362
+ transition: transform 150ms ease-in-out;
363
+ }
364
+
365
+ .demo-advanced[open] summary {
366
+ margin-bottom: 12px;
367
+ }
368
+
369
+ .demo-advanced[open] summary::before {
370
+ transform: rotate(45deg);
371
+ }
372
+
373
+ .demo-placement-note {
374
+ margin: 0;
375
+ font-size: 12px;
376
+ line-height: 17px;
377
+ color: var(--gray-500);
378
+ }
379
+
380
+ /* Main column: the form under test */
381
+
382
+ .demo-main {
383
+ display: flex;
384
+ flex-direction: column;
385
+ align-items: center;
386
+ gap: 20px;
387
+ padding: 40px 32px;
388
+ min-width: 0;
389
+ }
390
+
391
+ .demo-toolbar {
392
+ display: flex;
393
+ flex-wrap: wrap;
394
+ align-items: center;
395
+ gap: 8px;
396
+ width: 100%;
397
+ max-width: 440px;
398
+ }
399
+
400
+ .demo-chip {
401
+ padding: 4px 10px;
402
+ font-size: 13px;
403
+ color: var(--gray-600);
404
+ background: #ffffff;
405
+ border: 1px solid var(--gray-200);
406
+ border-radius: 9999px;
407
+ }
408
+
409
+ .form-filler-button {
410
+ display: inline-flex;
411
+ align-items: center;
412
+ gap: 6px;
413
+ margin-left: auto;
414
+ padding: 4px 10px;
415
+ font-family: inherit;
416
+ font-size: 13px;
417
+ font-weight: 600;
418
+ color: var(--gray-700);
419
+ background: #ffffff;
420
+ border: 1px solid var(--gray-300);
421
+ border-radius: 6px;
422
+ cursor: pointer;
423
+ }
424
+
425
+ .form-filler-button:hover {
426
+ border-color: var(--propurple-300);
427
+ color: var(--propurple-600);
428
+ }
429
+
430
+ .form-filler-button svg {
431
+ width: 14px;
432
+ height: 14px;
433
+ fill: currentColor;
434
+ }
435
+
436
+ .demo-card {
437
+ width: 100%;
438
+ max-width: 440px;
439
+ padding: 28px 32px;
440
+ background: #ffffff;
441
+ border: 1px solid var(--gray-200);
442
+ border-radius: 8px;
443
+ box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
444
+ }
445
+
446
+ .demo-card h2 {
447
+ margin: 0;
448
+ font-size: 28px;
449
+ font-weight: 700;
450
+ line-height: 36px;
451
+ }
452
+
453
+ .demo-note {
454
+ margin: 0;
455
+ font-size: 14px;
456
+ line-height: 20px;
457
+ color: var(--gray-600);
458
+ }
459
+
460
+ .demo-panel .demo-note {
461
+ margin-top: 12px;
462
+ font-size: 13px;
463
+ }
464
+
465
+ .demo-form {
466
+ display: flex;
467
+ flex-direction: column;
468
+ gap: 16px;
469
+ }
470
+
471
+ .demo-field {
472
+ display: flex;
473
+ flex-direction: column;
474
+ gap: 4px;
475
+ }
476
+
477
+ .demo-field label {
478
+ font-size: 14px;
479
+ font-weight: 500;
480
+ color: var(--gray-700);
481
+ }
482
+
483
+ .demo-form input[type="text"],
484
+ .demo-form input[type="email"],
485
+ .demo-form input[type="password"],
486
+ .demo-form select {
487
+ width: 100%;
488
+ height: 42px;
489
+ padding: 0 12px;
490
+ font-family: inherit;
491
+ font-size: 14px;
492
+ color: var(--gray-900);
493
+ background: #ffffff;
494
+ border: 1px solid var(--gray-300);
495
+ border-radius: 6px;
496
+ }
497
+
498
+ .demo-form input:focus,
499
+ .demo-form select:focus {
500
+ outline: none;
501
+ border-color: var(--propurple-600);
502
+ box-shadow: 0 0 0 3px var(--propurple-100);
503
+ }
504
+
505
+ .demo-button {
506
+ width: 100%;
507
+ padding: 12px;
508
+ font-family: inherit;
509
+ font-size: 16px;
510
+ font-weight: 500;
511
+ line-height: 24px;
512
+ color: #ffffff;
513
+ background: #000000;
514
+ border: 1px solid transparent;
515
+ border-radius: 6px;
516
+ cursor: pointer;
517
+ transition: background-color 150ms ease-in-out;
518
+ }
519
+
520
+ .demo-button:hover {
521
+ background: var(--propurple-700);
522
+ }
523
+
524
+ .demo-button--secondary {
525
+ color: var(--gray-700);
526
+ background: #ffffff;
527
+ border-color: var(--gray-300);
528
+ }
529
+
530
+ .demo-button--secondary:hover {
531
+ color: var(--propurple-600);
532
+ background: var(--gray-50);
533
+ border-color: var(--propurple-300);
534
+ }
535
+
536
+ #messageContainer {
537
+ padding: 10px 12px;
538
+ font-size: 14px;
539
+ background: var(--gray-50);
540
+ border: 1px solid var(--gray-200);
541
+ border-radius: 6px;
542
+ }
543
+
544
+ #error {
545
+ font-size: 14px;
546
+ color: var(--prored-700);
547
+ }
548
+
549
+ #error:empty {
550
+ display: none;
551
+ }
552
+
553
+ .demo-result {
554
+ margin-top: 16px;
555
+ padding: 12px;
556
+ font-size: 14px;
557
+ line-height: 20px;
558
+ color: var(--progreen-700);
559
+ background: var(--progreen-50);
560
+ border: 1px solid var(--progreen-200);
561
+ border-radius: 6px;
562
+ }
563
+
564
+ .account-select {
565
+ display: flex;
566
+ flex-direction: column;
567
+ gap: 4px;
568
+ }
569
+
570
+ .demo-cta-line {
571
+ margin: 0;
572
+ font-size: 14px;
573
+ color: var(--gray-600);
574
+ text-align: center;
575
+ }
576
+
577
+ .demo .demo-cta-line a {
578
+ font-weight: 600;
579
+ }
580
+
581
+ /* Right-hand panel: event log, code and sign-up */
582
+
583
+ .demo-panel {
584
+ display: flex;
585
+ flex-direction: column;
586
+ min-width: 0;
587
+ background: #ffffff;
588
+ border-left: 1px solid var(--gray-200);
589
+ }
590
+
591
+ .demo-panel__section {
592
+ padding: 20px 24px;
593
+ border-bottom: 1px solid var(--gray-200);
594
+ }
595
+
596
+ .demo-panel__title {
597
+ margin: 0 0 12px;
598
+ font-size: 15px;
599
+ font-weight: 700;
600
+ }
601
+
602
+ .captcha-status {
603
+ display: flex;
604
+ flex-direction: column;
605
+ gap: 8px;
606
+ max-height: 320px;
607
+ overflow-y: auto;
608
+ font-family: var(--demo-mono);
609
+ font-size: 12.5px;
610
+ line-height: 18px;
611
+ }
612
+
613
+ .captcha-status:empty::before {
614
+ content: "Nothing yet. Fill in the form to get started.";
615
+ font-family: var(--demo-font);
616
+ color: var(--gray-400);
617
+ }
618
+
619
+ .status-item {
620
+ display: grid;
621
+ grid-template-columns: auto 8px minmax(0, 1fr);
622
+ align-items: start;
623
+ gap: 10px;
624
+ color: var(--gray-700);
625
+ overflow-wrap: anywhere;
626
+ }
627
+
628
+ .status-item__time {
629
+ color: var(--gray-400);
630
+ }
631
+
632
+ .status-item__dot {
633
+ width: 8px;
634
+ height: 8px;
635
+ margin-top: 5px;
636
+ border-radius: 50%;
637
+ background: var(--gray-400);
638
+ }
639
+
640
+ .status-success .status-item__dot {
641
+ background: var(--progreen-500);
642
+ }
643
+
644
+ .status-error .status-item__dot {
645
+ background: var(--prored-500);
646
+ }
647
+
648
+ .status-error .status-item__message {
649
+ color: var(--prored-700);
650
+ }
651
+
652
+ .status-warning .status-item__dot {
653
+ background: var(--proamber-500);
654
+ }
655
+
656
+ .status-info .status-item__dot {
657
+ background: var(--problue-500);
658
+ }
659
+
660
+ .demo-code-block {
661
+ overflow: hidden;
662
+ background: var(--propurple-800);
663
+ border-radius: 8px;
664
+ }
665
+
666
+ .demo-code-bar {
667
+ display: flex;
668
+ justify-content: flex-end;
669
+ padding: 8px 8px 0;
670
+ }
671
+
672
+ .demo-code {
673
+ margin: 0;
674
+ padding: 4px 16px 16px;
675
+ overflow-x: auto;
676
+ font-family: var(--demo-mono);
677
+ font-size: 12.5px;
678
+ line-height: 20px;
679
+ white-space: pre;
680
+ color: var(--propurple-50);
681
+ }
682
+
683
+ .demo .demo-code code {
684
+ padding: 0;
685
+ font-size: inherit;
686
+ color: inherit;
687
+ background: none;
688
+ }
689
+
690
+ .demo-copy {
691
+ padding: 4px 10px;
692
+ font-family: inherit;
693
+ font-size: 12px;
694
+ font-weight: 600;
695
+ color: var(--propurple-100);
696
+ background: var(--propurple-700);
697
+ border: 0;
698
+ border-radius: 6px;
699
+ cursor: pointer;
700
+ }
701
+
702
+ .demo-copy:hover {
703
+ color: #ffffff;
704
+ }
705
+
706
+ .demo-panel__cta {
707
+ display: flex;
708
+ flex-direction: column;
709
+ align-items: flex-start;
710
+ gap: 12px;
711
+ margin: auto 24px 24px;
712
+ padding: 20px;
713
+ background: var(--propurple-800);
714
+ border-radius: 8px;
715
+ }
716
+
717
+ .demo-panel__cta h2 {
718
+ margin: 0;
719
+ font-size: 18px;
720
+ font-weight: 700;
721
+ color: #ffffff;
722
+ }
723
+
724
+ .demo-panel__cta p {
725
+ margin: 0;
726
+ font-size: 14px;
727
+ line-height: 20px;
728
+ color: var(--propurple-100);
729
+ }
730
+
731
+ /* Narrower screens: the panel drops under the form, then everything stacks. */
732
+
733
+ @media (max-width: 1279px) {
734
+ .demo-layout {
735
+ grid-template-columns: 280px minmax(0, 1fr);
736
+ }
737
+
738
+ .demo-sidebar {
739
+ grid-row: span 2;
740
+ }
741
+
742
+ .demo-panel {
743
+ border-left: 0;
744
+ border-top: 1px solid var(--gray-200);
745
+ }
746
+
747
+ .demo-panel__cta {
748
+ margin-top: 24px;
749
+ }
750
+ }
751
+
752
+ @media (max-width: 859px) {
753
+ .demo-header {
754
+ gap: 16px;
755
+ padding: 0 16px;
756
+ }
757
+
758
+ .demo-header__nav {
759
+ display: none;
760
+ }
761
+
762
+ .demo-layout {
763
+ grid-template-columns: minmax(0, 1fr);
764
+ }
765
+
766
+ .demo-sidebar {
767
+ grid-row: auto;
768
+ padding: 20px 16px;
769
+ border-right: 0;
770
+ border-bottom: 1px solid var(--gray-200);
771
+ }
772
+
773
+ .demo-types {
774
+ display: grid;
775
+ grid-template-columns: repeat(2, minmax(0, 1fr));
776
+ }
777
+
778
+ .demo-types .demo-choice__description {
779
+ display: none;
780
+ }
781
+
782
+ .demo-main {
783
+ padding: 24px 16px;
784
+ }
785
+
786
+ .demo-card {
787
+ padding: 24px 20px;
788
+ }
789
+
790
+ .demo-panel__section {
791
+ padding: 20px 16px;
792
+ }
793
+
794
+ .demo-panel__cta {
795
+ margin: 24px 16px;
796
+ }
797
+ }
798
+
799
+ @media (max-width: 480px) {
800
+ .demo .demo-link-button--muted {
801
+ display: none;
802
+ }
803
+ }