From 433755a5344661ff6939ca8e9838855ed61af43d Mon Sep 17 00:00:00 2001
From: Pamela Barone <pam@technocrat.com.au>
Date: Thu, 19 Dec 2024 18:13:32 +1000
Subject: [PATCH 01/10] Update default display for theming

---
 ...entity_view_display.node.event.default.yml | 410 ++++++++++++++++--
 1 file changed, 378 insertions(+), 32 deletions(-)

diff --git a/recipes/drupal_cms_events/config/core.entity_view_display.node.event.default.yml b/recipes/drupal_cms_events/config/core.entity_view_display.node.event.default.yml
index 322f03af9..afb684151 100644
--- a/recipes/drupal_cms_events/config/core.entity_view_display.node.event.default.yml
+++ b/recipes/drupal_cms_events/config/core.entity_view_display.node.event.default.yml
@@ -3,37 +3,352 @@ status: true
 dependencies:
   config:
     - field.field.node.event.field_content
-    - field.field.node.event.field_event__date
     - field.field.node.event.field_description
-    - field.field.node.event.field_featured_image
+    - field.field.node.event.field_event__date
     - field.field.node.event.field_event__file
-    - field.field.node.event.field_geofield
     - field.field.node.event.field_event__link
     - field.field.node.event.field_event__location_address
+    - field.field.node.event.field_event__location_name
+    - field.field.node.event.field_featured_image
+    - field.field.node.event.field_geofield
     - field.field.node.event.field_tags
     - node.type.event
   module:
     - address
+    - date_augmenter
+    - layout_builder
+    - leaflet
     - link
-    - media
     - smart_date
     - text
     - user
