design-comuni-plone-theme 8.8.2 → 9.0.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.
Files changed (67) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/RELEASE.md +12 -0
  3. package/locales/en/LC_MESSAGES/volto.po +1 -1
  4. package/locales/fr/LC_MESSAGES/volto.po +1 -1
  5. package/package.json +1 -1
  6. package/publiccode.yml +1 -1
  7. package/src/components/ItaliaTheme/Blocks/Listing/SliderTemplate.jsx +6 -2
  8. package/src/components/ItaliaTheme/CustomerSatisfaction/Steps/Commons/Rating.jsx +1 -1
  9. package/src/components/ItaliaTheme/Pagination/Pagination.jsx +11 -2
  10. package/src/components/ItaliaTheme/Pagination/PaginationItem.jsx +12 -1
  11. package/src/components/ItaliaTheme/View/BandoView/BandoApprofondimenti.jsx +3 -3
  12. package/src/components/ItaliaTheme/View/BandoView/BandoText.jsx +4 -6
  13. package/src/components/ItaliaTheme/View/BandoView/BandoView.jsx +2 -2
  14. package/src/components/ItaliaTheme/View/Commons/Attachment.jsx +1 -1
  15. package/src/components/ItaliaTheme/View/Commons/ContactsCard.jsx +4 -4
  16. package/src/components/ItaliaTheme/View/Commons/Events.jsx +9 -15
  17. package/src/components/ItaliaTheme/View/Commons/Gallery.jsx +1 -1
  18. package/src/components/ItaliaTheme/View/Commons/GenericCard.jsx +4 -4
  19. package/src/components/ItaliaTheme/View/Commons/LocationItem.jsx +2 -2
  20. package/src/components/ItaliaTheme/View/Commons/Module.jsx +1 -1
  21. package/src/components/ItaliaTheme/View/Commons/Modules.jsx +3 -3
  22. package/src/components/ItaliaTheme/View/Commons/NewsCard.jsx +2 -2
  23. package/src/components/ItaliaTheme/View/Commons/OfficeCard.jsx +2 -2
  24. package/src/components/ItaliaTheme/View/Commons/RelatedItemInEvidence/ItemInEvidence.jsx +1 -1
  25. package/src/components/ItaliaTheme/View/Commons/RelatedItems.jsx +2 -2
  26. package/src/components/ItaliaTheme/View/Commons/RichText.jsx +4 -1
  27. package/src/components/ItaliaTheme/View/Commons/RichTextSection.jsx +5 -2
  28. package/src/components/ItaliaTheme/View/Commons/SmallVenue.jsx +2 -2
  29. package/src/components/ItaliaTheme/View/Commons/TrasparenzaFields.jsx +3 -3
  30. package/src/components/ItaliaTheme/View/Commons/VenuesSmall.jsx +2 -2
  31. package/src/components/ItaliaTheme/View/Commons/index.jsx +0 -1
  32. package/src/components/ItaliaTheme/View/DocumentoView/DocumentoAutori.jsx +2 -1
  33. package/src/components/ItaliaTheme/View/DocumentoView/DocumentoDocumenti.jsx +1 -0
  34. package/src/components/ItaliaTheme/View/DocumentoView/DocumentoUlterioriInformazioni.jsx +5 -2
  35. package/src/components/ItaliaTheme/View/DocumentoView/DocumentoView.jsx +2 -2
  36. package/src/components/ItaliaTheme/View/EventoView/EventoContatti.jsx +16 -25
  37. package/src/components/ItaliaTheme/View/EventoView/EventoCosE.jsx +2 -3
  38. package/src/components/ItaliaTheme/View/EventoView/EventoSponsors.jsx +3 -1
  39. package/src/components/ItaliaTheme/View/EventoView/EventoUlterioriInformazioni.jsx +4 -3
  40. package/src/components/ItaliaTheme/View/EventoView/EventoView.jsx +2 -2
  41. package/src/components/ItaliaTheme/View/IncaricoView/IncaricoPersone.jsx +6 -5
  42. package/src/components/ItaliaTheme/View/IncaricoView/IncaricoView.jsx +1 -1
  43. package/src/components/ItaliaTheme/View/NewsItemView/NewsItemView.jsx +2 -2
  44. package/src/components/ItaliaTheme/View/PaginaArgomentoView/PaginaArgomentoViewNoBlocks.jsx +2 -2
  45. package/src/components/ItaliaTheme/View/PersonaView/PersonaRuolo.jsx +0 -1
  46. package/src/components/ItaliaTheme/View/PersonaView/PersonaView.jsx +2 -2
  47. package/src/components/ItaliaTheme/View/PuntoDiContattoView/PuntoDiContattoView.jsx +47 -45
  48. package/src/components/ItaliaTheme/View/ServizioView/ServizioAChiSiRivolge.jsx +6 -2
  49. package/src/components/ItaliaTheme/View/ServizioView/ServizioAccedi.jsx +8 -6
  50. package/src/components/ItaliaTheme/View/ServizioView/ServizioCostiVincoli.jsx +2 -1
  51. package/src/components/ItaliaTheme/View/ServizioView/ServizioSitiEsterni.jsx +1 -1
  52. package/src/components/ItaliaTheme/View/ServizioView/ServizioView.jsx +2 -2
  53. package/src/components/ItaliaTheme/View/UOView/UOContacts.jsx +6 -4
  54. package/src/components/ItaliaTheme/View/UOView/UOContactsParts/UOContactsContacts.jsx +7 -4
  55. package/src/components/ItaliaTheme/View/UOView/UOContactsParts/UOContactsLocations.jsx +1 -1
  56. package/src/components/ItaliaTheme/View/UOView/UOContactsParts/UOContactsSediSecondarie.jsx +8 -3
  57. package/src/components/ItaliaTheme/View/UOView/UODocuments.jsx +3 -5
  58. package/src/components/ItaliaTheme/View/UOView/UOPeople.jsx +7 -7
  59. package/src/components/ItaliaTheme/View/UOView/UOServices.jsx +4 -5
  60. package/src/components/ItaliaTheme/View/UOView/UOStructure.jsx +66 -56
  61. package/src/components/ItaliaTheme/View/UOView/UOView.jsx +2 -2
  62. package/src/components/ItaliaTheme/View/VenueView/VenueDescription.jsx +1 -1
  63. package/src/components/ItaliaTheme/View/VenueView/VenueView.jsx +2 -2
  64. package/src/components/ItaliaTheme/View/index.js +0 -1
  65. package/src/customizations/volto/components/manage/Blocks/Listing/ListingBody.jsx +6 -0
  66. package/src/theme/ItaliaTheme/Views/_slider.scss +1 -1
  67. package/src/components/ItaliaTheme/View/Commons/RichTextArticle.jsx +0 -56
