' ); add_menu_page( __( 'AICitare', 'aicitare' ), __( 'AICitare', 'aicitare' ), apply_filters( 'aicitare_capability', 'manage_options' ), AICITARE_SLUG, array( $this, 'render' ), $icon, 58 ); } public function render() { echo '
AICitare
' . esc_html__( 'Loading…', 'aicitare' ) . '
'; } public function assets( $hook ) { if ( 'toplevel_page_' . AICITARE_SLUG !== $hook ) { return; } // Note: fonts are not loaded from a remote CDN (WordPress.org guideline + // privacy). The UI uses system font stacks defined in admin.css. wp_enqueue_style( 'aicitare-admin', AICITARE_URL . 'assets/css/admin.css', array(), AICITARE_VERSION ); wp_enqueue_script( 'aicitare-admin', AICITARE_URL . 'assets/js/app.js', array( 'wp-element', 'wp-api-fetch', 'wp-i18n' ), AICITARE_VERSION, true ); // Enable JS string translation (loads languages/*.json when present). if ( function_exists( 'wp_set_script_translations' ) ) { wp_set_script_translations( 'aicitare-admin', 'aicitare', AICITARE_DIR . 'languages' ); } wp_localize_script( 'aicitare-admin', 'AICITARE_BOOT', array( 'restUrl' => esc_url_raw( rest_url( AICitare_REST::NS ) ), 'nonce' => wp_create_nonce( 'wp_rest' ), 'editUrl' => admin_url( 'post.php' ), 'isRTL' => is_rtl(), 'version' => AICITARE_VERSION, 'dockerEnabled' => ( defined( 'AICITARE_ENABLE_DOCKER' ) && AICITARE_ENABLE_DOCKER ), ) ); } }