+third_party_settings:
+  layout_builder:
+    enabled: true
+    allow_custom: false
+    sections:
+      -
+        layout_id: layout_onecol
+        layout_settings:
+          label: ''
+        components:
+          f5b85d4d-8778-4f04-b8dc-10a8bc93a0da:
+            uuid: f5b85d4d-8778-4f04-b8dc-10a8bc93a0da
+            region: content
+            configuration:
+              id: 'extra_field_block:node:event:content_moderation_control'
+              label_display: '0'
+              context_mapping:
+                entity: layout_builder.entity
+            weight: 0
+            additional: {  }
+          9e37902f-f63b-4b61-8d77-5150c2410269:
+            uuid: 9e37902f-f63b-4b61-8d77-5150c2410269
+            region: content
+            configuration:
+              id: 'field_block:node:event:field_featured_image'
+              label_display: '0'
+              context_mapping:
+                entity: layout_builder.entity
+              formatter:
+                type: entity_reference_entity_view
+                label: hidden
+                settings:
+                  view_mode: 16_9_wide
+                  link: false
+                third_party_settings: {  }
+            weight: 1
+            additional: {  }
+          c871a72e-ca57-411e-958c-539fec3529e1:
+            uuid: c871a72e-ca57-411e-958c-539fec3529e1
+            region: content
+            configuration:
+              id: 'field_block:node:event:field_event__date'
+              label_display: '0'
+              context_mapping:
+                entity: layout_builder.entity
+              formatter:
+                type: smartdate_default
+                label: hidden
+                settings:
+                  timezone_override: ''
+                  format_type: medium
+                  format: default
+                  force_chronological: false
+                  add_classes: false
+                  time_wrapper: true
+                  localize: false
+                  parts:
+                    start: start
+                    end: end
+                    duration: '0'
+                  duration:
+                    separator: ' | '
+                    unit: ''
+                    decimals: 2
+                    suffix: h
+                third_party_settings:
+                  date_augmenter:
+                    instances:
+                      status:
+                        addtocal: false
+                      weights:
+                        order:
+                          addtocal:
+                            weight: 0
+                      settings:
+                        addtocal:
+                          label: 'Add to calendar'
+                          event_title: ''
+                          location: ''
+                          description: ''
+                          retain_spacing: false
+                          icons: true
+                          max_desc: 60
+                          ellipsis: true
+                          past_events: false
+                          target: ''
+                          ignore_timezone_if_UTC: true
+                      augmenter_settings:
+                        fields__field_event__date__settings_edit_form__third_party_settings__date_augmenter__instances__augmenter_settings__active_tab: ''
+            weight: 2
+            additional: {  }
+          b7c7acc3-674f-4137-94ff-200371a54d3c:
+            uuid: b7c7acc3-674f-4137-94ff-200371a54d3c
+            region: content
+            configuration:
+              id: 'field_block:node:event:field_event__location_name'
+              label_display: '0'
+              context_mapping:
+                entity: layout_builder.entity
+              formatter:
+                type: string
+                label: hidden
+                settings:
+                  link_to_entity: false
+                third_party_settings: {  }
+            weight: 3
+            additional: {  }
+          9158e8c8-7578-48c1-a8f2-659d8e80706e:
+            uuid: 9158e8c8-7578-48c1-a8f2-659d8e80706e
+            region: content
+            configuration:
+              id: 'field_block:node:event:field_event__location_address'
+              label_display: '0'
+              context_mapping:
+                entity: layout_builder.entity
+              formatter:
+                type: address_default
+                label: hidden
+                settings: {  }
+                third_party_settings: {  }
+            weight: 4
+            additional: {  }
+          0561765a-b1af-4ce8-a01e-cd1f75d3e4aa:
+            uuid: 0561765a-b1af-4ce8-a01e-cd1f75d3e4aa
+            region: content
+            configuration:
+              id: 'field_block:node:event:field_geofield'
+              label_display: '0'
+              context_mapping:
+                entity: layout_builder.entity
+              formatter:
+                type: leaflet_formatter_default
+                label: hidden
+                settings:
+                  multiple_map: false
+                  leaflet_map: 'OSM Mapnik'
+                  height: 400
+                  height_unit: px
+                  hide_empty_map: true
+                  disable_wheel: false
+                  gesture_handling: false
+                  fitbounds_options: '{"padding":[0,0]}'
+                  reset_map:
+                    control: false
+                    options: '{"position":"topleft","title":"Reset View"}'
+                  map_scale:
+                    control: false
+                    options: '{"position":"bottomright","maxWidth":100,"metric":true,"imperial":false,"updateWhenIdle":false}'
+                  locate:
+                    control: false
+                    options: '{"position":"topright","setView":"untilPanOrZoom","returnToPrevBounds":true,"keepCurrentZoomLevel":true,"strings":{"title":"Locate my position"}}'
+                    automatic: false
+                  leaflet_tooltip:
+                    value: ''
+                    options: '{"permanent":false,"direction":"center"}'
+                  popup: false
+                  popup_content: ''
+                  leaflet_popup:
+                    control: '0'
+                    content: ''
+                    options: '{"maxWidth":"300","minWidth":"50","autoPan":true}'
+                  map_position:
+                    force: false
+                    center:
+                      lat: 0.0
+                      lon: 0.0
+                    zoomControlPosition: topleft
+                    zoom: 12
+                    minZoom: 1
+                    maxZoom: 20
+                    zoomFiner: 0
+                  icon:
+                    iconType: marker
+                    iconUrl: ''
+                    shadowUrl: ''
+                    className: ''
+                    iconSize:
+                      x: ''
+                      'y': ''
+                    iconAnchor:
+                      x: ''
+                      'y': ''
+                    shadowSize:
+                      x: ''
+                      'y': ''
+                    shadowAnchor:
+                      x: ''
+                      'y': ''
+                    popupAnchor:
+                      x: ''
+                      'y': ''
+                    html: '<div></div>'
+                    html_class: leaflet-map-divicon
+                    circle_marker_options: '{"radius":100,"color":"red","fillColor":"#f03","fillOpacity":0.5}'
+                  leaflet_markercluster:
+                    control: false
+                    options: '{"spiderfyOnMaxZoom":true,"showCoverageOnHover":true,"removeOutsideVisibleBounds": false}'
+                    excluded: ''
+                    include_path: false
+                  fullscreen:
+                    control: false
+                    options: '{"position":"topleft","pseudoFullscreen":false}'
+                  path: '{"color":"#3388ff","opacity":"1.0","stroke":true,"weight":3,"fill":"depends","fillColor":"*","fillOpacity":"0.2","radius":"6"}'
+                  feature_properties:
+                    values: ''
+                  geocoder:
+                    control: false
+                    settings:
+                      autocomplete:
+                        placeholder: 'Search Address'
+                        title: 'Search an Address on the Map'
+                      position: topright
+                      input_size: 20
+                      providers:
+                        nominatim:
+                          weight: 0
+                          checked: false
+                      min_terms: 4
+                      delay: 800
+                      zoom: 16
+                      popup: false
+                      options: ''
+                  map_lazy_load:
+                    lazy_load: true
+                  weight: 0
+                third_party_settings: {  }
+            weight: 5
+            additional: {  }
+          91e4b920-2499-4e9f-8e36-2aa11774306e:
+            uuid: 91e4b920-2499-4e9f-8e36-2aa11774306e
+            region: content
+            configuration:
+              id: 'field_block:node:event:field_content'
+              label_display: '0'
+              context_mapping:
+                entity: layout_builder.entity
+              formatter:
+                type: text_default
+                label: hidden
+                settings: {  }
+                third_party_settings: {  }
+            weight: 6
+            additional: {  }
+          dc70d8af-07f7-45ce-82f6-31b1efecbb8f:
+            uuid: dc70d8af-07f7-45ce-82f6-31b1efecbb8f
+            region: content
+            configuration:
+              id: 'field_block:node:event:field_event__link'
+              label_display: '0'
+              context_mapping:
+                entity: layout_builder.entity
+              formatter:
+                type: link
+                label: hidden
+                settings:
+                  trim_length: 80
+                  url_only: false
+                  url_plain: false
+                  rel: ''
+                  target: ''
+                third_party_settings: {  }
+            weight: 7
+            additional: {  }
+          d33af099-0948-4a26-ade1-c9c981606e2f:
+            uuid: d33af099-0948-4a26-ade1-c9c981606e2f
+            region: content
+            configuration:
+              id: 'field_block:node:event:field_event__file'
+              label_display: '0'
+              context_mapping:
+                entity: layout_builder.entity
+              formatter:
+                type: entity_reference_entity_view
+                label: hidden
+                settings:
+                  view_mode: default
+                  link: false
+                third_party_settings: {  }
+            weight: 8
+            additional: {  }
+          a6267978-afeb-4ea9-8d3f-f96aa64d58ab:
+            uuid: a6267978-afeb-4ea9-8d3f-f96aa64d58ab
+            region: content
+            configuration:
+              id: 'field_block:node:event:field_tags'
+              label_display: '0'
+              context_mapping:
+                entity: layout_builder.entity
+              formatter:
+                type: entity_reference_label
+                label: inline
+                settings:
+                  link: true
+                third_party_settings: {  }
+            weight: 9
+            additional: {  }
+          84ed9f13-a48e-4f70-b52b-da53c0f45335:
+            uuid: 84ed9f13-a48e-4f70-b52b-da53c0f45335
+            region: content
+            configuration:
+              id: 'extra_field_block:node:event:links'
+              label_display: '0'
+              context_mapping:
+                entity: layout_builder.entity
+            weight: 10
+            additional: {  }
+        third_party_settings: {  }
 id: node.event.default
 targetEntityType: node
 bundle: event
 mode: default
 content:
+  content_moderation_control:
+    settings: {  }
+    third_party_settings: {  }
+    weight: 0
+    region: content
   field_content:
     type: text_default
     label: hidden
     settings: {  }
     third_party_settings: {  }
