pages_core 3.12.2 → 3.12.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
  }