kavyabhand commited on
Commit
5c9d384
·
verified ·
1 Parent(s): 74688c8

Deploy Aether Garden application

Browse files
.pytest_cache/v/cache/lastfailed CHANGED
@@ -1,3 +1 @@
1
- {
2
- "tests/test_diorama_scene.py": true
3
- }
 
1
+ {}
 
 
ui/book_display.py CHANGED
@@ -184,19 +184,29 @@ def render_book_for_day(
184
  return "\n".join(parts)
185
 
186
 
 
 
 
 
 
 
 
 
 
187
  def render_activity_feed(limit: int = 5) -> str:
188
  entries = get_entries(limit=limit)
189
 
190
  if not entries:
191
  return '<p class="feed-empty">The Realm is quiet. Be the first to summon something.</p>'
192
 
193
- parts = ['<div class="activity-feed">']
194
  for entry in entries[:limit]:
195
  type_class = ENTRY_TYPE_CLASSES.get(entry["entry_type"], "")
 
196
  parts.append(f"""
197
  <div class="feed-item {type_class}">
198
  <span class="feed-day">Day {entry['world_day']}</span>
199
- <p class="feed-content">{entry['content']}</p>
200
  </div>
201
  """)
202
  parts.append("</div>")
 
184
  return "\n".join(parts)
185
 
186
 
187
+ def _trim_feed_content(content: str, world_day: int) -> str:
188
+ """Drop redundant 'On Day N,' prefix when the day badge already shows it."""
189
+ import re
190
+
191
+ text = (content or "").strip()
192
+ text = re.sub(rf"^On Day {world_day},?\s*", "", text, flags=re.IGNORECASE)
193
+ return text
194
+
195
+
196
  def render_activity_feed(limit: int = 5) -> str:
197
  entries = get_entries(limit=limit)
198
 
199
  if not entries:
200
  return '<p class="feed-empty">The Realm is quiet. Be the first to summon something.</p>'
201
 
202
+ parts = ['<div class="activity-feed activity-feed-scroll">']
203
  for entry in entries[:limit]:
204
  type_class = ENTRY_TYPE_CLASSES.get(entry["entry_type"], "")
205
+ body = _trim_feed_content(entry["content"], entry["world_day"])
206
  parts.append(f"""
207
  <div class="feed-item {type_class}">
208
  <span class="feed-day">Day {entry['world_day']}</span>
209
+ <p class="feed-content">{body}</p>
210
  </div>
211
  """)
212
  parts.append("</div>")
ui/styles.css CHANGED
@@ -3911,7 +3911,8 @@ body,
3911
  .tome-printed-page .activity-feed {
3912
  padding: 0 !important;
3913
  margin: 0 !important;
3914
- overflow: hidden !important;
 
3915
  }
3916
 
3917
  .tome-printed-page .feed-item {
@@ -3925,10 +3926,9 @@ body,
3925
  font-family: 'IM Fell English', serif !important;
3926
  font-size: 0.88rem !important;
3927
  line-height: 1.45 !important;
3928
- display: -webkit-box;
3929
- -webkit-line-clamp: 2;
3930
- -webkit-box-orient: vertical;
3931
- overflow: hidden;
3932
  }
3933
 
3934
  .tome-printed-page .feed-day {
@@ -4270,8 +4270,30 @@ body,
4270
  }
4271
 
4272
  .souls-filter-row {
4273
- gap: 0.35rem !important;
4274
- margin-bottom: 0.25rem !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4275
  }
4276
 
4277
  /* Entity hologram — Souls right page */
@@ -5125,6 +5147,20 @@ body.aether-realm-entered #realm-opening-host {
5125
  border: 1px solid rgba(138, 106, 58, 0.2) !important;
5126
  border-radius: 4px !important;
5127
  background: rgba(255, 249, 232, 0.4) !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5128
  }
5129
 
5130
  .tome-page-right .activity-feed::before {
@@ -5692,8 +5728,8 @@ body.aether-realm-entered #realm-opening-host {
5692
  top: auto !important;
5693
  left: auto !important;
5694
  transform: none !important;
5695
- float: left !important;
5696
- margin: 0 0.7rem 0.45rem 0 !important;
5697
  width: 72px;
5698
  height: 72px;
5699
  }
@@ -5870,20 +5906,41 @@ body.aether-realm-entered #realm-opening-host {
5870
  }
5871
 
5872
  .tome-summon-index .seal-summon-btn,
5873
- .tome-summon-index button.seal-summon-btn {
 
5874
  flex: 0 0 auto !important;
5875
  display: block !important;
5876
  visibility: visible !important;
 
5877
  width: 100% !important;
5878
  max-width: 100% !important;
5879
- min-height: 2.85rem !important;
5880
- margin: 0.55rem auto 0.75rem !important;
5881
- padding: 0.65rem 1.25rem !important;
5882
- font-size: 0.82rem !important;
5883
- letter-spacing: 0.08em !important;
5884
- box-shadow: 0 6px 18px rgba(76, 50, 22, 0.22) !important;
 
 
 
 
 
 
 
5885
  position: relative !important;
5886
- z-index: 3 !important;
 
 
 
 
 
 
 
 
 
 
 
 
5887
  }
