public function __construct($type, array $args, IHook $action, HtmlBuilder $html, IHook $filter)
{
$this->type = $type;
$this->args = $this->parse($args);
$this->key = strtolower(trim($args['handle']));
$this->action = $action;
$this->html = $html;
$this->filter = $filter;
$this->registerInstance();
// Listen to WordPress asset events.
$action->add('wp_enqueue_scripts', [$this, 'install']);
$action->add('admin_enqueue_scripts', [$this, 'install']);
$action->add('login_enqueue_scripts', [$this, 'install']);
$action->add('customize_preview_init', [$this, 'install']);
}