root = Card([header, metricsRow, chartsRow, tablesRow, controlsRow], "card", "column", "l")
header = CardHeader("Streaming Operations Dashboard", "Real-time platform health & content performance")
metricsRow = Card([viewersNow, bufferingRate, recClickRate, zeroPlaybackSearches], "clear", "row", "m", "stretch", "between")
viewersNow = Card([viewersLabel, viewersValue], "sunk", "column", "s", "center")
viewersLabel = TextContent("Viewers Right Now", "small")
viewersValue = TextContent("2.4M", "large-heavy")
bufferingRate = Card([bufferLabel, bufferValue], "sunk", "column", "s", "center")
bufferLabel = TextContent("Buffering Rate", "small")
bufferValue = TextContent("0.8%", "large-heavy")
recClickRate = Card([recLabel, recValue], "sunk", "column", "s", "center")
recLabel = TextContent("Recommendation CTR", "small")
recValue = TextContent("12.3%", "large-heavy")
zeroPlaybackSearches = Card([zpsLabel, zpsValue], "sunk", "column", "s", "center")
zpsLabel = TextContent("Searches → No Playback", "small")
zpsValue = TextContent("4.7%", "large-heavy")
chartsRow = Card([watchTimeChart, subChart, revenuePie, devicePie], "clear", "row", "m", "stretch", "between")
watchTimeChart = Card([watchTimeTitle, watchTime], "card", "column", "m")
watchTimeTitle = Heading("Watch Time (Past 30 Days)", "h3")
watchTime = LineChart(watchTimeLabels, [watchTimeSeries], "natural", "Day", "Hours (M)")
watchTimeLabels = ["Day 1", "Day 2", "Day 3", "Day 4", "Day 5", "Day 6", "Day 7", "Day 8", "Day 9", "Day 10", "Day 11", "Day 12", "Day 13", "Day 14", "Day 15", "Day 16", "Day 17", "Day 18", "Day 19", "Day 20", "Day 21", "Day 22", "Day 23", "Day 24", "Day 25", "Day 26", "Day 27", "Day 28", "Day 29", "Day 30"]
watchTimeSeries = Series("Hours Watched", [12.4, 13.1, 11.8, 14.2, 15.6, 16.3, 18.7, 14.9, 13.5, 12.8, 11.9, 13.2, 14.8, 16.1, 17.4, 15.9, 14.3, 13.7, 12.5, 13.8, 15.2, 16.8, 18.1, 17.3, 15.6, 14.2, 13.9, 12.7, 13.4, 14.9])
subChart = Card([subTitle, subChartComp], "card", "column", "m")
subTitle = Heading("New Subscribers vs Cancellations", "h3")
subChartComp = BarChart(subLabels, [newSubSeries, cancelSeries], "grouped", "Day", "Count")
subLabels = ["W1", "W2", "W3", "W4"]
newSubSeries = Series("New Subscribers", [8420, 9150, 7890, 10200])
cancelSeries = Series("Cancellations", [2100, 1950, 2300, 1800])
revenuePie = Card([revTitle, revPie], "card", "column", "m")
revTitle = Heading("Revenue Split by Plan", "h3")
revPie = PieChart(revLabels, revValues, "donut")
revLabels = ["Basic", "Standard", "Premium", "Family", "Student"]
revValues = [18, 35, 28, 12, 7]
devicePie = Card([devTitle, devPie], "card", "column", "m")
devTitle = Heading("Viewing Split by Device", "h3")
devPie = PieChart(devLabels, devValues, "donut")
devLabels = ["Smart TV", "Mobile", "Desktop", "Tablet", "Game Console", "Other"]
devValues = [42, 28, 15, 8, 5, 2]
tablesRow = Card([topTitles, genrePerf, deliveryHealth, upcomingReleases, expiringLicenses], "clear", "column", "l")
topTitles = Card([topTitlesHeader, topTitlesTable], "card", "column", "m")
topTitlesHeader = Heading("Most-Watched Titles (Hours)", "h3")
topTitlesTable = Table([titleCol, hoursCol, genreCol, completionCol])
titleCol = Col("Title", ["The Crown S6", "Stranger Things S4", "Wednesday S1", "Squid Game S1", "Bridgerton S2", "The Witcher S3", "Ozark S4", "Money Heist S5"])
hoursCol = Col("Hours (M)", [45.2, 38.7, 34.1, 31.8, 29.4, 27.6, 25.3, 23.9])
genreCol = Col("Genre", ["Drama", "Sci-Fi", "Mystery", "Thriller", "Romance", "Fantasy", "Crime", "Action"])
completionCol = Col("Completion %", [78, 82, 85, 91, 74, 69, 88, 76])
genrePerf = Card([genreHeader, genreChart], "card", "column", "m")
genreHeader = Heading("Performance by Genre", "h3")
genreChart = HorizontalBarChart(genreLabels, [genreHoursSeries, genreCompletionSeries], "grouped", "Metric", "Genre")
genreLabels = ["Drama", "Comedy", "Action", "Sci-Fi", "Documentary", "Horror", "Kids", "Anime"]
genreHoursSeries = Series("Hours (M)", [180, 95, 142, 118, 67, 43, 89, 56])
genreCompletionSeries = Series("Completion %", [76, 68, 72, 79, 84, 71, 88, 81])
deliveryHealth = Card([deliveryHeader, deliveryTable], "card", "column", "m")
deliveryHeader = Heading("Delivery Health by Region", "h3")
deliveryTable = Table([regionCol, latencyCol, errorCol, cdnCol, statusCol])
regionCol = Col("Region", ["North America", "Europe", "APAC", "LATAM", "MEA"])
latencyCol = Col("Avg Latency (ms)", [42, 58, 89, 112, 134])
errorCol = Col("Error Rate %", [0.12, 0.18, 0.31, 0.45, 0.52])
cdnCol = Col("CDN Hit Ratio %", [98.5, 97.2, 95.8, 94.1, 92.7])
statusCol = Col("Status", ["Healthy", "Healthy", "Degraded", "Degraded", "Critical"])
upcomingReleases = Card([releasesHeader, releasesList], "card", "column", "m")
releasesHeader = Heading("Releases This Month", "h3")
releasesList = ListBlock(releasesItems, "number")
releasesItems = [release1, release2, release3, release4, release5]
release1 = ListItem("Dune: Part Two", "Sci-Fi Epic · Apr 12", null, "Promote")
release2 = ListItem("The Bear S3", "Comedy-Drama · Apr 18", null, "Promote")
release3 = ListItem("Fallout S1", "Action RPG Adaptation · Apr 25", null, "Promote")
release4 = ListItem("Baby Reindeer", "Limited Series · Apr 8", null, "Promote")
release5 = ListItem("Ripley", "Psychological Thriller · Apr 4", null, "Promote")
expiringLicenses = Card([licensesHeader, licensesTable], "card", "column", "m")
licensesHeader = Heading("Licenses Expiring Soon", "h3")
licensesTable = Table([licenseTitleCol, licenseExpiresCol, licenseRegionCol, licenseActionCol])
licenseTitleCol = Col("Title", ["The Office (US)", "Friends", "Parks & Rec", "Harry Potter Films", "Marvel Movies Phase 1-3"])
licenseExpiresCol = Col("Expires", ["Apr 30", "May 15", "May 31", "Jun 10", "Jun 30"])
licenseRegionCol = Col("Region", ["US/CA", "Global", "US", "EMEA", "APAC"])
licenseActionCol = Col("Action", ["Renew", "Negotiating", "Renew", "Review", "Review"])
controlsRow = Card([regionFocus, featureFlags, promoteTitle], "clear", "row", "l", "stretch", "between")
regionFocus = Card([regionHeader, regionSelect], "card", "column", "m")
regionHeader = Heading("Focus Region", "h3")
regionSelect = Select("focus_region", regionOptions, "Select region", null, "medium")
regionOptions = [optNA, optEU, optAPAC, optLATAM, optMEA]
optNA = SelectItem("na", "North America")
optEU = SelectItem("eu", "Europe")
optAPAC = SelectItem("apac", "APAC")
optLATAM = SelectItem("latam", "LATAM")
optMEA = SelectItem("mea", "MEA")
featureFlags = Card([flagsHeader, flagsTable], "card", "column", "m")
flagsHeader = Heading("Feature Flags", "h3")
flagsTable = Table([flagNameCol, flagStatusCol, flagDescCol, flagUpdatedCol])
flagNameCol = Col("Flag", ["new_homepage_layout", "shuffle_play", "download_quality_4k", "live_sports_beta", "kids_profiles_v2", "smart_downloads", "watch_party", "ai_recs_v3"])
flagStatusCol = Col("Status", ["ON", "ON", "OFF", "ON", "OFF", "ON", "OFF", "ON"])
flagDescCol = Col("Description", ["Updated hero carousel", "Random episode play", "4K offline downloads", "Live sports streaming", "Enhanced parental controls", "Auto-download next ep", "Co-viewing sessions", "New ML ranking model"])
flagUpdatedCol = Col("Last Updated", ["Mar 15", "Feb 28", "Jan 10", "Mar 20", "Feb 14", "Mar 5", "Jan 30", "Mar 22"])
promoteTitle = Card([promoteHeader, promoteForm], "card", "column", "m")
promoteHeader = Heading("Promote Title on Home", "h3")
promoteForm = Form("promote-title", promoteButtons, [promoteTitleField, promotePositionField, promoteDurationField, promoteRegionField])
promoteTitleField = FormControl("Title", promoteTitleInput, "Search and select a title")
promoteTitleInput = Input("promote_title", "e.g., The Crown S6")
promotePositionField = FormControl("Position", promotePositionSelect)
promotePositionSelect = Select("promote_position", positionOptions, "Choose placement", null, "medium")
positionOptions = [pos1, pos2, pos3, pos4, pos5]
pos1 = SelectItem("hero", "Hero Banner (Top)")
pos2 = SelectItem("row1", "Continue Watching Row")
pos3 = SelectItem("row2", "Trending Now Row")
pos4 = SelectItem("row3", "Top Picks for You")
pos5 = SelectItem("row4", "New Releases Row")
promoteDurationField = FormControl("Duration (days)", promoteDurationInput)
promoteDurationInput = Input("promote_duration", "7", "number")
promoteRegionField = FormControl("Target Region", promoteRegionSelect)
promoteRegionSelect = Select("promote_region", regionOptions, "All regions", null, "medium")
promoteButtons = Buttons([promoteSubmit, promoteCancel])
promoteSubmit = Button("Promote Title", null, "primary")
promoteCancel = Button("Cancel", null, "tertiary")