features = $features; } public function register(): void { add_action( 'wp_enqueue_media', array( $this, 'enqueue' ) ); } public function enqueue(): void { // Master switch (Dashboard → Funkcje → Obsługa AI). if ( null !== $this->features && ! $this->features->enabled( 'ai' ) ) { return; } wp_enqueue_script( 'acez-seo-media-library-ai', ACEZ_SEO_URL . 'assets/js/media-library-ai.js', array( 'jquery', 'media-views' ), ACEZ_SEO_VERSION, true ); wp_enqueue_style( 'acez-seo-media-library-ai', ACEZ_SEO_URL . 'assets/css/media-library-ai.css', array(), ACEZ_SEO_VERSION ); wp_localize_script( 'acez-seo-media-library-ai', 'AcezSeoAiMedia', array( 'restUrl' => esc_url_raw( rest_url( 'acez-seo/v1/generate' ) ), 'nonce' => wp_create_nonce( 'wp_rest' ), 'label' => __( 'Generate with AI', 'acez-seo' ), 'generating' => __( 'Generating…', 'acez-seo' ), 'error' => __( 'Failed to generate content.', 'acez-seo' ), 'costNote' => __( 'The description comes from AI image analysis (vision) — such a request uses more tokens than plain text.', 'acez-seo' ), ) ); } }