pages_core 3.12.2 → 3.12.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.
@@ -83,10 +83,11 @@ a {
83
83
  */
84
84
 
85
85
  abbr[title] {
86
- border-bottom: none; /* 1 */ /* 2 */
86
+ border-bottom: none; /* 1 */
87
+ -webkit-text-decoration: underline; /* 2 */
87
88
  text-decoration: underline;
88
- -webkit-text-decoration: underline dotted currentColor;
89
- text-decoration: underline dotted currentColor; /* 2 */
89
+ -webkit-text-decoration: underline dotted;
90
+ text-decoration: underline dotted; /* 2 */
90
91
  }
91
92
 
92
93
  /**
@@ -349,197 +350,99 @@ template {
349
350
  display: none;
350
351
  }
351
352
 
352
- .ReactCrop {
353
- position: relative;
354
- display: inline-block;
355
- cursor: crosshair;
356
- overflow: hidden;
357
- max-width: 100%;
358
- background-color: #000; }
353
+ .ReactCrop{position:relative;display:inline-block;cursor:crosshair;overflow:hidden;max-width:100%}
359
354
 
360
- .ReactCrop:focus {
361
- outline: none; }
355
+ .ReactCrop *,.ReactCrop *::before,.ReactCrop *::after{box-sizing:border-box}
362
356
 
363
- .ReactCrop--disabled {
364
- cursor: inherit; }
357
+ .ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}
365
358
 
366
- .ReactCrop__image {
367
- /* autoprefixer: off */
368
- display: block;
369
- max-width: 100%;
370
- max-height: -webkit-fill-available;
371
- max-height: -moz-available;
372
- max-height: stretch; }
359
+ .ReactCrop__child-wrapper{max-height:inherit}
373
360
 
374
- .ReactCrop--crop-invisible .ReactCrop__image {
375
- opacity: 0.5; }
361
+ .ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{display:block;max-width:100%;max-height:inherit}
376
362
 