-    weight: 0
+    weight: 6
     region: content
   field_event__date:
     type: smartdate_default
-    label: above
+    label: hidden
     settings:
       timezone_override: ''
       format_type: medium
@@ -43,27 +358,40 @@ content:
       time_wrapper: true
       localize: false
       parts:
-        - start
-        - end
+        start: start
+        end: end
+        duration: '0'
       duration:
         separator: ' | '
         unit: ''
         decimals: 2
         suffix: h
-    third_party_settings: {  }
+    third_party_settings:
+      date_augmenter:
+        instances:
+          status:
+            addtocal: false
+          weights:
+            order:
+              addtocal:
+                weight: 0
+          settings:
+            addtocal:
+              label: 'Add to calendar'
+              event_title: ''
+              location: ''
+              description: ''
+              retain_spacing: false
+              icons: true
+              max_desc: 60
+              ellipsis: true
+              past_events: false
+              target: ''
+              ignore_timezone_if_UTC: true
+          augmenter_settings:
+            fields__field_event__date__settings_edit_form__third_party_settings__date_augmenter__instances__augmenter_settings__active_tab: ''
     weight: 2
     region: content
-  field_featured_image:
-    type: media_thumbnail
-    label: hidden
-    settings:
-      image_link: ''
-      image_style: ''
-      image_loading:
-        attribute: eager
-    third_party_settings: {  }
-    weight: 0
-    region: content
   field_event__file:
     type: entity_reference_entity_view
     label: hidden
@@ -71,7 +399,7 @@ content:
       view_mode: default
       link: false
     third_party_settings: {  }
-    weight: 5
+    weight: 8
     region: content
   field_event__link:
     type: link
@@ -83,7 +411,31 @@ content:
       rel: ''
       target: ''
     third_party_settings: {  }
-    weight: 6
+    weight: 7
+    region: content
+  field_event__location_address:
+    type: address_default
+    label: hidden
+    settings: {  }
+    third_party_settings: {  }
+    weight: 4
+    region: content
+  field_event__location_name:
+    type: string
+    label: hidden
+    settings:
+      link_to_entity: false
+    third_party_settings: {  }
+    weight: 3
+    region: content
+  field_featured_image:
+    type: entity_reference_entity_view
+    label: hidden
+    settings:
+      view_mode: 16_9_wide
+      link: false
+    third_party_settings: {  }
+    weight: 1
     region: content
   field_geofield:
     type: leaflet_formatter_default
@@ -179,15 +531,9 @@ content:
           options: ''
       map_lazy_load:
         lazy_load: true
+      weight: 0
     third_party_settings: {  }
-    weight: 3
-    region: content
-  field_event__location_address:
-    type: address_default
-    label: above
-    settings: {  }
-    third_party_settings: {  }
-    weight: 3
+    weight: 5
     region: content
   field_tags:
     type: entity_reference_label
@@ -195,7 +541,7 @@ content:
     settings:
       link: true
     third_party_settings: {  }
-    weight: 7
+    weight: 9
     region: content
   field_when:
     type: smartdate_default
@@ -238,7 +584,7 @@ content:
   links:
     settings: {  }
     third_party_settings: {  }
-    weight: 100
+    weight: 10
     region: content
 hidden:
   field_description: true
-- 
GitLab


From 27be6cc202e85fca541d7ada6b7d295149bbd86a Mon Sep 17 00:00:00 2001
From: Pamela Barone <pam@technocrat.com.au>
Date: Thu, 19 Dec 2024 18:26:16 +1000
Subject: [PATCH 02/10] Update default zoom

---
 .../config/core.entity_view_display.node.event.default.yml      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/recipes/drupal_cms_events/config/core.entity_view_display.node.event.default.yml b/recipes/drupal_cms_events/config/core.entity_view_display.node.event.default.yml
index afb684151..6272ecbbf 100644
--- a/recipes/drupal_cms_events/config/core.entity_view_display.node.event.default.yml
+++ b/recipes/drupal_cms_events/config/core.entity_view_display.node.event.default.yml
@@ -474,7 +474,7 @@ content:
           lat: 0.0
           lon: 0.0
         zoomControlPosition: topleft
-        zoom: 12
+        zoom: 14
         minZoom: 1
         maxZoom: 20
         zoomFiner: 0
-- 
GitLab


From c5bdd4506521039f9aad1d2d751c32c117ed42b3 Mon Sep 17 00:00:00 2001
From: Pamela Barone <pam@technocrat.com.au>
Date: Thu, 19 Dec 2024 18:35:43 +1000
Subject: [PATCH 03/10] Update smart date formats to be international-friendly

---
 .../smart_date.smart_date_format.compact.yml    | 17 +++++++++++++++++
 .../smart_date.smart_date_format.date_only.yml  | 17 +++++++++++++++++
 .../smart_date.smart_date_format.default.yml    | 17 +++++++++++++++++
 3 files changed, 51 insertions(+)
 create mode 100644 recipes/drupal_cms_events/config/smart_date.smart_date_format.compact.yml
 create mode 100644 recipes/drupal_cms_events/config/smart_date.smart_date_format.date_only.yml
 create mode 100644 recipes/drupal_cms_events/config/smart_date.smart_date_format.default.yml

