` dele do site do Lucide. */ final class Icons { /** * Conteúdo do `` de cada ícone (viewBox 0 0 24 24). */ private const PATHS = array( 'paw-print' => '', 'mars' => '', 'venus' => '', 'cake' => '', 'heart' => '', 'weight' => '', 'syringe' => '', 'house' => '', 'chevron-right' => '', 'chevron-left' => '', 'file-text' => '', 'heart-pulse' => '', 'circle-check' => '', 'circle-dashed' => '', 'arrow-right' => '', 'calendar-heart' => '', 'palette' => '', 'message-circle' => '', 'scissors' => '', 'check' => '', 'copy' => '', 'phone' => '', 'mail' => '', 'clock' => '', 'map-pin' => '', 'qr-code' => '', 'hand-heart' => '', ); /** * HTML de um ícone, pronto para imprimir. * * O ícone é só enfeite (`aria-hidden`): o texto ao lado é que informa. * * @param string $name Nome do ícone no Lucide. Ex.: `paw-print`. * @param string $extra_class Classes extras. * @return string SVG, ou string vazia se o ícone não existir. */ public static function svg( string $name, string $extra_class = '' ): string { if ( ! isset( self::PATHS[ $name ] ) ) { return ''; } return sprintf( '', esc_attr( trim( 'resgata-icon resgata-icon--' . $name . ' ' . $extra_class ) ), self::PATHS[ $name ] ); } /** * Ícone do WhatsApp (logotipo da marca, que o Lucide não tem). * * @param string $extra_class Classes extras. */ public static function whatsapp( string $extra_class = '' ): string { return self::brand( 'whatsapp', 'message-circle', $extra_class ); } /** * Logotipo de uma marca (WhatsApp, Instagram, Facebook, TikTok, YouTube...). * * Usa o desenho que o próprio WordPress traz no bloco de ícones sociais; * se não estiver disponível, cai num ícone do Lucide. * * @param string $service Nome do serviço no bloco de ícones sociais. Ex.: `instagram`. * @param string $fallback Ícone do Lucide usado se o logotipo não existir. * @param string $extra_class Classes extras. */ public static function brand( string $service, string $fallback = 'heart', string $extra_class = '' ): string { $service = sanitize_key( $service ); $svg = function_exists( 'block_core_social_link_services' ) ? block_core_social_link_services( $service, 'icon' ) : ''; if ( ! is_string( $svg ) || ! str_starts_with( $svg, '