; Generated by Ritz Framework with Signals ; Components: VerticalTabs, Tabs ; String constants @.str.0 = private unnamed_addr constant [4 x i8] c"div\00" @.str.1 = private unnamed_addr constant [6 x i8] c"class\00" @.str.2 = private unnamed_addr constant [14 x i8] c"vertical-tabs\00" @.str.3 = private unnamed_addr constant [18 x i8] c"vertical-tab-menu\00" @.str.4 = private unnamed_addr constant [7 x i8] c"button\00" @.str.5 = private unnamed_addr constant [20 x i8] c"vertical-tab active\00" @.str.6 = private unnamed_addr constant [6 x i8] c"click\00" @.str.7 = private unnamed_addr constant [14 x i8] c"set_setting_0\00" @.str.8 = private unnamed_addr constant [15 x i8] c"⚙️ General\00" @.str.9 = private unnamed_addr constant [13 x i8] c"vertical-tab\00" @.str.10 = private unnamed_addr constant [14 x i8] c"set_setting_1\00" @.str.11 = private unnamed_addr constant [13 x i8] c"🔒 Privacy\00" @.str.12 = private unnamed_addr constant [14 x i8] c"set_setting_2\00" @.str.13 = private unnamed_addr constant [14 x i8] c"🚀 Advanced\00" @.str.14 = private unnamed_addr constant [21 x i8] c"vertical-tab-content\00" @.str.15 = private unnamed_addr constant [15 x i8] c"tabs-container\00" @.str.16 = private unnamed_addr constant [3 x i8] c"h1\00" @.str.17 = private unnamed_addr constant [19 x i8] c"Tab Component Demo\00" @.str.18 = private unnamed_addr constant [2 x i8] c"p\00" @.str.19 = private unnamed_addr constant [9 x i8] c"subtitle\00" @.str.20 = private unnamed_addr constant [58 x i8] c"Beautiful composition with TabMenu and TabPane components\00" @.str.21 = private unnamed_addr constant [3 x i8] c"ul\00" @.str.22 = private unnamed_addr constant [9 x i8] c"tab-menu\00" @.str.23 = private unnamed_addr constant [3 x i8] c"li\00" @.str.24 = private unnamed_addr constant [11 x i8] c"tab active\00" @.str.25 = private unnamed_addr constant [10 x i8] c"set_tab_0\00" @.str.26 = private unnamed_addr constant [10 x i8] c"🏠 Home\00" @.str.27 = private unnamed_addr constant [4 x i8] c"tab\00" @.str.28 = private unnamed_addr constant [10 x i8] c"set_tab_1\00" @.str.29 = private unnamed_addr constant [13 x i8] c"👤 Profile\00" @.str.30 = private unnamed_addr constant [10 x i8] c"set_tab_2\00" @.str.31 = private unnamed_addr constant [16 x i8] c"⚙️ Settings\00" @.str.32 = private unnamed_addr constant [12 x i8] c"tab-content\00" @.str.33 = private unnamed_addr constant [13 x i8] c"debug-footer\00" @.str.34 = private unnamed_addr constant [2 x i8] c"0\00" ; JavaScript bridge function declarations declare i32 @js_create_element(i8*) declare i32 @js_create_text(i8*) declare void @js_append_child(i32, i32) declare void @js_set_attribute(i32, i8*, i8*) declare void @js_set_root(i32) declare void @js_bind_event(i32, i8*, i8*) declare void @js_update_text_content(i32, i8*) ; Signal storage for VerticalTabs (reactive state in WASM memory) @signal_VerticalTabs_setting_tab = global i32 0 ; Signal helper functions define i32 @get_setting_tab() { entry: %val = load i32, i32* @signal_VerticalTabs_setting_tab ret i32 %val } define void @set_setting_tab(i32 %newval) { entry: store i32 %newval, i32* @signal_VerticalTabs_setting_tab ; TODO: Trigger DOM update callback ret void } ; Event handler: set_setting_0 define void @set_setting_0() { entry: store i32 0, i32* @signal_VerticalTabs_setting_tab ; TODO: Update DOM nodes bound to setting_tab ret void } ; Event handler: set_setting_1 define void @set_setting_1() { entry: store i32 1, i32* @signal_VerticalTabs_setting_tab ; TODO: Update DOM nodes bound to setting_tab ret void } ; Event handler: set_setting_2 define void @set_setting_2() { entry: store i32 2, i32* @signal_VerticalTabs_setting_tab ; TODO: Update DOM nodes bound to setting_tab ret void } ; Component render function define void @render_VerticalTabs() { entry: %var0 = call i32 @js_create_element(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.0, i32 0, i32 0)) call void @js_set_attribute(i32 %var0, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.2, i32 0, i32 0)) %var1 = call i32 @js_create_element(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.0, i32 0, i32 0)) call void @js_set_attribute(i32 %var1, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i32 0, i32 0)) %var3 = load i32, i32* @signal_VerticalTabs_setting_tab %var4 = icmp eq i32 %var3, 0 %var5 = zext i1 %var4 to i32 %var6 = icmp ne i32 %var5, 0 br i1 %var6, label %if.then.var2, label %if.else.var2 if.then.var2: %var7 = call i32 @js_create_element(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i32 0, i32 0)) call void @js_set_attribute(i32 %var7, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.5, i32 0, i32 0)) call void @js_bind_event(i32 %var7, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.6, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.7, i32 0, i32 0)) %var8 = call i32 @js_create_text(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.8, i32 0, i32 0)) call void @js_append_child(i32 %var7, i32 %var8) br label %if.end.var2 if.else.var2: %var9 = call i32 @js_create_element(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i32 0, i32 0)) call void @js_set_attribute(i32 %var9, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.9, i32 0, i32 0)) call void @js_bind_event(i32 %var9, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.6, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.7, i32 0, i32 0)) %var10 = call i32 @js_create_text(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.8, i32 0, i32 0)) call void @js_append_child(i32 %var9, i32 %var10) br label %if.end.var2 if.end.var2: %var12 = load i32, i32* @signal_VerticalTabs_setting_tab %var13 = icmp eq i32 %var12, 1 %var14 = zext i1 %var13 to i32 %var15 = icmp ne i32 %var14, 0 br i1 %var15, label %if.then.var11, label %if.else.var11 if.then.var11: %var16 = call i32 @js_create_element(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i32 0, i32 0)) call void @js_set_attribute(i32 %var16, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.5, i32 0, i32 0)) call void @js_bind_event(i32 %var16, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.6, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.10, i32 0, i32 0)) %var17 = call i32 @js_create_text(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.11, i32 0, i32 0)) call void @js_append_child(i32 %var16, i32 %var17) br label %if.end.var11 if.else.var11: %var18 = call i32 @js_create_element(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i32 0, i32 0)) call void @js_set_attribute(i32 %var18, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.9, i32 0, i32 0)) call void @js_bind_event(i32 %var18, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.6, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.10, i32 0, i32 0)) %var19 = call i32 @js_create_text(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.11, i32 0, i32 0)) call void @js_append_child(i32 %var18, i32 %var19) br label %if.end.var11 if.end.var11: %var21 = load i32, i32* @signal_VerticalTabs_setting_tab %var22 = icmp eq i32 %var21, 2 %var23 = zext i1 %var22 to i32 %var24 = icmp ne i32 %var23, 0 br i1 %var24, label %if.then.var20, label %if.else.var20 if.then.var20: %var25 = call i32 @js_create_element(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i32 0, i32 0)) call void @js_set_attribute(i32 %var25, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.5, i32 0, i32 0)) call void @js_bind_event(i32 %var25, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.6, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.12, i32 0, i32 0)) %var26 = call i32 @js_create_text(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.13, i32 0, i32 0)) call void @js_append_child(i32 %var25, i32 %var26) br label %if.end.var20 if.else.var20: %var27 = call i32 @js_create_element(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i32 0, i32 0)) call void @js_set_attribute(i32 %var27, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.9, i32 0, i32 0)) call void @js_bind_event(i32 %var27, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.6, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.12, i32 0, i32 0)) %var28 = call i32 @js_create_text(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.13, i32 0, i32 0)) call void @js_append_child(i32 %var27, i32 %var28) br label %if.end.var20 if.end.var20: call void @js_append_child(i32 %var0, i32 %var1) %var29 = call i32 @js_create_element(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.0, i32 0, i32 0)) call void @js_set_attribute(i32 %var29, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.14, i32 0, i32 0)) call void @js_append_child(i32 %var0, i32 %var29) call void @js_set_root(i32 %var0) ret void } ; Signal storage for Tabs (reactive state in WASM memory) @signal_Tabs_tab_index = global i32 0 ; Signal helper functions define i32 @get_tab_index() { entry: %val = load i32, i32* @signal_Tabs_tab_index ret i32 %val } define void @set_tab_index(i32 %newval) { entry: store i32 %newval, i32* @signal_Tabs_tab_index ; TODO: Trigger DOM update callback ret void } ; Event handler: set_tab_0 define void @set_tab_0() { entry: store i32 0, i32* @signal_Tabs_tab_index ; TODO: Update DOM nodes bound to tab_index ret void } ; Event handler: set_tab_1 define void @set_tab_1() { entry: store i32 1, i32* @signal_Tabs_tab_index ; TODO: Update DOM nodes bound to tab_index ret void } ; Event handler: set_tab_2 define void @set_tab_2() { entry: store i32 2, i32* @signal_Tabs_tab_index ; TODO: Update DOM nodes bound to tab_index ret void } ; Component render function define void @render_Tabs() { entry: %var30 = call i32 @js_create_element(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.0, i32 0, i32 0)) call void @js_set_attribute(i32 %var30, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.15, i32 0, i32 0)) %var31 = call i32 @js_create_element(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.16, i32 0, i32 0)) %var32 = call i32 @js_create_text(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.17, i32 0, i32 0)) call void @js_append_child(i32 %var31, i32 %var32) call void @js_append_child(i32 %var30, i32 %var31) %var33 = call i32 @js_create_element(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.18, i32 0, i32 0)) call void @js_set_attribute(i32 %var33, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.19, i32 0, i32 0)) %var34 = call i32 @js_create_text(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.20, i32 0, i32 0)) call void @js_append_child(i32 %var33, i32 %var34) call void @js_append_child(i32 %var30, i32 %var33) %var35 = call i32 @js_create_element(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.21, i32 0, i32 0)) call void @js_set_attribute(i32 %var35, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)) %var37 = load i32, i32* @signal_Tabs_tab_index %var38 = icmp eq i32 %var37, 0 %var39 = zext i1 %var38 to i32 %var40 = icmp ne i32 %var39, 0 br i1 %var40, label %if.then.var36, label %if.else.var36 if.then.var36: %var41 = call i32 @js_create_element(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.23, i32 0, i32 0)) call void @js_set_attribute(i32 %var41, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.24, i32 0, i32 0)) %var42 = call i32 @js_create_element(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i32 0, i32 0)) call void @js_bind_event(i32 %var42, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.6, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i32 0, i32 0)) %var43 = call i32 @js_create_text(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.26, i32 0, i32 0)) call void @js_append_child(i32 %var42, i32 %var43) call void @js_append_child(i32 %var41, i32 %var42) br label %if.end.var36 if.else.var36: %var44 = call i32 @js_create_element(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.23, i32 0, i32 0)) call void @js_set_attribute(i32 %var44, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.27, i32 0, i32 0)) %var45 = call i32 @js_create_element(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i32 0, i32 0)) call void @js_bind_event(i32 %var45, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.6, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i32 0, i32 0)) %var46 = call i32 @js_create_text(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.26, i32 0, i32 0)) call void @js_append_child(i32 %var45, i32 %var46) call void @js_append_child(i32 %var44, i32 %var45) br label %if.end.var36 if.end.var36: %var48 = load i32, i32* @signal_Tabs_tab_index %var49 = icmp eq i32 %var48, 1 %var50 = zext i1 %var49 to i32 %var51 = icmp ne i32 %var50, 0 br i1 %var51, label %if.then.var47, label %if.else.var47 if.then.var47: %var52 = call i32 @js_create_element(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.23, i32 0, i32 0)) call void @js_set_attribute(i32 %var52, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.24, i32 0, i32 0)) %var53 = call i32 @js_create_element(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i32 0, i32 0)) call void @js_bind_event(i32 %var53, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.6, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.28, i32 0, i32 0)) %var54 = call i32 @js_create_text(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.29, i32 0, i32 0)) call void @js_append_child(i32 %var53, i32 %var54) call void @js_append_child(i32 %var52, i32 %var53) br label %if.end.var47 if.else.var47: %var55 = call i32 @js_create_element(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.23, i32 0, i32 0)) call void @js_set_attribute(i32 %var55, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.27, i32 0, i32 0)) %var56 = call i32 @js_create_element(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i32 0, i32 0)) call void @js_bind_event(i32 %var56, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.6, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.28, i32 0, i32 0)) %var57 = call i32 @js_create_text(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.29, i32 0, i32 0)) call void @js_append_child(i32 %var56, i32 %var57) call void @js_append_child(i32 %var55, i32 %var56) br label %if.end.var47 if.end.var47: %var59 = load i32, i32* @signal_Tabs_tab_index %var60 = icmp eq i32 %var59, 2 %var61 = zext i1 %var60 to i32 %var62 = icmp ne i32 %var61, 0 br i1 %var62, label %if.then.var58, label %if.else.var58 if.then.var58: %var63 = call i32 @js_create_element(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.23, i32 0, i32 0)) call void @js_set_attribute(i32 %var63, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.24, i32 0, i32 0)) %var64 = call i32 @js_create_element(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i32 0, i32 0)) call void @js_bind_event(i32 %var64, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.6, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.30, i32 0, i32 0)) %var65 = call i32 @js_create_text(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.31, i32 0, i32 0)) call void @js_append_child(i32 %var64, i32 %var65) call void @js_append_child(i32 %var63, i32 %var64) br label %if.end.var58 if.else.var58: %var66 = call i32 @js_create_element(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.23, i32 0, i32 0)) call void @js_set_attribute(i32 %var66, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.27, i32 0, i32 0)) %var67 = call i32 @js_create_element(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i32 0, i32 0)) call void @js_bind_event(i32 %var67, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.6, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.30, i32 0, i32 0)) %var68 = call i32 @js_create_text(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.31, i32 0, i32 0)) call void @js_append_child(i32 %var67, i32 %var68) call void @js_append_child(i32 %var66, i32 %var67) br label %if.end.var58 if.end.var58: call void @js_append_child(i32 %var30, i32 %var35) %var69 = call i32 @js_create_element(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.0, i32 0, i32 0)) call void @js_set_attribute(i32 %var69, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.32, i32 0, i32 0)) call void @js_append_child(i32 %var30, i32 %var69) %var70 = call i32 @js_create_element(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.0, i32 0, i32 0)) call void @js_set_attribute(i32 %var70, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.33, i32 0, i32 0)) %var71 = call i32 @js_create_element(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.18, i32 0, i32 0)) ; TODO: Format f-string with signal tab_index %var72 = call i32 @js_create_text(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.34, i32 0, i32 0)) call void @js_append_child(i32 %var71, i32 %var72) call void @js_append_child(i32 %var70, i32 %var71) call void @js_append_child(i32 %var30, i32 %var70) call void @js_set_root(i32 %var30) ret void }