design-comuni-plone-theme 11.25.3 → 11.26.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.
- package/.github/workflows/main.yml +1 -1
- package/.github/workflows/prs.yml +1 -1
- package/.github/workflows/release.yml +1 -1
- package/.yarn/cache/cross-spawn-npm-7.0.6-264bddf921-8d306efaca.zip +0 -0
- package/.yarn/cache/nanoid-npm-3.3.8-d22226208b-dfe0adbc0c.zip +0 -0
- package/.yarn/cache/{volto-blocks-widget-npm-3.4.1-c4d451e2c2-4f5c183698.zip → volto-blocks-widget-npm-3.4.3-d7e305af36-68490569a4.zip} +0 -0
- package/.yarn/cache/{volto-feedback-npm-0.3.2-ff5b075c7c-bfc7951ca5.zip → volto-feedback-npm-0.5.2-c3471099a1-48c0763678.zip} +0 -0
- package/.yarn/cache/volto-gdpr-privacy-npm-2.2.12-fbc24c3b6f-ba1b9c0127.zip +0 -0
- package/.yarn/install-state.gz +0 -0
- package/CHANGELOG.md +56 -0
- package/Makefile +1 -1
- package/RELEASE.md +19 -0
- package/locales/de/LC_MESSAGES/volto.po +5 -0
- package/locales/en/LC_MESSAGES/volto.po +5 -0
- package/locales/es/LC_MESSAGES/volto.po +5 -0
- package/locales/fr/LC_MESSAGES/volto.po +5 -0
- package/locales/it/LC_MESSAGES/volto.po +5 -0
- package/locales/volto.pot +6 -1
- package/package.json +5 -5
- package/publiccode.yml +2 -2
- package/src/components/ImageWithErrors/ImageWithErrors.jsx +11 -11
- package/src/components/ItaliaTheme/Blocks/Calendar/Body.jsx +1 -0
- package/src/components/ItaliaTheme/Blocks/Common/SearchFilters/SelectFilter.jsx +9 -3
- package/src/components/ItaliaTheme/Blocks/EventSearch/DefaultFilters.js +1 -0
- package/src/components/ItaliaTheme/Cards/CardCategory.jsx +2 -3
- package/src/components/ItaliaTheme/View/Commons/Dates.jsx +16 -16
- package/src/components/ItaliaTheme/View/Commons/PageHeader/PageHeaderEventDates.jsx +30 -8
- package/src/customizations/volto/actions/vocabularies/vocabularies.js +6 -2
- package/src/customizations/volto/components/manage/Blocks/Search/SearchBlockView.jsx +9 -15
- package/src/customizations/volto/components/manage/Blocks/Search/schema.js +16 -0
- package/src/customizations/volto/components/manage/Widgets/RecurrenceWidget/RecurrenceWidget.jsx +4 -7
- package/src/customizations/volto-form-block/components/View.jsx +11 -10
- package/src/helpers/dates.js +21 -1
- package/src/helpers/index.js +1 -0
- package/src/theme/ItaliaTheme/Blocks/_contacts.scss +5 -12
- package/src/theme/ItaliaTheme/Print/_all_pages.scss +98 -15
- package/src/theme/ItaliaTheme/Print/_blocks.scss +903 -8
- package/src/theme/ItaliaTheme/Print/_page.scss +0 -6
- package/src/theme/ItaliaTheme/_main.scss +3 -0
- package/src/theme/_cms-ui.scss +58 -0
- package/src/theme/bootstrap-override/bootstrap/_print.scss +1 -0
- package/src/theme/bootstrap-override/bootstrap-italia/_card.scss +12 -2
- package/src/theme/extras/_tables.scss +12 -13
- package/src/theme/site.scss +0 -2
- package/.yarn/cache/cross-spawn-npm-7.0.3-e4ff3e65b3-671cc7c728.zip +0 -0
- package/.yarn/cache/nanoid-npm-3.3.6-e6d6ae7e71-7d0eda6570.zip +0 -0
- package/.yarn/cache/volto-gdpr-privacy-npm-2.2.9-a1e4258e06-fe530fe8ee.zip +0 -0
- package/src/theme/ItaliaTheme/Print/_bandi.scss +0 -9
- package/src/theme/ItaliaTheme/Print/_news_items.scss +0 -19
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
existing listing template styles
|
|
5
5
|
- Inspired from
|
|
6
6
|
https://github.com/plone/volto/commit/211d9bea13119cc430db9d53a4740a860781ca2e
|
|
7
|
-
the way to handle search sort
|
|
7
|
+
the way to handle search sort. If searchableText is setted, discard default sorting and uses plone's ranking only if is configured from sidebar. (Changed applyDefaults fn passing usePloneRanking)
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import React from 'react';
|
|
@@ -52,7 +52,7 @@ const blockPropsAreChanged = (prevProps, nextProps) => {
|
|
|
52
52
|
return isEqual(prev, next);
|
|
53
53
|
};
|
|
54
54
|
|
|
55
|
-
const applyDefaults = (data, root) => {
|
|
55
|
+
const applyDefaults = (data, root, usePloneRanking) => {
|
|
56
56
|
const defaultQuery = [
|
|
57
57
|
{
|
|
58
58
|
i: 'path',
|
|
@@ -65,19 +65,13 @@ const applyDefaults = (data, root) => {
|
|
|
65
65
|
(item) => item['i'] === 'SearchableText',
|
|
66
66
|
).length;
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
? data?.sort_on
|
|
71
|
-
? { sort_on: data.sort_on }
|
|
72
|
-
: { sort_on: 'effective' }
|
|
73
|
-
: undefined;
|
|
68
|
+
let sort_on = { sort_on: data?.sort_on ?? 'effective' };
|
|
69
|
+
let sort_order = { sort_order: data?.sort_order ?? 'descending' };
|
|
74
70
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
: { sort_order: 'descending' }
|
|
80
|
-
: undefined;
|
|
71
|
+
if (usePloneRanking && searchBySearchableText > 0) {
|
|
72
|
+
sort_on = undefined;
|
|
73
|
+
sort_order = undefined;
|
|
74
|
+
}
|
|
81
75
|
|
|
82
76
|
const result = {
|
|
83
77
|
...data,
|
|
@@ -115,7 +109,7 @@ const SearchBlockView = (props) => {
|
|
|
115
109
|
}, [dataListingBodyVariation, mode]);
|
|
116
110
|
|
|
117
111
|
const root = useSelector((state) => state.breadcrumbs.root);
|
|
118
|
-
const listingBodyData = applyDefaults(searchData, root);
|
|
112
|
+
const listingBodyData = applyDefaults(searchData, root, data.usePloneRanking);
|
|
119
113
|
const { variations } = config.blocks.blocksConfig.listing;
|
|
120
114
|
const listingBodyVariation = variations.find(({ id }) => id === selectedView);
|
|
121
115
|
if (!Layout) return null;
|
|
@@ -153,6 +153,15 @@ const messages = defineMessages({
|
|
|
153
153
|
id: 'Link to',
|
|
154
154
|
defaultMessage: 'Link to',
|
|
155
155
|
},
|
|
156
|
+
usePloneRanking: {
|
|
157
|
+
id: "Usa l'ordinamento dei risultati di Plone",
|
|
158
|
+
defaultMessage: "Usa l'ordinamento dei risultati di Plone",
|
|
159
|
+
},
|
|
160
|
+
usePloneRankingDescription: {
|
|
161
|
+
id: "Usa l'ordinamento dei risultati di Plone - descrizione",
|
|
162
|
+
defaultMessage:
|
|
163
|
+
"Se impostato, nel momento in cui un utente effettua una ricerca testuale per parola chiave, non viene usato l'ordinamento di default impostato nella sezione 'Ricerca iniziale', ma l'ordinamento di Plone in base all'ordine di importanza dei risultati da esso stabilito.",
|
|
164
|
+
},
|
|
156
165
|
});
|
|
157
166
|
|
|
158
167
|
const enhanceSchema = (originalSchema, formData) => {
|
|
@@ -285,6 +294,7 @@ const SearchSchema = ({ data = {}, intl }) => {
|
|
|
285
294
|
...(data.showSearchInput ?? true ? ['showSearchButton'] : []),
|
|
286
295
|
// ...(data.showSearchInput ? ['searchInputPrompt'] : []),
|
|
287
296
|
// ...(data.showSearchButton ? ['searchButtonLabel'] : []),
|
|
297
|
+
'usePloneRanking',
|
|
288
298
|
'showTotalResults',
|
|
289
299
|
],
|
|
290
300
|
},
|
|
@@ -316,6 +326,12 @@ const SearchSchema = ({ data = {}, intl }) => {
|
|
|
316
326
|
title: intl.formatMessage(messages.showTotalResults),
|
|
317
327
|
default: true,
|
|
318
328
|
},
|
|
329
|
+
usePloneRanking: {
|
|
330
|
+
type: 'boolean',
|
|
331
|
+
title: intl.formatMessage(messages.usePloneRanking),
|
|
332
|
+
description: intl.formatMessage(messages.usePloneRankingDescription),
|
|
333
|
+
default: false,
|
|
334
|
+
},
|
|
319
335
|
searchButtonLabel: {
|
|
320
336
|
title: intl.formatMessage(messages.searchButtonLabel),
|
|
321
337
|
placeholder: intl.formatMessage(messages.searchButtonPlaceholder),
|
package/src/customizations/volto/components/manage/Widgets/RecurrenceWidget/RecurrenceWidget.jsx
CHANGED
|
@@ -409,8 +409,8 @@ class RecurrenceWidget extends Component {
|
|
|
409
409
|
formValues['freq'] = FREQUENCES.MONDAYFRIDAY;
|
|
410
410
|
} else
|
|
411
411
|
formValues[option] = value.map((d) => {
|
|
412
|
-
|
|
413
|
-
|
|
412
|
+
return this.getWeekday(d);
|
|
413
|
+
});
|
|
414
414
|
}
|
|
415
415
|
break;
|
|
416
416
|
case 'bymonthday':
|
|
@@ -538,7 +538,7 @@ class RecurrenceWidget extends Component {
|
|
|
538
538
|
}
|
|
539
539
|
let exdates = Object.assign([], rruleSet.exdates());
|
|
540
540
|
let rdates = Object.assign([], rruleSet.rdates());
|
|
541
|
-
if (field === '
|
|
541
|
+
if (field === 'dtstart') dstart = value;
|
|
542
542
|
else if (field === 'exdates') exdates = value;
|
|
543
543
|
else if (field === 'rdates') rdates = value;
|
|
544
544
|
else if (field === 'freq') {
|
|
@@ -990,6 +990,7 @@ class RecurrenceWidget extends Component {
|
|
|
990
990
|
)}
|
|
991
991
|
value={formValues.freq}
|
|
992
992
|
onChange={this.onChangeRule}
|
|
993
|
+
noValueOption={false}
|
|
993
994
|
/>
|
|
994
995
|
{OPTIONS.frequences[formValues.freq].interval && (
|
|
995
996
|
<IntervalField
|
|
@@ -1004,7 +1005,6 @@ class RecurrenceWidget extends Component {
|
|
|
1004
1005
|
onChange={this.onChangeRule}
|
|
1005
1006
|
/>
|
|
1006
1007
|
)}
|
|
1007
|
-
|
|
1008
1008
|
{/***** byday *****/}
|
|
1009
1009
|
{OPTIONS.frequences[formValues.freq].byday && (
|
|
1010
1010
|
<ByDayField
|
|
@@ -1013,7 +1013,6 @@ class RecurrenceWidget extends Component {
|
|
|
1013
1013
|
onChange={this.onChangeRule}
|
|
1014
1014
|
/>
|
|
1015
1015
|
)}
|
|
1016
|
-
|
|
1017
1016
|
{/***** bymonth *****/}
|
|
1018
1017
|
{OPTIONS.frequences[formValues.freq].bymonth && (
|
|
1019
1018
|
<ByMonthField
|
|
@@ -1027,7 +1026,6 @@ class RecurrenceWidget extends Component {
|
|
|
1027
1026
|
onChange={this.onChangeRule}
|
|
1028
1027
|
/>
|
|
1029
1028
|
)}
|
|
1030
|
-
|
|
1031
1029
|
{/***** byyear *****/}
|
|
1032
1030
|
{OPTIONS.frequences[formValues.freq].byyear && (
|
|
1033
1031
|
<ByYearField
|
|
@@ -1042,7 +1040,6 @@ class RecurrenceWidget extends Component {
|
|
|
1042
1040
|
onChange={this.onChangeRule}
|
|
1043
1041
|
/>
|
|
1044
1042
|
)}
|
|
1045
|
-
|
|
1046
1043
|
{/*-- ends after N recurrence or date --*/}
|
|
1047
1044
|
<EndField
|
|
1048
1045
|
value={formValues.recurrenceEnds}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// CUSTOMIZATION:
|
|
2
2
|
// - added warning state to form
|
|
3
|
+
// - backport for https://github.com/collective/volto-form-block/pull/122
|
|
3
4
|
|
|
4
5
|
import React, { useState, useEffect, useReducer, useRef } from 'react';
|
|
5
6
|
import { useSelector, useDispatch } from 'react-redux';
|
|
@@ -8,7 +9,6 @@ import { useIntl, defineMessages } from 'react-intl';
|
|
|
8
9
|
import { submitForm, resetOTP } from 'volto-form-block/actions';
|
|
9
10
|
import { getFieldName } from 'volto-form-block/components/utils';
|
|
10
11
|
import FormView from 'volto-form-block/components/FormView';
|
|
11
|
-
import { formatDate } from '@plone/volto/helpers/Utils/Date';
|
|
12
12
|
import config from '@plone/volto/registry';
|
|
13
13
|
import { Captcha } from 'volto-form-block/components/Widget';
|
|
14
14
|
import { isValidEmail } from 'volto-form-block/helpers/validators';
|
|
@@ -260,20 +260,21 @@ const View = ({ data, id, path }) => {
|
|
|
260
260
|
config.blocks.blocksConfig.form.attachment_fields.includes(
|
|
261
261
|
subblock.field_type,
|
|
262
262
|
);
|
|
263
|
-
const isDate = subblock.field_type === 'date';
|
|
263
|
+
// const isDate = subblock.field_type === 'date';
|
|
264
264
|
|
|
265
265
|
if (isAttachment) {
|
|
266
266
|
attachments[name] = formattedFormData[name].value;
|
|
267
267
|
delete formattedFormData[name];
|
|
268
268
|
}
|
|
269
269
|
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
}
|
|
270
|
+
// XXX: dates should be sent as ISO format, not DD-MM-YYYY !
|
|
271
|
+
// if (isDate) {
|
|
272
|
+
// formattedFormData[name].value = formatDate({
|
|
273
|
+
// date: formattedFormData[name].value,
|
|
274
|
+
// format: 'DD-MM-YYYY',
|
|
275
|
+
// locale: intl.locale,
|
|
276
|
+
// });
|
|
277
|
+
// }
|
|
277
278
|
}
|
|
278
279
|
});
|
|
279
280
|
dispatch(
|
|
@@ -323,7 +324,7 @@ const View = ({ data, id, path }) => {
|
|
|
323
324
|
|
|
324
325
|
useEffect(() => {
|
|
325
326
|
if (submitResults?.loaded) {
|
|
326
|
-
if (submitResults?.result?.
|
|
327
|
+
if (submitResults?.result?.waiting_list) {
|
|
327
328
|
setFormState({
|
|
328
329
|
type: FORM_STATES.warning,
|
|
329
330
|
result: {
|
package/src/helpers/dates.js
CHANGED
|
@@ -48,8 +48,28 @@ export const getRealStartAndEndWithRecurrence = (
|
|
|
48
48
|
|
|
49
49
|
export const getRealEventEnd = (content, rruleSet) => {
|
|
50
50
|
let actualEndDate = content.end;
|
|
51
|
-
|
|
51
|
+
|
|
52
|
+
if (content.recurrence && rruleSet.rrules()[0].options.until) {
|
|
52
53
|
actualEndDate = rruleSet.rrules()[0].options.until;
|
|
53
54
|
}
|
|
54
55
|
return actualEndDate;
|
|
55
56
|
};
|
|
57
|
+
|
|
58
|
+
export const getRecurrenceExceptionDates = (rruleSet) => {
|
|
59
|
+
const rdates = rruleSet?.rdates() ?? [];
|
|
60
|
+
const exdates = rruleSet?.exdates() ?? [];
|
|
61
|
+
|
|
62
|
+
const additionalDates = rdates.reduce((acc, curr) => {
|
|
63
|
+
const isExdate = exdates.some((b) => b.toString() === curr.toString());
|
|
64
|
+
if (!isExdate) {
|
|
65
|
+
return [...acc, curr];
|
|
66
|
+
} else return acc;
|
|
67
|
+
}, []);
|
|
68
|
+
|
|
69
|
+
const exceptionDates = {
|
|
70
|
+
additionalDates: additionalDates,
|
|
71
|
+
removedDates: exdates,
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
return exceptionDates;
|
|
75
|
+
};
|
package/src/helpers/index.js
CHANGED
|
@@ -22,6 +22,7 @@ export {
|
|
|
22
22
|
viewDate,
|
|
23
23
|
getRealStartAndEndWithRecurrence,
|
|
24
24
|
getRealEventEnd,
|
|
25
|
+
getRecurrenceExceptionDates,
|
|
25
26
|
} from 'design-comuni-plone-theme/helpers/dates';
|
|
26
27
|
export { getSiteProperty } from 'design-comuni-plone-theme/helpers/config';
|
|
27
28
|
export { useDebouncedEffect } from 'design-comuni-plone-theme/helpers/debounce';
|
|
@@ -112,6 +112,8 @@
|
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
.contact-title {
|
|
115
|
+
|
|
116
|
+
margin-bottom: 1rem;
|
|
115
117
|
font-size: 1.35rem;
|
|
116
118
|
font-weight: bold;
|
|
117
119
|
line-height: 1.4em;
|
|
@@ -123,20 +125,11 @@
|
|
|
123
125
|
|
|
124
126
|
.contact-info {
|
|
125
127
|
display: flex;
|
|
126
|
-
|
|
127
|
-
&:first-of-type {
|
|
128
|
-
align-items: center;
|
|
129
|
-
|
|
130
|
-
.icon-wrapper {
|
|
131
|
-
margin-top: 0;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
&:not(:last-of-type) {
|
|
136
|
-
margin-bottom: 1rem;
|
|
137
|
-
}
|
|
128
|
+
align-items: center;
|
|
138
129
|
|
|
139
130
|
.icon-wrapper {
|
|
131
|
+
display: flex;
|
|
132
|
+
align-items: center;
|
|
140
133
|
margin-top: 0.2rem;
|
|
141
134
|
margin-right: 1rem;
|
|
142
135
|
}
|
|
@@ -1,13 +1,26 @@
|
|
|
1
1
|
@media print {
|
|
2
|
+
@page {
|
|
3
|
+
margin: 0 !important;
|
|
4
|
+
}
|
|
5
|
+
|
|
2
6
|
body {
|
|
3
7
|
display: block !important;
|
|
4
8
|
}
|
|
5
9
|
|
|
6
10
|
.public-ui {
|
|
7
|
-
// removed underlining from links
|
|
8
11
|
a {
|
|
9
12
|
font-weight: 600 !important;
|
|
10
|
-
text-decoration: none !important;
|
|
13
|
+
// text-decoration: none !important;
|
|
14
|
+
/* i link che non devono essere sottolineati hanno già regole specifiche,
|
|
15
|
+
a video è necessario mostare che i tag a sono link */
|
|
16
|
+
|
|
17
|
+
&.read-more {
|
|
18
|
+
display: none !important; // omesso il read more nelle card
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.text-secondary {
|
|
23
|
+
color: $body-color !important;
|
|
11
24
|
}
|
|
12
25
|
|
|
13
26
|
.content-area,
|
|
@@ -17,6 +30,24 @@
|
|
|
17
30
|
page-break-inside: avoid;
|
|
18
31
|
}
|
|
19
32
|
|
|
33
|
+
.container {
|
|
34
|
+
max-width: 98%;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// padding/margin
|
|
38
|
+
.py-5 {
|
|
39
|
+
padding-top: 20px !important;
|
|
40
|
+
padding-bottom: 20px !important;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.pb-5 {
|
|
44
|
+
padding-bottom: 20px !important;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.pt-5 {
|
|
48
|
+
padding-top: 20px !important;
|
|
49
|
+
}
|
|
50
|
+
|
|
20
51
|
// removed part of header header
|
|
21
52
|
.it-header-slim-wrapper {
|
|
22
53
|
display: none;
|
|
@@ -41,10 +72,8 @@
|
|
|
41
72
|
}
|
|
42
73
|
|
|
43
74
|
.it-brand-text {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
font-size: 2rem !important;
|
|
47
|
-
}
|
|
75
|
+
color: $link-color;
|
|
76
|
+
font-size: 2rem !important;
|
|
48
77
|
}
|
|
49
78
|
}
|
|
50
79
|
}
|
|
@@ -76,6 +105,10 @@
|
|
|
76
105
|
}
|
|
77
106
|
}
|
|
78
107
|
|
|
108
|
+
.section {
|
|
109
|
+
padding: 1.2rem;
|
|
110
|
+
}
|
|
111
|
+
|
|
79
112
|
/* Removed shadow and card's padding. Add border*/
|
|
80
113
|
.card {
|
|
81
114
|
border: 1px solid $gray-border !important;
|
|
@@ -89,15 +122,34 @@
|
|
|
89
122
|
border: none !important;
|
|
90
123
|
border-left-width: 0 !important;
|
|
91
124
|
}
|
|
125
|
+
|
|
126
|
+
&::after {
|
|
127
|
+
display: none;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
&.card-bg {
|
|
131
|
+
background-color: white !important;
|
|
132
|
+
color: $body-color !important;
|
|
133
|
+
}
|
|
92
134
|
}
|
|
93
135
|
|
|
94
|
-
//
|
|
136
|
+
// Card teaser
|
|
95
137
|
.card-wrapper.card-teaser-wrapper.card-teaser-block-3 {
|
|
96
138
|
> .card-teaser {
|
|
97
|
-
flex: 0 0 32%;
|
|
139
|
+
flex: 0 0 32.5%;
|
|
98
140
|
}
|
|
99
141
|
}
|
|
100
142
|
|
|
143
|
+
.card.card-teaser.simple-card-default-item .card-body .card-title a,
|
|
144
|
+
.card.card-teaser .card-body .card-title a,
|
|
145
|
+
.card .card-title a {
|
|
146
|
+
font-size: 1.1rem !important;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.card .card-body .category-top {
|
|
150
|
+
flex-wrap: wrap;
|
|
151
|
+
}
|
|
152
|
+
|
|
101
153
|
#text-tempi_e_scadenze > div > p {
|
|
102
154
|
padding: 1rem 0 0 0 !important;
|
|
103
155
|
box-shadow: none !important;
|
|
@@ -155,7 +207,7 @@
|
|
|
155
207
|
.it-page-sections-container {
|
|
156
208
|
border-top: none;
|
|
157
209
|
|
|
158
|
-
.it-carousel-wrapper {
|
|
210
|
+
.it-carousel-wrapper:not(#galleria) {
|
|
159
211
|
display: none;
|
|
160
212
|
}
|
|
161
213
|
|
|
@@ -223,18 +275,49 @@
|
|
|
223
275
|
box-shadow: none;
|
|
224
276
|
font-size: 1rem;
|
|
225
277
|
}
|
|
278
|
+
|
|
279
|
+
.callout {
|
|
280
|
+
page-break-inside: avoid;
|
|
281
|
+
|
|
282
|
+
.callout-inner {
|
|
283
|
+
// padding-top: 0px;
|
|
284
|
+
p {
|
|
285
|
+
margin-top: -2rem;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
// buttons
|
|
290
|
+
button.btn,
|
|
291
|
+
.btn.btn-primary,
|
|
292
|
+
.draftjs-buttons a {
|
|
293
|
+
padding: 0.5rem 1rem;
|
|
294
|
+
border: 1px solid $link-color;
|
|
295
|
+
background-color: white;
|
|
296
|
+
color: $link-color;
|
|
297
|
+
|
|
298
|
+
svg.icon {
|
|
299
|
+
color: $link-color;
|
|
300
|
+
fill: $link-color;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
// blockquote text
|
|
305
|
+
blockquote.blockquote-card.dark,
|
|
306
|
+
.blockquote.blockquote-card.dark {
|
|
307
|
+
border: 1px solid $body-color;
|
|
308
|
+
background-color: white;
|
|
309
|
+
color: $body-color;
|
|
310
|
+
|
|
311
|
+
a:not(.btn) {
|
|
312
|
+
color: $body-color;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
226
315
|
}
|
|
227
316
|
|
|
228
317
|
.draft-text-larger {
|
|
229
318
|
font-size: 1.2rem;
|
|
230
319
|
}
|
|
231
320
|
|
|
232
|
-
.public-ui .draftjs-buttons a {
|
|
233
|
-
padding: 0rem;
|
|
234
|
-
background-color: white;
|
|
235
|
-
color: $link-color;
|
|
236
|
-
}
|
|
237
|
-
|
|
238
321
|
//external link icon
|
|
239
322
|
svg.external-link {
|
|
240
323
|
display: none;
|