pub fn Page(allocator: zx.Allocator) zx.Component { var _zx = @import("zx").x.allocInit(allocator); return _zx.ele( .main, .{ .allocator = allocator, .children = &.{ _zx.cmp( Card, .{ .name = "Card" }, .{ .title = "Welcome", .children = _zx.ele(.fragment, .{ .children = &.{ _zx.cmp( Button, .{ .name = "Button" }, .{ .label = "Click me" }, ), } }) }, ), }, }, ); } const CardProps = struct { title: []const u8, children: zx.Component }; fn Card(allocator: zx.Allocator, props: CardProps) zx.Component { var _zx = @import("zx").x.allocInit(allocator); return _zx.ele( .div, .{ .allocator = allocator, .attributes = _zx.attrs(.{ _zx.attr("class", "card"), }), .children = &.{ _zx.ele( .h2, .{ .attributes = _zx.attrs(.{ _zx.attr("class", "card-header"), }), .children = &.{ _zx.expr(props.title), }, }, ), _zx.ele( .div, .{ .attributes = _zx.attrs(.{ _zx.attr("class", "card-body"), }), .children = &.{ _zx.expr(props.children), }, }, ), }, }, ); } const ButtonProps = struct { label: []const u8 }; fn Button(allocator: zx.Allocator, props: ButtonProps) zx.Component { var _zx = @import("zx").x.allocInit(allocator); return _zx.ele( .button, .{ .allocator = allocator, .attributes = _zx.attrs(.{ _zx.attr("class", "btn"), }), .children = &.{ _zx.expr(props.label), }, }, ); } const zx = @import("zx");