diff --git a/package.json b/package.json index c33e14b..2922069 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "2026.es.pycon.org", - "version": "1.17.21", + "version": "1.17.22", "description": "", "main": "index.js", "scripts": { diff --git a/src/components/ProgramaPage.astro b/src/components/ProgramaPage.astro index 14fe914..73d8822 100644 --- a/src/components/ProgramaPage.astro +++ b/src/components/ProgramaPage.astro @@ -170,7 +170,6 @@ const schedule = await getSchedule() ;(function () { const STORAGE_KEY = 'pycones-schedule-view' const radios = document.querySelectorAll('input[name="schedule-view"]') - const views = document.querySelectorAll('.schedule-view') function applyView(value) { // Visibility is driven declaratively from CSS via the diff --git a/src/components/icons/Icon.astro b/src/components/icons/Icon.astro index 97deaa0..02dde38 100644 --- a/src/components/icons/Icon.astro +++ b/src/components/icons/Icon.astro @@ -28,6 +28,11 @@ const classes = [sizeClasses, colorClasses, className, 'inline-block flex-shrink // Build style object for CSS color values const style = color.startsWith('#') || color.startsWith('rgb') || color.startsWith('hsl') ? { color } : {} +// Lucide hardcodes width/height (24) as HTML attributes, which take precedence over +// Tailwind's width/height utility classes. Neutralize them so the size classes +// (IconSizes) actually control the rendered size. +const lucideSizeProps = { width: '100%', height: '100%' } + // Log missing mappings in development if (!LucideIconComponent && !svg && !fallback) { try { @@ -60,6 +65,7 @@ if (!LucideIconComponent && !svg && !fallback) { aria-label={ariaHidden ? undefined : ariaLabel} aria-hidden={ariaHidden ? 'true' : undefined} focusable="false" + {...lucideSizeProps} {...rest} /> ) : fallback ? ( @@ -79,6 +85,7 @@ if (!LucideIconComponent && !svg && !fallback) { aria-label={ariaHidden ? undefined : ariaLabel || `Unknown icon: ${name}`} aria-hidden={ariaHidden ? 'true' : undefined} focusable="false" + {...lucideSizeProps} {...rest} /> ) diff --git a/src/i18n/components/footer/ca.ts b/src/i18n/components/footer/ca.ts index c1e193c..a882cd7 100644 --- a/src/i18n/components/footer/ca.ts +++ b/src/i18n/components/footer/ca.ts @@ -1,6 +1,10 @@ export const ca = { copyright: 'Copyright © Python España & PyConES 2026 Org', links: [{ label: 'Codi de conducta', href: '/ca/code-of-conduct' }], + contact: { + label: 'Contacte', + email: 'contacto@2026.es.pycon.org', + }, social: { title: 'Segueix-nos', }, diff --git a/src/i18n/components/footer/en.ts b/src/i18n/components/footer/en.ts index dcb250d..a3cf87a 100644 --- a/src/i18n/components/footer/en.ts +++ b/src/i18n/components/footer/en.ts @@ -1,6 +1,10 @@ export const en = { copyright: 'Copyright © Python España & PyConES 2026 Org', links: [{ label: 'Code of Conduct', href: '/en/code-of-conduct' }], + contact: { + label: 'Contact', + email: 'contacto@2026.es.pycon.org', + }, social: { title: 'Follow us', }, diff --git a/src/i18n/components/footer/es.ts b/src/i18n/components/footer/es.ts index 1745a26..e5b00c8 100644 --- a/src/i18n/components/footer/es.ts +++ b/src/i18n/components/footer/es.ts @@ -1,6 +1,10 @@ export const es = { copyright: 'Copyright © Python España & PyConES 2026 Org', links: [{ label: 'Código de conducta', href: '/es/code-of-conduct' }], + contact: { + label: 'Contacto', + email: 'contacto@2026.es.pycon.org', + }, social: { title: 'Síguenos en redes', }, diff --git a/src/layouts/components/Footer.astro b/src/layouts/components/Footer.astro index ef9fd2c..cbad97c 100644 --- a/src/layouts/components/Footer.astro +++ b/src/layouts/components/Footer.astro @@ -3,6 +3,7 @@ import { getRelativeLocaleUrl } from 'astro:i18n' import { footerTexts } from '@/i18n/components/footer' import { menuTexts } from '@/i18n/menu' import SocialIcon from '@/components/icons/SocialIcon.astro' +import Icon from '@/components/icons/Icon.astro' interface Props { lang?: string @@ -92,6 +93,14 @@ const collaborators = [ )) } + + + {t.contact.label} + diff --git a/src/lib/icons/mappings/contact.ts b/src/lib/icons/mappings/contact.ts new file mode 100644 index 0000000..683545b --- /dev/null +++ b/src/lib/icons/mappings/contact.ts @@ -0,0 +1,13 @@ +import type { IconMappingWithFallback } from '@/lib/icons/types' +import { Mail } from '@lucide/astro' + +/** + * Contact icon mappings + * Maps semantic names to Lucide icons with emoji fallbacks + */ +export const contactMapping: Record = { + mail: { + icon: Mail, + fallback: '✉️', + }, +} diff --git a/src/lib/icons/mappings/index.ts b/src/lib/icons/mappings/index.ts index 1a81434..45e52c5 100644 --- a/src/lib/icons/mappings/index.ts +++ b/src/lib/icons/mappings/index.ts @@ -3,6 +3,7 @@ import { socialMapping } from './social' import { statisticsMapping } from './statistics' import { technicalMapping } from './technical' import { statusMapping } from './status' +import { contactMapping } from './contact' // Combine all category mappings const allMappings = { @@ -10,6 +11,7 @@ const allMappings = { ...statisticsMapping, ...technicalMapping, ...statusMapping, + ...contactMapping, } /** diff --git a/src/lib/icons/types.ts b/src/lib/icons/types.ts index 8c65e3a..fd9d37c 100644 --- a/src/lib/icons/types.ts +++ b/src/lib/icons/types.ts @@ -59,6 +59,8 @@ export type TechnicalIconName = | 'devops-cloud' | 'others' +export type ContactIconName = 'mail' + export type StatusIconName = | 'warning' | 'allowed' @@ -92,4 +94,5 @@ export type StatusIconName = | 'main' // Union type for all available icon names -export type AvailableIconName = SocialIconName | StatisticIconName | TechnicalIconName | StatusIconName +export type AvailableIconName = + SocialIconName | StatisticIconName | TechnicalIconName | StatusIconName | ContactIconName diff --git a/src/pages/[lang]/becas.astro b/src/pages/[lang]/becas.astro index c10f252..c82a6de 100644 --- a/src/pages/[lang]/becas.astro +++ b/src/pages/[lang]/becas.astro @@ -23,7 +23,6 @@ const { documentation, application, contact, - faq, } = t --- diff --git a/src/pages/[lang]/django-girls.astro b/src/pages/[lang]/django-girls.astro index 9e81bb8..02f803a 100644 --- a/src/pages/[lang]/django-girls.astro +++ b/src/pages/[lang]/django-girls.astro @@ -36,7 +36,6 @@ const { signupAttendeesUrl, signupCoachesLabel, signupCoachesUrl, - shareText, } = t ---