+ <% if events.any? %>
+
<%= event_day_title(activity_day) %>
+
+
+ <%= render_column_headers %>
+ <%= render_event_grid_cells(activity_day) %>
+ <%= render_time_labels(activity_day) %>
+
+ <% events.each do | hour_column, cluster| %>
+ <%= event_cluster_tag(*hour_column) do %>
+ <%= render cluster %>
+ <% end %>
+ <% end %>
+
+
+ <%= render "events/empty_days", earliest: next_day&.tomorrow&.beginning_of_day, latest: activity_day.yesterday.beginning_of_day %>
+ <% else %>
+ <%= render "events/empty_days", earliest: next_day&.tomorrow&.beginning_of_day, latest: activity_day.beginning_of_day %>
+ <% end %>
+
diff --git a/app/views/events/_empty_days.html.erb b/app/views/events/_empty_days.html.erb
new file mode 100644
index 000000000..55d3b9c3b
--- /dev/null
+++ b/app/views/events/_empty_days.html.erb
@@ -0,0 +1,15 @@
+<% if earliest.present? %>
+ <% if earliest == latest %>
+ No more activity.
+<% end %>
diff --git a/app/views/events/_event.html.erb b/app/views/events/_event.html.erb
new file mode 100644
index 000000000..f18b91c6a
--- /dev/null
+++ b/app/views/events/_event.html.erb
@@ -0,0 +1,12 @@
+<% bubble = event.summary.bubble %>
+
+<%= link_to bucket_bubble_path(bubble.bucket, bubble),
+ class: "event panel shadow center center-block flex-inline align-center justify-start gap position-relative",
+ style: "--bubble-color: #{ bubble.color }; #{ bubble_rotation(bubble) }",
+ data: { controller: "animation", animation_play_class: "bubble--wobble", animation_play_on_load_value: "true", action: "mouseover->animation#play" } do %>
+
+ <%= render "events/day", activity_day: @activity_day, next_day: @next_day, events: @events %>
+
+
+<%= event_next_page_link(@next_day) %>
diff --git a/app/views/events/index.turbo_stream.erb b/app/views/events/index.turbo_stream.erb
new file mode 100644
index 000000000..984b01ea3
--- /dev/null
+++ b/app/views/events/index.turbo_stream.erb
@@ -0,0 +1,7 @@
+<%= turbo_stream.append :activity do %>
+ <%= render "events/day", activity_day: @activity_day, next_day: @next_day, events: @events %>
+<% end %>
+
+<%= turbo_stream.replace :next_page do %>
+ <%= event_next_page_link(@next_day) %>
+<% end %>
diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb
index dddcfd131..45d9b1db3 100644
--- a/app/views/layouts/application.html.erb
+++ b/app/views/layouts/application.html.erb
@@ -19,7 +19,7 @@
<%= yield :head %>
-
+