377
- .ReactCrop__crop-selection {
378
- position: absolute;
379
- top: 0;
380
- left: 0;
381
- transform: translate3d(0, 0, 0);
382
- box-sizing: border-box;
383
- cursor: move;
384
- box-shadow: 0 0 0 9999em rgba(0, 0, 0, 0.5);
385
- border: 1px solid;
386
- border-image-source: url("data:image/gif;base64,R0lGODlhCgAKAJECAAAAAP///////wAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OEI5RDc5MTFDNkE2MTFFM0JCMDZEODI2QTI4MzJBOTIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OEI5RDc5MTBDNkE2MTFFM0JCMDZEODI2QTI4MzJBOTIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuZGlkOjAyODAxMTc0MDcyMDY4MTE4MDgzQzNDMjA5MzREQ0ZDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAyODAxMTc0MDcyMDY4MTE4MDgzQzNDMjA5MzREQ0ZDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEBQoAAgAsAAAAAAoACgAAAhWEERkn7W3ei7KlagMWF/dKgYeyGAUAIfkEBQoAAgAsAAAAAAoACgAAAg+UYwLJ7RnQm7QmsCyVKhUAIfkEBQoAAgAsAAAAAAoACgAAAhCUYgLJHdiinNSAVfOEKoUCACH5BAUKAAIALAAAAAAKAAoAAAIRVISAdusPo3RAzYtjaMIaUQAAIfkEBQoAAgAsAAAAAAoACgAAAg+MDiem7Q8bSLFaG5il6xQAIfkEBQoAAgAsAAAAAAoACgAAAg+UYRLJ7QnQm7SmsCyVKhUAIfkEBQoAAgAsAAAAAAoACgAAAhCUYBLJDdiinNSEVfOEKoECACH5BAUKAAIALAAAAAAKAAoAAAIRFISBdusPo3RBzYsjaMIaUQAAOw==");
387
- border-image-slice: 1;
388
- border-image-repeat: repeat; }
389
-
390
- .ReactCrop--disabled .ReactCrop__crop-selection {
391
- cursor: inherit; }
392
-
393
- .ReactCrop__drag-handle {
394
- position: absolute;
395
- width: 9px;
396
- height: 9px;
397
- background-color: rgba(0, 0, 0, 0.2);
398
- border: 1px solid rgba(255, 255, 255, 0.7);
399
- box-sizing: border-box;
400
- outline: 1px solid transparent; }
401
-
402
- .ReactCrop .ord-nw {
403
- top: 0;
404
- left: 0;
405
- margin-top: -5px;
406
- margin-left: -5px;
407
- cursor: nw-resize; }
408
-
409
- .ReactCrop .ord-n {
410
- top: 0;
411
- left: 50%;
412
- margin-top: -5px;
413
- margin-left: -5px;
414
- cursor: n-resize; }
415
-
416
- .ReactCrop .ord-ne {
417
- top: 0;
418
- right: 0;
419
- margin-top: -5px;
420
- margin-right: -5px;
421
- cursor: ne-resize; }
422
-
423
- .ReactCrop .ord-e {
424
- top: 50%;
425
- right: 0;
426
- margin-top: -5px;
427
- margin-right: -5px;
428
- cursor: e-resize; }
429
-
430
- .ReactCrop .ord-se {
431
- bottom: 0;
432
- right: 0;
433
- margin-bottom: -5px;
434
- margin-right: -5px;
435
- cursor: se-resize; }
436
-
437
- .ReactCrop .ord-s {
438
- bottom: 0;
439
- left: 50%;
440
- margin-bottom: -5px;
441
- margin-left: -5px;
442
- cursor: s-resize; }
443
-
444
- .ReactCrop .ord-sw {
445
- bottom: 0;
446
- left: 0;
447
- margin-bottom: -5px;
448
- margin-left: -5px;
449
- cursor: sw-resize; }
450
-
451
- .ReactCrop .ord-w {
452
- top: 50%;
453
- left: 0;
454
- margin-top: -5px;
455
- margin-left: -5px;
456
- cursor: w-resize; }
457
-
458
- .ReactCrop__disabled .ReactCrop__drag-handle {
459
- cursor: inherit; }
460
-
461
- .ReactCrop__drag-bar {
462
- position: absolute; }
463
-
464
- .ReactCrop__drag-bar.ord-n {
465
- top: 0;
466
- left: 0;
467
- width: 100%;
468
- height: 6px;
469
- margin-top: -3px; }
470
-
471
- .ReactCrop__drag-bar.ord-e {
472
- right: 0;
473
- top: 0;
474
- width: 6px;
475
- height: 100%;
476
- margin-right: -3px; }
477
-
478
- .ReactCrop__drag-bar.ord-s {
479
- bottom: 0;
480
- left: 0;
481
- width: 100%;
482
- height: 6px;
483
- margin-bottom: -3px; }
363
+ .ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video{touch-action:none}
484
364
 