diff --git a/recipes/drupal_cms_events/config/smart_date.smart_date_format.compact.yml b/recipes/drupal_cms_events/config/smart_date.smart_date_format.compact.yml
new file mode 100644
index 000000000..0b291ca23
--- /dev/null
+++ b/recipes/drupal_cms_events/config/smart_date.smart_date_format.compact.yml
@@ -0,0 +1,17 @@
+uuid: ac73ed37-e984-4a23-a6b8-6a921030a9a4
+langcode: en
+status: true
+dependencies: {  }
+_core:
+  default_config_hash: 3k0ojgMLZae-f358WLWxfKYddQPSaQSnIdAKiYw2wnY
+id: compact
+label: Compact
+date_format: 'j M Y'
+time_format: 'g:ia'
+time_hour_format: ga
+allday_label: ''
+separator: ' - '
+join: ' | '
+ampm_reduce: '1'
+date_first: '1'
+site_time_toggle: '1'
diff --git a/recipes/drupal_cms_events/config/smart_date.smart_date_format.date_only.yml b/recipes/drupal_cms_events/config/smart_date.smart_date_format.date_only.yml
new file mode 100644
index 000000000..b52e31e08
--- /dev/null
+++ b/recipes/drupal_cms_events/config/smart_date.smart_date_format.date_only.yml
@@ -0,0 +1,17 @@
+uuid: 4eddf36a-265e-4139-b4ef-36bba3b5bc5f
+langcode: en
+status: true
+dependencies: {  }
+_core:
+  default_config_hash: 7nuRA2AaypQtPD_xr-tJAwYM67JCE408LQngMZ9rKWw
+id: date_only
+label: 'Date Only'
+date_format: 'D, j M Y'
+time_format: ''
+time_hour_format: ''
+allday_label: ''
+separator: ' - '
+join: ', '
+ampm_reduce: '1'
+date_first: '1'
+site_time_toggle: '1'
diff --git a/recipes/drupal_cms_events/config/smart_date.smart_date_format.default.yml b/recipes/drupal_cms_events/config/smart_date.smart_date_format.default.yml
new file mode 100644
index 000000000..e78cd61c3
--- /dev/null
+++ b/recipes/drupal_cms_events/config/smart_date.smart_date_format.default.yml
@@ -0,0 +1,17 @@
+uuid: c81b1d57-0753-4a3d-bf2d-36b64526babb
+langcode: en
+status: true
+dependencies: {  }
+_core:
+  default_config_hash: QOzaA8j2871_aWBJyVZm_LqREilQnXZqRuk3HNANrEo
+id: default
+label: Default
+date_format: 'D, j M Y'
+time_format: 'g:ia'
+time_hour_format: ga
+allday_label: ''
+separator: ' - '
+join: ', '
+ampm_reduce: '1'
+date_first: '1'
+site_time_toggle: '1'
-- 
GitLab


From 76cb0d3dc8be3a4b53b1bbba107eee583143b3d3 Mon Sep 17 00:00:00 2001
From: Pamela Barone <pam@technocrat.com.au>
Date: Thu, 19 Dec 2024 18:37:03 +1000
Subject: [PATCH 04/10] Oops remove uuids

---
 .../config/smart_date.smart_date_format.compact.yml            | 3 ---
 .../config/smart_date.smart_date_format.date_only.yml          | 3 ---
 .../config/smart_date.smart_date_format.default.yml            | 3 ---
 3 files changed, 9 deletions(-)

diff --git a/recipes/drupal_cms_events/config/smart_date.smart_date_format.compact.yml b/recipes/drupal_cms_events/config/smart_date.smart_date_format.compact.yml
index 0b291ca23..b6a873918 100644
--- a/recipes/drupal_cms_events/config/smart_date.smart_date_format.compact.yml
+++ b/recipes/drupal_cms_events/config/smart_date.smart_date_format.compact.yml
@@ -1,9 +1,6 @@
-uuid: ac73ed37-e984-4a23-a6b8-6a921030a9a4
 langcode: en
 status: true
 dependencies: {  }
-_core:
-  default_config_hash: 3k0ojgMLZae-f358WLWxfKYddQPSaQSnIdAKiYw2wnY
 id: compact
 label: Compact
 date_format: 'j M Y'
diff --git a/recipes/drupal_cms_events/config/smart_date.smart_date_format.date_only.yml b/recipes/drupal_cms_events/config/smart_date.smart_date_format.date_only.yml
index b52e31e08..90da542ba 100644
--- a/recipes/drupal_cms_events/config/smart_date.smart_date_format.date_only.yml
+++ b/recipes/drupal_cms_events/config/smart_date.smart_date_format.date_only.yml
@@ -1,9 +1,6 @@
-uuid: 4eddf36a-265e-4139-b4ef-36bba3b5bc5f
 langcode: en
 status: true
 dependencies: {  }
-_core:
-  default_config_hash: 7nuRA2AaypQtPD_xr-tJAwYM67JCE408LQngMZ9rKWw
 id: date_only
 label: 'Date Only'
 date_format: 'D, j M Y'
diff --git a/recipes/drupal_cms_events/config/smart_date.smart_date_format.default.yml b/recipes/drupal_cms_events/config/smart_date.smart_date_format.default.yml
index e78cd61c3..99ec3137a 100644
--- a/recipes/drupal_cms_events/config/smart_date.smart_date_format.default.yml
+++ b/recipes/drupal_cms_events/config/smart_date.smart_date_format.default.yml
@@ -1,9 +1,6 @@
-uuid: c81b1d57-0753-4a3d-bf2d-36b64526babb
 langcode: en
 status: true
 dependencies: {  }
-_core:
-  default_config_hash: QOzaA8j2871_aWBJyVZm_LqREilQnXZqRuk3HNANrEo
 id: default
 label: Default
 date_format: 'D, j M Y'
-- 
GitLab


From a0095650f0dba598d5c329712060ff81ae8bf9dd Mon Sep 17 00:00:00 2001
From: Pamela Barone <pam@technocrat.com.au>
Date: Tue, 7 Jan 2025 16:36:26 +1000
Subject: [PATCH 05/10] Merge 1.x and fix smart_date import

---
 .../config/core.entity_view_display.node.event.default.yml    | 4 ++--
 recipes/drupal_cms_events/recipe.yml                          | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/recipes/drupal_cms_events/config/core.entity_view_display.node.event.default.yml b/recipes/drupal_cms_events/config/core.entity_view_display.node.event.default.yml