5888
 
5889
  .tome-summon-index .summon-submit-hint {
@@ -5893,7 +5950,7 @@ body.aether-realm-entered #realm-opening-host {
5893
  text-transform: uppercase;
5894
  color: #8a6424;
5895
  text-align: center;
5896
- margin: 0 0 0.35rem;
5897
  }
5898
 
5899
  .tome-summon-stage {
@@ -5901,6 +5958,17 @@ body.aether-realm-entered #realm-opening-host {
5901
  align-items: stretch !important;
5902
  }
5903
 
 
 
 
 
 
 
 
 
 
 
 
5904
  .tome-summon-stage .entity-result-slot,
5905
  .tome-summon-stage .entity-result-slot .block {
5906
  width: 100% !important;
@@ -5937,19 +6005,49 @@ body.aether-realm-entered #realm-opening-host {
5937
  background: rgba(255, 249, 232, 0.72) !important;
5938
  border: 1px solid rgba(138, 106, 58, 0.32) !important;
5939
  border-radius: 10px !important;
5940
- padding: 0.85rem 0.9rem 1rem !important;
5941
  color: #3d2814 !important;
5942
  box-shadow: inset 0 0 18px rgba(88, 56, 24, 0.06) !important;
5943
  overflow: visible !important;
5944
  max-height: none !important;
5945
  }
5946
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5947
  .tome-summon-stage .entity-card-top {
5948
  display: grid !important;
5949
  grid-template-columns: 72px minmax(0, 1fr) !important;
5950
  gap: 0.65rem !important;
5951
  align-items: start !important;
5952
- margin-bottom: 0.65rem !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5953
  }
5954
 
5955
  .tome-summon-stage .entity-portrait {
 
3911
  .tome-printed-page .activity-feed {
3912
  padding: 0 !important;
3913
  margin: 0 !important;
3914
+ overflow-x: hidden !important;
3915
+ overflow-y: auto !important;
3916
  }
3917
 
3918
  .tome-printed-page .feed-item {
 
3926
  font-family: 'IM Fell English', serif !important;
3927
  font-size: 0.88rem !important;
3928
  line-height: 1.45 !important;
3929
+ display: block !important;
3930
+ overflow: visible !important;
3931
+ -webkit-line-clamp: unset !important;
 
3932
  }
3933
 
3934
  .tome-printed-page .feed-day {
 
4270
  }
4271
 
4272
  .souls-filter-row {
4273
+ display: flex !important;
4274
+ flex-wrap: wrap !important;
4275
+ gap: 0.45rem !important;
4276
+ margin-bottom: 0.45rem !important;
4277
+ align-items: flex-end !important;
4278
+ position: relative !important;
4279
+ z-index: 4 !important;
4280
+ }
4281
+
4282
+ .tome-souls-index .souls-filter-row > .block,
4283
+ .tome-souls-index .souls-filter-row > .form {
4284
+ flex: 1 1 calc(50% - 0.35rem) !important;
4285
+ min-width: 0 !important;
4286
+ max-width: 100% !important;
4287
+ margin: 0 !important;
4288
+ position: relative !important;
4289
+ z-index: 4 !important;
4290
+ }
4291
+
4292
+ .tome-souls-index .souls-filter-row input,
4293
+ .tome-souls-index .souls-filter-row textarea {
4294
+ width: 100% !important;
4295
+ max-width: 100% !important;
4296
+ box-sizing: border-box !important;
4297
  }
4298
 
4299
  /* Entity hologram — Souls right page */
 
5147
  border: 1px solid rgba(138, 106, 58, 0.2) !important;
5148
  border-radius: 4px !important;
5149
  background: rgba(255, 249, 232, 0.4) !important;
5150
+ max-height: 11.5rem !important;
5151
+ overflow-y: auto !important;
5152
+ overflow-x: hidden !important;
5153
+ -webkit-overflow-scrolling: touch;
5154
+ scrollbar-width: thin;
5155
+ }
5156
+
5157
+ .tome-page-right .activity-feed::-webkit-scrollbar {
5158
+ width: 5px;
5159
+ }
5160
+
5161
+ .tome-page-right .activity-feed::-webkit-scrollbar-thumb {
5162
+ background: rgba(138, 106, 58, 0.45);
5163
+ border-radius: 4px;
5164
  }
5165
 
5166
  .tome-page-right .activity-feed::before {
 
5728
  top: auto !important;
5729
  left: auto !important;
5730
  transform: none !important;
5731
+ float: none !important;
5732
+ margin: -2rem auto 0.45rem !important;
5733
  width: 72px;
5734
  height: 72px;
5735
  }
 
5906
  }
5907
 
5908
  .tome-summon-index .seal-summon-btn,
