///|
pub struct ContainerStyleQuery {
condition : @ir.ContainerStyleCondition
}
///|
pub fn[T : @values.CssValue] container_style_equals(
token : @values.Token[T],
value : T,
) -> ContainerStyleQuery {
{ condition: @ir.StyleEquals(token.variable_use(), value.css_value()), }
}
///|
pub fn[T : @values.CssValue] container_style_slot_equals(
slot : @values.DynamicSlot[T],
value : T,
) -> ContainerStyleQuery {
{ condition: @ir.StyleEquals(slot.variable_use(), value.css_value()), }
}
///|
pub fn container_style_not(query : ContainerStyleQuery) -> ContainerStyleQuery {
{ condition: @ir.StyleNot(query.condition), }
}
///|
pub fn container_style_all(
queries : Array[ContainerStyleQuery],
) -> ContainerStyleQuery {
{ condition: @ir.StyleAll(queries.map(query => query.condition)), }
}
///|
pub fn container_style_any(
queries : Array[ContainerStyleQuery],
) -> ContainerStyleQuery {
{ condition: @ir.StyleAny(queries.map(query => query.condition)), }
}
///|
pub fn container_style_query(query : ContainerStyleQuery) -> When {
when([@ir.container_style_condition(query.condition)])
}
///|
pub fn ContainerStyleQuery::to_when(self : ContainerStyleQuery) -> When {
container_style_query(self)
}