485
- .ReactCrop__drag-bar.ord-w {
486
- top: 0;
487
- left: 0;
488
- width: 6px;
489
- height: 100%;
490
- margin-left: -3px; }
491
-
492
- .ReactCrop--new-crop .ReactCrop__drag-bar,
493
- .ReactCrop--new-crop .ReactCrop__drag-handle,
494
- .ReactCrop--fixed-aspect .ReactCrop__drag-bar {
495
- display: none; }
496
-
497
- .ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,
498
- .ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,
499
- .ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,
500
- .ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w {
501
- display: none; }
502
-
503
- @media (max-width: 768px), (pointer: coarse) {
504
- .ReactCrop__drag-handle {
505
- width: 17px;
506
- height: 17px; }
507
- .ReactCrop .ord-nw {
508
- margin-top: -9px;
509
- margin-left: -9px; }
510
- .ReactCrop .ord-n {
511
- margin-top: -9px;
512
- margin-left: -9px; }
513
- .ReactCrop .ord-ne {
514
- margin-top: -9px;
515
- margin-right: -9px; }
516
- .ReactCrop .ord-e {
517
- margin-top: -9px;
518
- margin-right: -9px; }
519
- .ReactCrop .ord-se {
520
- margin-bottom: -9px;
521
- margin-right: -9px; }
522
- .ReactCrop .ord-s {
523
- margin-bottom: -9px;
524
- margin-left: -9px; }
525
- .ReactCrop .ord-sw {
526
- margin-bottom: -9px;
527
- margin-left: -9px; }
528
- .ReactCrop .ord-w {
529
- margin-top: -9px;
530
- margin-left: -9px; }
531
- .ReactCrop__drag-bar.ord-n {
532
- height: 14px;
533
- margin-top: -7px; }
534
- .ReactCrop__drag-bar.ord-e {
535
- width: 14px;
536
- margin-right: -7px; }
537
- .ReactCrop__drag-bar.ord-s {
538
- height: 14px;
539
- margin-bottom: -7px; }
540
- .ReactCrop__drag-bar.ord-w {
541
- width: 14px;
542
- margin-left: -7px; } }
365
+ .ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}
366
+
367
+ .ReactCrop__crop-selection{position:absolute;top:0;left:0;transform:translate3d(0, 0, 0);cursor:move;box-shadow:0 0 0 9999em rgba(0,0,0,.5);border:1px dashed #fff}
368
+
369
+ .ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}
370
+
371
+ .ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%;box-shadow:0px 0px 1px 1px #fff,0 0 0 9999em rgba(0,0,0,.5)}
372
+
373
+ .ReactCrop__crop-selection:focus{outline:none;border-color:blue;border-style:solid}
374
+
375
+ .ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}
376
+
377
+ .ReactCrop__rule-of-thirds-vt::before,.ReactCrop__rule-of-thirds-vt::after,.ReactCrop__rule-of-thirds-hz::before,.ReactCrop__rule-of-thirds-hz::after{content:"";display:block;position:absolute;background-color:rgba(255,255,255,.4)}
378
+
379
+ .ReactCrop__rule-of-thirds-vt::before,.ReactCrop__rule-of-thirds-vt::after{width:1px;height:100%}
380
+
381
+ .ReactCrop__rule-of-thirds-vt::before{left:33.3333%;left:33.3333333333%}
382
+
383
+ .ReactCrop__rule-of-thirds-vt::after{left:66.6666%;left:66.6666666667%}
384
+
385
+ .ReactCrop__rule-of-thirds-hz::before,.ReactCrop__rule-of-thirds-hz::after{width:100%;height:1px}
386
+
387
+ .ReactCrop__rule-of-thirds-hz::before{top:33.3333%;top:33.3333333333%}
388
+
389
+ .ReactCrop__rule-of-thirds-hz::after{top:66.6666%;top:66.6666666667%}
390
+
391
+ .ReactCrop__drag-handle{position:absolute}
392
+
393
+ .ReactCrop__drag-handle::after{position:absolute;content:"";display:block;width:10px;height:10px;background-color:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.7);outline:1px solid rgba(0,0,0,0)}
394
+
395
+ .ReactCrop__drag-handle:focus::after{border-color:blue;background:#2dbfff}
396
+
397
+ .ReactCrop .ord-nw{top:0;left:0;margin-top:-5px;margin-left:-5px;cursor:nw-resize}
398
+
399
+ .ReactCrop .ord-nw::after{top:0;left:0}
400
+
401
+ .ReactCrop .ord-n{top:0;left:50%;margin-top:-5px;margin-left:-5px;cursor:n-resize}
402
+
403
+ .ReactCrop .ord-n::after{top:0}
404
+
405
+ .ReactCrop .ord-ne{top:0;right:0;margin-top:-5px;margin-right:-5px;cursor:ne-resize}
406
+
407
+ .ReactCrop .ord-ne::after{top:0;right:0}
408
+
409
+ .ReactCrop .ord-e{top:50%;right:0;margin-top:-5px;margin-right:-5px;cursor:e-resize}
410
+
411
+ .ReactCrop .ord-e::after{right:0}
412
+
413
+ .ReactCrop .ord-se{bottom:0;right:0;margin-bottom:-5px;margin-right:-5px;cursor:se-resize}
414
+
415
+ .ReactCrop .ord-se::after{bottom:0;right:0}
416
+
417
+ .ReactCrop .ord-s{bottom:0;left:50%;margin-bottom:-5px;margin-left:-5px;cursor:s-resize}
418
+
419
+ .ReactCrop .ord-s::after{bottom:0}
420
+
421
+ .ReactCrop .ord-sw{bottom:0;left:0;margin-bottom:-5px;margin-left:-5px;cursor:sw-resize}
422
+
423
+ .ReactCrop .ord-sw::after{bottom:0;left:0}
424
+
425
+ .ReactCrop .ord-w{top:50%;left:0;margin-top:-5px;margin-left:-5px;cursor:w-resize}
426
+
427
+ .ReactCrop .ord-w::after{left:0}
428
+
429
+ .ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}
430
+
431
+ .ReactCrop__drag-bar{position:absolute}
432
+
433
+ .ReactCrop__drag-bar.ord-n{top:0;left:0;width:100%;height:6px;margin-top:-3px}
434
+
435
+ .ReactCrop__drag-bar.ord-e{right:0;top:0;width:6px;height:100%;margin-right:-3px}
436
+
437
+ .ReactCrop__drag-bar.ord-s{bottom:0;left:0;width:100%;height:6px;margin-bottom:-3px}
438
+
439
+ .ReactCrop__drag-bar.ord-w{top:0;left:0;width:6px;height:100%;margin-left:-3px}
440
+
441
+ .ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar{display:none}
442
+
443
+ .ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}
444
+
445
+ @media(pointer: coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:24px;height:24px}}
543
446
 
