root = Card([header, specialCallout, filterRow, menuTabs, hoursSection], "card", "column", "l")
header = CardHeader("☕ Morning Brew Cafe", "Fresh ingredients • Made to order")
specialCallout = Callout("success", "Today's Special", "Pumpkin Spice Latte — $5.50 (regularly $6.50) • Available until 2 PM")
filterRow = Card([vegLabel, vegSwitch], "clear", "row", "m", "center", "between")
vegLabel = TextContent("Show vegetarian items only", "default")
vegSwitch = SwitchGroup("veg-filter", [vegSwitchItem], "clear")
vegSwitchItem = SwitchItem("Vegetarian only", "Hide items containing meat", "veg-only", false)
menuTabs = Tabs([drinksTab, foodTab])
drinksTab = TabItem("drinks", "Drinks", [drinksTable])
foodTab = TabItem("food", "Food", [foodTable])
drinksTable = Table([drinkNameCol, drinkPriceCol, drinkVegCol])
drinkNameCol = Col("Drink", ["Espresso", "Cappuccino", "Latte", "Americano", "Pumpkin Spice Latte", "Iced Coffee", "Hot Chocolate", "Tea (Earl Grey, Green, Chamomile)"])
drinkPriceCol = Col("Price", ["$3.00", "$4.50", "$4.50", "$3.50", "$5.50", "$4.00", "$4.00", "$3.00"])
drinkVegCol = Col("Vegetarian", ["No", "Yes", "Yes", "Yes", "Yes", "Yes", "Yes", "Yes"])
foodTable = Table([foodNameCol, foodPriceCol, foodVegCol])
foodNameCol = Col("Item", ["Croissant", "Avocado Toast", "Bagel with Cream Cheese", "Breakfast Sandwich", "Blueberry Muffin", "Chicken Salad Sandwich", "Veggie Wrap", "Greek Salad"])
foodPriceCol = Col("Price", ["$3.50", "$8.00", "$4.50", "$7.00", "$3.50", "$9.00", "$8.50", "$9.50"])
foodVegCol = Col("Vegetarian", ["Yes", "Yes", "Yes", "No", "Yes", "No", "Yes", "Yes"])
hoursSection = Card([hoursHeader, hoursList], "sunk", "column", "m")
hoursHeader = Heading("Opening Hours", "h3")
hoursList = ListBlock([monFri, sat, sun], "number")
monFri = ListItem("Monday – Friday", "7:00 AM – 8:00 PM")
sat = ListItem("Saturday", "8:00 AM – 9:00 PM")
sun = ListItem("Sunday", "8:00 AM – 6:00 PM")