Creates rich biographical narrative section with:
AI-generated narrative voice (opening, journey, present)
Enhanced stats visualization with quality metrics
Visual timeline (if milestones provided)
Rich bio layout with typography hierarchy
Location and social integration
artistStoryUI(
ns,
artist_data,
stats = NULL,
artist_voice = NULL,
milestones = NULL
)Namespace function from parent module
Single row data.frame with artist profile. Expected columns:
artist_name / display_name
bio (optional)
city, state (optional)
created_utc (member since date)
url_site, url_ig, url_tiktok, url_youtube, url_reddit, url_twitx (optional)
Named list with counts. Expected (Phase 0 simple):
artworks (integer)
collections (integer)
member_since (POSIXct) OR (Phase 1 enhanced from get_artist_career_stats):
totals$artworks, totals$collections, totals$total_views
averages$views_per_artwork, averages$likes_per_artwork
engagement$engagement_rate
quality_score
Optional named list from get_artist_voice() with:
opening, journey, approach, signature, present
Optional data.frame with journey milestones (not yet implemented)
Shiny tag with artist story HTML
if (FALSE) { # \dontrun{
output$artist_story <- renderUI({
artistStoryUI(ns, artist_data, stats, artist_voice = voice_data)
})
} # }