index 6272ecbbf..46ad49b41 100644
--- a/recipes/drupal_cms_events/config/core.entity_view_display.node.event.default.yml
+++ b/recipes/drupal_cms_events/config/core.entity_view_display.node.event.default.yml
@@ -54,7 +54,7 @@ third_party_settings:
                 type: entity_reference_entity_view
                 label: hidden
                 settings:
-                  view_mode: 16_9_wide
+                  view_mode: hero
                   link: false
                 third_party_settings: {  }
             weight: 1
@@ -158,7 +158,7 @@ third_party_settings:
                 settings:
                   multiple_map: false
                   leaflet_map: 'OSM Mapnik'
-                  height: 400
+                  height: 280
                   height_unit: px
                   hide_empty_map: true
                   disable_wheel: false
diff --git a/recipes/drupal_cms_events/recipe.yml b/recipes/drupal_cms_events/recipe.yml
index 3b589f4aa..795ffc3a1 100644
--- a/recipes/drupal_cms_events/recipe.yml
+++ b/recipes/drupal_cms_events/recipe.yml
@@ -28,7 +28,7 @@ config:
     - field.storage.node.field_location_address
   import:
     geofield: '*'
-    smart_date: "*"
+    smart_date: '*'
     system:
       - system.menu.main
   actions:
-- 
GitLab


From 4fd1a05c5a5c4da0aa5870f1c663d1cb2b4dc4cb Mon Sep 17 00:00:00 2001
From: Mike Herchel <mike@herchel.com>
Date: Tue, 7 Jan 2025 20:00:14 -0500
Subject: [PATCH 06/10] Styling for event content type.

---
 drupal_cms_olivero/css/base/buttons.css       | 27 ++++++++
 drupal_cms_olivero/css/base/typography.css    | 68 +++++++++++++++++++
 .../css/components/event-full.css             | 58 ++++++++++++++++
 .../drupal_cms_olivero.libraries.yml          |  7 ++
 drupal_cms_olivero/images/download.svg        |  3 +
 drupal_cms_olivero/images/external.svg        |  3 +
 ...ield-event--date--event--default.html.twig | 39 +++++++++++
 ...--node--field-event--link--event.html.twig | 37 ++++++++++
 ...t--location-name--event--default.html.twig | 37 ++++++++++
 9 files changed, 279 insertions(+)
 create mode 100644 drupal_cms_olivero/css/base/buttons.css
 create mode 100644 drupal_cms_olivero/css/base/typography.css
 create mode 100644 drupal_cms_olivero/css/components/event-full.css
 create mode 100644 drupal_cms_olivero/images/download.svg
 create mode 100644 drupal_cms_olivero/images/external.svg
 create mode 100644 drupal_cms_olivero/templates/field/field--node--field-event--date--event--default.html.twig
 create mode 100644 drupal_cms_olivero/templates/field/field--node--field-event--link--event.html.twig
 create mode 100644 drupal_cms_olivero/templates/field/field--node--field-event--location-name--event--default.html.twig

diff --git a/drupal_cms_olivero/css/base/buttons.css b/drupal_cms_olivero/css/base/buttons.css
new file mode 100644
index 000000000..77e60e07b
--- /dev/null
+++ b/drupal_cms_olivero/css/base/buttons.css
@@ -0,0 +1,27 @@
+/**
+ * @file
+ * Extra button styles.
+ */
+
+.button--external {
+  gap: 8px;
+
+  &:after {
+    content: "";
+    width: 15px;
+    height: 15px;
+    -webkit-mask-image: url('../../images/external.svg');
+    mask-image: url('../../images/external.svg');
+    -webkit-mask-repeat: no-repeat;
+    mask-repeat: no-repeat;
+    -webkit-mask-size: contain;
+    mask-size: contain;
+    -webkit-mask-position: center;
+    mask-position: center;
+    background: currentColor;
+
+    @media (forced-colors: active) {
+      background: buttonText;
+    }
+  }
+}
diff --git a/drupal_cms_olivero/css/base/typography.css b/drupal_cms_olivero/css/base/typography.css
new file mode 100644
index 000000000..09630adeb
--- /dev/null
+++ b/drupal_cms_olivero/css/base/typography.css
@@ -0,0 +1,68 @@
+/**
+ * @file
+ * Extra typography styles. These are based off of the standard Olivero heading
+ * styles.
+ */
+
+.h1 {
+  letter-spacing: -0.01em;
+  font-size: 28px;
+  line-height: var(--sp2);
+
+  @media (width > 700px) {
+    font-size: 60px;
+    line-height: var(--sp4);
+  }
+}
+
+.h2 {
+  letter-spacing: -0.01em;
+  font-size: 24px;
+  line-height: var(--sp2);
+
+  @media (width > 700px) {
+    font-size: 36px;
+    line-height: var(--sp3);
+  }
+}
+
+.h3 {
+  font-size: 20px;
+  line-height: var(--sp1-5);
+
+  @media (width > 700px) {
+    font-size: 24px;
+    line-height: var(--sp2);
+  }
+}
+
+.h4 {
+  font-size: 18px;
+  line-height: var(--sp1-5);
+}
+
+.h5 {
+  font-size: 16px;
+  line-height: var(--sp1-5);
+}
+
+.h6 {
+  font-size: 14px;
+  line-height: var(--sp);
+}
+
+.h1,
+.h2,
+.h3,
+.h4,
+.h5,
+.h6 {
+  margin-block: var(--sp);
+  color: var(--color-text-neutral-loud);
+  font-family: var(--font-sans);
+  font-weight: bold;
+
+  @media (width > 700px) {
+    margin-block: var(--sp2);
+  }
+}
diff --git a/drupal_cms_olivero/css/components/event-full.css b/drupal_cms_olivero/css/components/event-full.css
new file mode 100644
index 000000000..d3ae68425
--- /dev/null
+++ b/drupal_cms_olivero/css/components/event-full.css
@@ -0,0 +1,58 @@
+/**
+ * @file
+ * Styles for event content type.
+ */
+
+.field--name-field-event__location-address {
+  font-size: 18px;
+
+  .address {
+    margin-block: var(--sp0-5);
+  }
+}
+
+.field--name-field-event__location-name {
+  margin-bottom: var(--sp0-5);
+}
+
+.node--type-event:where(.node--view-mode-full) {
+  .field--name-field-geofield {
+    margin-block: var(--sp2);
+  }
+
+  .field--name-field-event__link {
+    margin-block: var(--sp2);
+  }
+
+  .field--name-field-event__file {
+    a {
+      display: inline-flex;
+      align-items: center;
+      gap: 8px;
+      margin-right: 8px;
+      font-weight: bold;
+      text-decoration: none;
+      font-size: 18px;
+
+      &:after {
+        display: block;
+        content: "";
+        width: 15px;
+        height: 15px;
+        -webkit-mask-image: url('../../images/download.svg');
+        mask-image: url('../../images/download.svg');
+        -webkit-mask-repeat: no-repeat;
+        mask-repeat: no-repeat;
+        -webkit-mask-size: contain;
+        mask-size: contain;
+        -webkit-mask-position: center;
+        mask-position: center;
+        background: currentColor;
+
+        @media (forced-colors: active) {
+          background: buttonText;
+        }
+      }
+    }
+  }
+}
diff --git a/drupal_cms_olivero/drupal_cms_olivero.libraries.yml b/drupal_cms_olivero/drupal_cms_olivero.libraries.yml
index e1e12f368..895b91825 100644
--- a/drupal_cms_olivero/drupal_cms_olivero.libraries.yml
+++ b/drupal_cms_olivero/drupal_cms_olivero.libraries.yml
@@ -1,5 +1,8 @@
 global-styling:
   css:
