pages_core 3.12.2 → 3.12.3
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.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/app/assets/builds/pages_core/admin-dist.js +130 -90
- data/app/assets/builds/pages_core/admin-dist.js.map +4 -4
- data/app/assets/builds/pages_core/admin.css +33 -20
- data/app/assets/stylesheets/pages_core/admin/components/attachments.css +1 -1
- data/app/assets/stylesheets/pages_core/admin/components/image_editor.css +2 -2
- data/app/assets/stylesheets/pages_core/admin/components/image_grid.css +8 -8
- data/app/assets/stylesheets/pages_core/admin/components/image_uploader.css +2 -2
- data/app/assets/stylesheets/pages_core/admin/components/layout.css +2 -2
- data/app/assets/stylesheets/pages_core/admin/components/modal.css +2 -2
- data/app/helpers/pages_core/images_helper.rb +28 -7
- data/app/javascript/features/{RichText.jsx → RichText.tsx} +3 -3
- data/lib/rails/generators/pages_core/frontend/templates/stylesheets/global/typography.css +1 -1
- metadata +3 -3
@@ -83,10 +83,11 @@ a {
|
|
83
83
|
*/
|
84
84
|
|
85
85
|
abbr[title] {
|
86
|
-
border-bottom: none; /* 1 */
|
86
|
+
border-bottom: none; /* 1 */
|
87
|
+
-webkit-text-decoration: underline; /* 2 */
|
87
88
|
text-decoration: underline;
|
88
|
-
-webkit-text-decoration: underline dotted
|
89
|
-
text-decoration: underline dotted
|
89
|
+
-webkit-text-decoration: underline dotted;
|
90
|
+
text-decoration: underline dotted; /* 2 */
|
90
91
|
}
|
91
92
|
|
92
93
|
/**
|
@@ -7454,6 +7455,7 @@ header .site-name h1 {
|
|
7454
7455
|
|
7455
7456
|
header .site-name h1 a {
|
7456
7457
|
font-weight: bold;
|
7458
|
+
-webkit-text-decoration: none;
|
7457
7459
|
text-decoration: none;
|
7458
7460
|
padding-right: 6px;
|
7459
7461
|
}
|
@@ -7517,6 +7519,7 @@ header .tabs a,
|
|
7517
7519
|
line-height: 32px;
|
7518
7520
|
height: 32px;
|
7519
7521
|
margin: 0 2px 0 0;
|
7522
|
+
-webkit-text-decoration: none;
|
7520
7523
|
text-decoration: none;
|
7521
7524
|
}
|
7522
7525
|
|
@@ -7553,6 +7556,7 @@ header .tabs a:hover,
|
|
7553
7556
|
|
7554
7557
|
.content-tabs li.current a,
|
7555
7558
|
.content-tabs li.current a:visited {
|
7559
|
+
-webkit-text-decoration: none;
|
7556
7560
|
text-decoration: none;
|
7557
7561
|
color: #444;
|
7558
7562
|
}
|
@@ -7590,6 +7594,7 @@ header .tabs a:hover,
|
|
7590
7594
|
|
7591
7595
|
.page-description .links a.current {
|
7592
7596
|
font-weight: bold;
|
7597
|
+
-webkit-text-decoration: none;
|
7593
7598
|
text-decoration: none;
|
7594
7599
|
color: #111;
|
7595
7600
|
color: var(--text-color);
|
@@ -7778,18 +7783,6 @@ main .page-description h3 {
|
|
7778
7783
|
overflow: hidden;
|
7779
7784
|
}
|
7780
7785
|
|
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
7786
|
.image-editor .focal-editor .focal-point {
|
7794
7787
|
position: absolute;
|
7795
7788
|
width: 30px;
|
@@ -7808,11 +7801,17 @@ main .page-description h3 {
|
|
7808
7801
|
transition: border-radius 200ms, margin 200ms, width 200ms, height 200ms, border-color 200ms ease-out;
|
7809
7802
|
}
|
7810
7803
|
|
7811
|
-
.image-editor .focal-editor .focal-point:
|
7812
|
-
|
7813
|
-
|
7814
|
-
|
7815
|
-
|
7804
|
+
.image-editor .focal-editor .focal-point:after {
|
7805
|
+
content: "";
|
7806
|
+
display: block;
|
7807
|
+
width: 32px;
|
7808
|
+
height: 32px;
|
7809
|
+
border-radius: 16px;
|
7810
|
+
border: 1px solid rgba(0, 0, 0, 0.3);
|
7811
|
+
margin-left: -4px;
|
7812
|
+
margin-top: -4px;
|
7813
|
+
transition: all 200ms ease-out;
|
7814
|
+
}
|
7816
7815
|
|
7817
7816
|
.image-editor .focal-editor .focal-point:hover {
|
7818
7817
|
border-color: rgba(222, 255, 255, 0.9);
|
@@ -7823,6 +7822,12 @@ main .page-description h3 {
|
|
7823
7822
|
margin-top: -20px;
|
7824
7823
|
}
|
7825
7824
|
|
7825
|
+
.image-editor .focal-editor .focal-point:hover:after {
|
7826
|
+
width: 42px;
|
7827
|
+
height: 42px;
|
7828
|
+
border-radius: 21px;
|
7829
|
+
}
|
7830
|
+
|
7826
7831
|
.image-grid {
|
7827
7832
|
--image-padding: 7px;
|
7828
7833
|
margin-bottom: 40px;
|
@@ -8197,6 +8202,7 @@ a,
|
|
8197
8202
|
a:visited {
|
8198
8203
|
color: #1d7195;
|
8199
8204
|
color: var(--link-color);
|
8205
|
+
-webkit-text-decoration: underline;
|
8200
8206
|
text-decoration: underline;
|
8201
8207
|
}
|
8202
8208
|
|
@@ -8241,6 +8247,7 @@ button a {
|
|
8241
8247
|
|
8242
8248
|
button a {
|
8243
8249
|
padding: 5px 0;
|
8250
|
+
-webkit-text-decoration: none;
|
8244
8251
|
text-decoration: none;
|
8245
8252
|
}
|
8246
8253
|
|
@@ -8543,11 +8550,13 @@ body.modal > .wrapper {
|
|
8543
8550
|
.page-tree .page a:visited {
|
8544
8551
|
color: #111;
|
8545
8552
|
color: var(--text-color);
|
8553
|
+
-webkit-text-decoration: none;
|
8546
8554
|
text-decoration: none;
|
8547
8555
|
}
|
8548
8556
|
|
8549
8557
|
.page-tree .page a:hover,
|
8550
8558
|
.page-tree .page a:focus {
|
8559
|
+
-webkit-text-decoration: underline;
|
8551
8560
|
text-decoration: underline;
|
8552
8561
|
}
|
8553
8562
|
|
@@ -8652,6 +8661,7 @@ body.modal > .wrapper {
|
|
8652
8661
|
display: inline-block;
|
8653
8662
|
font-style: normal;
|
8654
8663
|
margin: 0px 1px;
|
8664
|
+
-webkit-text-decoration: none;
|
8655
8665
|
text-decoration: none;
|
8656
8666
|
padding: 2px;
|
8657
8667
|
border-radius: 12px;
|
@@ -8661,6 +8671,7 @@ body.modal > .wrapper {
|
|
8661
8671
|
|
8662
8672
|
.pagination a:hover,
|
8663
8673
|
.pagination a:focus {
|
8674
|
+
-webkit-text-decoration: underline;
|
8664
8675
|
text-decoration: underline;
|
8665
8676
|
}
|
8666
8677
|
|
@@ -9097,11 +9108,13 @@ td.drag-handle {
|
|
9097
9108
|
|
9098
9109
|
.page-list .page a.page-name,
|
9099
9110
|
.page-list .page a.page-name:visited {
|
9111
|
+
-webkit-text-decoration: none;
|
9100
9112
|
text-decoration: none;
|
9101
9113
|
color: #222;
|
9102
9114
|
}
|
9103
9115
|
|
9104
9116
|
.page-list .page a.page-name:hover {
|
9117
|
+
-webkit-text-decoration: underline;
|
9105
9118
|
text-decoration: underline;
|
9106
9119
|
}
|
9107
9120
|
|
@@ -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
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
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
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import React from "react";
|
2
|
-
import
|
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
|
-
|
17
|
+
createRoot(container).render(
|
18
18
|
<RichTextArea value={elem.value}
|
19
19
|
name={elem.name}
|
20
20
|
rows={elem.rows}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pages_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.12.
|
4
|
+
version: 3.12.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Inge Jørgensen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-05-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -509,7 +509,7 @@ files:
|
|
509
509
|
- app/javascript/controllers/LoginController.ts
|
510
510
|
- app/javascript/controllers/MainController.ts
|
511
511
|
- app/javascript/controllers/PageOptionsController.js
|
512
|
-
- app/javascript/features/RichText.
|
512
|
+
- app/javascript/features/RichText.tsx
|
513
513
|
- app/javascript/hooks.ts
|
514
514
|
- app/javascript/index.ts
|
515
515
|
- app/javascript/lib/Tree.ts
|