Add latest content refinements
This commit is contained in:
parent
dfe66b9002
commit
5de4cadeb7
7 changed files with 517 additions and 104 deletions
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
import { useState } from 'react';
|
import { useState } from 'react';
|
||||||
|
|
||||||
import { ExternalLink, Filter } from 'lucide-react';
|
import { Filter, Globe } from 'lucide-react';
|
||||||
|
|
||||||
import { Button } from '@/components/ui/button';
|
import { Button } from '@/components/ui/button';
|
||||||
import { Card } from '@/components/ui/card';
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
@ -21,6 +21,12 @@ function FacultyCard({ member }: { member: FacultyMember }) {
|
||||||
.join('')
|
.join('')
|
||||||
.slice(0, 2)
|
.slice(0, 2)
|
||||||
.toUpperCase();
|
.toUpperCase();
|
||||||
|
const affiliationLine =
|
||||||
|
member.category === 'affiliated'
|
||||||
|
? `Primary Affiliation: ${member.primaryDepartment}`
|
||||||
|
: member.secondaryDepartment
|
||||||
|
? `Also affiliated with ${member.secondaryDepartment}`
|
||||||
|
: undefined;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Card className="group flex gap-4 p-4">
|
<Card className="group flex gap-4 p-4">
|
||||||
|
|
@ -40,15 +46,17 @@ function FacultyCard({ member }: { member: FacultyMember }) {
|
||||||
href={member.homepage}
|
href={member.homepage}
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
|
aria-label={`Open IITGN faculty profile for ${member.name}`}
|
||||||
|
title="IITGN faculty profile"
|
||||||
className="text-muted-foreground hover:text-secondary shrink-0 transition-colors"
|
className="text-muted-foreground hover:text-secondary shrink-0 transition-colors"
|
||||||
>
|
>
|
||||||
<ExternalLink className="size-3.5" />
|
<Globe className="size-3.5" />
|
||||||
</a>
|
</a>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
{member.secondaryDepartment && (
|
{affiliationLine && (
|
||||||
<p className="text-muted-foreground mt-1 text-xs">
|
<p className="text-muted-foreground mt-1 text-xs">
|
||||||
Also affiliated with {member.secondaryDepartment}
|
{affiliationLine}
|
||||||
</p>
|
</p>
|
||||||
)}
|
)}
|
||||||
{member.affiliations && member.affiliations.length > 0 && (
|
{member.affiliations && member.affiliations.length > 0 && (
|
||||||
|
|
@ -61,6 +69,9 @@ function FacultyCard({ member }: { member: FacultyMember }) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const sortByFirstName = (members: FacultyMember[]) =>
|
||||||
|
[...members].sort((a, b) => a.name.localeCompare(b.name));
|
||||||
|
|
||||||
export default function FacultyDirectory() {
|
export default function FacultyDirectory() {
|
||||||
const [activeFilter, setActiveFilter] = useState<FacultyCategory | 'all'>(
|
const [activeFilter, setActiveFilter] = useState<FacultyCategory | 'all'>(
|
||||||
'all',
|
'all',
|
||||||
|
|
@ -118,7 +129,9 @@ export default function FacultyDirectory() {
|
||||||
<section className="section-padding">
|
<section className="section-padding">
|
||||||
<div className="container">
|
<div className="container">
|
||||||
{filteredCategories.map((category) => {
|
{filteredCategories.map((category) => {
|
||||||
const members = FACULTY.filter((f) => f.category === category);
|
const members = sortByFirstName(
|
||||||
|
FACULTY.filter((f) => f.category === category),
|
||||||
|
);
|
||||||
if (members.length === 0) return null;
|
if (members.length === 0) return null;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ export const FACULTY: FacultyMember[] = [
|
||||||
primaryDepartment: 'Computer Science and Engineering',
|
primaryDepartment: 'Computer Science and Engineering',
|
||||||
researchAreas: [],
|
researchAreas: [],
|
||||||
dateOfJoining: '2022-10-03',
|
dateOfJoining: '2022-10-03',
|
||||||
|
homepage: 'https://iitgn.ac.in/faculty/cse/fac-rajat-moona',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Anirban Dasgupta',
|
name: 'Anirban Dasgupta',
|
||||||
|
|
@ -35,6 +36,7 @@ export const FACULTY: FacultyMember[] = [
|
||||||
primaryDepartment: 'Computer Science and Engineering',
|
primaryDepartment: 'Computer Science and Engineering',
|
||||||
researchAreas: ['Computer Science and Engineering', 'Artificial Intelligence'],
|
researchAreas: ['Computer Science and Engineering', 'Artificial Intelligence'],
|
||||||
dateOfJoining: '2013-12-30',
|
dateOfJoining: '2013-12-30',
|
||||||
|
homepage: 'https://iitgn.ac.in/faculty/cse/fac-anirban',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Bireswar Das',
|
name: 'Bireswar Das',
|
||||||
|
|
@ -43,6 +45,7 @@ export const FACULTY: FacultyMember[] = [
|
||||||
primaryDepartment: 'Computer Science and Engineering',
|
primaryDepartment: 'Computer Science and Engineering',
|
||||||
researchAreas: ['Computer Science and Engineering'],
|
researchAreas: ['Computer Science and Engineering'],
|
||||||
dateOfJoining: '2010-06-28',
|
dateOfJoining: '2010-06-28',
|
||||||
|
homepage: 'https://iitgn.ac.in/faculty/cse/fac-bireswar',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Neeldhara Misra',
|
name: 'Neeldhara Misra',
|
||||||
|
|
@ -51,15 +54,17 @@ export const FACULTY: FacultyMember[] = [
|
||||||
primaryDepartment: 'Computer Science and Engineering',
|
primaryDepartment: 'Computer Science and Engineering',
|
||||||
researchAreas: ['Computer Science and Engineering', 'Artificial Intelligence'],
|
researchAreas: ['Computer Science and Engineering', 'Artificial Intelligence'],
|
||||||
dateOfJoining: '2015-09-23',
|
dateOfJoining: '2015-09-23',
|
||||||
|
homepage: 'https://iitgn.ac.in/faculty/cse/fac-neeldhara',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Nipun Batra',
|
name: 'Nipun Batra',
|
||||||
designation: 'Associate Professor',
|
designation: 'Associate Professor',
|
||||||
category: 'core',
|
category: 'core',
|
||||||
primaryDepartment: 'Computer Science and Engineering',
|
primaryDepartment: 'Computer Science and Engineering',
|
||||||
affiliations: ['Sustainability Lab'],
|
affiliations: ['Center for Sustainability'],
|
||||||
researchAreas: ['Computer Science and Engineering', 'Artificial Intelligence'],
|
researchAreas: ['Computer Science and Engineering', 'Artificial Intelligence'],
|
||||||
dateOfJoining: '2018-07-09',
|
dateOfJoining: '2018-07-09',
|
||||||
|
homepage: 'https://iitgn.ac.in/faculty/cse/fac-nipun',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Manoj D Gupta',
|
name: 'Manoj D Gupta',
|
||||||
|
|
@ -68,6 +73,7 @@ export const FACULTY: FacultyMember[] = [
|
||||||
primaryDepartment: 'Computer Science and Engineering',
|
primaryDepartment: 'Computer Science and Engineering',
|
||||||
researchAreas: ['Computer Science and Engineering'],
|
researchAreas: ['Computer Science and Engineering'],
|
||||||
dateOfJoining: '2016-01-18',
|
dateOfJoining: '2016-01-18',
|
||||||
|
homepage: 'https://iitgn.ac.in/faculty/cse/fac-manoj',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Mayank Singh',
|
name: 'Mayank Singh',
|
||||||
|
|
@ -76,6 +82,7 @@ export const FACULTY: FacultyMember[] = [
|
||||||
primaryDepartment: 'Computer Science and Engineering',
|
primaryDepartment: 'Computer Science and Engineering',
|
||||||
researchAreas: ['Computer Science and Engineering', 'Artificial Intelligence'],
|
researchAreas: ['Computer Science and Engineering', 'Artificial Intelligence'],
|
||||||
dateOfJoining: '2019-02-06',
|
dateOfJoining: '2019-02-06',
|
||||||
|
homepage: 'https://iitgn.ac.in/faculty/cse/fac-mayank',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Sameer G Kulkarni',
|
name: 'Sameer G Kulkarni',
|
||||||
|
|
@ -85,6 +92,7 @@ export const FACULTY: FacultyMember[] = [
|
||||||
secondaryDepartment: 'Electrical Engineering',
|
secondaryDepartment: 'Electrical Engineering',
|
||||||
researchAreas: ['Computer Science and Engineering', 'Electrical Engineering'],
|
researchAreas: ['Computer Science and Engineering', 'Electrical Engineering'],
|
||||||
dateOfJoining: '2020-04-03',
|
dateOfJoining: '2020-04-03',
|
||||||
|
homepage: 'https://iitgn.ac.in/faculty/cse/fac-sameer',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Balagopal Komarath',
|
name: 'Balagopal Komarath',
|
||||||
|
|
@ -93,6 +101,7 @@ export const FACULTY: FacultyMember[] = [
|
||||||
primaryDepartment: 'Computer Science and Engineering',
|
primaryDepartment: 'Computer Science and Engineering',
|
||||||
researchAreas: ['Computer Science and Engineering'],
|
researchAreas: ['Computer Science and Engineering'],
|
||||||
dateOfJoining: '2020-12-21',
|
dateOfJoining: '2020-12-21',
|
||||||
|
homepage: 'https://iitgn.ac.in/faculty/cse/fac-balagopal',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Abhishek Bichhawat',
|
name: 'Abhishek Bichhawat',
|
||||||
|
|
@ -101,6 +110,7 @@ export const FACULTY: FacultyMember[] = [
|
||||||
primaryDepartment: 'Computer Science and Engineering',
|
primaryDepartment: 'Computer Science and Engineering',
|
||||||
researchAreas: ['Computer Science and Engineering'],
|
researchAreas: ['Computer Science and Engineering'],
|
||||||
dateOfJoining: '2021-03-30',
|
dateOfJoining: '2021-03-30',
|
||||||
|
homepage: 'https://iitgn.ac.in/faculty/cse/fac-abhishek',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Yogesh Kumar Meena',
|
name: 'Yogesh Kumar Meena',
|
||||||
|
|
@ -113,6 +123,7 @@ export const FACULTY: FacultyMember[] = [
|
||||||
'Cognitive Science',
|
'Cognitive Science',
|
||||||
],
|
],
|
||||||
dateOfJoining: '2023-02-14',
|
dateOfJoining: '2023-02-14',
|
||||||
|
homepage: 'https://iitgn.ac.in/faculty/cse/fac-yogesh',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Shouvick Mondal',
|
name: 'Shouvick Mondal',
|
||||||
|
|
@ -121,14 +132,16 @@ export const FACULTY: FacultyMember[] = [
|
||||||
primaryDepartment: 'Computer Science and Engineering',
|
primaryDepartment: 'Computer Science and Engineering',
|
||||||
researchAreas: ['Computer Science and Engineering'],
|
researchAreas: ['Computer Science and Engineering'],
|
||||||
dateOfJoining: '2023-02-01',
|
dateOfJoining: '2023-02-01',
|
||||||
|
homepage: 'https://iitgn.ac.in/faculty/cse/fac-shouvick',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Manisha Padala',
|
name: 'Manisha Padala',
|
||||||
designation: 'Assistant Professor (Contract)',
|
designation: 'Assistant Professor',
|
||||||
category: 'core',
|
category: 'core',
|
||||||
primaryDepartment: 'Computer Science and Engineering',
|
primaryDepartment: 'Computer Science and Engineering',
|
||||||
researchAreas: [],
|
researchAreas: [],
|
||||||
dateOfJoining: '2024-03-26',
|
dateOfJoining: '2024-03-26',
|
||||||
|
homepage: 'https://iitgn.ac.in/faculty/cse/fac-manisha',
|
||||||
},
|
},
|
||||||
|
|
||||||
// --- Affiliated Faculty ---
|
// --- Affiliated Faculty ---
|
||||||
|
|
@ -144,6 +157,7 @@ export const FACULTY: FacultyMember[] = [
|
||||||
'Artificial Intelligence',
|
'Artificial Intelligence',
|
||||||
],
|
],
|
||||||
dateOfJoining: '2013-05-20',
|
dateOfJoining: '2013-05-20',
|
||||||
|
homepage: 'https://iitgn.ac.in/faculty/ee/fac-shanmuganathan',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Udit Bhatia',
|
name: 'Udit Bhatia',
|
||||||
|
|
@ -153,24 +167,18 @@ export const FACULTY: FacultyMember[] = [
|
||||||
secondaryDepartment: 'Computer Science and Engineering',
|
secondaryDepartment: 'Computer Science and Engineering',
|
||||||
researchAreas: ['Civil Engineering', 'Artificial Intelligence', 'Earth Sciences'],
|
researchAreas: ['Civil Engineering', 'Artificial Intelligence', 'Earth Sciences'],
|
||||||
dateOfJoining: '2019-01-17',
|
dateOfJoining: '2019-01-17',
|
||||||
|
homepage: 'https://iitgn.ac.in/faculty/civil/fac-udit',
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: 'Krishna Prasad Miyapuram',
|
|
||||||
designation: 'Associate Professor',
|
|
||||||
category: 'affiliated',
|
|
||||||
primaryDepartment: 'Cognitive and Brain Sciences',
|
|
||||||
researchAreas: ['Cognitive Science', 'Artificial Intelligence'],
|
|
||||||
dateOfJoining: '2012-10-03',
|
|
||||||
},
|
|
||||||
|
|
||||||
// --- Teaching Faculty ---
|
// --- Teaching Faculty ---
|
||||||
{
|
{
|
||||||
name: 'Jyoti Krishnan',
|
name: 'Jyoti Krishnan',
|
||||||
designation: 'Assistant Teaching Professor',
|
designation: 'Assistant Teaching Professor',
|
||||||
category: 'teaching',
|
category: 'teaching',
|
||||||
primaryDepartment: 'Computer Science and Engineering',
|
primaryDepartment: 'Computer Science and Engineering',
|
||||||
|
affiliations: ['Center for Creative Learning'],
|
||||||
researchAreas: ['Computer Science and Engineering'],
|
researchAreas: ['Computer Science and Engineering'],
|
||||||
dateOfJoining: '2024-03-11',
|
dateOfJoining: '2024-03-11',
|
||||||
|
homepage: 'https://iitgn.ac.in/faculty/cse/fac-jyothi',
|
||||||
},
|
},
|
||||||
|
|
||||||
// --- Practice Faculty ---
|
// --- Practice Faculty ---
|
||||||
|
|
@ -182,6 +190,7 @@ export const FACULTY: FacultyMember[] = [
|
||||||
affiliations: ['Center for Creative Learning'],
|
affiliations: ['Center for Creative Learning'],
|
||||||
researchAreas: [],
|
researchAreas: [],
|
||||||
dateOfJoining: '2025-12-12',
|
dateOfJoining: '2025-12-12',
|
||||||
|
homepage: 'https://iitgn.ac.in/faculty/cse/fac-manu',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Anup Kalbalia',
|
name: 'Anup Kalbalia',
|
||||||
|
|
@ -190,6 +199,7 @@ export const FACULTY: FacultyMember[] = [
|
||||||
primaryDepartment: 'Computer Science and Engineering',
|
primaryDepartment: 'Computer Science and Engineering',
|
||||||
researchAreas: [],
|
researchAreas: [],
|
||||||
dateOfJoining: '2026-02-02',
|
dateOfJoining: '2026-02-02',
|
||||||
|
homepage: 'https://iitgn.ac.in/faculty/cse/fac-anup',
|
||||||
},
|
},
|
||||||
|
|
||||||
// --- Visiting / Guest Faculty ---
|
// --- Visiting / Guest Faculty ---
|
||||||
|
|
@ -200,6 +210,7 @@ export const FACULTY: FacultyMember[] = [
|
||||||
primaryDepartment: 'Computer Science and Engineering',
|
primaryDepartment: 'Computer Science and Engineering',
|
||||||
researchAreas: [],
|
researchAreas: [],
|
||||||
dateOfJoining: '2025-08-04',
|
dateOfJoining: '2025-08-04',
|
||||||
|
homepage: 'https://iitgn.ac.in/faculty/cse/fac-nirmal',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Samit Bhattacharya',
|
name: 'Samit Bhattacharya',
|
||||||
|
|
@ -216,6 +227,7 @@ export const FACULTY: FacultyMember[] = [
|
||||||
primaryDepartment: 'Computer Science and Engineering',
|
primaryDepartment: 'Computer Science and Engineering',
|
||||||
researchAreas: [],
|
researchAreas: [],
|
||||||
dateOfJoining: '2025-10-17',
|
dateOfJoining: '2025-10-17',
|
||||||
|
homepage: 'https://iitgn.ac.in/faculty/guestprof/fac-venkatesh_raman',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Viraj Shah',
|
name: 'Viraj Shah',
|
||||||
|
|
@ -240,6 +252,7 @@ export const FACULTY: FacultyMember[] = [
|
||||||
primaryDepartment: 'Computer Science and Engineering',
|
primaryDepartment: 'Computer Science and Engineering',
|
||||||
researchAreas: [],
|
researchAreas: [],
|
||||||
dateOfJoining: '2025-01-01',
|
dateOfJoining: '2025-01-01',
|
||||||
|
homepage: 'https://iitgn.ac.in/faculty/guestprof/yuvraj_patel',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Subir Verma',
|
name: 'Subir Verma',
|
||||||
|
|
@ -248,6 +261,7 @@ export const FACULTY: FacultyMember[] = [
|
||||||
primaryDepartment: 'Computer Science and Engineering',
|
primaryDepartment: 'Computer Science and Engineering',
|
||||||
researchAreas: [],
|
researchAreas: [],
|
||||||
dateOfJoining: '2025-10-17',
|
dateOfJoining: '2025-10-17',
|
||||||
|
homepage: 'https://iitgn.ac.in/faculty/guestprof/subir_varma',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Ambarish Ojha',
|
name: 'Ambarish Ojha',
|
||||||
|
|
@ -271,7 +285,7 @@ export const CATEGORY_LABELS: Record<FacultyCategory, string> = {
|
||||||
core: 'Core Faculty',
|
core: 'Core Faculty',
|
||||||
affiliated: 'Affiliated Faculty',
|
affiliated: 'Affiliated Faculty',
|
||||||
visiting: 'Visiting Faculty',
|
visiting: 'Visiting Faculty',
|
||||||
practice: 'Faculty of Practice',
|
practice: 'Professors of Practice',
|
||||||
teaching: 'Teaching Faculty',
|
teaching: 'Teaching Faculty',
|
||||||
guest: 'Guest Faculty',
|
guest: 'Guest Faculty',
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -288,6 +288,7 @@ export const departmentNews: DepartmentNewsItem[] = [
|
||||||
status: "confirmed",
|
status: "confirmed",
|
||||||
sourceLabel: "ACM SIGEnergy",
|
sourceLabel: "ACM SIGEnergy",
|
||||||
sourceUrl: "https://energy.acm.org/",
|
sourceUrl: "https://energy.acm.org/",
|
||||||
|
homepage: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "inter-iit-2024-adobe-research",
|
id: "inter-iit-2024-adobe-research",
|
||||||
|
|
@ -400,4 +401,4 @@ export const homepageNewsItems = sortByDateDesc(
|
||||||
|
|
||||||
export const homepageAwardItems = sortByDateDesc(
|
export const homepageAwardItems = sortByDateDesc(
|
||||||
departmentNews.filter((item) => item.homepage && item.category === "award"),
|
departmentNews.filter((item) => item.homepage && item.category === "award"),
|
||||||
).slice(0, 3);
|
).slice(0, 4);
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,127 @@
|
||||||
---
|
---
|
||||||
import PlaceholderPage from '@/components/sections/placeholder-page';
|
|
||||||
import DefaultLayout from '@/layouts/DefaultLayout.astro';
|
import DefaultLayout from '@/layouts/DefaultLayout.astro';
|
||||||
|
|
||||||
|
type Patent = {
|
||||||
|
title: string;
|
||||||
|
faculty: string;
|
||||||
|
status: string;
|
||||||
|
jurisdiction: string;
|
||||||
|
source: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
const patents: Patent[] = [
|
||||||
|
{
|
||||||
|
title: 'System for augmentative and alternative communication for people with severe speech and motor disabilities',
|
||||||
|
faculty: 'Yogesh Kumar Meena',
|
||||||
|
status: 'Indian Patent No. 340756, February 27, 2020',
|
||||||
|
jurisdiction: 'India',
|
||||||
|
source: 'https://iitgn.ac.in/faculty/cogs/fac-yogesh',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Electronic Voting Machine (EVM)',
|
||||||
|
faculty: 'Rajat Moona',
|
||||||
|
status: 'Granted, application no. 201841002146, January 2022',
|
||||||
|
jurisdiction: 'India',
|
||||||
|
source: 'https://iitgn.ac.in/faculty/cse/fac-rajat-moona',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Portable computer printer',
|
||||||
|
faculty: 'Rajat Moona',
|
||||||
|
status: 'Indian Patent No. 212999, December 2007',
|
||||||
|
jurisdiction: 'India',
|
||||||
|
source: 'https://iitgn.ac.in/faculty/cse/fac-rajat-moona',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Compiling memory dereferencing instructions from software to hardware in an electronic design',
|
||||||
|
faculty: 'Rajat Moona',
|
||||||
|
status: 'US Patent No. 7203912, April 2007; Indian Patent No. 242517, August 2010',
|
||||||
|
jurisdiction: 'US / India',
|
||||||
|
source: 'https://iitgn.ac.in/faculty/cse/fac-rajat-moona',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Methods and systems for secured access to devices and systems',
|
||||||
|
faculty: 'Rajat Moona',
|
||||||
|
status: 'US Patent No. 7864987, January 2011',
|
||||||
|
jurisdiction: 'US',
|
||||||
|
source: 'https://iitgn.ac.in/faculty/cse/fac-rajat-moona',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Method and system for using personal devices for authentication and service access at service outlets',
|
||||||
|
faculty: 'Rajat Moona',
|
||||||
|
status: 'US Patent No. 8713655, April 2014',
|
||||||
|
jurisdiction: 'US',
|
||||||
|
source: 'https://iitgn.ac.in/faculty/cse/fac-rajat-moona',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Using personal devices for authentication and service access at offline service outlets',
|
||||||
|
faculty: 'Rajat Moona',
|
||||||
|
status: 'Applied for Indian Patent, application no. 1018/DEL/2008, April 2008',
|
||||||
|
jurisdiction: 'India',
|
||||||
|
source: 'https://iitgn.ac.in/faculty/cse/fac-rajat-moona',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Voter Verified Paper Audit Trail (VVPAT) System',
|
||||||
|
faculty: 'Rajat Moona',
|
||||||
|
status: 'Applied, application no. 201841010850, March 2018',
|
||||||
|
jurisdiction: 'India',
|
||||||
|
source: 'https://iitgn.ac.in/faculty/cse/fac-rajat-moona',
|
||||||
|
},
|
||||||
|
];
|
||||||
---
|
---
|
||||||
|
|
||||||
<DefaultLayout title="Patents" description="Intellectual property and technology transfer.">
|
<DefaultLayout title="Patents" description="Intellectual property and technology transfer.">
|
||||||
<PlaceholderPage
|
<section class="border-b bg-muted/40">
|
||||||
title="Patents"
|
<div class="container py-14 md:py-18">
|
||||||
description="Intellectual property and technology transfer."
|
<p class="text-sm font-medium text-secondary">
|
||||||
/>
|
Department of Computer Science & Engineering, IIT Gandhinagar
|
||||||
|
</p>
|
||||||
|
<div class="mt-5 max-w-3xl">
|
||||||
|
<h1 class="text-3xl font-semibold leading-tight md:text-5xl">
|
||||||
|
Patents
|
||||||
|
</h1>
|
||||||
|
<p class="mt-5 text-lg leading-relaxed text-muted-foreground">
|
||||||
|
Selected publicly listed patents and patent applications involving CSE
|
||||||
|
faculty. Entries link back to the faculty profile pages where the
|
||||||
|
patent information is listed.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="section-padding">
|
||||||
|
<div class="container">
|
||||||
|
<div class="grid gap-4 md:grid-cols-2">
|
||||||
|
{
|
||||||
|
patents.map((patent) => (
|
||||||
|
<article class="rounded-lg border border-border bg-card p-5 shadow-sm">
|
||||||
|
<div class="flex flex-wrap items-center gap-2">
|
||||||
|
<span class="rounded-full bg-secondary/10 px-3 py-1 text-xs font-medium text-secondary">
|
||||||
|
{patent.jurisdiction}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<h2 class="mt-4 text-xl font-semibold">{patent.title}</h2>
|
||||||
|
<dl class="mt-4 space-y-3 text-sm">
|
||||||
|
<div>
|
||||||
|
<dt class="font-medium">Faculty</dt>
|
||||||
|
<dd class="mt-1 text-muted-foreground">{patent.faculty}</dd>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<dt class="font-medium">Status</dt>
|
||||||
|
<dd class="mt-1 text-muted-foreground">{patent.status}</dd>
|
||||||
|
</div>
|
||||||
|
</dl>
|
||||||
|
<a
|
||||||
|
href={patent.source}
|
||||||
|
class="mt-5 inline-flex text-sm font-medium text-primary underline-offset-4 hover:underline"
|
||||||
|
target="_blank"
|
||||||
|
rel="noreferrer"
|
||||||
|
>
|
||||||
|
Source profile ->
|
||||||
|
</a>
|
||||||
|
</article>
|
||||||
|
))
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
</DefaultLayout>
|
</DefaultLayout>
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,197 @@
|
||||||
---
|
---
|
||||||
import PlaceholderPage from '@/components/sections/placeholder-page';
|
|
||||||
import DefaultLayout from '@/layouts/DefaultLayout.astro';
|
import DefaultLayout from '@/layouts/DefaultLayout.astro';
|
||||||
|
|
||||||
|
type Project = {
|
||||||
|
title: string;
|
||||||
|
faculty: string;
|
||||||
|
sponsor: string;
|
||||||
|
category: string;
|
||||||
|
period: string;
|
||||||
|
source: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
const projects: Project[] = [
|
||||||
|
{
|
||||||
|
title: 'Approximate Shortest Paths in Graphs',
|
||||||
|
faculty: 'Manoj D Gupta',
|
||||||
|
sponsor: 'Anusandhan National Research Foundation',
|
||||||
|
category: 'ANRF/SERB',
|
||||||
|
period: 'July-September 2026',
|
||||||
|
source: 'https://iitgn.ac.in/newsletter/projects/q3_2026',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Chitrabhasha: Developing India\'s Largest Dataset and Foundation Models for Multimodal AI',
|
||||||
|
faculty: 'Mayank Singh',
|
||||||
|
sponsor: 'Anusandhan National Research Foundation',
|
||||||
|
category: 'ANRF/SERB',
|
||||||
|
period: 'July-September 2026',
|
||||||
|
source: 'https://iitgn.ac.in/newsletter/projects/q3_2026',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Fair Federated Learning Framework in the Presence of Heterogeneous, Strategic, and Malicious Clients',
|
||||||
|
faculty: 'Manisha Padala',
|
||||||
|
sponsor: 'Anusandhan National Research Foundation (ECRG)',
|
||||||
|
category: 'ANRF/SERB',
|
||||||
|
period: 'April-June 2026',
|
||||||
|
source: 'https://iitgn.ac.in/newsletter/projects/q2_2026',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Understanding and Ensuring the Privacy of User Data',
|
||||||
|
faculty: 'Abhishek Bichhawat',
|
||||||
|
sponsor: 'Science & Engineering Research Board',
|
||||||
|
category: 'ANRF/SERB',
|
||||||
|
period: 'October-December 2023',
|
||||||
|
source: 'https://iitgn.ac.in/newsletter/projects/q4_2023',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Curating and constructing benchmarks and development of ML models for low-level NLP tasks in Hindi-English code-mixing',
|
||||||
|
faculty: 'Mayank Singh',
|
||||||
|
sponsor: 'Science & Engineering Research Board (Core Research Grant)',
|
||||||
|
category: 'ANRF/SERB',
|
||||||
|
period: 'January-March 2023',
|
||||||
|
source: 'https://iitgn.ac.in/newsletter/projects/q1_2023',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Verifying Security Properties of Group Messaging Protocols',
|
||||||
|
faculty: 'Abhishek Bichhawat',
|
||||||
|
sponsor: 'Centre Franco-Indien pour la Promotion de la Recherche Avancee',
|
||||||
|
category: 'International',
|
||||||
|
period: 'October-December 2023',
|
||||||
|
source: 'https://iitgn.ac.in/newsletter/projects/q4_2023',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'A Brain-Computer Interface Driven Mental Fatigue Monitoring System to Improve Stroke Rehabilitation Therapy',
|
||||||
|
faculty: 'Yogesh Kumar Meena',
|
||||||
|
sponsor: 'Department for the Economy, Northern Ireland',
|
||||||
|
category: 'International',
|
||||||
|
period: 'October-December 2024',
|
||||||
|
source: 'https://iitgn.ac.in/newsletter/projects/q4_2024',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Microsoft Research PhD Fellowship for Zeel B Patel',
|
||||||
|
faculty: 'Nipun Batra',
|
||||||
|
sponsor: 'Microsoft Research Lab India Private Ltd',
|
||||||
|
category: 'Industry/Research Lab',
|
||||||
|
period: 'July-September 2024',
|
||||||
|
source: 'https://iitgn.ac.in/newsletter/projects/q3_2024',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Automated Crop mapping using time-series satellite and ancillary data',
|
||||||
|
faculty: 'Nipun Batra',
|
||||||
|
sponsor: 'Indian Space Research Organisation',
|
||||||
|
category: 'Sponsored',
|
||||||
|
period: 'April-June 2026',
|
||||||
|
source: 'https://iitgn.ac.in/newsletter/projects/q2_2026',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Specialized language models deployable on end points with low compute resources',
|
||||||
|
faculty: 'Anirban Dasgupta',
|
||||||
|
sponsor: 'Indian Space Research Organisation',
|
||||||
|
category: 'Sponsored',
|
||||||
|
period: 'July-September 2026',
|
||||||
|
source: 'https://iitgn.ac.in/newsletter/projects/q3_2026',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Development of Quantum Machine Learning Use Cases and Applications',
|
||||||
|
faculty: 'Sameer G Kulkarni',
|
||||||
|
sponsor: 'Ministry of Electronics and Information Technology (MeitY)',
|
||||||
|
category: 'Sponsored',
|
||||||
|
period: 'October-December 2024',
|
||||||
|
source: 'https://iitgn.ac.in/newsletter/projects/q4_2024',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'exploreCSR: Bridging Digital Divides Through Computing',
|
||||||
|
faculty: 'Nipun Batra',
|
||||||
|
sponsor: 'Google',
|
||||||
|
category: 'Sponsored',
|
||||||
|
period: 'October-December 2024',
|
||||||
|
source: 'https://iitgn.ac.in/newsletter/projects/q4_2024',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'How smart roads are different from conventional city roads and have brought ease of mobility to Indian cities?',
|
||||||
|
faculty: 'Mayank Singh',
|
||||||
|
sponsor: 'Ministry of Housing and Urban Affairs',
|
||||||
|
category: 'Consultancy',
|
||||||
|
period: 'January-March 2026',
|
||||||
|
source: 'https://iitgn.ac.in/newsletter/projects/q1_2026',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Development of Large Language Models based Chat plugin for Answering Website-specific Queries',
|
||||||
|
faculty: 'Mayank Singh',
|
||||||
|
sponsor: 'Silver Touch Technologies Limited',
|
||||||
|
category: 'Consultancy',
|
||||||
|
period: 'July-September 2023',
|
||||||
|
source: 'https://iitgn.ac.in/newsletter/projects/q3_2023',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const categories = ['ANRF/SERB', 'International', 'Sponsored', 'Industry/Research Lab', 'Consultancy'];
|
||||||
---
|
---
|
||||||
|
|
||||||
<DefaultLayout title="Projects" description="Funded research projects and collaborations.">
|
<DefaultLayout title="Projects" description="Funded research projects, collaborations, and consultancies.">
|
||||||
<PlaceholderPage
|
<section class="border-b bg-muted/40">
|
||||||
title="Projects"
|
<div class="container py-14 md:py-18">
|
||||||
description="Funded research projects and collaborations."
|
<p class="text-sm font-medium text-secondary">
|
||||||
/>
|
Department of Computer Science & Engineering, IIT Gandhinagar
|
||||||
|
</p>
|
||||||
|
<div class="mt-5 max-w-3xl">
|
||||||
|
<h1 class="text-3xl font-semibold leading-tight md:text-5xl">
|
||||||
|
Projects and consultancies
|
||||||
|
</h1>
|
||||||
|
<p class="mt-5 text-lg leading-relaxed text-muted-foreground">
|
||||||
|
Selected publicly listed sponsored projects, international
|
||||||
|
collaborations, industry engagements, and consultancies involving CSE
|
||||||
|
faculty and affiliated faculty.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="section-padding">
|
||||||
|
<div class="container">
|
||||||
|
<div class="flex flex-wrap gap-2">
|
||||||
|
{
|
||||||
|
categories.map((category) => (
|
||||||
|
<span class="rounded-full border bg-background px-3 py-1 text-sm text-muted-foreground">
|
||||||
|
{category}
|
||||||
|
</span>
|
||||||
|
))
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mt-8 grid gap-4 md:grid-cols-2">
|
||||||
|
{
|
||||||
|
projects.map((project) => (
|
||||||
|
<article class="rounded-lg border border-border bg-card p-5 shadow-sm">
|
||||||
|
<div class="flex flex-wrap items-center gap-2">
|
||||||
|
<span class="rounded-full bg-secondary/10 px-3 py-1 text-xs font-medium text-secondary">
|
||||||
|
{project.category}
|
||||||
|
</span>
|
||||||
|
<span class="text-xs text-muted-foreground">{project.period}</span>
|
||||||
|
</div>
|
||||||
|
<h2 class="mt-4 text-xl font-semibold">{project.title}</h2>
|
||||||
|
<dl class="mt-4 space-y-3 text-sm">
|
||||||
|
<div>
|
||||||
|
<dt class="font-medium">Faculty</dt>
|
||||||
|
<dd class="mt-1 text-muted-foreground">{project.faculty}</dd>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<dt class="font-medium">Agency / partner</dt>
|
||||||
|
<dd class="mt-1 text-muted-foreground">{project.sponsor}</dd>
|
||||||
|
</div>
|
||||||
|
</dl>
|
||||||
|
<a
|
||||||
|
href={project.source}
|
||||||
|
class="mt-5 inline-flex text-sm font-medium text-primary underline-offset-4 hover:underline"
|
||||||
|
target="_blank"
|
||||||
|
rel="noreferrer"
|
||||||
|
>
|
||||||
|
Source listing ->
|
||||||
|
</a>
|
||||||
|
</article>
|
||||||
|
))
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
</DefaultLayout>
|
</DefaultLayout>
|
||||||
|
|
|
||||||
|
|
@ -37,14 +37,26 @@ const researchOutcomes = [
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const featuredPublicTalk = {
|
||||||
|
title: "Alan M. Turing: Ushering the Age of Computational Thinking",
|
||||||
|
speaker: "Anirban Dasgupta",
|
||||||
|
date: "15 May 2020",
|
||||||
|
summary:
|
||||||
|
"A public IIT Gandhinagar talk on Alan Turing and the ideas that shaped modern computational thinking.",
|
||||||
|
sourceLabel: "Watch on YouTube",
|
||||||
|
sourceUrl:
|
||||||
|
"https://www.youtube.com/watch?v=jvvPQbGUQf8&list=PLRfu94TCePTsl4ubkOe4igPL67BhJ-nOV&index=9",
|
||||||
|
embedUrl: "https://www.youtube.com/embed/jvvPQbGUQf8",
|
||||||
|
};
|
||||||
|
|
||||||
const outreachHighlights = [
|
const outreachHighlights = [
|
||||||
{
|
{
|
||||||
title: "Creative Mathematical Sciences Communication",
|
title: "Google exploreCSR Award",
|
||||||
label: "Keynote / plenary",
|
label: "Broadening participation",
|
||||||
summary:
|
summary:
|
||||||
"Neeldhara Misra is listed among the plenary speakers for CMSC 2026, a conference centered on communicating mathematical ideas fundamental to computer science.",
|
"Nipun Batra, Neeldhara Misra, and Abhishek Bichhawat received the Google exploreCSR Award 2024.",
|
||||||
sourceLabel: "CMSC 2026",
|
sourceLabel: "CSE news",
|
||||||
sourceUrl: "https://cmsc2026.github.io/",
|
sourceUrl: "https://cs.iitgn.ac.in/news",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "INYAS membership",
|
title: "INYAS membership",
|
||||||
|
|
@ -54,14 +66,6 @@ const outreachHighlights = [
|
||||||
sourceLabel: "IITGN Connections",
|
sourceLabel: "IITGN Connections",
|
||||||
sourceUrl: "https://iitgn.ac.in/assets/pdfs/connections/v15i3_4.pdf",
|
sourceUrl: "https://iitgn.ac.in/assets/pdfs/connections/v15i3_4.pdf",
|
||||||
},
|
},
|
||||||
{
|
|
||||||
title: "Google exploreCSR Award",
|
|
||||||
label: "Broadening participation",
|
|
||||||
summary:
|
|
||||||
"Nipun Batra, Neeldhara Misra, and Abhishek Bichhawat received the Google exploreCSR Award 2024.",
|
|
||||||
sourceLabel: "CSE news",
|
|
||||||
sourceUrl: "https://cs.iitgn.ac.in/news",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
title: "NCERT CSE textbook committee",
|
title: "NCERT CSE textbook committee",
|
||||||
label: "School curriculum",
|
label: "School curriculum",
|
||||||
|
|
@ -78,6 +82,14 @@ const outreachHighlights = [
|
||||||
sourceLabel: "NPTEL School Connect",
|
sourceLabel: "NPTEL School Connect",
|
||||||
sourceUrl: "https://code.iitm.ac.in/schoolconnect/course-details?course=mc",
|
sourceUrl: "https://code.iitm.ac.in/schoolconnect/course-details?course=mc",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "Creative Mathematical Sciences Communication",
|
||||||
|
label: "Keynote / plenary",
|
||||||
|
summary:
|
||||||
|
"Neeldhara Misra is listed among the plenary speakers for CMSC 2026, a conference centered on communicating mathematical ideas fundamental to computer science.",
|
||||||
|
sourceLabel: "CMSC 2026",
|
||||||
|
sourceUrl: "https://cmsc2026.github.io/",
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const publicPrograms = [
|
const publicPrograms = [
|
||||||
|
|
@ -141,13 +153,14 @@ const mediaItems = [
|
||||||
"https://www.indiatoday.in/education-today/featurephilia/story/iit-gandhinagars-self-reliant-india-story-begins-in-classrooms-2869886-2026-02-18",
|
"https://www.indiatoday.in/education-today/featurephilia/story/iit-gandhinagars-self-reliant-india-story-begins-in-classrooms-2869886-2026-02-18",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Computational sustainability and energy analytics",
|
title: "TEDxConversations with Nipun Batra",
|
||||||
person: "Nipun Batra",
|
person: "Nipun Batra",
|
||||||
type: "Public profile",
|
type: "Interview",
|
||||||
summary:
|
summary:
|
||||||
"Public profiles describe Sustainability Lab work on AI for energy, buildings, air quality, and health sensing.",
|
"A TEDxIITGandhinagar conversation on research in AI, sensing, air quality, health, IoT, smart homes, and sustainability.",
|
||||||
sourceLabel: "Faculty profile",
|
sourceLabel: "TEDxIITGandhinagar",
|
||||||
sourceUrl: "https://nipunbatra.github.io/",
|
sourceUrl:
|
||||||
|
"https://www.linkedin.com/posts/nipunbatra0_prof-nipun-batra-tedxconversations-s2-activity-7259027715217874944-CV-R",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "AI Resilience and Command Centre",
|
title: "AI Resilience and Command Centre",
|
||||||
|
|
@ -159,15 +172,6 @@ const mediaItems = [
|
||||||
sourceUrl:
|
sourceUrl:
|
||||||
"https://news.iitgn.ac.in/iit-gandhinagar-launches-ai-resilience-and-command-centre-for-data-driven-climate-risk-management/",
|
"https://news.iitgn.ac.in/iit-gandhinagar-launches-ai-resilience-and-command-centre-for-data-driven-climate-risk-management/",
|
||||||
},
|
},
|
||||||
{
|
|
||||||
title: "5G and network-security capacity building",
|
|
||||||
person: "Sameer G. Kulkarni",
|
|
||||||
type: "Public workshop",
|
|
||||||
summary:
|
|
||||||
"External workshop listings show public-facing engagement around 5G, programmable networks, and security practice.",
|
|
||||||
sourceLabel: "IIT Bombay workshop",
|
|
||||||
sourceUrl: "https://www.ieor.iitb.ac.in/mlions/5Gworkshop2024/",
|
|
||||||
},
|
|
||||||
];
|
];
|
||||||
|
|
||||||
const educationEventIds = new Set([
|
const educationEventIds = new Set([
|
||||||
|
|
@ -216,6 +220,47 @@ const educationCategoryCounts = ["school", "course", "workshop", "conference"]
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section class="border-y bg-background py-8 md:py-10">
|
||||||
|
<div class="container">
|
||||||
|
<div class="grid overflow-hidden rounded-lg border bg-muted/20 md:grid-cols-[1.15fr_0.85fr]">
|
||||||
|
<div class="aspect-video bg-black md:aspect-auto md:min-h-80">
|
||||||
|
<iframe
|
||||||
|
class="size-full"
|
||||||
|
src={featuredPublicTalk.embedUrl}
|
||||||
|
title={featuredPublicTalk.title}
|
||||||
|
loading="lazy"
|
||||||
|
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||||
|
allowfullscreen
|
||||||
|
></iframe>
|
||||||
|
</div>
|
||||||
|
<div class="p-6 md:p-8">
|
||||||
|
<span class="rounded-full border border-secondary/20 bg-secondary/10 px-2 py-0.5 text-xs font-medium uppercase tracking-wider text-secondary">
|
||||||
|
Featured public talk
|
||||||
|
</span>
|
||||||
|
<h2 class="mt-4 text-2xl leading-tight md:text-3xl">
|
||||||
|
{featuredPublicTalk.title}
|
||||||
|
</h2>
|
||||||
|
<p class="text-muted-foreground mt-3">
|
||||||
|
{featuredPublicTalk.summary}
|
||||||
|
</p>
|
||||||
|
<p class="text-muted-foreground mt-4 text-sm">
|
||||||
|
{featuredPublicTalk.speaker} · {featuredPublicTalk.date}
|
||||||
|
</p>
|
||||||
|
<a
|
||||||
|
href={featuredPublicTalk.sourceUrl}
|
||||||
|
class="group mt-5 inline-flex items-center gap-2 text-sm font-medium text-secondary"
|
||||||
|
>
|
||||||
|
{featuredPublicTalk.sourceLabel}
|
||||||
|
<ArrowRight
|
||||||
|
className="size-4 transition group-hover:translate-x-1"
|
||||||
|
aria-hidden="true"
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section class="border-y bg-background py-8 md:py-10">
|
<section class="border-y bg-background py-8 md:py-10">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<a
|
<a
|
||||||
|
|
|
||||||
|
|
@ -234,55 +234,93 @@ const seminarTypeStyles: Record<SeminarType, string> = {
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
{(item.abstract || item.summary || item.bio) && (
|
{(item.abstract || item.summary || item.bio) && (
|
||||||
<div class="mt-auto flex justify-end gap-2 pt-4">
|
<>
|
||||||
{(item.abstract || item.summary) && (
|
<div class="mt-auto flex justify-end gap-2 pt-4 group-data-[layout=list]:hidden">
|
||||||
<>
|
{(item.abstract || item.summary) && (
|
||||||
<button
|
<>
|
||||||
type="button"
|
<button
|
||||||
class="inline-flex size-8 items-center justify-center rounded-full border bg-background text-muted-foreground transition hover:border-secondary hover:text-foreground"
|
type="button"
|
||||||
data-modal-trigger
|
class="inline-flex size-8 items-center justify-center rounded-full border bg-background text-muted-foreground transition hover:border-secondary hover:text-foreground"
|
||||||
data-modal-kind={
|
data-modal-trigger
|
||||||
item.abstract ? "Abstract" : "Overview"
|
data-modal-kind={
|
||||||
}
|
item.abstract ? "Abstract" : "Overview"
|
||||||
data-modal-title={item.title}
|
}
|
||||||
data-modal-subtitle={`${item.speaker}${item.affiliation ? ` (${item.affiliation})` : ""}`}
|
data-modal-title={item.title}
|
||||||
data-modal-target={`${item.id}-abstract`}
|
data-modal-subtitle={`${item.speaker}${item.affiliation ? ` (${item.affiliation})` : ""}`}
|
||||||
aria-label={`${item.abstract ? "Read abstract" : "Read overview"} for ${item.title}`}
|
data-modal-target={`${item.id}-abstract`}
|
||||||
title={item.abstract ? "Abstract" : "Overview"}
|
aria-label={`${item.abstract ? "Read abstract" : "Read overview"} for ${item.title}`}
|
||||||
>
|
title={item.abstract ? "Abstract" : "Overview"}
|
||||||
<FileText className="size-4" aria-hidden="true" />
|
>
|
||||||
</button>
|
<FileText className="size-4" aria-hidden="true" />
|
||||||
<div id={`${item.id}-abstract`} hidden>
|
</button>
|
||||||
{(item.abstract ?? item.summary)
|
<div id={`${item.id}-abstract`} hidden>
|
||||||
?.split("\n\n")
|
{(item.abstract ?? item.summary)
|
||||||
.map((paragraph) => (
|
?.split("\n\n")
|
||||||
<p>{paragraph}</p>
|
.map((paragraph) => (
|
||||||
))}
|
<p>{paragraph}</p>
|
||||||
</div>
|
))}
|
||||||
</>
|
</div>
|
||||||
)}
|
</>
|
||||||
|
)}
|
||||||
|
|
||||||
{item.bio && (
|
{item.bio && (
|
||||||
<>
|
<>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
class="inline-flex size-8 items-center justify-center rounded-full border bg-background text-muted-foreground transition hover:border-secondary hover:text-foreground"
|
class="inline-flex size-8 items-center justify-center rounded-full border bg-background text-muted-foreground transition hover:border-secondary hover:text-foreground"
|
||||||
data-modal-trigger
|
data-modal-trigger
|
||||||
data-modal-kind="Speaker Bio"
|
data-modal-kind="Speaker Bio"
|
||||||
data-modal-title={item.title}
|
data-modal-title={item.title}
|
||||||
data-modal-subtitle={`${item.speaker}${item.affiliation ? ` (${item.affiliation})` : ""}`}
|
data-modal-subtitle={`${item.speaker}${item.affiliation ? ` (${item.affiliation})` : ""}`}
|
||||||
data-modal-target={`${item.id}-bio`}
|
data-modal-target={`${item.id}-bio`}
|
||||||
aria-label={`Read speaker bio for ${item.title}`}
|
aria-label={`Read speaker bio for ${item.title}`}
|
||||||
title="Speaker Bio"
|
title="Speaker Bio"
|
||||||
>
|
>
|
||||||
<UserRound className="size-4" aria-hidden="true" />
|
<UserRound className="size-4" aria-hidden="true" />
|
||||||
</button>
|
</button>
|
||||||
<div id={`${item.id}-bio`} hidden>
|
<div id={`${item.id}-bio`} hidden>
|
||||||
<p>{item.bio}</p>
|
<p>{item.bio}</p>
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="mt-4 hidden gap-3 border-t pt-4 group-data-[layout=list]:grid md:group-data-[layout=list]:grid-cols-2">
|
||||||
|
{(item.abstract || item.summary) && (
|
||||||
|
<details class="rounded-md border bg-muted/20">
|
||||||
|
<summary class="flex cursor-pointer list-none items-center gap-2 px-3 py-2 text-sm font-medium [&::-webkit-details-marker]:hidden">
|
||||||
|
<FileText
|
||||||
|
className="text-muted-foreground size-4"
|
||||||
|
aria-hidden="true"
|
||||||
|
/>
|
||||||
|
{item.abstract ? "Abstract" : "Overview"}
|
||||||
|
</summary>
|
||||||
|
<div class="text-muted-foreground space-y-3 px-3 pb-3 text-sm leading-relaxed">
|
||||||
|
{(item.abstract ?? item.summary)
|
||||||
|
?.split("\n\n")
|
||||||
|
.map((paragraph) => (
|
||||||
|
<p>{paragraph}</p>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</details>
|
||||||
|
)}
|
||||||
|
|
||||||
|
{item.bio && (
|
||||||
|
<details class="rounded-md border bg-muted/20">
|
||||||
|
<summary class="flex cursor-pointer list-none items-center gap-2 px-3 py-2 text-sm font-medium [&::-webkit-details-marker]:hidden">
|
||||||
|
<UserRound
|
||||||
|
className="text-muted-foreground size-4"
|
||||||
|
aria-hidden="true"
|
||||||
|
/>
|
||||||
|
Speaker Bio
|
||||||
|
</summary>
|
||||||
|
<div class="text-muted-foreground px-3 pb-3 text-sm leading-relaxed">
|
||||||
|
<p>{item.bio}</p>
|
||||||
|
</div>
|
||||||
|
</details>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
)}
|
)}
|
||||||
</article>
|
</article>
|
||||||
))
|
))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue