design-comuni-plone-theme 11.26.4 → 11.27.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 (85) hide show
  1. package/.yarn/cache/{volto-venue-npm-4.1.0-481d5ba425-64ca36bc93.zip → volto-venue-npm-4.1.1-d5be247928-f796d519ad.zip} +0 -0
  2. package/.yarn/install-state.gz +0 -0
  3. package/CHANGELOG.md +53 -0
  4. package/RELEASE.md +38 -0
  5. package/locales/de/LC_MESSAGES/volto.po +102 -7
  6. package/locales/en/LC_MESSAGES/volto.po +104 -9
  7. package/locales/es/LC_MESSAGES/volto.po +102 -7
  8. package/locales/fr/LC_MESSAGES/volto.po +102 -7
  9. package/locales/it/LC_MESSAGES/volto.po +103 -8
  10. package/locales/volto.pot +103 -8
  11. package/package.json +2 -2
  12. package/publiccode.yml +2 -2
  13. package/src/components/ImageWithErrors/ImageWithErrors.jsx +0 -1
  14. package/src/components/ItaliaTheme/Blocks/Accordion/Block/ViewBlock.jsx +1 -0
  15. package/src/components/ItaliaTheme/Blocks/Listing/AttachmentCardTemplate.jsx +13 -10
  16. package/src/components/ItaliaTheme/Blocks/Listing/CardWithImage/CardWithImageDefault.jsx +7 -7
  17. package/src/components/ItaliaTheme/Blocks/Listing/CardWithSlideUpTextTemplate.jsx +23 -14
  18. package/src/components/ItaliaTheme/Blocks/Listing/Commons/ListingImage.jsx +51 -16
  19. package/src/components/ItaliaTheme/Blocks/Listing/CompleteBlockLinksTemplate.jsx +15 -10
  20. package/src/components/ItaliaTheme/Blocks/Listing/ContentInEvidenceTemplate.jsx +11 -9
  21. package/src/components/ItaliaTheme/Blocks/Listing/GridGalleryTemplate.jsx +4 -3
  22. package/src/components/ItaliaTheme/Blocks/Listing/InEvidenceTemplate.jsx +8 -8
  23. package/src/components/ItaliaTheme/Blocks/Listing/PhotogalleryTemplate.jsx +7 -6
  24. package/src/components/ItaliaTheme/Blocks/Listing/SliderTemplate.jsx +9 -6
  25. package/src/components/ItaliaTheme/Blocks/Listing/SmallBlockLinksTemplate.jsx +19 -23
  26. package/src/components/ItaliaTheme/Blocks/__tests__/Accordion.test.jsx +0 -3
  27. package/src/components/ItaliaTheme/Cards/CardPersona.jsx +5 -8
  28. package/src/components/ItaliaTheme/CustomerSatisfaction/FeedbackForm.jsx +9 -1
  29. package/src/components/ItaliaTheme/Header/HeaderSearch/HeaderSearch.jsx +9 -1
  30. package/src/components/ItaliaTheme/Header/HeaderSearch/SearchModal.jsx +10 -1
  31. package/src/components/ItaliaTheme/Header/HeaderSlim/HeaderSlim.jsx +15 -2
  32. package/src/components/ItaliaTheme/Header/HeaderSlim/TertiaryMenu.jsx +1 -1
  33. package/src/components/ItaliaTheme/Header/ParentSiteMenu.jsx +14 -1
  34. package/src/components/ItaliaTheme/SkipLinks/SkipLinks.jsx +9 -1
  35. package/src/components/ItaliaTheme/View/BandoView/BandoView.jsx +19 -1
  36. package/src/components/ItaliaTheme/View/Commons/GenericCard.jsx +14 -13
  37. package/src/components/ItaliaTheme/View/Commons/LocationItem.jsx +15 -9
  38. package/src/components/ItaliaTheme/View/Commons/OfficeCard.jsx +7 -3
  39. package/src/components/ItaliaTheme/View/Commons/PageHeader/PageHeader.jsx +3 -4
  40. package/src/components/ItaliaTheme/View/Commons/RelatedItemInEvidence/RelatedItemInEvidence.jsx +14 -1
  41. package/src/components/ItaliaTheme/View/Commons/RelatedItems.jsx +5 -1
  42. package/src/components/ItaliaTheme/View/Commons/SideMenu.jsx +10 -6
  43. package/src/components/ItaliaTheme/View/Commons/Sponsors.jsx +14 -10
  44. package/src/components/ItaliaTheme/View/Commons/VenuesSmall.jsx +13 -6
  45. package/src/components/ItaliaTheme/View/DocumentoView/DocumentoView.jsx +20 -1
  46. package/src/components/ItaliaTheme/View/EventoView/EventoContatti.jsx +8 -7
  47. package/src/components/ItaliaTheme/View/EventoView/EventoContattiOrganizzatoreEsterno.jsx +1 -12
  48. package/src/components/ItaliaTheme/View/EventoView/EventoContattiOrganizzatoreInterno.jsx +1 -12
  49. package/src/components/ItaliaTheme/View/EventoView/EventoOrganizzatoDa.jsx +38 -0
  50. package/src/components/ItaliaTheme/View/EventoView/EventoPatrocinatoDa.jsx +38 -0
  51. package/src/components/ItaliaTheme/View/EventoView/EventoUlterioriInformazioni.jsx +0 -18
  52. package/src/components/ItaliaTheme/View/EventoView/EventoView.jsx +20 -1
  53. package/src/components/ItaliaTheme/View/FAQ/FaqFolder/SearchBar.jsx +2 -0
  54. package/src/components/ItaliaTheme/View/NewsItemView/NewsItemText.jsx +1 -0
  55. package/src/components/ItaliaTheme/View/NewsItemView/NewsItemView.jsx +19 -1
  56. package/src/components/ItaliaTheme/View/PaginaArgomentoView/PaginaArgomentoViewNoBlocks.jsx +14 -1
  57. package/src/components/ItaliaTheme/View/PersonaView/PersonaView.jsx +20 -1
  58. package/src/components/ItaliaTheme/View/ServizioView/ServizioView.jsx +19 -2
  59. package/src/components/ItaliaTheme/View/UOView/UOView.jsx +20 -1
  60. package/src/components/ItaliaTheme/View/VenueView/VenueView.jsx +24 -11
  61. package/src/components/SelectInput/SelectInput.jsx +10 -4
  62. package/src/components/TextInput.jsx +1 -0
  63. package/src/config/Blocks/ListingOptions/attachmentCardTemplate.js +1 -1
  64. package/src/config/Blocks/ListingOptions/cardWithSlideUpTextTemplate.js +1 -6
  65. package/src/customizations/volto/components/manage/UniversalLink/UniversalLink.jsx +15 -11
  66. package/src/customizations/volto/components/manage/Widgets/RecurrenceWidget/RecurrenceWidget.jsx +5 -2
  67. package/src/customizations/volto/components/theme/Navigation/Navigation.jsx +16 -2
  68. package/src/customizations/volto/components/theme/View/ListingView.jsx +3 -3
  69. package/src/customizations/volto/helpers/FormValidation/FormValidation.js +8 -5
  70. package/src/customizations/volto-form-block/components/Field.jsx +7 -0
  71. package/src/customizations/volto-form-block/fieldSchema.js +345 -0
  72. package/src/helpers/images.js +25 -1
  73. package/src/helpers/index.js +4 -1
  74. package/src/overrideTranslations.jsx +4 -0
  75. package/src/theme/ItaliaTheme/Blocks/_cardWithImage.scss +5 -0
  76. package/src/theme/ItaliaTheme/Blocks/_cardWithSlideUpTextTemplate.scss +10 -0
  77. package/src/theme/ItaliaTheme/Blocks/_gridBlock.scss +9 -0
  78. package/src/theme/ItaliaTheme/Blocks/_search.scss +8 -2
  79. package/src/theme/ItaliaTheme/Components/_cardLocationItem.scss +12 -0
  80. package/src/theme/ItaliaTheme/Components/_cardPersona.scss +21 -1
  81. package/src/theme/ItaliaTheme/Widgets/_blocksWidget.scss +36 -0
  82. package/src/theme/ItaliaTheme/_ar.scss +3 -2
  83. package/src/theme/_cms-ui.scss +21 -0
  84. package/src/theme/bootstrap-override/_bootstrap-italia-site.scss +1 -0
  85. package/src/theme/bootstrap-override/bootstrap-italia/_avatar.scss +28 -0
