design-comuni-plone-theme 8.0.0-alpha.40 → 8.0.0-alpha.41
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/CHANGELOG.md +23 -1
- package/locales/de/LC_MESSAGES/volto.po +20 -0
- package/locales/en/LC_MESSAGES/volto.po +20 -0
- package/locales/fr/LC_MESSAGES/volto.po +20 -0
- package/locales/it/LC_MESSAGES/volto.po +20 -0
- package/locales/volto.pot +21 -1
- package/package.json +5 -5
- package/src/components/ItaliaTheme/Blocks/BandiSearch/Body.jsx +2 -2
- package/src/components/ItaliaTheme/Blocks/EventSearch/Body.jsx +2 -2
- package/src/components/ItaliaTheme/Blocks/Listing/Commons/utils.js +18 -0
- package/src/components/ItaliaTheme/Blocks/Listing/SliderTemplate.jsx +195 -30
- package/src/components/ItaliaTheme/Blocks/RssBlock/CardWithImageRssTemplate.jsx +2 -2
- package/src/components/ItaliaTheme/Blocks/RssBlock/CardWithoutImageRssTemplate.jsx +2 -2
- package/src/components/ItaliaTheme/Blocks/UOSearch/Body.jsx +2 -2
- package/src/customizations/volto/components/manage/Blocks/Listing/ListingBody.jsx +2 -2
- package/src/theme/ItaliaTheme/Addons/volto-gdpr-privacy.scss +29 -3
- package/src/theme/ItaliaTheme/Blocks/_search.scss +0 -3
- package/src/theme/ItaliaTheme/Blocks/_sliderTemplate.scss +9 -5
- package/src/theme/ItaliaTheme/_main.scss +9 -0
- package/src/theme/_site-variables.scss +10 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
## [8.0.0-alpha.41](https://github.com/RedTurtle/design-comuni-plone-theme/compare/v8.0.0-alpha.40...v8.0.0-alpha.41) (2023-06-29)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* a11y for Slider listing template ([#226](https://github.com/RedTurtle/design-comuni-plone-theme/issues/226)) ([7198e7b](https://github.com/RedTurtle/design-comuni-plone-theme/commit/7198e7b9fff848220b1a858be616c7d8b71c53b6))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* padding weekday date search left padding ([#223](https://github.com/RedTurtle/design-comuni-plone-theme/issues/223)) ([c9fc157](https://github.com/RedTurtle/design-comuni-plone-theme/commit/c9fc157f34f15c606209397adb2335d805770dd5))
|
|
14
|
+
* styles for a11y in cookiebanner ([#227](https://github.com/RedTurtle/design-comuni-plone-theme/issues/227)) ([43f0923](https://github.com/RedTurtle/design-comuni-plone-theme/commit/43f092340e289d5c54961965743c17aea42eb7da))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Maintenance
|
|
18
|
+
|
|
19
|
+
* aria-live on results/no results divs ([#228](https://github.com/RedTurtle/design-comuni-plone-theme/issues/228)) ([18f5a42](https://github.com/RedTurtle/design-comuni-plone-theme/commit/18f5a427522bd83fef671e0daebf2be24d67f8d9))
|
|
20
|
+
* update release deps ([3e2bbc1](https://github.com/RedTurtle/design-comuni-plone-theme/commit/3e2bbc1660a4111a9ce5d6796cecec992b5ae69a))
|
|
21
|
+
* upgrade release-it (+ deps) ([#218](https://github.com/RedTurtle/design-comuni-plone-theme/issues/218)) ([d7b7268](https://github.com/RedTurtle/design-comuni-plone-theme/commit/d7b7268de9547186239f820817ca498d43953634))
|
|
22
|
+
|
|
1
23
|
## [8.0.0-alpha.40](https://github.com/RedTurtle/design-comuni-plone-theme/compare/v8.0.0-alpha.39...v8.0.0-alpha.40) (2023-06-27)
|
|
2
24
|
|
|
3
25
|
|
|
@@ -5491,4 +5513,4 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
|
5491
5513
|
- added onclick to viewAll button [`baa258a`](https://github.com/RedTurtle/design-volto-theme/commit/baa258a983f9619b18f9c8d9fb078fe9b17f338b)
|
|
5492
5514
|
- todo [`7814f01`](https://github.com/RedTurtle/design-volto-theme/commit/7814f01e5dd883c83bca4ecf53425ada9942d9ab)
|
|
5493
5515
|
- updated gitignore with .history [`e73a28c`](https://github.com/RedTurtle/design-volto-theme/commit/e73a28c94176a172219c1a740a97047b5e2fa400)
|
|
5494
|
-
- Added nvmrc [`fd54a3c`](https://github.com/RedTurtle/design-volto-theme/commit/fd54a3cbcf8df22997f036919dfafda870f85db7)
|
|
5516
|
+
- Added nvmrc [`fd54a3c`](https://github.com/RedTurtle/design-volto-theme/commit/fd54a3cbcf8df22997f036919dfafda870f85db7)
|
|
@@ -1704,6 +1704,11 @@ msgstr ""
|
|
|
1704
1704
|
msgid "done_edit_social_links"
|
|
1705
1705
|
msgstr ""
|
|
1706
1706
|
|
|
1707
|
+
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
1708
|
+
# defaultMessage: Navigazione elementi slider
|
|
1709
|
+
msgid "dots"
|
|
1710
|
+
msgstr ""
|
|
1711
|
+
|
|
1707
1712
|
#: components/ItaliaTheme/View/VenueView/VenueWhere
|
|
1708
1713
|
# defaultMessage: Indirizzo
|
|
1709
1714
|
msgid "dove"
|
|
@@ -2656,6 +2661,11 @@ msgstr ""
|
|
|
2656
2661
|
msgid "playStoreLink"
|
|
2657
2662
|
msgstr ""
|
|
2658
2663
|
|
|
2664
|
+
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
2665
|
+
# defaultMessage: Precedente
|
|
2666
|
+
msgid "precedente"
|
|
2667
|
+
msgstr ""
|
|
2668
|
+
|
|
2659
2669
|
#: components/ItaliaTheme/manage/Widgets/IconPreviewWidget
|
|
2660
2670
|
# defaultMessage: Anteprima dell'icona scelta
|
|
2661
2671
|
msgid "previewIconSelected"
|
|
@@ -3490,6 +3500,11 @@ msgstr ""
|
|
|
3490
3500
|
msgid "skype"
|
|
3491
3501
|
msgstr ""
|
|
3492
3502
|
|
|
3503
|
+
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
3504
|
+
# defaultMessage: Vai alla slide {index}
|
|
3505
|
+
msgid "slideDot"
|
|
3506
|
+
msgstr ""
|
|
3507
|
+
|
|
3493
3508
|
#: config/Blocks/ListingOptions/sliderTemplate
|
|
3494
3509
|
# defaultMessage: N° slide da mostrare
|
|
3495
3510
|
msgid "slidesToShow"
|
|
@@ -3630,6 +3645,11 @@ msgstr ""
|
|
|
3630
3645
|
msgid "subjects"
|
|
3631
3646
|
msgstr ""
|
|
3632
3647
|
|
|
3648
|
+
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
3649
|
+
# defaultMessage: Successivo
|
|
3650
|
+
msgid "successivo"
|
|
3651
|
+
msgstr ""
|
|
3652
|
+
|
|
3633
3653
|
#: components/ItaliaTheme/View/EventoView/EventoContatti
|
|
3634
3654
|
# defaultMessage: Con il supporto di
|
|
3635
3655
|
msgid "supported_by"
|
|
@@ -1689,6 +1689,11 @@ msgstr "Responsible office"
|
|
|
1689
1689
|
msgid "done_edit_social_links"
|
|
1690
1690
|
msgstr ""
|
|
1691
1691
|
|
|
1692
|
+
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
1693
|
+
# defaultMessage: Navigazione elementi slider
|
|
1694
|
+
msgid "dots"
|
|
1695
|
+
msgstr "Slider elements navigation"
|
|
1696
|
+
|
|
1692
1697
|
#: components/ItaliaTheme/View/VenueView/VenueWhere
|
|
1693
1698
|
# defaultMessage: Indirizzo
|
|
1694
1699
|
msgid "dove"
|
|
@@ -2641,6 +2646,11 @@ msgstr ""
|
|
|
2641
2646
|
msgid "playStoreLink"
|
|
2642
2647
|
msgstr ""
|
|
2643
2648
|
|
|
2649
|
+
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
2650
|
+
# defaultMessage: Precedente
|
|
2651
|
+
msgid "precedente"
|
|
2652
|
+
msgstr "Previous"
|
|
2653
|
+
|
|
2644
2654
|
#: components/ItaliaTheme/manage/Widgets/IconPreviewWidget
|
|
2645
2655
|
# defaultMessage: Anteprima dell'icona scelta
|
|
2646
2656
|
msgid "previewIconSelected"
|
|
@@ -3475,6 +3485,11 @@ msgstr "Go to navigation"
|
|
|
3475
3485
|
msgid "skype"
|
|
3476
3486
|
msgstr ""
|
|
3477
3487
|
|
|
3488
|
+
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
3489
|
+
# defaultMessage: Vai alla slide {index}
|
|
3490
|
+
msgid "slideDot"
|
|
3491
|
+
msgstr "Go to slide {index}"
|
|
3492
|
+
|
|
3478
3493
|
#: config/Blocks/ListingOptions/sliderTemplate
|
|
3479
3494
|
# defaultMessage: N° slide da mostrare
|
|
3480
3495
|
msgid "slidesToShow"
|
|
@@ -3615,6 +3630,11 @@ msgstr ""
|
|
|
3615
3630
|
msgid "subjects"
|
|
3616
3631
|
msgstr "Tags"
|
|
3617
3632
|
|
|
3633
|
+
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
3634
|
+
# defaultMessage: Successivo
|
|
3635
|
+
msgid "successivo"
|
|
3636
|
+
msgstr "Next"
|
|
3637
|
+
|
|
3618
3638
|
#: components/ItaliaTheme/View/EventoView/EventoContatti
|
|
3619
3639
|
# defaultMessage: Con il supporto di
|
|
3620
3640
|
msgid "supported_by"
|
|
@@ -1706,6 +1706,11 @@ msgstr "Bureau responsable"
|
|
|
1706
1706
|
msgid "done_edit_social_links"
|
|
1707
1707
|
msgstr ""
|
|
1708
1708
|
|
|
1709
|
+
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
1710
|
+
# defaultMessage: Navigazione elementi slider
|
|
1711
|
+
msgid "dots"
|
|
1712
|
+
msgstr ""
|
|
1713
|
+
|
|
1709
1714
|
#: components/ItaliaTheme/View/VenueView/VenueWhere
|
|
1710
1715
|
# defaultMessage: Indirizzo
|
|
1711
1716
|
msgid "dove"
|
|
@@ -2658,6 +2663,11 @@ msgstr ""
|
|
|
2658
2663
|
msgid "playStoreLink"
|
|
2659
2664
|
msgstr ""
|
|
2660
2665
|
|
|
2666
|
+
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
2667
|
+
# defaultMessage: Precedente
|
|
2668
|
+
msgid "precedente"
|
|
2669
|
+
msgstr ""
|
|
2670
|
+
|
|
2661
2671
|
#: components/ItaliaTheme/manage/Widgets/IconPreviewWidget
|
|
2662
2672
|
# defaultMessage: Anteprima dell'icona scelta
|
|
2663
2673
|
msgid "previewIconSelected"
|
|
@@ -3492,6 +3502,11 @@ msgstr "Aller à la navigation"
|
|
|
3492
3502
|
msgid "skype"
|
|
3493
3503
|
msgstr ""
|
|
3494
3504
|
|
|
3505
|
+
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
3506
|
+
# defaultMessage: Vai alla slide {index}
|
|
3507
|
+
msgid "slideDot"
|
|
3508
|
+
msgstr ""
|
|
3509
|
+
|
|
3495
3510
|
#: config/Blocks/ListingOptions/sliderTemplate
|
|
3496
3511
|
# defaultMessage: N° slide da mostrare
|
|
3497
3512
|
msgid "slidesToShow"
|
|
@@ -3632,6 +3647,11 @@ msgstr ""
|
|
|
3632
3647
|
msgid "subjects"
|
|
3633
3648
|
msgstr "Sujettes"
|
|
3634
3649
|
|
|
3650
|
+
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
3651
|
+
# defaultMessage: Successivo
|
|
3652
|
+
msgid "successivo"
|
|
3653
|
+
msgstr ""
|
|
3654
|
+
|
|
3635
3655
|
#: components/ItaliaTheme/View/EventoView/EventoContatti
|
|
3636
3656
|
# defaultMessage: Con il supporto di
|
|
3637
3657
|
msgid "supported_by"
|
|
@@ -1689,6 +1689,11 @@ msgstr "Ufficio responsabile"
|
|
|
1689
1689
|
msgid "done_edit_social_links"
|
|
1690
1690
|
msgstr "Fatto"
|
|
1691
1691
|
|
|
1692
|
+
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
1693
|
+
# defaultMessage: Navigazione elementi slider
|
|
1694
|
+
msgid "dots"
|
|
1695
|
+
msgstr ""
|
|
1696
|
+
|
|
1692
1697
|
#: components/ItaliaTheme/View/VenueView/VenueWhere
|
|
1693
1698
|
# defaultMessage: Indirizzo
|
|
1694
1699
|
msgid "dove"
|
|
@@ -2641,6 +2646,11 @@ msgstr "Testo di aiuto"
|
|
|
2641
2646
|
msgid "playStoreLink"
|
|
2642
2647
|
msgstr "PlayStore Link"
|
|
2643
2648
|
|
|
2649
|
+
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
2650
|
+
# defaultMessage: Precedente
|
|
2651
|
+
msgid "precedente"
|
|
2652
|
+
msgstr ""
|
|
2653
|
+
|
|
2644
2654
|
#: components/ItaliaTheme/manage/Widgets/IconPreviewWidget
|
|
2645
2655
|
# defaultMessage: Anteprima dell'icona scelta
|
|
2646
2656
|
msgid "previewIconSelected"
|
|
@@ -3475,6 +3485,11 @@ msgstr "Vai alla navigazione"
|
|
|
3475
3485
|
msgid "skype"
|
|
3476
3486
|
msgstr "Skype"
|
|
3477
3487
|
|
|
3488
|
+
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
3489
|
+
# defaultMessage: Vai alla slide {index}
|
|
3490
|
+
msgid "slideDot"
|
|
3491
|
+
msgstr ""
|
|
3492
|
+
|
|
3478
3493
|
#: config/Blocks/ListingOptions/sliderTemplate
|
|
3479
3494
|
# defaultMessage: N° slide da mostrare
|
|
3480
3495
|
msgid "slidesToShow"
|
|
@@ -3615,6 +3630,11 @@ msgstr "Visibile"
|
|
|
3615
3630
|
msgid "subjects"
|
|
3616
3631
|
msgstr "Tags"
|
|
3617
3632
|
|
|
3633
|
+
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
3634
|
+
# defaultMessage: Successivo
|
|
3635
|
+
msgid "successivo"
|
|
3636
|
+
msgstr ""
|
|
3637
|
+
|
|
3618
3638
|
#: components/ItaliaTheme/View/EventoView/EventoContatti
|
|
3619
3639
|
# defaultMessage: Con il supporto di
|
|
3620
3640
|
msgid "supported_by"
|
package/locales/volto.pot
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
msgid ""
|
|
2
2
|
msgstr ""
|
|
3
3
|
"Project-Id-Version: Plone\n"
|
|
4
|
-
"POT-Creation-Date: 2023-06-
|
|
4
|
+
"POT-Creation-Date: 2023-06-28T14:35:51.566Z\n"
|
|
5
5
|
"Last-Translator: Plone i18n <plone-i18n@lists.sourceforge.net>\n"
|
|
6
6
|
"Language-Team: Plone i18n <plone-i18n@lists.sourceforge.net>\n"
|
|
7
7
|
"MIME-Version: 1.0\n"
|
|
@@ -1691,6 +1691,11 @@ msgstr ""
|
|
|
1691
1691
|
msgid "done_edit_social_links"
|
|
1692
1692
|
msgstr ""
|
|
1693
1693
|
|
|
1694
|
+
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
1695
|
+
# defaultMessage: Navigazione elementi slider
|
|
1696
|
+
msgid "dots"
|
|
1697
|
+
msgstr ""
|
|
1698
|
+
|
|
1694
1699
|
#: components/ItaliaTheme/View/VenueView/VenueWhere
|
|
1695
1700
|
# defaultMessage: Indirizzo
|
|
1696
1701
|
msgid "dove"
|
|
@@ -2643,6 +2648,11 @@ msgstr ""
|
|
|
2643
2648
|
msgid "playStoreLink"
|
|
2644
2649
|
msgstr ""
|
|
2645
2650
|
|
|
2651
|
+
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
2652
|
+
# defaultMessage: Precedente
|
|
2653
|
+
msgid "precedente"
|
|
2654
|
+
msgstr ""
|
|
2655
|
+
|
|
2646
2656
|
#: components/ItaliaTheme/manage/Widgets/IconPreviewWidget
|
|
2647
2657
|
# defaultMessage: Anteprima dell'icona scelta
|
|
2648
2658
|
msgid "previewIconSelected"
|
|
@@ -3477,6 +3487,11 @@ msgstr ""
|
|
|
3477
3487
|
msgid "skype"
|
|
3478
3488
|
msgstr ""
|
|
3479
3489
|
|
|
3490
|
+
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
3491
|
+
# defaultMessage: Vai alla slide {index}
|
|
3492
|
+
msgid "slideDot"
|
|
3493
|
+
msgstr ""
|
|
3494
|
+
|
|
3480
3495
|
#: config/Blocks/ListingOptions/sliderTemplate
|
|
3481
3496
|
# defaultMessage: N° slide da mostrare
|
|
3482
3497
|
msgid "slidesToShow"
|
|
@@ -3617,6 +3632,11 @@ msgstr ""
|
|
|
3617
3632
|
msgid "subjects"
|
|
3618
3633
|
msgstr ""
|
|
3619
3634
|
|
|
3635
|
+
#: components/ItaliaTheme/Blocks/Listing/SliderTemplate
|
|
3636
|
+
# defaultMessage: Successivo
|
|
3637
|
+
msgid "successivo"
|
|
3638
|
+
msgstr ""
|
|
3639
|
+
|
|
3620
3640
|
#: components/ItaliaTheme/View/EventoView/EventoContatti
|
|
3621
3641
|
# defaultMessage: Con il supporto di
|
|
3622
3642
|
msgid "supported_by"
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "design-comuni-plone-theme",
|
|
3
3
|
"description": "Volto Theme for Italia design guidelines",
|
|
4
4
|
"license": "GPL-v3",
|
|
5
|
-
"version": "8.0.0-alpha.
|
|
5
|
+
"version": "8.0.0-alpha.41",
|
|
6
6
|
"main": "src/index.js",
|
|
7
7
|
"keywords": [
|
|
8
8
|
"volto-addon",
|
|
@@ -147,16 +147,16 @@
|
|
|
147
147
|
},
|
|
148
148
|
"devDependencies": {
|
|
149
149
|
"@babel/core": "7.19.6",
|
|
150
|
-
"@commitlint/cli": "
|
|
151
|
-
"@commitlint/config-conventional": "
|
|
150
|
+
"@commitlint/cli": "17.6.6",
|
|
151
|
+
"@commitlint/config-conventional": "17.6.6",
|
|
152
152
|
"@plone/scripts": "*",
|
|
153
|
-
"@release-it/conventional-changelog": "
|
|
153
|
+
"@release-it/conventional-changelog": "5.1.1",
|
|
154
154
|
"eslint": "8.42.0",
|
|
155
155
|
"eslint-plugin-prettier": "^3.4.1",
|
|
156
156
|
"husky": "8.0.2",
|
|
157
157
|
"lint-staged": "13.0.3",
|
|
158
158
|
"prettier": "^2.7.1",
|
|
159
|
-
"release-it": "
|
|
159
|
+
"release-it": "15.11.0",
|
|
160
160
|
"stylelint": "15.7.0",
|
|
161
161
|
"stylelint-config-idiomatic-order": "^9.0.0",
|
|
162
162
|
"stylelint-config-prettier": "^9.0.3",
|
|
@@ -201,7 +201,7 @@ const Body = ({ data, inEditMode, path, onChangeBlock }) => {
|
|
|
201
201
|
|
|
202
202
|
{!loading ? (
|
|
203
203
|
items?.length > 0 ? (
|
|
204
|
-
<div className="mt-4" ref={resultsRef}>
|
|
204
|
+
<div className="mt-4" ref={resultsRef} aria-live="polite">
|
|
205
205
|
<div className="block listing">
|
|
206
206
|
<BandiInEvidenceTemplate items={items} full_width={false} />
|
|
207
207
|
</div>
|
|
@@ -215,7 +215,7 @@ const Body = ({ data, inEditMode, path, onChangeBlock }) => {
|
|
|
215
215
|
</div>
|
|
216
216
|
) : querystringResults ? (
|
|
217
217
|
<>
|
|
218
|
-
<div className="mt-4">
|
|
218
|
+
<div className="mt-4" aria-live="polite">
|
|
219
219
|
<p className="text-center">
|
|
220
220
|
{intl.formatMessage(messages.noResult)}
|
|
221
221
|
</p>
|
|
@@ -211,7 +211,7 @@ const Body = ({ data, inEditMode, path, onChangeBlock }) => {
|
|
|
211
211
|
|
|
212
212
|
{!loading ? (
|
|
213
213
|
items?.length > 0 ? (
|
|
214
|
-
<div className="mt-4" ref={resultsRef}>
|
|
214
|
+
<div className="mt-4" ref={resultsRef} aria-live="polite">
|
|
215
215
|
<div className="block listing">
|
|
216
216
|
<CardWithImageTemplate items={items} full_width={false} />
|
|
217
217
|
</div>
|
|
@@ -225,7 +225,7 @@ const Body = ({ data, inEditMode, path, onChangeBlock }) => {
|
|
|
225
225
|
</div>
|
|
226
226
|
) : querystringResults ? (
|
|
227
227
|
<>
|
|
228
|
-
<div className="mt-4">
|
|
228
|
+
<div className="mt-4" aria-live="polite">
|
|
229
229
|
<p className="text-center">
|
|
230
230
|
{intl.formatMessage(messages.noResult)}
|
|
231
231
|
</p>
|
|
@@ -15,3 +15,21 @@ export const getCategory = (item, show_type, show_section, props) => {
|
|
|
15
15
|
}
|
|
16
16
|
return null;
|
|
17
17
|
};
|
|
18
|
+
|
|
19
|
+
export const visibleSlideTitle = (selector) => {
|
|
20
|
+
// Needed to deal with react-slick duplicating a lot of slides
|
|
21
|
+
// when used in infinite mode. It's an useless and counterproductive
|
|
22
|
+
// thing to do on their part, there are multiple issues opened.
|
|
23
|
+
// The lib is not actually mantained so...
|
|
24
|
+
return Array.from(document.querySelectorAll(selector)).find((e) => {
|
|
25
|
+
const rect = e.getBoundingClientRect();
|
|
26
|
+
return rect.left >= 0 && rect.right <= window.innerWidth;
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
export const focusNext = (currentSlide) => {
|
|
30
|
+
// Custom handling of focus as per Arter a11y audit and request
|
|
31
|
+
const link = visibleSlideTitle(`a.slide-link[data-slide="${currentSlide}"]`);
|
|
32
|
+
if (!link || document.activeElement === link) return;
|
|
33
|
+
// eslint-disable-next-line no-unused-expressions
|
|
34
|
+
link.focus();
|
|
35
|
+
};
|
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
import 'slick-carousel/slick/slick.css';
|
|
2
2
|
import 'design-comuni-plone-theme/components/slick-carousel/slick/slick-theme.css';
|
|
3
|
-
|
|
4
3
|
import { Col, Container, Row } from 'design-react-kit';
|
|
5
4
|
import {
|
|
6
5
|
Icon,
|
|
7
6
|
ListingImage,
|
|
8
7
|
ListingLinkMore,
|
|
9
|
-
NextArrow,
|
|
10
|
-
PrevArrow,
|
|
11
8
|
} from 'design-comuni-plone-theme/components/ItaliaTheme';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
import {
|
|
10
|
+
focusNext,
|
|
11
|
+
visibleSlideTitle,
|
|
12
|
+
} from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/Commons/utils';
|
|
15
13
|
import React, { useRef, useState } from 'react';
|
|
16
14
|
import { defineMessages, useIntl } from 'react-intl';
|
|
17
|
-
|
|
18
15
|
import PropTypes from 'prop-types';
|
|
19
16
|
import { UniversalLink } from '@plone/volto/components';
|
|
20
17
|
import cx from 'classnames';
|
|
@@ -33,14 +30,98 @@ const messages = defineMessages({
|
|
|
33
30
|
id: 'Pause slider',
|
|
34
31
|
defaultMessage: 'Metti in pausa',
|
|
35
32
|
},
|
|
33
|
+
precedente: {
|
|
34
|
+
id: 'precedente',
|
|
35
|
+
defaultMessage: 'Precedente',
|
|
36
|
+
},
|
|
37
|
+
successivo: {
|
|
38
|
+
id: 'successivo',
|
|
39
|
+
defaultMessage: 'Successivo',
|
|
40
|
+
},
|
|
41
|
+
dots: {
|
|
42
|
+
id: 'dots',
|
|
43
|
+
defaultMessage: 'Navigazione elementi slider',
|
|
44
|
+
},
|
|
45
|
+
slideDot: {
|
|
46
|
+
id: 'slideDot',
|
|
47
|
+
defaultMessage: 'Vai alla slide {index}',
|
|
48
|
+
},
|
|
36
49
|
});
|
|
37
50
|
|
|
51
|
+
function NextArrow(props) {
|
|
52
|
+
// Custom handling of focus as per Arter a11y audit and request
|
|
53
|
+
const { className, style, onClick, currentSlide, intl } = props;
|
|
54
|
+
const handleClick = (options) => {
|
|
55
|
+
onClick(options, false);
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const handleKeyDown = async (event) => {
|
|
59
|
+
// Tab n/p
|
|
60
|
+
if (event.key === 'Tab' && event.shiftKey) {
|
|
61
|
+
event.preventDefault();
|
|
62
|
+
event.stopPropagation();
|
|
63
|
+
focusNext(currentSlide);
|
|
64
|
+
}
|
|
65
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
66
|
+
event.preventDefault();
|
|
67
|
+
event.stopPropagation();
|
|
68
|
+
await onClick(event);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
return (
|
|
72
|
+
<button
|
|
73
|
+
className={className}
|
|
74
|
+
style={{ ...style }}
|
|
75
|
+
onClick={handleClick}
|
|
76
|
+
onKeyDown={handleKeyDown}
|
|
77
|
+
tabIndex={0}
|
|
78
|
+
title={intl.formatMessage(messages.successivo)}
|
|
79
|
+
aria-label={intl.formatMessage(messages.successivo)}
|
|
80
|
+
>
|
|
81
|
+
<Icon icon="chevron-right" key="chevron-right" />
|
|
82
|
+
<span class="sr-only">{intl.formatMessage(messages.successivo)}</span>
|
|
83
|
+
</button>
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function PrevArrow(props) {
|
|
88
|
+
// Custom handling of focus as per Arter a11y audit and request
|
|
89
|
+
const { className, style, onClick, currentSlide, intl } = props;
|
|
90
|
+
|
|
91
|
+
const handleKeyDown = async (event) => {
|
|
92
|
+
// Tab n/p
|
|
93
|
+
if (event.key === 'Tab' && !event.shiftKey) {
|
|
94
|
+
event.preventDefault();
|
|
95
|
+
event.stopPropagation();
|
|
96
|
+
focusNext(currentSlide);
|
|
97
|
+
}
|
|
98
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
99
|
+
event.preventDefault();
|
|
100
|
+
event.stopPropagation();
|
|
101
|
+
await onClick(event);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
return (
|
|
105
|
+
<button
|
|
106
|
+
className={className}
|
|
107
|
+
style={{ ...style }}
|
|
108
|
+
onClick={onClick}
|
|
109
|
+
tabIndex={0}
|
|
110
|
+
title={intl.formatMessage(messages.precedente)}
|
|
111
|
+
aria-label={intl.formatMessage(messages.precedente)}
|
|
112
|
+
onKeyDown={handleKeyDown}
|
|
113
|
+
>
|
|
114
|
+
<Icon icon="chevron-left" key="chevron-left-prev" />
|
|
115
|
+
<span class="sr-only">{intl.formatMessage(messages.precedente)}</span>
|
|
116
|
+
</button>
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
|
|
38
120
|
const SliderTemplate = ({
|
|
39
121
|
items,
|
|
40
122
|
title,
|
|
41
123
|
isEditMode,
|
|
42
124
|
show_block_bg,
|
|
43
|
-
linkAlign,
|
|
44
125
|
linkTitle,
|
|
45
126
|
linkHref,
|
|
46
127
|
slidesToShow = '1',
|
|
@@ -50,14 +131,12 @@ const SliderTemplate = ({
|
|
|
50
131
|
autoplay = false,
|
|
51
132
|
autoplay_speed = 2, //seconds
|
|
52
133
|
reactSlick,
|
|
53
|
-
titleLine,
|
|
54
|
-
linkmore_id_lighthouse,
|
|
55
134
|
}) => {
|
|
56
135
|
const intl = useIntl();
|
|
57
|
-
const slider = useRef(null);
|
|
58
136
|
const [userAutoplay, setUserAutoplay] = useState(autoplay);
|
|
59
137
|
const nSlidesToShow = parseInt(slidesToShow);
|
|
60
138
|
const Slider = reactSlick.default;
|
|
139
|
+
const slider = useRef(null);
|
|
61
140
|
|
|
62
141
|
const toggleAutoplay = () => {
|
|
63
142
|
if (!slider?.current) return;
|
|
@@ -70,6 +149,91 @@ const SliderTemplate = ({
|
|
|
70
149
|
}
|
|
71
150
|
};
|
|
72
151
|
|
|
152
|
+
const handleKeyDown = (event) => {
|
|
153
|
+
// Tab n/p
|
|
154
|
+
// Custom handling of focus as per Arter a11y audit and request
|
|
155
|
+
if (event.key === 'Tab') {
|
|
156
|
+
event.preventDefault();
|
|
157
|
+
event.stopPropagation();
|
|
158
|
+
const currentSlide = parseInt(event.target.dataset.slide);
|
|
159
|
+
if (event.shiftKey) {
|
|
160
|
+
if (
|
|
161
|
+
nSlidesToShow > 1 &&
|
|
162
|
+
visibleSlideTitle(`a.slide-link[data-slide="${currentSlide - 1}"]`)
|
|
163
|
+
) {
|
|
164
|
+
focusNext(currentSlide - 1);
|
|
165
|
+
} else {
|
|
166
|
+
const prevArrow = document.querySelector('.slick-arrow.slick-prev');
|
|
167
|
+
prevArrow.focus();
|
|
168
|
+
}
|
|
169
|
+
} else {
|
|
170
|
+
if (
|
|
171
|
+
nSlidesToShow > 1 &&
|
|
172
|
+
visibleSlideTitle(`a.slide-link[data-slide="${currentSlide + 1}"]`)
|
|
173
|
+
) {
|
|
174
|
+
focusNext(currentSlide + 1);
|
|
175
|
+
} else {
|
|
176
|
+
const nextArrow = document.querySelector('.slick-arrow.slick-next');
|
|
177
|
+
nextArrow.focus();
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
const handleDotKeyDown = (event, index, originalOnClick) => {
|
|
183
|
+
// Custom handling of focus as per Arter a11y audit and request
|
|
184
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
185
|
+
event.preventDefault();
|
|
186
|
+
event.stopPropagation();
|
|
187
|
+
originalOnClick(event);
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
const renderCustomDots = (props) => {
|
|
192
|
+
// Custom handling of focus as per Arter a11y audit and request
|
|
193
|
+
return (
|
|
194
|
+
<ul
|
|
195
|
+
className="slick-dots"
|
|
196
|
+
aria-label={intl.formatMessage(messages.dots)}
|
|
197
|
+
title={intl.formatMessage(messages.dots)}
|
|
198
|
+
>
|
|
199
|
+
{props.map((item, index) => {
|
|
200
|
+
const El = item.type;
|
|
201
|
+
const children = item.props.children;
|
|
202
|
+
// Justified assumption: children is an Object and not an Array here
|
|
203
|
+
const Child =
|
|
204
|
+
children.type ||
|
|
205
|
+
function () {
|
|
206
|
+
return null;
|
|
207
|
+
};
|
|
208
|
+
return (
|
|
209
|
+
<El
|
|
210
|
+
className={`${item.props.className} slick-dot`}
|
|
211
|
+
tabIndex={0}
|
|
212
|
+
title={intl.formatMessage(messages.slideDot, {
|
|
213
|
+
index: index + 1,
|
|
214
|
+
})}
|
|
215
|
+
onKeyDown={(event) =>
|
|
216
|
+
handleDotKeyDown(event, index, children.props.onClick)
|
|
217
|
+
}
|
|
218
|
+
>
|
|
219
|
+
<Child
|
|
220
|
+
{...children.props}
|
|
221
|
+
tabIndex={-1}
|
|
222
|
+
style={{ padding: 0 }}
|
|
223
|
+
title={intl.formatMessage(messages.slideDot, {
|
|
224
|
+
index: index + 1,
|
|
225
|
+
})}
|
|
226
|
+
aria-label={intl.formatMessage(messages.slideDot, {
|
|
227
|
+
index: index + 1,
|
|
228
|
+
})}
|
|
229
|
+
/>
|
|
230
|
+
</El>
|
|
231
|
+
);
|
|
232
|
+
})}
|
|
233
|
+
</ul>
|
|
234
|
+
);
|
|
235
|
+
};
|
|
236
|
+
|
|
73
237
|
const settings = {
|
|
74
238
|
dots: show_dots,
|
|
75
239
|
infinite: true,
|
|
@@ -86,8 +250,12 @@ const SliderTemplate = ({
|
|
|
86
250
|
focusOnSelect: true,
|
|
87
251
|
draggable: true,
|
|
88
252
|
accessibility: true,
|
|
89
|
-
|
|
90
|
-
|
|
253
|
+
// Custom handling of focus as per Arter a11y audit and request
|
|
254
|
+
nextArrow: <NextArrow intl={intl} />,
|
|
255
|
+
prevArrow: <PrevArrow intl={intl} />,
|
|
256
|
+
appendDots: renderCustomDots,
|
|
257
|
+
//
|
|
258
|
+
afterChange: focusNext,
|
|
91
259
|
responsive: [
|
|
92
260
|
{
|
|
93
261
|
breakpoint: 980,
|
|
@@ -109,9 +277,7 @@ const SliderTemplate = ({
|
|
|
109
277
|
{title && (
|
|
110
278
|
<Row>
|
|
111
279
|
<Col>
|
|
112
|
-
<h2 className=
|
|
113
|
-
{title}
|
|
114
|
-
</h2>
|
|
280
|
+
<h2 className="mb-4">{title}</h2>
|
|
115
281
|
</Col>
|
|
116
282
|
</Row>
|
|
117
283
|
)}
|
|
@@ -154,6 +320,7 @@ const SliderTemplate = ({
|
|
|
154
320
|
<div
|
|
155
321
|
className="it-single-slide-wrapper"
|
|
156
322
|
key={item['@id'] + index}
|
|
323
|
+
data-slide={index}
|
|
157
324
|
>
|
|
158
325
|
<div className="slide-wrapper">
|
|
159
326
|
{image ? (
|
|
@@ -162,11 +329,15 @@ const SliderTemplate = ({
|
|
|
162
329
|
<div className="img-placeholder"></div>
|
|
163
330
|
)}
|
|
164
331
|
{show_image_title && (
|
|
165
|
-
<
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
332
|
+
<div className="slide-title">
|
|
333
|
+
<UniversalLink
|
|
334
|
+
item={item}
|
|
335
|
+
title={intl.formatMessage(messages.viewImage)}
|
|
336
|
+
tabIndex={0}
|
|
337
|
+
onKeyDown={handleKeyDown}
|
|
338
|
+
className="slide-link"
|
|
339
|
+
data-slide={index}
|
|
340
|
+
>
|
|
170
341
|
{full_width ? (
|
|
171
342
|
<Container>
|
|
172
343
|
{item.title}{' '}
|
|
@@ -178,8 +349,8 @@ const SliderTemplate = ({
|
|
|
178
349
|
<Icon icon="arrow-right" key="arrow-right" />
|
|
179
350
|
</>
|
|
180
351
|
)}
|
|
181
|
-
</
|
|
182
|
-
</
|
|
352
|
+
</UniversalLink>
|
|
353
|
+
</div>
|
|
183
354
|
)}
|
|
184
355
|
</div>
|
|
185
356
|
</div>
|
|
@@ -188,13 +359,7 @@ const SliderTemplate = ({
|
|
|
188
359
|
</Slider>
|
|
189
360
|
</div>
|
|
190
361
|
</div>
|
|
191
|
-
<ListingLinkMore
|
|
192
|
-
title={linkTitle}
|
|
193
|
-
href={linkHref}
|
|
194
|
-
linkAlign={linkAlign}
|
|
195
|
-
className="my-4"
|
|
196
|
-
linkmoreIdLighthouse={linkmore_id_lighthouse}
|
|
197
|
-
/>
|
|
362
|
+
<ListingLinkMore title={linkTitle} href={linkHref} className="my-4" />
|
|
198
363
|
</Container>
|
|
199
364
|
</div>
|
|
200
365
|
);
|
|
@@ -38,7 +38,7 @@ const CardWithImageRssTemplate = ({
|
|
|
38
38
|
const intl = useIntl();
|
|
39
39
|
|
|
40
40
|
return (
|
|
41
|
-
<div className={cx('', { 'public-ui': isEditMode })}>
|
|
41
|
+
<div className={cx('', { 'public-ui': isEditMode })} aria-live="polite">
|
|
42
42
|
{items?.length > 0 ? (
|
|
43
43
|
<>
|
|
44
44
|
{data.title && (
|
|
@@ -105,7 +105,7 @@ const CardWithImageRssTemplate = ({
|
|
|
105
105
|
)}
|
|
106
106
|
</>
|
|
107
107
|
) : data.feed ? (
|
|
108
|
-
<div className="no-rss-feed-results">
|
|
108
|
+
<div className="no-rss-feed-results" aria-live="polite">
|
|
109
109
|
{intl.formatMessage(messages.noResults)}
|
|
110
110
|
</div>
|
|
111
111
|
) : null}
|
|
@@ -37,7 +37,7 @@ const CardWithoutImageRssTemplate = ({
|
|
|
37
37
|
const intl = useIntl();
|
|
38
38
|
|
|
39
39
|
return (
|
|
40
|
-
<div className={cx('', { 'public-ui': isEditMode })}>
|
|
40
|
+
<div className={cx('', { 'public-ui': isEditMode })} aria-live="polite">
|
|
41
41
|
{items?.length > 0 ? (
|
|
42
42
|
<>
|
|
43
43
|
{data.title && (
|
|
@@ -97,7 +97,7 @@ const CardWithoutImageRssTemplate = ({
|
|
|
97
97
|
)}
|
|
98
98
|
</>
|
|
99
99
|
) : data.feed ? (
|
|
100
|
-
<div className="no-rss-feed-results">
|
|
100
|
+
<div className="no-rss-feed-results" aria-live="polite">
|
|
101
101
|
{intl.formatMessage(messages.noResults)}
|
|
102
102
|
</div>
|
|
103
103
|
) : null}
|
|
@@ -195,7 +195,7 @@ const Body = ({ data, inEditMode, path, onChangeBlock }) => {
|
|
|
195
195
|
|
|
196
196
|
{!loading ? (
|
|
197
197
|
items?.length > 0 ? (
|
|
198
|
-
<div className="mt-4" ref={resultsRef}>
|
|
198
|
+
<div className="mt-4" ref={resultsRef} aria-live="polite">
|
|
199
199
|
<div className="block listing">
|
|
200
200
|
<CardWithImageTemplate items={items} full_width={false} />
|
|
201
201
|
</div>
|
|
@@ -209,7 +209,7 @@ const Body = ({ data, inEditMode, path, onChangeBlock }) => {
|
|
|
209
209
|
</div>
|
|
210
210
|
) : querystringResults ? (
|
|
211
211
|
<>
|
|
212
|
-
<div className="mt-4">
|
|
212
|
+
<div className="mt-4" aria-live="polite">
|
|
213
213
|
<p className="text-center">
|
|
214
214
|
{intl.formatMessage(messages.noResult)}
|
|
215
215
|
</p>
|
|
@@ -105,7 +105,7 @@ const ListingBody = React.memo(
|
|
|
105
105
|
)}
|
|
106
106
|
{!loadingQuery &&
|
|
107
107
|
(listingItems.length > 0 || additionalFilters?.length > 0) ? (
|
|
108
|
-
<div className={`${getBlockClasses()}`} ref={listingRef}>
|
|
108
|
+
<div className={`${getBlockClasses()}`} ref={listingRef} aria-live="polite">
|
|
109
109
|
<ListingBodyTemplate
|
|
110
110
|
items={listingItems}
|
|
111
111
|
isEditMode={isEditMode}
|
|
@@ -127,7 +127,7 @@ const ListingBody = React.memo(
|
|
|
127
127
|
)}
|
|
128
128
|
</div>
|
|
129
129
|
) : isEditMode ? (
|
|
130
|
-
<div className="listing message">
|
|
130
|
+
<div className="listing message" aria-live="polite">
|
|
131
131
|
{isFolderContentsListing && (
|
|
132
132
|
<FormattedMessage
|
|
133
133
|
id="No items found in this container."
|
|
@@ -39,6 +39,10 @@
|
|
|
39
39
|
line-height: 17px;
|
|
40
40
|
outline: none;
|
|
41
41
|
vertical-align: baseline;
|
|
42
|
+
input:focus ~ label::before {
|
|
43
|
+
box-shadow: $gdpr-focus-shadow !important;
|
|
44
|
+
outline: none !important;
|
|
45
|
+
}
|
|
42
46
|
|
|
43
47
|
label {
|
|
44
48
|
position: relative;
|
|
@@ -48,6 +52,8 @@
|
|
|
48
52
|
|
|
49
53
|
&:before {
|
|
50
54
|
left: 0;
|
|
55
|
+
border: 1px solid $gdpr-toggle-border;
|
|
56
|
+
background-color: $gdpr-toggle;
|
|
51
57
|
transition: border 0.1s ease, opacity 0.1s ease,
|
|
52
58
|
transform 0.1s ease, box-shadow 0.1s ease;
|
|
53
59
|
}
|
|
@@ -99,7 +105,7 @@
|
|
|
99
105
|
&:checked {
|
|
100
106
|
~ label {
|
|
101
107
|
&:before {
|
|
102
|
-
background-color: $
|
|
108
|
+
background-color: $gdpr-toggle-checked;
|
|
103
109
|
}
|
|
104
110
|
|
|
105
111
|
&:after {
|
|
@@ -123,7 +129,7 @@
|
|
|
123
129
|
display: block;
|
|
124
130
|
width: 3.5rem;
|
|
125
131
|
height: 1.5rem;
|
|
126
|
-
border:
|
|
132
|
+
border: 1px solid $gdpr-toggle-border;
|
|
127
133
|
border-radius: 500rem;
|
|
128
134
|
content: '';
|
|
129
135
|
transform: none;
|
|
@@ -135,7 +141,7 @@
|
|
|
135
141
|
top: 0rem;
|
|
136
142
|
width: 1.5rem;
|
|
137
143
|
height: 1.5rem;
|
|
138
|
-
border:
|
|
144
|
+
border: 1.5px solid $gdpr-toggle-border;
|
|
139
145
|
background: #ffffff
|
|
140
146
|
linear-gradient(transparent, rgba(0, 0, 0, 0.05));
|
|
141
147
|
border-radius: 500rem;
|
|
@@ -217,3 +223,23 @@ body.has-toolbar-collapsed {
|
|
|
217
223
|
}
|
|
218
224
|
}
|
|
219
225
|
}
|
|
226
|
+
.gdpr-privacy-banner
|
|
227
|
+
.gdpr-privacy-content-wrapper
|
|
228
|
+
.gdpr-privacy-content
|
|
229
|
+
.buttons
|
|
230
|
+
button.gdpr-privacy-banner-button:focus,
|
|
231
|
+
.gdpr-privacy-banner
|
|
232
|
+
.gdpr-privacy-content-wrapper
|
|
233
|
+
.gdpr-privacy-content
|
|
234
|
+
a:focus {
|
|
235
|
+
box-shadow: $gdpr-focus-shadow;
|
|
236
|
+
outline: none !important;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
.gdpr-privacy-banner
|
|
240
|
+
.gdpr-privacy-content-wrapper
|
|
241
|
+
.gdpr-privacy-content
|
|
242
|
+
.buttons
|
|
243
|
+
button.gdpr-privacy-banner-button.btn-primary {
|
|
244
|
+
background-color: $gdpr-accept-all;
|
|
245
|
+
}
|
|
@@ -132,14 +132,18 @@
|
|
|
132
132
|
|
|
133
133
|
background-color: #3f4142e0;
|
|
134
134
|
|
|
135
|
-
|
|
135
|
+
a {
|
|
136
|
+
color: $white;
|
|
136
137
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
138
|
+
font-size: 1.8rem;
|
|
139
|
+
font-weight: bold;
|
|
140
|
+
text-decoration: none;
|
|
141
|
+
}
|
|
140
142
|
|
|
141
143
|
&:hover,
|
|
142
|
-
&:active
|
|
144
|
+
&:active,
|
|
145
|
+
a:hover,
|
|
146
|
+
a:active {
|
|
143
147
|
text-decoration-line: underline;
|
|
144
148
|
}
|
|
145
149
|
|
|
@@ -19,6 +19,16 @@ $tertiary-text: #fff !default;
|
|
|
19
19
|
$highlight-search: #ff0 !default;
|
|
20
20
|
$font-family-monospace-light: Roboto Mono Light !default;
|
|
21
21
|
|
|
22
|
+
// GDPR-BANNER RELATED
|
|
23
|
+
$gdpr-accept-all: #005700 !default;
|
|
24
|
+
$gdpr-toggle-checked: #005700 !default;
|
|
25
|
+
$gdpr-toggle: #b22515 !default;
|
|
26
|
+
$gdpr-toggle-border: #000 !default;
|
|
27
|
+
$gdpr-focus-color: #ff9800 !default;
|
|
28
|
+
$gdpr-link-color: #004285 !default;
|
|
29
|
+
$gdpr-focus-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15),
|
|
30
|
+
0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem $gdpr-focus-color !default;
|
|
31
|
+
|
|
22
32
|
$caption-text: #455b71 !default;
|
|
23
33
|
|
|
24
34
|
$primary-a0: hsl($primary-h, 62%, 97%) !default;
|