self.r1_label = ct.CTkLabel(self.side_frame, text="Rule 1", font=ct.CTkFont(size=14))
self.r1_label.grid(row=1, column=0, padx=20, pady=5)
self.r1_input = ct.CTkEntry(self.side_frame, placeholder_text="Rule 1")
self.r1_input.grid(row=2, column=0, padx=20, pady=10)
self.r1_options = ct.CTkOptionMenu(self.side_frame, values=["Remove", "Inside", "Outside"])
self.r1_options.grid(row=3, column=0, padx=20, pady=10)
self.r1_button = ct.CTkButton(self.side_frame, text="Button 1", command=lambda: print("Log: Parse"))
self.r1_button.grid(row=4, column=0, padx=20, pady=10)
self.r2_label = ct.CTkLabel(self.side_frame, text="Rule 2", font=ct.CTkFont(size=14))
self.r2_label.grid(row=5, column=0, padx=20, pady=5)
self.r2_input = ct.CTkEntry(self.side_frame, placeholder_text="Rule 2")
self.r2_input.grid(row=6, column=0, padx=20, pady=10)
self.r2_options = ct.CTkOptionMenu(self.side_frame, values=["Remove", "Inside", "Outside"])
self.r2_options.grid(row=7, column=0, padx=20, pady=10)
self.r2_button = ct.CTkButton(self.side_frame, text="Button 2", command=lambda: print("Log: Split"))
self.r2_button.grid(row=8, column=0, padx=20, pady=10)
self.expression = ct.CTkTextbox(self, width=250, padx=10, pady=10)
self.expression.grid(row=0, column=1, padx=(20, 0), pady=(20, 0), sticky="nsew")
self.output = ct.CTkTextbox(self, width=250, padx=10, pady=10)
self.output.grid(row=1, column=1, padx=(20, 0), pady=(20, 0), sticky="nsew")
self.information_frame1 = ct.CTkFrame(self)
self.information_frame1.grid(row=0, column=3, padx=20, pady=(20, 0), sticky="nsew")
self.information_frame2 = ct.CTkFrame(self)
self.information_frame2.grid(row=1, column=3, padx=20, pady=(20, 0), sticky="nsew")
self.entry = ct.CTkEntry(self, placeholder_text="Result")
self.entry.grid(row=3, column=1, columnspan=2, padx=(20, 0), pady=(0, 20), sticky="nsew")
self.main_button_1 = ct.CTkButton(master=self, fg_color="transparent", border_width=2, text="Submit", command=self.Logger)
self.main_button_1.grid(row=3, column=3, padx=20, pady=(0, 20), sticky="nsew")```