+    base:
+      css/base/buttons.css: {}
+      css/base/typography.css: {}
     component:
       css/components/form.css: {}
 views:
@@ -15,3 +18,7 @@ search-api-autocomplete:
   css:
     component:
       css/components/search-api-autocomplete:.css: {}
+event-full:
+  css:
+    component:
+      css/components/event-full.css: {}
diff --git a/drupal_cms_olivero/images/download.svg b/drupal_cms_olivero/images/download.svg
new file mode 100644
index 000000000..6de3731df
--- /dev/null
+++ b/drupal_cms_olivero/images/download.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="15" viewBox="0 0 16 15" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M15.0312 9.125V13.625C15.0312 13.8488 14.9424 14.0634 14.7841 14.2216C14.6259 14.3799 14.4113 14.4688 14.1875 14.4688H1.8125C1.58872 14.4688 1.37411 14.3799 1.21588 14.2216C1.05764 14.0634 0.96875 13.8488 0.96875 13.625V9.125C0.96875 8.90122 1.05764 8.68661 1.21588 8.52838C1.37411 8.37015 1.58872 8.28125 1.8125 8.28125C2.03628 8.28125 2.25089 8.37015 2.40912 8.52838C2.56736 8.68661 2.65625 8.90122 2.65625 9.125V12.7812H13.3438V9.125C13.3438 8.90122 13.4326 8.68661 13.5909 8.52838C13.7491 8.37015 13.9637 8.28125 14.1875 8.28125C14.4113 8.28125 14.6259 8.37015 14.7841 8.52838C14.9424 8.68661 15.0312 8.90122 15.0312 9.125ZM7.40305 9.72195C7.48143 9.80061 7.57458 9.86302 7.67714 9.90561C7.7797 9.9482 7.88965 9.97012 8.0007 9.97012C8.11175 9.97012 8.22171 9.9482 8.32427 9.90561C8.42683 9.86302 8.51997 9.80061 8.59836 9.72195L11.4109 6.90945C11.5694 6.75094 11.6584 6.53596 11.6584 6.3118C11.6584 6.08763 11.5694 5.87265 11.4109 5.71414C11.2524 5.55563 11.0374 5.46658 10.8132 5.46658C10.589 5.46658 10.3741 5.55563 10.2155 5.71414L8.84375 7.08594V1.25C8.84375 1.02622 8.75485 0.811612 8.59662 0.653379C8.43839 0.495145 8.22378 0.40625 8 0.40625C7.77622 0.40625 7.56161 0.495145 7.40338 0.653379C7.24514 0.811612 7.15625 1.02622 7.15625 1.25V7.08594L5.78445 5.71555C5.70597 5.63706 5.61279 5.5748 5.51025 5.53233C5.4077 5.48985 5.29779 5.46799 5.1868 5.46799C4.96263 5.46799 4.74765 5.55704 4.58914 5.71555C4.51066 5.79403 4.4484 5.88721 4.40592 5.98975C4.36345 6.0923 4.34158 6.20221 4.34158 6.3132C4.34158 6.53737 4.43063 6.75235 4.58914 6.91086L7.40305 9.72195Z" fill="#0D77B5"/>
+</svg>
diff --git a/drupal_cms_olivero/images/external.svg b/drupal_cms_olivero/images/external.svg
new file mode 100644
index 000000000..12eca9600
--- /dev/null
+++ b/drupal_cms_olivero/images/external.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M15.0312 6.3125C15.0312 6.53628 14.9424 6.75089 14.7841 6.90912C14.6259 7.06736 14.4113 7.15625 14.1875 7.15625C13.9637 7.15625 13.7491 7.06736 13.5909 6.90912C13.4326 6.75089 13.3438 6.53628 13.3438 6.3125V3.85156L9.15945 8.03586C9.00095 8.19437 8.78596 8.28342 8.5618 8.28342C8.33763 8.28342 8.12265 8.19437 7.96414 8.03586C7.80563 7.87735 7.71658 7.66237 7.71658 7.4382C7.71658 7.21404 7.80563 6.99906 7.96414 6.84055L12.1484 2.65625H9.6875C9.46372 2.65625 9.24911 2.56736 9.09088 2.40912C8.93265 2.25089 8.84375 2.03628 8.84375 1.8125C8.84375 1.58872 8.93265 1.37411 9.09088 1.21588C9.24911 1.05764 9.46372 0.96875 9.6875 0.96875H14.1875C14.4113 0.96875 14.6259 1.05764 14.7841 1.21588C14.9424 1.37411 15.0312 1.58872 15.0312 1.8125V6.3125ZM11.9375 8C11.7137 8 11.4991 8.0889 11.3409 8.24713C11.1826 8.40536 11.0938 8.61997 11.0938 8.84375V13.3438H2.65625V4.90625H7.15625C7.38003 4.90625 7.59464 4.81736 7.75287 4.65912C7.91111 4.50089 8 4.28628 8 4.0625C8 3.83872 7.91111 3.62411 7.75287 3.46588C7.59464 3.30764 7.38003 3.21875 7.15625 3.21875H2.375C2.00204 3.21875 1.64435 3.36691 1.38063 3.63063C1.11691 3.89435 0.96875 4.25204 0.96875 4.625V13.625C0.96875 13.998 1.11691 14.3556 1.38063 14.6194C1.64435 14.8831 2.00204 15.0312 2.375 15.0312H11.375C11.748 15.0312 12.1056 14.8831 12.3694 14.6194C12.6331 14.3556 12.7812 13.998 12.7812 13.625V8.84375C12.7812 8.61997 12.6924 8.40536 12.5341 8.24713C12.3759 8.0889 12.1613 8 11.9375 8Z" fill="currentColor"/>
+</svg>
diff --git a/drupal_cms_olivero/templates/field/field--node--field-event--date--event--default.html.twig b/drupal_cms_olivero/templates/field/field--node--field-event--date--event--default.html.twig
new file mode 100644
index 000000000..d0a433a88
--- /dev/null
+++ b/drupal_cms_olivero/templates/field/field--node--field-event--date--event--default.html.twig
@@ -0,0 +1,39 @@
+{#
+/**
+ * @file
+ * Theme override for the event content type's date field.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the containing element.
+ * - label_hidden: Whether to show the field label or not.
+ * - title_attributes: HTML attributes for the title.
+ * - label: The label for the field.
+ * - multiple: TRUE if a field can contain multiple items.
+ * - items: List of all the field items. Each item contains:
+ *   - attributes: List of HTML attributes for each item.
+ *   - content: The field item's content.
+ * - entity_type: The entity type to which the field belongs.
+ * - field_name: The name of the field.
+ * - field_type: The type of the field.
+ * - label_display: The display settings for the label.
+ *
+ *
+ * @see template_preprocess_field()
+ */
+#}
+
+{{ attach_library('drupal_cms_olivero/event-full') }}
+
+{%
+  set classes = [
+    'field',
+    'field--name-' ~ field_name|clean_class,
+    'field--type-' ~ field_type|clean_class,
+    'field--label-' ~ label_display,
+    label_display == 'inline' ? 'clearfix',
+  ]
+%}
+
+{% for item in items %}
+  <h2{{ item.attributes.addClass(classes, 'h3') }}>{{ item.content }}</h2>
+{% endfor %}
diff --git a/drupal_cms_olivero/templates/field/field--node--field-event--link--event.html.twig b/drupal_cms_olivero/templates/field/field--node--field-event--link--event.html.twig
new file mode 100644
index 000000000..1427ec738
--- /dev/null
+++ b/drupal_cms_olivero/templates/field/field--node--field-event--link--event.html.twig
@@ -0,0 +1,37 @@
+{#
+/**
+ * @file
+ * Theme override for the event content type's link field.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the containing element.
+ * - label_hidden: Whether to show the field label or not.
+ * - title_attributes: HTML attributes for the title.
+ * - label: The label for the field.
+ * - multiple: TRUE if a field can contain multiple items.
+ * - items: List of all the field items. Each item contains:
+ *   - attributes: List of HTML attributes for each item.
+ *   - content: The field item's content.
+ * - entity_type: The entity type to which the field belongs.
+ * - field_name: The name of the field.
+ * - field_type: The type of the field.
+ * - label_display: The display settings for the label.
+ *
+ *
+ * @see template_preprocess_field()
+ */
+#}
+
+{%
+  set classes = [
+    'field',
+    'field--name-' ~ field_name|clean_class,
+    'field--type-' ~ field_type|clean_class,
+    'field--label-' ~ label_display,
+    label_display == 'inline' ? 'clearfix',
+  ]
+%}
+
+{% for item in items %}
+  <div{{ item.attributes.addClass(classes) }}>{{ item.content|add_class('button button--primary button--external') }}</div>
+{% endfor %}
diff --git a/drupal_cms_olivero/templates/field/field--node--field-event--location-name--event--default.html.twig b/drupal_cms_olivero/templates/field/field--node--field-event--location-name--event--default.html.twig
new file mode 100644
index 000000000..72daa52f1
--- /dev/null
+++ b/drupal_cms_olivero/templates/field/field--node--field-event--location-name--event--default.html.twig
@@ -0,0 +1,37 @@
+{#
+/**
+ * @file
+ * Theme override for the event content type's event name field.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the containing element.
+ * - label_hidden: Whether to show the field label or not.
+ * - title_attributes: HTML attributes for the title.
+ * - label: The label for the field.
+ * - multiple: TRUE if a field can contain multiple items.
+ * - items: List of all the field items. Each item contains:
+ *   - attributes: List of HTML attributes for each item.
+ *   - content: The field item's content.
+ * - entity_type: The entity type to which the field belongs.
+ * - field_name: The name of the field.
+ * - field_type: The type of the field.
+ * - label_display: The display settings for the label.
+ *
+ *
+ * @see template_preprocess_field()
+ */
+#}
+
+{%
+  set classes = [
+    'field',
+    'field--name-' ~ field_name|clean_class,
+    'field--type-' ~ field_type|clean_class,
+    'field--label-' ~ label_display,
+    label_display == 'inline' ? 'clearfix',
+  ]
+%}
+
+{% for item in items %}
+  <h2{{ item.attributes.addClass(classes, 'h3') }}>{{ item.content }}</h2>
+{% endfor %}
-- 
GitLab


From 2bda9c33914127d549661e72af651a52f3a08c0c Mon Sep 17 00:00:00 2001
From: Mike Herchel <mike@herchel.com>
Date: Tue, 7 Jan 2025 20:08:43 -0500
Subject: [PATCH 07/10] Attach library via preprocess.

---
 drupal_cms_olivero/drupal_cms_olivero.theme                | 7 +++++++
 ...ield--node--field-event--date--event--default.html.twig | 2 --
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/drupal_cms_olivero/drupal_cms_olivero.theme b/drupal_cms_olivero/drupal_cms_olivero.theme
index f5ab7377e..f4e5d066d 100644
--- a/drupal_cms_olivero/drupal_cms_olivero.theme
+++ b/drupal_cms_olivero/drupal_cms_olivero.theme
@@ -33,6 +33,13 @@ function drupal_cms_olivero_preprocess_node(array &$variables): void {
   }
 }
 
+/**
+ * Implements hook_preprocess_node__event__full().
+ */
+function drupal_cms_olivero_preprocess_node__event__full(array &$variables): void {
+  $variables['#attached']['library'][] = 'drupal_cms_olivero/event-full';
+}
+
 /**
  * Implements hook_preprocess_block().
  */
diff --git a/drupal_cms_olivero/templates/field/field--node--field-event--date--event--default.html.twig b/drupal_cms_olivero/templates/field/field--node--field-event--date--event--default.html.twig
index d0a433a88..677a23e6a 100644
--- a/drupal_cms_olivero/templates/field/field--node--field-event--date--event--default.html.twig
+++ b/drupal_cms_olivero/templates/field/field--node--field-event--date--event--default.html.twig
@@ -22,8 +22,6 @@
  */
 #}
 
-{{ attach_library('drupal_cms_olivero/event-full') }}
-
 {%
   set classes = [
     'field',
-- 
GitLab


From ada967b9b06fb3b2d5e7edf9fed4984e151a2fa9 Mon Sep 17 00:00:00 2001
From: Mike Herchel <mike@herchel.com>
Date: Tue, 7 Jan 2025 20:17:54 -0500
Subject: [PATCH 08/10] Remove the colon.

---
 drupal_cms_olivero/drupal_cms_olivero.libraries.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drupal_cms_olivero/drupal_cms_olivero.libraries.yml b/drupal_cms_olivero/drupal_cms_olivero.libraries.yml
index 74c8d6d0b..33a11d328 100644
--- a/drupal_cms_olivero/drupal_cms_olivero.libraries.yml
+++ b/drupal_cms_olivero/drupal_cms_olivero.libraries.yml
@@ -18,7 +18,7 @@ view-search:
 search-api-autocomplete:
   css:
     component:
-      css/components/search-api-autocomplete:.css: {}
+      css/components/search-api-autocomplete.css: {}
 event-full:
   css:
     component:
-- 
GitLab


From 5f125bcffc6b48d58bc1f7a0f7985dbcf1250f8e Mon Sep 17 00:00:00 2001
From: Mike Herchel <mike@herchel.com>
Date: Tue, 7 Jan 2025 20:18:44 -0500
Subject: [PATCH 09/10] Remove unneeded reference introduced during merge.

---
 drupal_cms_olivero/drupal_cms_olivero.libraries.yml | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drupal_cms_olivero/drupal_cms_olivero.libraries.yml b/drupal_cms_olivero/drupal_cms_olivero.libraries.yml
index 33a11d328..c85573eae 100644
--- a/drupal_cms_olivero/drupal_cms_olivero.libraries.yml
+++ b/drupal_cms_olivero/drupal_cms_olivero.libraries.yml
@@ -23,4 +23,3 @@ event-full:
   css:
     component:
       css/components/event-full.css: {}
-      css/components/search-api-autocomplete.css: {}
-- 
GitLab


From f23688fb36e11e3f038616f3d3887c094e35152a Mon Sep 17 00:00:00 2001
From: Pamela Barone <31375-pameeela@users.noreply.drupalcode.org>
Date: Wed, 8 Jan 2025 02:59:09 +0000
Subject: [PATCH 10/10] Remove bogus config

---
 .../config/core.entity_view_display.node.event.default.yml      | 2 --
 1 file changed, 2 deletions(-)

diff --git a/recipes/drupal_cms_events/config/core.entity_view_display.node.event.default.yml b/recipes/drupal_cms_events/config/core.entity_view_display.node.event.default.yml
index 46ad49b41..6bf21f492 100644
--- a/recipes/drupal_cms_events/config/core.entity_view_display.node.event.default.yml
+++ b/recipes/drupal_cms_events/config/core.entity_view_display.node.event.default.yml
@@ -246,7 +246,6 @@ third_party_settings:
                       options: ''
                   map_lazy_load:
                     lazy_load: true
-                  weight: 0
                 third_party_settings: {  }
             weight: 5
             additional: {  }
@@ -531,7 +530,6 @@ content:
           options: ''
       map_lazy_load:
         lazy_load: true
-      weight: 0
     third_party_settings: {  }
     weight: 5
     region: content
-- 
GitLab