544
447
  /*!
545
448
  * Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com
@@ -7454,6 +7357,7 @@ header .site-name h1 {
7454
7357
 
7455
7358
  header .site-name h1 a {
7456
7359
  font-weight: bold;
7360
+ -webkit-text-decoration: none;
7457
7361
  text-decoration: none;
7458
7362
  padding-right: 6px;
7459
7363
  }
@@ -7517,6 +7421,7 @@ header .tabs a,
7517
7421
  line-height: 32px;
7518
7422
  height: 32px;
7519
7423
  margin: 0 2px 0 0;
7424
+ -webkit-text-decoration: none;
7520
7425
  text-decoration: none;
7521
7426
  }
7522
7427
 
@@ -7553,6 +7458,7 @@ header .tabs a:hover,
7553
7458
 
7554
7459
  .content-tabs li.current a,
7555
7460
  .content-tabs li.current a:visited {
7461
+ -webkit-text-decoration: none;
7556
7462
  text-decoration: none;
7557
7463
  color: #444;
7558
7464
  }
@@ -7590,6 +7496,7 @@ header .tabs a:hover,
7590
7496
 
7591
7497
  .page-description .links a.current {
7592
7498
  font-weight: bold;
7499
+ -webkit-text-decoration: none;
7593
7500
  text-decoration: none;
7594
7501
  color: #111;
7595
7502
  color: var(--text-color);
@@ -7778,18 +7685,6 @@ main .page-description h3 {
7778
7685
  overflow: hidden;
7779
7686
  }
7780
7687
 
7781
- .image-editor .focal-editor .focal-point:after {
7782
- content: "";
7783
- display: block;
7784
- width: 32px;
7785
- height: 32px;
7786
- border-radius: 16px;
7787
- border: 1px solid rgba(0, 0, 0, 0.3);
7788
- margin-left: -4px;
7789
- margin-top: -4px;
7790
- transition: all 200ms ease-out;
7791
- }
7792
-
7793
7688
  .image-editor .focal-editor .focal-point {
7794
7689
  position: absolute;
7795
7690
  width: 30px;
@@ -7808,11 +7703,17 @@ main .page-description h3 {
7808
7703
  transition: border-radius 200ms, margin 200ms, width 200ms, height 200ms, border-color 200ms ease-out;
7809
7704
  }
7810
7705
 
7811
- .image-editor .focal-editor .focal-point:hover:after {
7812
- width: 42px;
7813
- height: 42px;
7814
- border-radius: 21px;
7815
- }
7706
+ .image-editor .focal-editor .focal-point:after {
7707
+ content: "";
7708
+ display: block;
7709
+ width: 32px;
7710
+ height: 32px;
7711
+ border-radius: 16px;
7712
+ border: 1px solid rgba(0, 0, 0, 0.3);
7713
+ margin-left: -4px;
7714
+ margin-top: -4px;
7715
+ transition: all 200ms ease-out;
7716
+ }
7816
7717
 
7817
7718
  .image-editor .focal-editor .focal-point:hover {
7818
7719
  border-color: rgba(222, 255, 255, 0.9);
@@ -7823,6 +7724,12 @@ main .page-description h3 {
7823
7724
  margin-top: -20px;
7824
7725
  }
7825
7726
 
7727
+ .image-editor .focal-editor .focal-point:hover:after {
7728
+ width: 42px;
7729
+ height: 42px;
7730
+ border-radius: 21px;
7731
+ }
7732
+
7826
7733
  .image-grid {
7827
7734
  --image-padding: 7px;
7828
7735
  margin-bottom: 40px;
@@ -8197,6 +8104,7 @@ a,
8197
8104
  a:visited {
8198
8105
  color: #1d7195;
8199
8106
  color: var(--link-color);
8107
+ -webkit-text-decoration: underline;
8200
8108
  text-decoration: underline;
8201
8109
  }
8202
8110
 
@@ -8241,6 +8149,7 @@ button a {
8241
8149
 
8242
8150
  button a {
8243
8151
  padding: 5px 0;
8152
+ -webkit-text-decoration: none;
8244
8153
  text-decoration: none;
8245
8154
  }
8246
8155
 
@@ -8543,11 +8452,13 @@ body.modal > .wrapper {
8543
8452
  .page-tree .page a:visited {
8544
8453
  color: #111;
8545
8454
  color: var(--text-color);
8455
+ -webkit-text-decoration: none;
8546
8456
  text-decoration: none;
8547
8457
  }
8548
8458
 
8549
8459
  .page-tree .page a:hover,
8550
8460
  .page-tree .page a:focus {
8461
+ -webkit-text-decoration: underline;
8551
8462
  text-decoration: underline;
8552
8463
  }
8553
8464
 
@@ -8652,6 +8563,7 @@ body.modal > .wrapper {
8652
8563
  display: inline-block;
8653
8564
  font-style: normal;
8654
8565
  margin: 0px 1px;
8566
+ -webkit-text-decoration: none;
8655
8567
  text-decoration: none;
8656
8568
  padding: 2px;
8657
8569
  border-radius: 12px;
@@ -8661,6 +8573,7 @@ body.modal > .wrapper {
8661
8573
 
8662
8574
  .pagination a:hover,
8663
8575
  .pagination a:focus {
8576
+ -webkit-text-decoration: underline;
8664
8577
  text-decoration: underline;
8665
8578
  }
8666
8579
 
@@ -9097,11 +9010,13 @@ td.drag-handle {
9097
9010
 
9098
9011
  .page-list .page a.page-name,
9099
9012
  .page-list .page a.page-name:visited {
9013
+ -webkit-text-decoration: none;
9100
9014
  text-decoration: none;
9101
9015
  color: #222;
9102
9016
  }
9103
9017
 
9104
9018
  .page-list .page a.page-name:hover {
9019
+ -webkit-text-decoration: underline;
9105
9020
  text-decoration: underline;
9106
9021
  }
9107
9022
 
@@ -105,7 +105,7 @@
105
105
  width: 60vw;
106
106
  min-height: 450px;
107
107
 
108
- @media --mobile {
108
+ @media (--mobile) {
109
109
  width: 100%;
110
110
  height: 100%;
111
111
  }
@@ -33,7 +33,7 @@
33
33
  height: 80vh;
34
34
  display: flex;
35
35
 
36
- @media --mobile {
36
+ @media (--mobile) {
37
37
  width: 100%;
38
38
  height: 100%;
39
39
  flex-direction: column;
@@ -145,7 +145,7 @@
145
145
  }
146
146
  }
147
147
 
148
- @media --mobile {
148
+ @media (--mobile) {
149
149
  width: 100%;
150
150
  margin-left: 0px;
151
151
  padding-bottom: 20px;
@@ -3,7 +3,7 @@
3
3
  margin-bottom: 40px;
4
4
  display: flex;
5
5
 
6
- @media --mobile {
6
+ @media (--mobile) {
7
7
  flex-direction: column;
8
8
  }
9
9
 
@@ -87,7 +87,7 @@
87
87
  flex-direction: row;
88
88
  visibility: hidden;
89
89
 
90
- @media --mobile {
90
+ @media (--mobile) {
91
91
  visibility: visible;
92
92
  }
93
93
 
@@ -106,7 +106,7 @@
106
106
  & .primary-image {
107
107
  width: 33.33%;
108
108
 
109
- @media --mobile {
109
+ @media (--mobile) {
110
110
  width: 100%;
111
111
  }
112
112
 
@@ -147,11 +147,11 @@
147
147
  justify-content: flex-end;
148
148
  width: 16.66%;
149
149
 
150
- @media --narrow {
150
+ @media (--narrow) {
151
151
  width: 50%;
152
152
  }
153
153
 
154
- @media --mobile {
154
+ @media (--mobile) {
155
155
  width: 50%;
156
156
  }
157
157
  }
@@ -185,7 +185,7 @@
185
185
  & .grid {
186
186
  width: 66.67%;
187
187
 
188
- @media --mobile {
188
+ @media (--mobile) {
189
189
  width: 100%;
190
190
  }
191
191
  }
@@ -193,11 +193,11 @@
193
193
  & .images .grid-image {
194
194
  width: 25%;
195
195
 
196
- @media --narrow {
196
+ @media (--narrow) {
197
197
  width: 50%;
198
198
  }
199
199
 
200
- @media --mobile {
200
+ @media (--mobile) {
201
201
  width: 50%;
202
202
  }
203
203
  }
@@ -9,7 +9,7 @@
9
9
  box-shadow: inset 0px 0px 1px rgba(0, 0, 0, 0.1);
10
10
  padding: 1px;
11
11
 
12
- @media --mobile {
12
+ @media (--mobile) {
13
13
  flex-direction: column;
14
14
  }
15
15
 
@@ -29,7 +29,7 @@
29
29
  max-height: 400px;
30
30
  }
31
31
 
32
- @media --mobile {
32
+ @media (--mobile) {
33
33
  max-width: 100%;
34
34
  }
35
35
  }
@@ -28,7 +28,7 @@ body {
28
28
  display: flex;
29
29
  flex-flow: row nowrap;
30
30
 
31
- @media --mobile {
31
+ @media (--mobile) {
32
32
  flex-flow: column nowrap;
33
33
  }
34
34
 
@@ -42,7 +42,7 @@ body {
42
42
  width: 20%;
43
43
  padding: 0px 16px;
44
44
 
45
- @media --mobile {
45
+ @media (--mobile) {
46
46
  width: 100%;
47
47
  }
48
48
  }
@@ -3,7 +3,7 @@ body.modal {
3
3
  transition: filter 1000ms linear;
4
4
  filter: blur(10px);
5
5
 
6
- @media --mobile {
6
+ @media (--mobile) {
7
7
  filter: none;
8
8
  }
9
9
  }
@@ -41,7 +41,7 @@ body.modal {
41
41
  animation-fill-mode: forwards;
42
42
  z-index: 2;
43
43
 
44
- @media --mobile {
44
+ @media (--mobile) {
45
45
  max-width: 100%;
46
46
  width: 100vw;
47
47
  height: 100vh;
@@ -20,13 +20,22 @@ module PagesCore
20
20
  tag.figcaption(caption)
21
21
  end
22
22
 
23
- def image_figure(image, size: nil, class_name: nil, link: nil, caption: nil)
24
- class_name = ["image", image_class_name(image), class_name].compact
25
- size ||= default_image_size
26
- image_tag = dynamic_image_tag(image,
27
- size: size, crop: false, upscale: false)
28
- tag.figure((link ? image_link_to(image_tag, link) : image_tag) +
29
- image_caption(image, caption: caption),
23
+ # Renders an image figure tag with caption.
24
+ #
25
+ # ==== Options
26
+ # * <tt>:caption</tt>: Override caption with a string, or set to false to
27
+ # disable captions.
28
+ # * <tt>:class_name</tt>: Class name to add to figure tag.
29
+ # * <tt>:link</tt>: Link target for image.
30
+ # * <tt>:ratio</tt>: Ratio to constrain image by.
31
+ # * <tt>:size</tt>: Max size for image.
32
+ def image_figure(image, opts = {})
33
+ class_name = ["image", image_class_name(image), opts[:class_name]].compact
34
+ image_tag = image_figure_image_tag(image,
35
+ size: opts[:size], ratio:
36
+ opts[:ratio])
37
+ content = opts[:link] ? image_link_to(image_tag, opts[:link]) : image_tag
38
+ tag.figure(content + image_caption(image, caption: opts[:caption]),
30
39
  class: class_name)
31
40
  end
32
41
 
@@ -57,6 +66,11 @@ module PagesCore
57
66
  { alt: record.alternative }
58
67
  end
59
68
 
69
+ def fit_ratio(size, ratio)
70
+ v = Vector2d(size)
71
+ Vector2d.new(v.y * ratio, v.y).fit(v)
72
+ end
73
+
60
74
  def image_class_name(image)
61
75
  if image.size.x == image.size.y
62
76
  "square"
@@ -67,6 +81,13 @@ module PagesCore
67
81
  end
68
82
  end
69
83
 
84
+ def image_figure_image_tag(image, size: nil, ratio: nil)
85
+ size ||= default_image_size
86
+ size = fit_ratio(size, ratio) if ratio
87
+
88
+ dynamic_image_tag(image, size: size, crop: ratio && true, upscale: false)
89
+ end
90
+
70
91
  def image_link_to(content, href)
71
92
  tag.a(content, href: href)
72
93
  end
@@ -8,7 +8,7 @@ function hovering(
8
8
  let rect: DOMRect;
9
9
  if ("rect" in target) {
10
10
  rect = target.rect;
11
- } else if ("current" in target) {
11
+ } else if ("current" in target && target.current) {
12
12
  rect = target.current.getBoundingClientRect();
13
13
  } else {
14
14
  return false;
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import ReactDOM from "react-dom";
2
+ import { createRoot } from "react-dom/client";
3
3
  import RichTextArea from "../components/RichTextArea";
4
4
  import readyHandler from "../lib/readyHandler";
5
5
 
@@ -11,10 +11,10 @@ class RichText {
11
11
  });
12
12
  }
13
13
 
14
- enhance (elem) {
14
+ enhance (elem: HTMLTextAreaElement) {
15
15
  const container = document.createElement("div");
16
16
  elem.parentNode.appendChild(container);
17
- ReactDOM.render(
17
+ createRoot(container).render(
18
18
  <RichTextArea value={elem.value}
19
19
  name={elem.name}
20
20
  rows={elem.rows}
@@ -58,7 +58,7 @@ html {
58
58
  @media screen and (max-width: 1440px) {
59
59
  @mixin font-scale 14, 16, $breakpoint-mobile-small, 1440;
60
60
  }
61
- @media --mobile-small {
61
+ @media (--mobile-small) {
62
62
  @mixin font-scale 12, 16, 1, $breakpoint-mobile-small;
63
63
  }
64
64
  }