@@ -64,6 +64,7 @@ const Field = ({
64
64
  errorMessage,
65
65
  id,
66
66
  reactSelect,
67
+ autocomplete,
67
68
  }) => {
68
69
  const intl = useIntl();
69
70
  const Select = reactSelect.default;
@@ -102,6 +103,7 @@ const Field = ({
102
103
  onChange(name, e.target.value);
103
104
  }}
104
105
  value={value ?? ''}
106
+ autoComplete={autocomplete}
105
107
  />
106
108
  )}
107
109
  {field_type === 'textarea' && (
@@ -120,6 +122,7 @@ const Field = ({
120
122
  onChange(name, e.target.value);
121
123
  }}
122
124
  value={value ?? undefined}
125
+ autoComplete={autocomplete}
123
126
  />
124
127
  )}
125
128
  {field_type === 'select' && (
@@ -151,6 +154,7 @@ const Field = ({
151
154
  classNamePrefix="react-select"
152
155
  className={isInvalid() ? 'is-invalid' : ''}
153
156
  value={value ? [{ value: value, label: value }] : []}
157
+ autoComplete={autocomplete}
154
158
  />
155
159
  {description && <small className="form-text">{description}</small>}
156
160
  {errorMessage && (
@@ -286,6 +290,7 @@ const Field = ({
286
290
  onChange(name, e.target.value);
287
291
  }}
288
292
  value={value ?? ''}
293
+ autoComplete={autocomplete}
289
294
  />
290
295
  )}
291
296
  {field_type === 'attachment' && (
@@ -320,6 +325,7 @@ const Field = ({
320
325
  onChange(name, e.target.value);
321
326
  }}
322
327
  value={value ?? ''}
328
+ autoComplete={autocomplete}
323
329
  />
324
330
  )}
325
331
  {field_type === 'static_text' &&
@@ -382,6 +388,7 @@ Field.propTypes = {
382
388
  value: PropTypes.any,
383
389
  formHasErrors: PropTypes.bool,
384
390
  onChange: PropTypes.func,
391
+ autoComplete: PropTypes.string,
385
392
  };
386
393
 
387
394
  export default injectLazyLibs('reactSelect')(Field);
@@ -79,6 +79,199 @@ const messages = defineMessages({
79
79
  defaultMessage:
80
80
  'Check this box if the value entered in this field can be used only once.',
81
81
  },
82
+ field_autocomplete: {
83
+ id: 'field_autocomplete',
84
+ defaultMessage: '"Autocomplete" attribute',
85
+ },
86
+ field_autocomplete_description: {
87
+ id: 'field_autocomplete_description',
88
+ defaultMessage:
89
+ 'This field adds the "autocomplete" attribute to the field. This allows to fill in the field automatically with the user info, if stored. For a complete list of these attributes and their use, visit <a>this page</a>',
90
+ },
91
+ field_autocomplete_name_complete: {
92
+ id: 'field_autocomplete_name_complete',
93
+ defaultMessage: 'Full name',
94
+ },
95
+ field_autocomplete_honorific_prefix: {
96
+ id: 'field_autocomplete_honorific_prefix',
97
+ defaultMessage: 'Prefix (ex. mr, mrs)',
98
+ },
99
+ field_autocomplete_given_name: {
100
+ id: 'field_autocomplete_given_name',
101
+ defaultMessage: 'Given name',
102
+ },
103
+ field_autocomplete_additional_name: {
104
+ id: 'field_autocomplete_additional_name',
105
+ defaultMessage: 'Additional name',
106
+ },
107
+ field_autocomplete_family_name: {
108
+ id: 'field_autocomplete_family_name',
109
+ defaultMessage: 'Family name',
110
+ },
111
+ field_autocomplete_honorific_suffix: {
112
+ id: 'field_autocomplete_honorific_suffix',
113
+ defaultMessage: 'Suffix (ex. jr, sr)',
114
+ },
115
+ field_autocomplete_nickname: {
116
+ id: 'field_autocomplete_nickname',
117
+ defaultMessage: 'Nickname',
118
+ },
119
+ field_autocomplete_email: {
120
+ id: 'field_autocomplete_email',
121
+ defaultMessage: 'Email',
122
+ },
123
+ field_autocomplete_username: {
124
+ id: 'field_autocomplete_username',
125
+ defaultMessage: 'Username',
126
+ },
127
+ field_autocomplete_new_password: {
128
+ id: 'field_autocomplete_new_password',
129
+ defaultMessage: 'New password',
130
+ },
131
+ field_autocomplete_current_password: {
132
+ id: 'field_autocomplete_current_password',
133
+ defaultMessage: 'Current password',
134
+ },
135
+ field_autocomplete_organization_title: {
136
+ id: 'field_autocomplete_organization_title',
137
+ defaultMessage: 'Organization title',
138
+ },
139
+ field_autocomplete_organization: {
140
+ id: 'field_autocomplete_organization',
141
+ defaultMessage: 'Organization',
142
+ },
143
+ field_autocomplete_street_address: {
144
+ id: 'field_autocomplete_street_address',
145
+ defaultMessage: 'Street address',
146
+ },
147
+ field_autocomplete_address_line1: {
148
+ id: 'field_autocomplete_address_line1',
149
+ defaultMessage: 'Address line 1',
150
+ },
151
+ field_autocomplete_address_line2: {
152
+ id: 'field_autocomplete_address_line2',
153
+ defaultMessage: 'Address line 2',
154
+ },
155
+ field_autocomplete_address_line3: {
156
+ id: 'field_autocomplete_address_line3',
157
+ defaultMessage: 'Address line 3',
158
+ },
159
+ field_autocomplete_country: {
160
+ id: 'field_autocomplete_country',
161
+ defaultMessage: 'Country',
162
+ },
163
+ field_autocomplete_country_name: {
164
+ id: 'field_autocomplete_country_name',
165
+ defaultMessage: 'Country name',
166
+ },
167
+ field_autocomplete_postal_code: {
168
+ id: 'field_autocomplete_postal_code',
169
+ defaultMessage: 'Postal code',
170
+ },
171
+ field_autocomplete_cc_name: {
172
+ id: 'field_autocomplete_cc_name',
173
+ defaultMessage: 'Cardholder name',
174
+ },
175
+ field_autocomplete_cc_given_name: {
176
+ id: 'field_autocomplete_cc_given_name',
177
+ defaultMessage: 'Cardholder given name',
178
+ },
179
+ field_autocomplete_cc_additional_name: {
180
+ id: 'field_autocomplete_cc_additional_name',
181
+ defaultMessage: 'Cardholder additional name',
182
+ },
183
+ field_autocomplete_cc_family_name: {
184
+ id: 'field_autocomplete_cc_family_name',
185
+ defaultMessage: 'Cardholder family name',
186
+ },
187
+ field_autocomplete_cc_number: {
188
+ id: 'field_autocomplete_cc_number',
189
+ defaultMessage: 'Credit card number',
190
+ },
191
+ field_autocomplete_cc_exp: {
192
+ id: 'field_autocomplete_cc_exp',
193
+ defaultMessage: 'Credit card expiration date',
194
+ },
195
+ field_autocomplete_cc_exp_month: {
196
+ id: 'field_autocomplete_cc_exp_month',
197
+ defaultMessage: 'Credit card expiration month',
198
+ },
199
+ field_autocomplete_cc_exp_year: {
200
+ id: 'field_autocomplete_cc_exp_year',
201
+ defaultMessage: 'Credit card expiration year',
202
+ },
203
+ field_autocomplete_cc_csc: {
204
+ id: 'field_autocomplete_cc_csc',
205
+ defaultMessage: 'Credit card security code',
206
+ },
207
+ field_autocomplete_cc_type: {
208
+ id: 'field_autocomplete_cc_type',
209
+ defaultMessage: 'Credit card type',
210
+ },
211
+ field_autocomplete_transaction_currency: {
212
+ id: 'field_autocomplete_transaction_currency',
213
+ defaultMessage: 'Transaction currency',
214
+ },
215
+ field_autocomplete_transaction_amount: {
216
+ id: 'field_autocomplete_transaction_amount',
217
+ defaultMessage: 'Transaction amount',
218
+ },
219
+ field_autocomplete_language: {
220
+ id: 'field_autocomplete_language',
221
+ defaultMessage: 'Language',
222
+ },
223
+ field_autocomplete_bday: {
224
+ id: 'field_autocomplete_bday',
225
+ defaultMessage: 'Birthday',
226
+ },
227
+ field_autocomplete_bday_day: {
228
+ id: 'field_autocomplete_bday_day',
229
+ defaultMessage: 'Birth day',
230
+ },
231
+ field_autocomplete_bday_month: {
232
+ id: 'field_autocomplete_bday_month',
233
+ defaultMessage: 'Birth month',
234
+ },
235
+ field_autocomplete_bday_year: {
236
+ id: 'field_autocomplete_bday_year',
237
+ defaultMessage: 'Birth year',
238
+ },
239
+ field_autocomplete_sex: {
240
+ id: 'field_autocomplete_sex',
241
+ defaultMessage: 'Gender',
242
+ },
243
+ field_autocomplete_tel: {
244
+ id: 'field_autocomplete_tel',
245
+ defaultMessage: 'Telephone number',
246
+ },
247
+ field_autocomplete_tel_country_code: {
248
+ id: 'field_autocomplete_tel_country_code',
249
+ defaultMessage: 'Telephone country code',
250
+ },
251
+ field_autocomplete_tel_national: {
252
+ id: 'field_autocomplete_tel_national',
253
+ defaultMessage: 'National telephone number',
254
+ },
255
+ field_autocomplete_tel_area_code: {
256
+ id: 'field_autocomplete_tel_area_code',
257
+ defaultMessage: 'Telephone area code',
258
+ },
259
+ field_autocomplete_tel_local: {
260
+ id: 'field_autocomplete_tel_local',
261
+ defaultMessage: 'Local telephone number',
262
+ },
263
+ field_autocomplete_tel_extension: {
264
+ id: 'field_autocomplete_tel_extension',
265
+ defaultMessage: 'Telephone extension',
266
+ },
267
+ field_autocomplete_url: {
268
+ id: 'field_autocomplete_url',
269
+ defaultMessage: 'Website URL',
270
+ },
271
+ field_autocomplete_photo: {
272
+ id: 'field_autocomplete_photo',
273
+ defaultMessage: 'Photo',
274
+ },
82
275
  });
83
276
 
84
277
  export default (props) => {
@@ -99,6 +292,132 @@ export default (props) => {
99
292
  ['static_text', intl.formatMessage(messages.field_type_static_text)],
100
293
  ['hidden', intl.formatMessage(messages.field_type_hidden)],
101
294
  ];
295
+
296
+ const autocompleteValues = [
297
+ ['name', intl.formatMessage(messages.field_autocomplete_name_complete)],
298
+ [
299
+ 'honorific-prefix',
300
+ intl.formatMessage(messages.field_autocomplete_honorific_prefix),
301
+ ],
302
+ ['given-name', intl.formatMessage(messages.field_autocomplete_given_name)],
303
+ [
304
+ 'additional-name',
305
+ intl.formatMessage(messages.field_autocomplete_additional_name),
306
+ ],
307
+ [
308
+ 'family-name',
309
+ intl.formatMessage(messages.field_autocomplete_family_name),
310
+ ],
311
+ [
312
+ 'honorific-suffix',
313
+ intl.formatMessage(messages.field_autocomplete_honorific_suffix),
314
+ ],
315
+ ['nickname', intl.formatMessage(messages.field_autocomplete_nickname)],
316
+ ['email', intl.formatMessage(messages.field_autocomplete_email)],
317
+ ['username', intl.formatMessage(messages.field_autocomplete_username)],
318
+ [
319
+ 'new-password',
320
+ intl.formatMessage(messages.field_autocomplete_new_password),
321
+ ],
322
+ [
323
+ 'current-password',
324
+ intl.formatMessage(messages.field_autocomplete_current_password),
325
+ ],
326
+ [
327
+ 'organization-title',
328
+ intl.formatMessage(messages.field_autocomplete_organization_title),
329
+ ],
330
+
331
+ [
332
+ 'organization',
333
+ intl.formatMessage(messages.field_autocomplete_organization),
334
+ ],
335
+ [
336
+ 'street-address',
337
+ intl.formatMessage(messages.field_autocomplete_street_address),
338
+ ],
339
+ [
340
+ 'address-line1',
341
+ intl.formatMessage(messages.field_autocomplete_address_line1),
342
+ ],
343
+ [
344
+ 'address-line2',
345
+ intl.formatMessage(messages.field_autocomplete_address_line2),
346
+ ],
347
+ [
348
+ 'address-line3',
349
+ intl.formatMessage(messages.field_autocomplete_address_line3),
350
+ ],
351
+ ['country', intl.formatMessage(messages.field_autocomplete_country)],
352
+ [
353
+ 'country-name',
354
+ intl.formatMessage(messages.field_autocomplete_country_name),
355
+ ],
356
+ [
357
+ 'postal-code',
358
+ intl.formatMessage(messages.field_autocomplete_postal_code),
359
+ ],
360
+ ['cc-name', intl.formatMessage(messages.field_autocomplete_cc_name)],
361
+ [
362
+ 'cc-given-name',
363
+ intl.formatMessage(messages.field_autocomplete_cc_given_name),
364
+ ],
365
+ [
366
+ 'cc-additional-name',
367
+ intl.formatMessage(messages.field_autocomplete_cc_additional_name),
368
+ ],
369
+ [
370
+ 'cc-family-name',
371
+ intl.formatMessage(messages.field_autocomplete_cc_family_name),
372
+ ],
373
+ ['cc-number', intl.formatMessage(messages.field_autocomplete_cc_number)],
374
+ ['cc-exp', intl.formatMessage(messages.field_autocomplete_cc_exp)],
375
+ [
376
+ 'cc-exp-month',
377
+ intl.formatMessage(messages.field_autocomplete_cc_exp_month),
378
+ ],
379
+ [
380
+ 'cc-exp-year',
381
+ intl.formatMessage(messages.field_autocomplete_cc_exp_year),
382
+ ],
383
+ ['cc-csc', intl.formatMessage(messages.field_autocomplete_cc_csc)],
384
+ ['cc-type', intl.formatMessage(messages.field_autocomplete_cc_type)],
385
+ [
386
+ 'transaction-currency',
387
+ intl.formatMessage(messages.field_autocomplete_transaction_currency),
388
+ ],
389
+ [
390
+ 'transaction-amount',
391
+ intl.formatMessage(messages.field_autocomplete_transaction_amount),
392
+ ],
393
+ ['language', intl.formatMessage(messages.field_autocomplete_language)],
394
+ ['bday', intl.formatMessage(messages.field_autocomplete_bday)],
395
+ ['bday-day', intl.formatMessage(messages.field_autocomplete_bday_day)],
396
+ ['bday-month', intl.formatMessage(messages.field_autocomplete_bday_month)],
397
+ ['bday-year', intl.formatMessage(messages.field_autocomplete_bday_year)],
398
+ ['sex', intl.formatMessage(messages.field_autocomplete_sex)],
399
+ ['tel', intl.formatMessage(messages.field_autocomplete_tel)],
400
+ [
401
+ 'tel-country-code',
402
+ intl.formatMessage(messages.field_autocomplete_tel_country_code),
403
+ ],
404
+ [
405
+ 'tel-national',
406
+ intl.formatMessage(messages.field_autocomplete_tel_national),
407
+ ],
408
+ [
409
+ 'tel-area-code',
410
+ intl.formatMessage(messages.field_autocomplete_tel_area_code),
411
+ ],
412
+ ['tel-local', intl.formatMessage(messages.field_autocomplete_tel_local)],
413
+ [
414
+ 'tel-extension',
415
+ intl.formatMessage(messages.field_autocomplete_tel_extension),
416
+ ],
417
+ ['url', intl.formatMessage(messages.field_autocomplete_url)],
418
+ ['photo', intl.formatMessage(messages.field_autocomplete_photo)],
419
+ ];
420
+
102
421
  var attachmentDescription =
103
422
  props?.field_type === 'attachment'
104
423
  ? {
@@ -125,6 +444,13 @@ export default (props) => {
125
444
  'description',
126
445
  'field_type',
127
446
  ...schemaExtenderValues.fields,
447
+ ...(props?.field_type !== 'checkbox' &&
448
+ props?.field_type !== 'attachment' &&
449
+ props?.field_type !== 'single_choice' &&
450
+ props?.field_type !== 'multiple_choice' &&
451
+ props?.field_type !== 'static_text'
452
+ ? ['autocomplete']
453
+ : []),
128
454
  ...(props?.field_type === 'static_text' ? [] : ['required']),
129
455
  'unique',
130
456
  ],
@@ -150,6 +476,25 @@ export default (props) => {
150
476
  ],
151
477
  ...attachmentDescription,
152
478
  },
479
+ autocomplete: {
480
+ title: intl.formatMessage(messages.field_autocomplete),
481
+ type: 'string',
482
+ description: intl.formatMessage(
483
+ messages.field_autocomplete_description,
484
+ {
485
+ a: (...chunks) => (
486
+ <a
487
+ href="https://www.w3.org/TR/WCAG21/#input-purposes"
488
+ target="_blank"
489
+ rel="noopener noreferrer"
490
+ >
491
+ {chunks}
492
+ </a>
493
+ ),
494
+ },
495
+ ),
496
+ choices: autocompleteValues,
497
+ },
153
498
  required: {
154
499
  title: intl.formatMessage(messages.field_required),
155
500
  type: 'boolean',
@@ -50,4 +50,28 @@ const useFallbackImageSrc = ({
50
50
  return { currentSrc, handleError, getFallbackImageStyle };
51
51
  };
52
52
 
53
- export { FALLBACK_IMAGE_SRC, FALLBACK_IMAGE_SRC_MAX_W, useFallbackImageSrc };
53
+ /*
54
+ Check if a Content item has a related image
55
+ This check is done on image_field and image_scales fields, which are
56
+ the default fields in a JSON response for a content in plone.restapi
57
+
58
+ @param {Object} item - The Plone item/brain/content
59
+ */
60
+ const contentHasImage = (item) => {
61
+ if (!item) return false;
62
+ const isFromRealObject = !item.image_scales;
63
+ const imageFieldWithDefault = item.image_field || 'image';
64
+
65
+ const image = isFromRealObject
66
+ ? item[imageFieldWithDefault]
67
+ : item.image_scales[imageFieldWithDefault]?.[0];
68
+
69
+ return Boolean(image);
70
+ };
71
+
72
+ export {
73
+ FALLBACK_IMAGE_SRC,
74
+ FALLBACK_IMAGE_SRC_MAX_W,
75
+ useFallbackImageSrc,
76
+ contentHasImage,
77
+ };
@@ -59,4 +59,7 @@ export {
59
59
  isResolveUID,
60
60
  } from 'design-comuni-plone-theme/helpers/url';
61
61
  export { usePaginatedItemsSection } from 'design-comuni-plone-theme/helpers/usePaginatedItemsSection.hook.ts';
62
- export { useFallbackImageSrc } from 'design-comuni-plone-theme/helpers/images';
62
+ export {
63
+ useFallbackImageSrc,
64
+ contentHasImage,
65
+ } from 'design-comuni-plone-theme/helpers/images';
@@ -64,6 +64,10 @@ defineMessages({
64
64
  id: 'toggleMenu_close',
65
65
  defaultMessage: 'Chiudi',
66
66
  },
67
+ mainMenu: {
68
+ id: 'mainMenu',
69
+ defaultMessage: 'Menu principale',
70
+ },
67
71
  clearDates: {
68
72
  id: 'Clear dates',
69
73
  defaultMessage: 'Pulisci i campi',
@@ -13,6 +13,10 @@
13
13
  display: inline-block;
14
14
  }
15
15
 
16
+ .card-with-image-additional-links a {
17
+ width: auto;
18
+ }
19
+
16
20
  .img-responsive-wrapper {
17
21
  width: inherit;
18
22
 
@@ -99,6 +103,7 @@
99
103
  .text {
100
104
  font-weight: 600;
101
105
  letter-spacing: 1px;
106
+ color: $caption-text;
102
107
  }
103
108
 
104
109
  .data {
@@ -77,6 +77,16 @@
77
77
  }
78
78
  }
79
79
 
80
+ a.card-link {
81
+ position: absolute;
82
+ width: 100%;
83
+ height: 100%;
84
+ top: 0;
85
+ left: 0;
86
+ z-index: 3;
87
+ background: transparent;
88
+ }
89
+
80
90
  a.read-more,
81
91
  a.read-more .text + .icon,
82
92
  a.read-more .text {
@@ -89,6 +89,15 @@
89
89
  }
90
90
  }
91
91
  }
92
+
93
+ @media (max-width: #{map-get($grid-breakpoints, md)}) {
94
+ > .row {
95
+ gap: 1em;
96
+ > .col {
97
+ flex: 1 0 100%;
98
+ }
99
+ }
100
+ }
92
101
  }
93
102
 
94
103
  body.cms-ui.has-toolbar.has-sidebar {
@@ -129,6 +129,10 @@
129
129
  div[class*='-placeholder'] {
130
130
  color: #484848;
131
131
  }
132
+
133
+ input {
134
+ height: 100%;
135
+ }
132
136
  }
133
137
  }
134
138
  }
@@ -151,13 +155,15 @@
151
155
  border-color: hsl(210deg, 17.6470588235%, 43.35%) !important;
152
156
  border-bottom: 1px solid;
153
157
  font-size: 1rem;
154
- transition: border-color 0.3s ease-in,
158
+ transition:
159
+ border-color 0.3s ease-in,
155
160
  background-color 0.2s cubic-bezier(0, 1, 0, 1) 0.2s;
156
161
 
157
162
  &[aria-expanded='true'] {
158
163
  border-color: transparent !important;
159
164
  box-shadow: 0 1rem 2rem -0.25rem rgba(0, 0, 0, 0.15) !important;
160
- transition: background-color 0.2s cubic-bezier(0, 1, 0, 1),
165
+ transition:
166
+ background-color 0.2s cubic-bezier(0, 1, 0, 1),
161
167
  border-color 0.05s cubic-bezier(1, 0, 1, 0);
162
168
  }
163
169
 
@@ -3,3 +3,15 @@
3
3
  flex: 0 0 100%;
4
4
  }
5
5
  }
6
+
7
+ .card-wrapper.card-teaser-wrapper .card-teaser.location-item .pin-icon {
8
+ margin-left: -0.5rem;
9
+ margin-right: 0.25rem;
10
+ margin-bottom: 0.5rem;
11
+ }
12
+
13
+ // Full width for last odd card in locations
14
+ .card-wrapper.card-teaser-wrapper
15
+ .card-teaser.location-item:nth-child(odd):last-child {
16
+ flex: 0 0 100%;
17
+ }
@@ -11,6 +11,10 @@
11
11
  // nel momento in cui riusciremo a togliere il padding 0 important
12
12
  // dalla classe .card-big-io-comune .card-body globalmente
13
13
  padding: 24px !important;
14
+
15
+ .card-text {
16
+ color: $gray-secondary;
17
+ }
14
18
  }
