isHidden = $condition; return $this; } public function hiddenWhenAllChildComponentsHidden(): static { $this->hidden(static function (Component $component): bool { foreach ($component->getChildComponentContainers() as $childComponentContainer) { foreach ($childComponentContainer->getComponents(withHidden: false) as $childComponent) { return false; } } return true; }); return $this; } public function visible(bool | Closure $condition = true): static { $this->isVisible = $condition; return $this; } public function isHidden(): bool { if ($this->evaluate($this->isHidden)) { return true; } return ! $this->evaluate($this->isVisible); } public function isVisible(): bool { return ! $this->isHidden(); } }