5909
+ .tome-summon-index button.seal-summon-btn,
5910
+ .tome-summon-index #summon-seal-btn {
5911
  flex: 0 0 auto !important;
5912
  display: block !important;
5913
  visibility: visible !important;
5914
+ opacity: 1 !important;
5915
  width: 100% !important;
5916
  max-width: 100% !important;
5917
+ min-height: 3rem !important;
5918
+ margin: 0.25rem auto 0.85rem !important;
5919
+ padding: 0.72rem 1.35rem !important;
5920
+ font-size: 0.84rem !important;
5921
+ font-weight: 600 !important;
5922
+ letter-spacing: 0.1em !important;
5923
+ text-transform: uppercase !important;
5924
+ color: #fff8e8 !important;
5925
+ background: linear-gradient(180deg, #d43845 0%, #8f1a28 55%, #6e1018 100%) !important;
5926
+ border: 2px solid #f2d8a0 !important;
5927
+ box-shadow:
5928
+ 0 0 0 3px rgba(201, 42, 56, 0.18),
5929
+ 0 8px 22px rgba(100, 18, 28, 0.38) !important;
5930
  position: relative !important;
5931
+ z-index: 5 !important;
5932
+ cursor: pointer !important;
5933
+ pointer-events: auto !important;
5934
+ filter: none !important;
5935
+ transition: transform 0.15s ease, box-shadow 0.15s ease !important;
5936
+ }
5937
+
5938
+ .tome-summon-index #summon-seal-btn:hover,
5939
+ .tome-summon-index button.seal-summon-btn:hover {
5940
+ transform: translateY(-1px) !important;
5941
+ box-shadow:
5942
+ 0 0 0 3px rgba(201, 42, 56, 0.28),
5943
+ 0 12px 26px rgba(100, 18, 28, 0.45) !important;
5944
  }
5945
 
5946
  .tome-summon-index .summon-submit-hint {
 
5950
  text-transform: uppercase;
5951
  color: #8a6424;
5952
  text-align: center;
5953
+ margin: 0.45rem 0 0.15rem;
5954
  }
5955
 
5956
  .tome-summon-stage {
 
5958
  align-items: stretch !important;
5959
  }
5960
 
5961
+ .tome-summon-stage > .block:has(.entity-result-slot),
5962
+ .tome-summon-stage .entity-result-slot {
5963
+ flex: 1 1 auto !important;
5964
+ min-height: 0 !important;
5965
+ overflow: visible !important;
5966
+ }
5967
+
5968
+ .tome-summon-stage .entity-card .entity-card-top {
5969
+ margin-top: 0 !important;
5970
+ }
5971
+
5972
  .tome-summon-stage .entity-result-slot,
5973
  .tome-summon-stage .entity-result-slot .block {
5974
  width: 100% !important;
 
6005
  background: rgba(255, 249, 232, 0.72) !important;
6006
  border: 1px solid rgba(138, 106, 58, 0.32) !important;
6007
  border-radius: 10px !important;
6008
+ padding: 0 !important;
6009
  color: #3d2814 !important;
6010
  box-shadow: inset 0 0 18px rgba(88, 56, 24, 0.06) !important;
6011
  overflow: visible !important;
6012
  max-height: none !important;
6013
  }
6014
 
6015
+ .tome-summon-stage .entity-card-banner {
6016
+ height: 9.5rem !important;
6017
+ min-height: 9.5rem !important;
6018
+ width: 100% !important;
6019
+ margin: 0 !important;
6020
+ border-radius: 10px 10px 0 0 !important;
6021
+ background-size: cover !important;
6022
+ background-position: center center !important;
6023
+ }
6024
+
6025
+ .tome-summon-stage .entity-card-banner-scrim {
6026
+ display: block !important;
6027
+ background: linear-gradient(180deg, rgba(12, 10, 8, 0.05) 0%, rgba(255, 249, 232, 0.92) 100%) !important;
6028
+ }
6029
+
6030
  .tome-summon-stage .entity-card-top {
6031
  display: grid !important;
6032
  grid-template-columns: 72px minmax(0, 1fr) !important;
6033
  gap: 0.65rem !important;
6034
  align-items: start !important;
6035
+ margin: 0 !important;
6036
+ margin-top: 0 !important;
6037
+ padding: 0.75rem 0.9rem 0.5rem !important;
6038
+ }
6039
+
6040
+ .tome-summon-stage .entity-appearance,
6041
+ .tome-summon-stage .entity-traits,
6042
+ .tome-summon-stage .entity-section,
6043
+ .tome-summon-stage .entity-greeting,
6044
+ .tome-summon-stage .entity-footer {
6045
+ padding-left: 0.9rem !important;
6046
+ padding-right: 0.9rem !important;
6047
+ }
6048
+
6049
+ .tome-summon-stage .entity-footer {
6050
+ padding-bottom: 0.9rem !important;
6051
  }
6052
 
6053
  .tome-summon-stage .entity-portrait {