const std = @import("std"); const html = @import("html"); const z = @import("root.zig"); name: @EnumLiteral(), body: []const u8, style: []const u8, script: []const u8, pub fn toElement(comptime self: @This()) html.Element { return .transparent(.children(&.{ .native(.template, .{ .id = "@" ++ @tagName(self.name) }, .children(&.{ z.style.load(self.style), z.body.load(self.body), })), z.script.load("Zenv.constructors['component__" ++ @tagName(self.name) ++ "'] = async (Z) => {" ++ self.script ++ "}"), })); }