I have this script for types variations of buttons, all work fine except when pressing on rectangle type, it doesn't initiate pressed style or receive touch event although other types work as expected. I don't know why:

extends Control


@onready var border: Panel = $Border
@onready var center: Panel = $Center
@onready var icon: TextureRect = $Icon
@onready var label: Label = $Label
@export var min_size: Vector2
enum ButtonType {
	BORDERED_ICON_DECREASED_CENTER,
	BORDERED_ICON_NORMAL_CENTER,
	ICON,
	RECTANGLE,
	TEXT
}
@export var type: ButtonType

@export var icon_texture: Texture2D
@export var text: String

signal pressed

var themes = [
	{
		"graphite": {"primary": Color.RED, "secondary": Color.GREEN}
	},
	{
		"nature": {"primary": Color.YELLOW, "secondary": Color.BLUE}
	}
]
var current_theme: Dictionary


func _ready() -> void:
	current_theme = themes[0][themes[0].keys()[0]]
	
	#init icon and texture
	if icon_texture:
		icon.texture = icon_texture
	if text:
		label.text = text
	
	set_custom_minimum_size(min_size)
	set_normal_style()


func set_components_visibility(border_visible, center_visible, icon_visible, label_visible):
	border.visible = border_visible
	center.visible = center_visible
	icon.visible = icon_visible
	label.visible = label_visible


func set_normal_style():
	match type:
		ButtonType.BORDERED_ICON_DECREASED_CENTER:
			set_components_visibility(true, false, true, false)
			var stylebox: StyleBoxFlat = border.get_theme_stylebox("panel").duplicate()
			stylebox.border_color = current_theme.primary
			border.add_theme_stylebox_override("panel", stylebox)
			icon.modulate = current_theme.primary
		ButtonType.BORDERED_ICON_NORMAL_CENTER:
			set_components_visibility(true, false, true, false)
			var stylebox: StyleBoxFlat = border.get_theme_stylebox("panel").duplicate()
			stylebox.border_color = current_theme.primary
			border.add_theme_stylebox_override("panel", stylebox)
			icon.modulate = current_theme.primary
		ButtonType.ICON:
			set_components_visibility(false, false, true, false)
			icon.modulate = current_theme.primary
		ButtonType.RECTANGLE:
			set_components_visibility(false, true, false, true)
			var stylebox: StyleBoxFlat = center.get_theme_stylebox("panel").duplicate()
			stylebox.bg_color = current_theme.primary
			stylebox.set_corner_radius_all(25)
			center.add_theme_stylebox_override("panel", stylebox)
			label.modulate = current_theme.secondary
			label.add_theme_font_size_override("font_size", 84)
		ButtonType.TEXT:
			set_components_visibility(false, false, false, true)
			label.modulate = current_theme.primary
			label.add_theme_font_size_override("font_size", 40)


func set_pressed_style():
	print("set_pressed_style")
	match type:
		ButtonType.BORDERED_ICON_DECREASED_CENTER:
			set_components_visibility(false, true, true, false)
			var stylebox: StyleBoxFlat = center.get_theme_stylebox("panel").duplicate()
			stylebox.bg_color = current_theme.primary
			stylebox.set_corner_radius_all(20)
			center.add_theme_stylebox_override("panel", stylebox)
			icon.modulate = current_theme.secondary
		ButtonType.BORDERED_ICON_NORMAL_CENTER:
			set_components_visibility(true, true, true, false)
			var stylebox: StyleBoxFlat = border.get_theme_stylebox("panel").duplicate()
			stylebox.border_color = current_theme.primary
			border.add_theme_stylebox_override("panel", stylebox)
			var stylebox_2: StyleBoxFlat = center.get_theme_stylebox("panel").duplicate()
			stylebox_2.bg_color = current_theme.primary
			center.add_theme_stylebox_override("panel", stylebox_2)
			icon.modulate = current_theme.secondary
		ButtonType.ICON:
			set_components_visibility(false, true, true, false)
			var stylebox: StyleBoxFlat = center.get_theme_stylebox("panel").duplicate()
			stylebox.bg_color = current_theme.primary
			stylebox.set_corner_radius_all(20)
			center.add_theme_stylebox_override("panel", stylebox)
			icon.modulate = current_theme.secondary
		ButtonType.RECTANGLE:
			print('button type rectangle')
			set_components_visibility(true, false, false, true)
			var stylebox: StyleBoxFlat = border.get_theme_stylebox("panel").duplicate()
			stylebox.border_color = current_theme.primary
			stylebox.set_corner_radius_all(20)
			border.add_theme_stylebox_override("panel", stylebox)
			label.modulate = current_theme.primary
			label.add_theme_font_size_override("font_size", 84)
		ButtonType.TEXT:
			set_components_visibility(false, true, false, true)
			var stylebox: StyleBoxFlat = center.get_theme_stylebox("panel").duplicate()
			stylebox.bg_color = current_theme.primary
			stylebox.set_corner_radius_all(20)
			center.add_theme_stylebox_override("panel", stylebox)
			label.modulate = current_theme.secondary
			label.add_theme_font_size_override("font_size", 40)


func _on_gui_input(event: InputEvent) -> void:
	if event is InputEventScreenTouch:
		print('event screen touch')
		if event.pressed:
			set_pressed_style()
		else:
			set_normal_style()
			pressed.emit()

I haven't tested the code, but you can try taking one of the working types and adding the RECTANGLE code to it one line at a time until it breaks, that way you'll know what's causing it