15
19
 
16
20
  .card-image {
@@ -28,6 +32,17 @@
28
32
  .card-title {
29
33
  font-size: $card-big-head-size;
30
34
  line-height: $card-big-head-l-h;
35
+
36
+ a {
37
+ font-weight: 700;
38
+ }
39
+ }
40
+
41
+ span.text {
42
+ font-weight: 600;
43
+ letter-spacing: 1px;
44
+ color: $caption-text;
45
+ font-size: 0.875rem;
31
46
  }
32
47
 
33
48
  &.listing-item {
@@ -47,10 +62,15 @@
47
62
 
48
63
  h3.card-title {
49
64
  a {
50
- font-size: 1.3rem;
65
+ font-size: 1.777rem;
51
66
  line-height: 1.5rem;
52
67
  }
53
68
  }
69
+
70
+ .card-text {
71
+ font-family: 'Lora' !important;
72
+ color: $card-p-color;
73
+ }
54
74
  }
55
75
  }
56
76
  }
@@ -14,3 +14,39 @@
14
14
  font-family: $font-family-sans-serif;
15
15
  }
16
16
  }
17
+
18
+ // <h> styles for text editor content in CTs
19
+
20
+ #main-content-section.it-page-sections-container .richtext-blocks {
21
+ h2 {
22
+ font-size: 1.555rem;
23
+ line-height: 1.428;
24
+ font-weight: 600;
25
+ }
26
+
27
+ h3 {
28
+ font-size: 1.35rem;
29
+ line-height: 1.25;
30
+ font-weight: 600;
31
+ }
32
+
33
+ h4 {
34
+ font-size: 1.35rem;
35
+ line-height: 1.25;
36
+ font-weight: 600;
37
+ color: $gray-600;
38
+ }
39
+
40
+ h5 {
41
+ font-size: 1.35rem;
42
+ line-height: 1.25;
43
+ font-weight: 600;
44
+ color: $gray-500;
45
+ }
46
+
47
+ h6 {
48
+ font-size: 1.2rem;
49
+ line-height: 1.15;
50
+ font-weight: 400;
51
+ }
52
+ }
@@ -1,6 +1,7 @@
1
1
  body.is-authenticated {
2
- // se l'utente è autenticato e c'è la classe no-user-roles, allora si tratta di un utente del sito che accede solo all'area riservata
3
- &.no-user-roles {
2
+ // se l'utente è autenticato e c'è la classe no-user-roles o role-citizen, allora si tratta di un
3
+ // utente del sito (cittadino) che accede solo all'area riservata
4
+ &.no-user-roles, &.role-citizen {
4
5
  #toolbar,
5
6
  #sidebar {
6
7
  display: none;
@@ -298,6 +298,27 @@ body.cms-ui {
298
298
  }
299
299
  }
300
300
 
301
+ //cookie banner icons
302
+ // replaced icon code with left and right as they actually render correctly
303
+ // and rotated the icon
304
+ &.section-gdpr-cookie-settings {
305
+ .cookies-widget .move-buttons {
306
+ i.icon.arrow.up {
307
+ transform: rotate(90deg);
308
+ &::before {
309
+ content: '\e911';
310
+ }
311
+ }
312
+
313
+ i.icon.arrow.down {
314
+ transform: rotate(90deg);
315
+ &::before {
316
+ content: '\e905';
317
+ }
318
+ }
319
+ }
320
+ }
321
+
301
322
  .sidebar-container .object-listing,
302
323
  .icon-align-name {
303
324
  svg.icon {