@@ -28,6 +28,7 @@ const DocumentoDocumenti = ({ content }) => {
28
28
  title={intl.formatMessage(messages.documenti)}
29
29
  id="elenco-documenti"
30
30
  />
31
+
31
32
  {richTextHasContent(content.formati_disponibili) && (
32
33
  <RichTextSection
33
34
  tag_id="formats"
@@ -23,8 +23,9 @@ const DocumentoUlterioriInformazioni = ({ content }) => {
23
23
  richTextHasContent(content?.riferimenti_normativi),
24
24
  [content],
25
25
  );
26
+
26
27
  return (
27
- <Metadata content={content} showSectionTitle={showSectionTitle}>
28
+ <Metadata content={content} showSectionTitle={showSectionTitle} title="">
28
29
  {richTextHasContent(content?.ulteriori_informazioni) && (
29
30
  <HelpBox text={content?.ulteriori_informazioni} />
30
31
  )}
@@ -32,7 +33,9 @@ const DocumentoUlterioriInformazioni = ({ content }) => {
32
33
  {/* RIFERIMENTI NORMATIVI */}
33
34
  {richTextHasContent(content?.riferimenti_normativi) && (
34
35
  <div className="mt-2">
35
- <h5>{intl.formatMessage(messages.riferimenti_normativi)}</h5>
36
+ <h3 className="h5 mb-3">
37
+ {intl.formatMessage(messages.riferimenti_normativi)}
38
+ </h3>
36
39
  <RichText serif={false} data={content.riferimenti_normativi} />
37
40
  </div>
38
41
  )}
@@ -72,7 +72,7 @@ const DocumentoView = ({ content, location }) => {
72
72
  {/* HEADER IMAGE */}
73
73
  <ContentImage content={content} position="afterHeader" />
74
74
 
75
- <div className="row row-column-border row-column-menu-left">
75
+ <div className="row row-column-border border-light row-column-menu-left">
76
76
  <aside className="col-lg-4">
77
77
  {__CLIENT__ && (
78
78
  <SideMenu data={sideMenuElements} content_uid={content?.UID} />
@@ -81,7 +81,7 @@ const DocumentoView = ({ content, location }) => {
81
81
  <section
82
82
  ref={documentBody}
83
83
  id="main-content-section"
84
- className="col-lg-8 it-page-sections-container"
84
+ className="col-lg-8 it-page-sections-container border-light"
85
85
  >
86
86
  {/* SEZIONI */}
87
87
  <ContentTypeViewSections
@@ -34,22 +34,8 @@ const messages = defineMessages({
34
34
  },
35
35
  });
36
36
 
37
- const EventoDocumenti = ({ content }) => {
37
+ const EventoContatti = ({ content }) => {
38
38
  const intl = useIntl();
39
- const getSupportatoDa = () => {
40
- return (
41
- content?.supportato_da?.length > 0 && (
42
- <>
43
- <h5 className="mt-4 supported-by">
44
- {intl.formatMessage(messages.supported_by)}
45
- </h5>
46
- {content?.supportato_da?.map((item) => (
47
- <OfficeCard key={item['@id']} office={item} icon={'it-pa'} />
48
- ))}
49
- </>
50
- )
51
- );
52
- };
53
39
 
54
40
  return richTextHasContent(content?.organizzato_da_esterno) ||
55
41
  content?.organizzato_da_interno.length > 0 ||
@@ -62,7 +48,6 @@ const EventoDocumenti = ({ content }) => {
62
48
  {content.contact_info.map((contact) => (
63
49
  <ContactsCard contact={contact} key={contact['@id']} />
64
50
  ))}
65
-
66
51
  {/* ---organizzato da esterno */}
67
52
  {richTextHasContent(content?.organizzato_da_esterno) ||
68
53
  content?.telefono ||
@@ -74,9 +59,8 @@ const EventoDocumenti = ({ content }) => {
74
59
  noWrapper={true}
75
60
  tag="div"
76
61
  >
77
- <CardTitle tag="h5">
78
- <Icon icon="it-telephone" padding={true} />
79
- </CardTitle>
62
+ <Icon icon="it-telephone" />
63
+
80
64
  <CardBody tag="div" className={'card-body pe-3'}>
81
65
  <RichText data={content.organizzato_da_esterno} />
82
66
  {content?.telefono && (
@@ -104,11 +88,10 @@ const EventoDocumenti = ({ content }) => {
104
88
  </Card>
105
89
  </div>
106
90
  ) : null}
107
-
108
91
  {/* ---contatti interno */}
109
92
  {content?.organizzato_da_interno?.length > 0 && (
110
93
  <div className="mb-5">
111
- <h5>{intl.formatMessage(messages.organizzato_da)}</h5>
94
+ <h3 className="h5">{intl.formatMessage(messages.organizzato_da)}</h3>
112
95
  {content?.organizzato_da_interno?.map((item, index) => (
113
96
  <OfficeCard
114
97
  margin_bottom={
@@ -127,15 +110,23 @@ const EventoDocumenti = ({ content }) => {
127
110
  ))}
128
111
  </div>
129
112
  )}
130
-
131
113
  {/* ---supportato da */}
132
- {getSupportatoDa()}
114
+ {content?.supportato_da?.length > 0 && (
115
+ <div className="mb-5">
116
+ <h3 className="mt-4 supported-by h5">
117
+ {intl.formatMessage(messages.supported_by)}
118
+ </h3>
119
+ {content?.supportato_da?.map((item) => (
120
+ <OfficeCard key={item['@id']} office={item} icon={'it-pa'} />
121
+ ))}
122
+ </div>
123
+ )}
133
124
  </RichTextSection>
134
125
  ) : null;
135
126
  };
136
127
 
137
- EventoDocumenti.propTypes = {
128
+ EventoContatti.propTypes = {
138
129
  content: PropTypes.object.isRequired,
139
130
  };
140
131
 
141
- export default EventoDocumenti;
132
+ export default EventoContatti;
@@ -50,9 +50,9 @@ const EventoCosE = ({ content }) => {
50
50
  >
51
51
  {content?.persone_amministrazione?.length > 0 && (
52
52
  <>
53
- <h5 className="parteciperanno-section">
53
+ <h3 className="parteciperanno-section h5">
54
54
  {intl.formatMessage(messages.parteciperanno)}
55
- </h5>
55
+ </h3>
56
56
  {content?.persone_amministrazione?.map((item, i) => (
57
57
  <UniversalLink
58
58
  href={flattenToAppURL(item['@id'])}
@@ -83,7 +83,6 @@ const EventoCosE = ({ content }) => {
83
83
  {richTextHasContent(content?.descrizione_destinatari) && (
84
84
  <div className="mb-5 pt-2">
85
85
  <RichText
86
- title_size="h5"
87
86
  title={intl.formatMessage(messages.a_chi_rivolto)}
88
87
  data={content?.descrizione_destinatari}
89
88
  />
@@ -4,7 +4,9 @@ import PropTypes from 'prop-types';
4
4
  import { Sponsors } from 'design-comuni-plone-theme/components/ItaliaTheme/View';
5
5
 
6
6
  const EventoSponsors = ({ content }) => (
7
- <Sponsors content={content} folder_name={'sponsor_evento'} />
7
+ <section id="sponsors" className="it-page-section mb-5">
8
+ <Sponsors content={content} folder_name={'sponsor_evento'} />
9
+ </section>
8
10
  );
9
11
 
10
12
  EventoSponsors.propTypes = {
@@ -45,7 +45,7 @@ const EventoUlterioriInformazioni = ({ content }) => {
45
45
  )}
46
46
  {content?.event_url && (
47
47
  <div className="mt-4">
48
- <h5>{intl.formatMessage(messages.event_url)}</h5>
48
+ <h3 className="h5">{intl.formatMessage(messages.event_url)}</h3>
49
49
  <UniversalLink href={content.event_url}>
50
50
  {content.event_url}
51
51
  </UniversalLink>
@@ -56,7 +56,6 @@ const EventoUlterioriInformazioni = ({ content }) => {
56
56
  {richTextHasContent(content?.patrocinato_da) && (
57
57
  <div className="mb-5">
58
58
  <RichText
59
- title_size="h5"
60
59
  title={intl.formatMessage(messages.patrocinato_da)}
61
60
  data={content?.patrocinato_da}
62
61
  />
@@ -66,7 +65,9 @@ const EventoUlterioriInformazioni = ({ content }) => {
66
65
  )}
67
66
  {content?.strutture_politiche?.length > 0 && (
68
67
  <div className="mt-4">
69
- <h5>{intl.formatMessage(messages.strutture_politiche)}</h5>
68
+ <h3 className="h5">
69
+ {intl.formatMessage(messages.strutture_politiche)}
70
+ </h3>
70
71
  <div className="card-wrapper card-teaser-wrapper card-teaser-wrapper-equal">
71
72
  {content?.strutture_politiche?.map((item, i) => (
72
73
  <GenericCard
@@ -78,7 +78,7 @@ const EventoView = ({ content, location }) => {
78
78
  {/* HEADER IMAGE */}
79
79
  <ContentImage content={content} position="afterHeader" />
80
80
 
81
- <div className="row row-column-border row-column-menu-left">
81
+ <div className="row row-column-border border-light row-column-menu-left">
82
82
  <aside className="col-lg-4">
83
83
  {__CLIENT__ && (
84
84
  <SideMenu data={sideMenuElements} content_uid={content?.UID} />
@@ -87,7 +87,7 @@ const EventoView = ({ content, location }) => {
87
87
  <section
88
88
  ref={documentBody}
89
89
  id="main-content-section"
90
- className="col-lg-8 it-page-sections-container"
90
+ className="col-lg-8 it-page-sections-container border-light"
91
91
  >
92
92
  {/* SEZIONI */}
93
93
  <ContentTypeViewSections
@@ -3,6 +3,7 @@ import { defineMessages, useIntl } from 'react-intl';
3
3
  import { Link } from 'react-router-dom';
4
4
  import { flattenToAppURL } from '@plone/volto/helpers';
5
5
  import { Chip, ChipLabel } from 'design-react-kit';
6
+ import { RichTextSection } from 'design-comuni-plone-theme/components/ItaliaTheme/View';
6
7
 
7
8
  const messages = defineMessages({
8
9
  persona: {
@@ -15,10 +16,10 @@ const IncaricoPersone = ({ content }) => {
15
16
  const intl = useIntl();
16
17
 
17
18
  return content?.persona?.length > 0 ? (
18
- <section id="persone-struttura" className="it-page-section mb-5">
19
- <h2 id="header-persone-struttura">
20
- {intl.formatMessage(messages.persona)}
21
- </h2>
19
+ <RichTextSection
20
+ tag_id="persone-struttura"
21
+ title={intl.formatMessage(messages.persona)}
22
+ >
22
23
  <div className="ruolo-persone-struttura">
23
24
  {content?.persona?.map((person, _i) => (
24
25
  <Link
@@ -39,7 +40,7 @@ const IncaricoPersone = ({ content }) => {
39
40
  </Link>
40
41
  ))}
41
42
  </div>
42
- </section>
43
+ </RichTextSection>
43
44
  ) : null;
44
45
  };
45
46
 
@@ -82,7 +82,7 @@ const IncaricoView = (props) => {
82
82
  showtassonomiaargomenti={false}
83
83
  />
84
84
  <section
85
- className="col-lg-12 it-page-sections-container my-4 py-4"
85
+ className="col-lg-12 it-page-sections-container border-light my-4 py-4"
86
86
  id="main-content-section"
87
87
  >
88
88
  {content.tipologia_incarico && (
@@ -84,12 +84,12 @@ const NewsItemView = ({ content, location }) => {
84
84
 
85
85
  {/* HEADER IMAGE */}
86
86
  <ContentImage content={content} position="afterHeader" />
87
- <div className="row row-column-border row-column-menu-left">
87
+ <div className="row row-column-border border-light row-column-menu-left">
88
88
  <aside className="col-lg-4">
89
89
  <SideMenu data={sideMenuElements} content_uid={content?.UID} />
90
90
  </aside>
91
91
  <section
92
- className="col-lg-8 it-page-sections-container"
92
+ className="col-lg-8 it-page-sections-container border-light"
93
93
  id="main-content-section"
94
94
  ref={documentBody}
95
95
  >
@@ -92,12 +92,12 @@ const PaginaArgomentoViewNoBlocks = ({ content }) => {
92
92
  {/* HEADER IMAGE */}
93
93
  <ContentImage content={content} position="afterHeader" />
94
94
 
95
- <div className="row row-column-border row-column-menu-left">
95
+ <div className="row row-column-border border-light row-column-menu-left">
96
96
  <aside className="col-lg-4">
97
97
  <SideMenu data={sideMenuElements} content_uid={content?.UID} />
98
98
  </aside>
99
99
  <section
100
- className="col-lg-8 it-page-sections-container"
100
+ className="col-lg-8 it-page-sections-container border-light"
101
101
  id="main-content-section"
102
102
  ref={documentBody}
103
103
  >
@@ -296,7 +296,6 @@ const PersonaRuolo = ({ content }) => {
296
296
  content={content}
297
297
  folder_name="foto-e-attivita-politica"
298
298
  title={intl.formatMessage(messages.foto_attivita_politica)}
299
- title_type="h3"
300
299
  />
301
300
  )}
302
301
 
@@ -58,12 +58,12 @@ const PersonaView = ({ content }) => {
58
58
  showdates={false}
59
59
  showtassonomiaargomenti={true}
60
60
  />
61
- <div className="row row-column-border row-column-menu-left">
61
+ <div className="row row-column-border border-light row-column-menu-left">
62
62
  <aside className="col-lg-4">
63
63
  <SideMenu data={sideMenuElements} content_uid={content?.UID} />
64
64
  </aside>
65
65
  <section
66
- className="col-lg-8 it-page-sections-container"
66
+ className="col-lg-8 it-page-sections-container border-light"
67
67
  id="main-content-section"
68
68
  ref={documentBody}
69
69
  >
@@ -14,7 +14,7 @@ import {
14
14
  PuntoDiContattoPlaceholderAfterRelatedItems,
15
15
  RelatedItems,
16
16
  IncaricoPersone,
17
- RichTextArticle,
17
+ RichTextSection,
18
18
  RelatedItemsChipsPDC,
19
19
  } from 'design-comuni-plone-theme/components/ItaliaTheme/View';
20
20
  import { renderPDCItemValue } from 'design-comuni-plone-theme/helpers';
@@ -88,51 +88,53 @@ const PuntoDiContattoView = (props) => {
88
88
  const { content } = props;
89
89
  const intl = useIntl();
90
90
  return (
91
- <div className="container px-4 my-4 punto-di-contatto-view">
92
- <SkipToMainContent />
93
- <PageHeader
94
- content={{ ...content, stato_servizio: null }}
95
- showreadingtime={false}
96
- showdates={false}
97
- showtassonomiaargomenti={false}
98
- />
99
- <section
100
- className="col-lg-12 it-page-sections-container my-4 py-4"
101
- id="main-content-section"
102
- >
103
- {/* TODO: add tipologia when present */}
104
- <RichTextArticle
105
- tag_id="contatti"
106
- title={intl.formatMessage(messages.contatti)}
107
- >
108
- {content?.value_punto_contatto?.map((pdc, i) => {
109
- return (
110
- <div className="my-2" key={i}>
111
- <h6>
112
- {messages[pdc?.pdc_type] === undefined
113
- ? pdc?.pdc_type
114
- : intl.formatMessage(messages.label, {
115
- value: intl.formatMessage(messages[pdc?.pdc_type]),
116
- })}
117
- <span className="ml-1">{renderPDCItemValue(pdc)}</span>
118
- </h6>
119
- </div>
120
- );
121
- })}
122
- </RichTextArticle>
123
- <IncaricoPersone content={content} />
124
- <RelatedItemsChipsPDC
125
- content={content}
126
- fieldLists={[
127
- 'strutture_correlate',
128
- 'servizi_correlati',
129
- 'eventi_correlati',
130
- 'luoghi_correlati',
131
- 'persone_correlate',
132
- ]}
91
+ <div className="punto-di-contatto-view">
92
+ <div className="container px-4 my-4">
93
+ <SkipToMainContent />
94
+ <PageHeader
95
+ content={{ ...content, stato_servizio: null }}
96
+ showreadingtime={false}
97
+ showdates={false}
98
+ showtassonomiaargomenti={false}
133
99
  />
134
- </section>
135
- <PuntoDiContattoPlaceholderAfterContent content={content} />
100
+ <section
101
+ className="col-lg-12 it-page-sections-container border-light my-4 py-4"
102
+ id="main-content-section"
103
+ >
104
+ {/* TODO: add tipologia when present */}
105
+ <RichTextSection
106
+ tag_id="contatti"
107
+ title={intl.formatMessage(messages.contatti)}
108
+ >
109
+ {content?.value_punto_contatto?.map((pdc, i) => {
110
+ return (
111
+ <div className="my-2" key={i}>
112
+ <h5 className="h6">
113
+ {messages[pdc?.pdc_type] === undefined
114
+ ? pdc?.pdc_type
115
+ : intl.formatMessage(messages.label, {
116
+ value: intl.formatMessage(messages[pdc?.pdc_type]),
117
+ })}
118
+ <span className="ml-1">{renderPDCItemValue(pdc)}</span>
119
+ </h5>
120
+ </div>
121
+ );
122
+ })}
123
+ </RichTextSection>
124
+ <IncaricoPersone content={content} />
125
+ <RelatedItemsChipsPDC
126
+ content={content}
127
+ fieldLists={[
128
+ 'strutture_correlate',
129
+ 'servizi_correlati',
130
+ 'eventi_correlati',
131
+ 'luoghi_correlati',
132
+ 'persone_correlate',
133
+ ]}
134
+ />
135
+ </section>
136
+ <PuntoDiContattoPlaceholderAfterContent content={content} />
137
+ </div>
136
138
  <RelatedItems list={content?.relatedItems} />
137
139
  <PuntoDiContattoPlaceholderAfterRelatedItems content={content} />
138
140
  </div>
@@ -37,14 +37,18 @@ const ServizioAChiSiRivolge = ({ content }) => {
37
37
  {richTextHasContent(content.chi_puo_presentare) && (
38
38
  <RichText
39
39
  title={intl.formatMessage(messages.chi_puo_presentare)}
40
- title_size="h4"
40
+ title_size="h3"
41
+ title_class_name="h5"
42
+ add_class="mb-5"
41
43
  data={content.chi_puo_presentare}
42
44
  />
43
45
  )}
44
46
  {richTextHasContent(content.copertura_geografica) && (
45
47
  <RichText
46
48
  title={intl.formatMessage(messages.copertura_geografica)}
47
- title_size="h4"
49
+ title_size="h3"
50
+ title_class_name="h5"
51
+ add_class="mb-5"
48
52
  data={content.copertura_geografica}
49
53
  />
50
54
  )}
@@ -40,12 +40,14 @@ const ServizioAccedi = ({ content }) => {
40
40
  )}
41
41
  <RichText data={content.prenota_appuntamento} content={content} />
42
42
  {content.canale_fisico?.map?.((canale) => (
43
- <OfficeCard
44
- key={canale['@id']}
45
- office={canale}
46
- load_data={false}
47
- data-element="service-generic-access"
48
- />
43
+ <div className="mt-3">
44
+ <OfficeCard
45
+ key={canale['@id']}
46
+ office={canale}
47
+ load_data={false}
48
+ data-element="service-generic-access"
49
+ />
50
+ </div>
49
51
  ))}
50
52
  </RichTextSection>
51
53
  )}
@@ -44,7 +44,8 @@ const ServizioCostiVincoli = ({ content }) => {
44
44
  ? intl.formatMessage(messages.vincoli)
45
45
  : null
46
46
  }
47
- title_size="h4"
47
+ title_size="h3"
48
+ title_class_name="h5"
48
49
  add_class="mb-5"
49
50
  data={content.vincoli}
50
51
  />
@@ -28,7 +28,7 @@ const ServizioSitiEsterni = ({ content }) => {
28
28
  tag="div"
29
29
  >
30
30
  <CardBody tag="div">
31
- <RichText add_class="p-4 pt-0" data={content.link_siti_esterni} />
31
+ <RichText add_class="p-4 py-0" data={content.link_siti_esterni} />
32
32
  </CardBody>
33
33
  </Card>
34
34
  </RichTextSection>
@@ -132,13 +132,13 @@ const ServizioView = ({ content, moment }) => {
132
132
  {/* HEADER IMAGE */}
133
133
  <ContentImage content={content} position="afterHeader" />
134
134
 
135
- <div className="row row-column-border row-column-menu-left">
135
+ <div className="row row-column-border border-light row-column-menu-left">
136
136
  <aside className="col-lg-4 ">
137
137
  <SideMenu data={sideMenuElements} content_uid={content?.UID} />
138
138
  </aside>
139
139
  <section
140
140
  id="main-content-section"
141
- className="col-lg-8 it-page-sections-container"
141
+ className="col-lg-8 it-page-sections-container border-light"
142
142
  ref={documentBody}
143
143
  >
144
144
  {/* SEZIONI */}
@@ -34,7 +34,7 @@ const UOContacts = ({ content }) => {
34
34
  content?.zip_code?.length > 0 ||
35
35
  richTextHasContent(content?.orario_pubblico) ||
36
36
  content?.contact_info?.length > 0) && (
37
- <section id="contatti" className="it-page-section anchor-offset mt-5">
37
+ <section id="contatti" className="it-page-section anchor-offset mb-5">
38
38
  <h2 id="header-contatti" className="mb-3 h4">
39
39
  {intl.formatMessage(messages.contatti)}
40
40
  </h2>
@@ -43,13 +43,15 @@ const UOContacts = ({ content }) => {
43
43
  <UOContactsLocations content={content} />
44
44
 
45
45
  {richTextHasContent(content.contact_info) && (
46
- <div className="mb-5 mt-3">
46
+ <div className="mb-5">
47
47
  <RichText data={content.contact_info} />
48
48
  </div>
49
49
  )}
50
50
  {richTextHasContent(content.orario_pubblico) && (
51
- <div className="mb-5 mt-3">
52
- <h5>{intl.formatMessage(messages.orario_pubblico)}</h5>
51
+ <div className="mb-5">
52
+ <h3 className="h5">
53
+ {intl.formatMessage(messages.orario_pubblico)}
54
+ </h3>
53
55
  <RichText data={content.orario_pubblico} />
54
56
  </div>
55
57
  )}
@@ -4,10 +4,13 @@ import { ContactsCard } from 'design-comuni-plone-theme/components/ItaliaTheme/V
4
4
 
5
5
  const UOContactsContacts = ({ content }) => {
6
6
  return (
7
- content?.contact_info?.length > 0 &&
8
- content.contact_info.map((contact) => (
9
- <ContactsCard contact={contact} key={contact['@id']} />
10
- ))
7
+ content?.contact_info?.length > 0 && (
8
+ <div className="mb-5">
9
+ {content.contact_info.map((contact) => (
10
+ <ContactsCard contact={contact} key={contact['@id']} />
11
+ ))}
12
+ </div>
13
+ )
11
14
  );
12
15
  };
13
16
  export default UOContactsContacts;
@@ -12,7 +12,7 @@ const UOContactsLocations = ({ content }) => {
12
12
  content?.zip_code?.length > 0 ||
13
13
  content?.quartiere?.length > 0 ||
14
14
  content?.circoscrizione?.length > 0 ? (
15
- <div className="mb-5 mt-3">
15
+ <div className="mb-5">
16
16
  <Locations
17
17
  content={content}
18
18
  locations={content.sede ?? []}
@@ -13,11 +13,16 @@ const UOContactsSediSecondarie = ({ content }) => {
13
13
  const intl = useIntl();
14
14
 
15
15
  return content.sedi_secondarie?.length > 0 ? (
16
- <div className="mb-5 mt-5">
17
- <h5>{intl.formatMessage(messages.altre_sedi)}</h5>
16
+ <div className="mb-5">
17
+ <h3 className="h5">{intl.formatMessage(messages.altre_sedi)}</h3>
18
18
  <div className="card-wrapper card-teaser-wrapper card-teaser-wrapper-equal">
19
19
  {content.sedi_secondarie.map((item, _i) => (
20
- <GenericCard key={item['@id']} item={item} showimage={false} />
20
+ <GenericCard
21
+ key={item['@id']}
22
+ item={item}
23
+ showimage={false}
24
+ className="my-3"
25
+ />
21
26
  ))}
22
27
  </div>
23
28
  </div>
@@ -21,11 +21,8 @@ const UODocuments = ({ content }) => {
21
21
  <>
22
22
  {(contentFolderHasItems(content, 'allegati') ||
23
23
  content.documenti_pubblici?.length > 0) && (
24
- <section
25
- id="allegati"
26
- className="it-page-section anchor-offset mt-5 mb-5"
27
- >
28
- <h2 className="h4" id="header-allegati">
24
+ <section id="allegati" className="it-page-section anchor-offset mb-5">
25
+ <h2 className="mb-3 h4" id="header-allegati">
29
26
  {intl.formatMessage(messages.documenti)}
30
27
  </h2>
31
28
  <Attachments
@@ -33,6 +30,7 @@ const UODocuments = ({ content }) => {
33
30
  folder_name={'allegati'}
34
31
  as_section={false}
35
32
  />
33
+
36
34
  <Row className="card-wrapper card-teaser-wrapper documenti-pubblici">
37
35
  {content?.documenti_pubblici?.map((dp, i) => (
38
36
  <Attachment {...dp} download_url={dp?.['@id']} key={dp['@id']} />
@@ -20,23 +20,23 @@ const UOPeople = ({ content }) => {
20
20
  return content?.persone_struttura?.length > 0 ? (
21
21
  <section
22
22
  id="persone-struttura"
23
- className="it-page-section anchor-offset mt-5"
23
+ className="it-page-section anchor-offset mb-5 "
24
24
  >
25
- <h2 className="h4" id="header-persone-struttura">
25
+ <h2 className="mb-3 h4" id="header-persone-struttura">
26
26
  {intl.formatMessage(messages.persone_struttura)}
27
27
  </h2>
28
- <p className="mt-4">
29
- {intl.formatMessage(messages.persone_p_description)}:
30
- </p>
28
+ <p>{intl.formatMessage(messages.persone_p_description)}:</p>
29
+
31
30
  <Row className="card-wrapper card-teaser-wrapper card-teaser-wrapper-equal ruolo-persone-struttura">
32
31
  {content?.persone_struttura?.map((p, _i) => {
33
32
  return (
34
- <Col xs="12" lg="12" xl="6" md="12" key={p['@id']}>
33
+ <Col xs="12" lg="12" xl="6" md="12" className="mb-3" key={p['@id']}>
35
34
  <CardPersona
36
35
  item={p}
37
36
  className={'shadow-sm'}
38
37
  showImage={true}
39
- titleTagName={'h5'}
38
+ titleTagName="h3"
39
+ titleClassName="h5"
40
40
  />
41
41
  </Col>
42
42
  );