@prosopo/client-bundle-example 2.11.2 → 2.11.4

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 (52) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +4 -7
  2. package/.turbo/turbo-build$colon$tsc.log +11 -14
  3. package/.turbo/turbo-build.log +4 -10
  4. package/CHANGELOG.md +32 -0
  5. package/LICENSE +201 -0
  6. package/README.md +6 -6
  7. package/dist/cjs/plugins/pages.cjs +7 -0
  8. package/dist/plugins/pages.js +7 -0
  9. package/env.staging +5 -4
  10. package/package.json +52 -53
  11. package/vite.config.ts +50 -1
  12. package/env.development +0 -7
  13. package/env.production +0 -6
  14. package/src/assets/dummy.txt +0 -0
  15. package/src/frictionless-explicit-web3.html +0 -236
  16. package/src/frictionless-explicit.html +0 -204
  17. package/src/frictionless-implicit.html +0 -192
  18. package/src/frictionless-manual-start.html +0 -204
  19. package/src/image-explicit-web3.html +0 -182
  20. package/src/image-explicit.html +0 -151
  21. package/src/image-implicit.html +0 -192
  22. package/src/index.html +0 -192
  23. package/src/index.ts +0 -15
  24. package/src/invisible-frictionless-explicit.html +0 -123
  25. package/src/invisible-frictionless-implicit.html +0 -187
  26. package/src/invisible-image-explicit.html +0 -146
  27. package/src/invisible-image-implicit.html +0 -187
  28. package/src/invisible-pow-explicit.html +0 -146
  29. package/src/invisible-pow-implicit.html +0 -94
  30. package/src/invisible-puzzle-explicit.html +0 -145
  31. package/src/invisible-puzzle-implicit.html +0 -94
  32. package/src/plugins/code-snippet-injector.ts +0 -179
  33. package/src/plugins/form-filler-injector.ts +0 -148
  34. package/src/plugins/layout-injector.ts +0 -256
  35. package/src/plugins/logo.ts +0 -15
  36. package/src/plugins/pages.ts +0 -219
  37. package/src/plugins/placement-injector.ts +0 -114
  38. package/src/plugins/slots.ts +0 -32
  39. package/src/plugins/status-log-injector.ts +0 -143
  40. package/src/pow-explicit-web3.html +0 -179
  41. package/src/pow-explicit.html +0 -143
  42. package/src/pow-implicit-sessionid.html +0 -209
  43. package/src/pow-implicit.html +0 -192
  44. package/src/puzzle-bind-explicit.html +0 -83
  45. package/src/puzzle-explicit.html +0 -151
  46. package/src/puzzle-implicit.html +0 -192
  47. package/src/styles/demo.css +0 -803
  48. package/src/tests/plugins.unit.test.ts +0 -490
  49. package/tsconfig.cjs.json +0 -25
  50. package/tsconfig.json +0 -31
  51. package/tsconfig.tsbuildinfo +0 -1
  52. package/tsconfig.types.json +0 -9
@@ -1,803 +0,0 @@
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
- }