|
| 1 | +<script setup lang="ts"> |
| 2 | +import AnimatedSection from '@/components/ui/AnimatedSection.vue' |
| 3 | +import BaseCard from '@/components/ui/BaseCard.vue' |
| 4 | +import Breadcrumbs from '@/components/content/Breadcrumbs.vue' |
| 5 | +
|
| 6 | +interface Contributor { |
| 7 | + name: string |
| 8 | + role: string |
| 9 | + affiliation: string |
| 10 | + highlights: string[] |
| 11 | + publications?: { label: string; url: string }[] |
| 12 | +} |
| 13 | +
|
| 14 | +interface ContributorGroup { |
| 15 | + category: string |
| 16 | + description: string |
| 17 | + people: Contributor[] |
| 18 | +} |
| 19 | +
|
| 20 | +const contributors: ContributorGroup[] = [ |
| 21 | + { |
| 22 | + category: 'Standards Leadership', |
| 23 | + description: 'Led the development, editorial work, and strategic direction of AP 210 across all four editions.', |
| 24 | + people: [ |
| 25 | + { |
| 26 | + name: 'Thomas Thurman', |
| 27 | + role: 'AP 210 Project Leader', |
| 28 | + affiliation: 'PDES Inc. / Rockwell Collins', |
| 29 | + highlights: [ |
| 30 | + 'Led editorial development of all four editions of ISO 10303-210', |
| 31 | + 'Authored the ARM and MIM EXPRESS schemas (38 modules)', |
| 32 | + 'Created the AP 210 Training CD (July 2003)', |
| 33 | + 'Directed the AP 210 Rules Model design process', |
| 34 | + 'Authored multiple PDES test cases and annotated STEP examples', |
| 35 | + ], |
| 36 | + publications: [ |
| 37 | + { label: 'NIST AMS 100-51', url: 'https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=935394' }, |
| 38 | + { label: 'Thermal Resistor Network (GCR 15-990)', url: 'https://www.nist.gov/publications/representation-thermal-resistor-network-model-packaged-component-step-ap210-edition-2' }, |
| 39 | + { label: 'PLM Requirements', url: 'https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=822191' }, |
| 40 | + { label: 'MBSE (INCOSE)', url: 'https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=824653' }, |
| 41 | + { label: 'Multi-Domain Component Models (IR 7717)', url: 'https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=906355' }, |
| 42 | + ], |
| 43 | + }, |
| 44 | + { |
| 45 | + name: 'Allison Barnard Feeney', |
| 46 | + role: 'NIST Research Leader', |
| 47 | + affiliation: 'National Institute of Standards and Technology', |
| 48 | + highlights: [ |
| 49 | + 'Led NIST research on product manufacturing information (PMI) in STEP', |
| 50 | + 'Co-authored research on migrating PMI models to a common core', |
| 51 | + 'Advanced standards methodology for STEP interoperability', |
| 52 | + 'Guided NIST research partnerships with PDES Inc. and industry', |
| 53 | + ], |
| 54 | + publications: [ |
| 55 | + { label: 'NIST AMS 100-51', url: 'https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=935394' }, |
| 56 | + ], |
| 57 | + }, |
| 58 | + { |
| 59 | + name: 'Kevin Brady', |
| 60 | + role: 'NIST Strategic Direction', |
| 61 | + affiliation: 'National Institute of Standards and Technology', |
| 62 | + highlights: [ |
| 63 | + 'Provided strategic direction for STEP standards at NIST', |
| 64 | + 'Co-authored AP210 Ed2 Concept of Operations (NISTIR 7677)', |
| 65 | + 'Co-authored thermal resistor network model research (GCR 15-990)', |
| 66 | + 'Directed NIST programs supporting STEP implementation', |
| 67 | + ], |
| 68 | + publications: [ |
| 69 | + { label: 'Concept of Operations (IR 7677)', url: 'https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=905123' }, |
| 70 | + { label: 'Thermal Resistor Network (GCR 15-990)', url: 'https://www.nist.gov/publications/representation-thermal-resistor-network-model-packaged-component-step-ap210-edition-2' }, |
| 71 | + ], |
| 72 | + }, |
| 73 | + ], |
| 74 | + }, |
| 75 | + { |
| 76 | + category: 'Research & Engineering', |
| 77 | + description: 'Developed reference implementations, analytical models, and research foundations for AP 210.', |
| 78 | + people: [ |
| 79 | + { |
| 80 | + name: 'Peter Denno', |
| 81 | + role: 'Computer Scientist', |
| 82 | + affiliation: 'National Institute of Standards and Technology', |
| 83 | + highlights: [ |
| 84 | + 'Co-authored PLM requirements analysis for product lifecycle management', |
| 85 | + 'Co-authored MBSE research connecting AP210 with systems engineering', |
| 86 | + 'Developed process-aware integration schema concepts', |
| 87 | + 'Contributed to EXPRESS-X mapping language (ISO 10303-14)', |
| 88 | + 'Advanced AP233/SysML integration with STEP data', |
| 89 | + ], |
| 90 | + publications: [ |
| 91 | + { label: 'PLM Requirements', url: 'https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=822191' }, |
| 92 | + { label: 'MBSE (INCOSE)', url: 'https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=824653' }, |
| 93 | + ], |
| 94 | + }, |
| 95 | + { |
| 96 | + name: 'Michael Keenan', |
| 97 | + role: 'Research Engineer', |
| 98 | + affiliation: 'NIST / Boeing', |
| 99 | + highlights: [ |
| 100 | + 'Developed the NIST JSDAI reference implementation for AP210', |
| 101 | + 'Built the MIMqueries interface and model traversal APIs', |
| 102 | + 'Created validation tools and test infrastructure', |
| 103 | + 'Contributed to test case development for PDES Test Cases Project', |
| 104 | + ], |
| 105 | + }, |
| 106 | + { |
| 107 | + name: 'Jamie Stori', |
| 108 | + role: 'AP210 Conceptual Framework', |
| 109 | + affiliation: 'SFM Technology, Inc.', |
| 110 | + highlights: [ |
| 111 | + 'Authored AP210 Edition 2 Concept of Operations (NISTIR 7677)', |
| 112 | + 'Co-authored thermal resistor network model for packaged components', |
| 113 | + 'Defined the operational framework for the standard', |
| 114 | + ], |
| 115 | + publications: [ |
| 116 | + { label: 'Concept of Operations (IR 7677)', url: 'https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=905123' }, |
| 117 | + { label: 'Thermal Resistor Network (GCR 15-990)', url: 'https://www.nist.gov/publications/representation-thermal-resistor-network-model-packaged-component-step-ap210-edition-2' }, |
| 118 | + ], |
| 119 | + }, |
| 120 | + ], |
| 121 | + }, |
| 122 | + { |
| 123 | + category: 'Industry & Systems Engineering', |
| 124 | + description: 'Applied AP 210 in real-world engineering environments and advanced model-based systems engineering.', |
| 125 | + people: [ |
| 126 | + { |
| 127 | + name: 'John Mettenburg', |
| 128 | + role: 'Principal Systems Engineer', |
| 129 | + affiliation: 'Rockwell Collins (now Collins Aerospace)', |
| 130 | + highlights: [ |
| 131 | + 'Co-authored MBSE research demonstrating AP210 in systems engineering workflows', |
| 132 | + 'Bridged AP210 data standards with MBSE practices at Rockwell Collins', |
| 133 | + 'Contributed to practical validation of AP210 in aerospace environments', |
| 134 | + ], |
| 135 | + publications: [ |
| 136 | + { label: 'MBSE (INCOSE)', url: 'https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=824653' }, |
| 137 | + ], |
| 138 | + }, |
| 139 | + { |
| 140 | + name: 'Dwayne Hardy', |
| 141 | + role: 'Systems Engineer', |
| 142 | + affiliation: 'American Systems', |
| 143 | + highlights: [ |
| 144 | + 'Co-authored MBSE research connecting STEP standards with systems engineering', |
| 145 | + 'Contributed to analysis of AP210 support for SE data integration', |
| 146 | + ], |
| 147 | + publications: [ |
| 148 | + { label: 'MBSE (INCOSE)', url: 'https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=824653' }, |
| 149 | + ], |
| 150 | + }, |
| 151 | + { |
| 152 | + name: 'Gregory L. Smith', |
| 153 | + role: 'Design Rule Formalism', |
| 154 | + affiliation: 'The Boeing Company', |
| 155 | + highlights: [ |
| 156 | + 'Chaired AP210 design rule formalism discussions with Thurman and Bajaj', |
| 157 | + 'Advanced constraint representation for electronic assembly design rules', |
| 158 | + ], |
| 159 | + }, |
| 160 | + { |
| 161 | + name: 'Manas Bajaj', |
| 162 | + role: 'DFM Research', |
| 163 | + affiliation: 'Georgia Tech', |
| 164 | + highlights: [ |
| 165 | + 'Contributed to design-for-manufacturability frameworks via AP210', |
| 166 | + 'Participated in design rule formalism discussions', |
| 167 | + ], |
| 168 | + }, |
| 169 | + ], |
| 170 | + }, |
| 171 | +] |
| 172 | +
|
| 173 | +const testContributors = [ |
| 174 | + { name: 'James F. Adams', affiliation: 'The Boeing Company', note: 'PDES-181 Complex Multi-layer PCA' }, |
| 175 | + { name: 'Steve Waterbury', affiliation: 'NASA', note: 'Test cases and PLM research' }, |
| 176 | + { name: 'Mike Benda', affiliation: '', note: 'Recommended practices' }, |
| 177 | + { name: 'Jim Evans', affiliation: '', note: 'PDES test cases' }, |
| 178 | + { name: 'Kevin Cline', affiliation: '', note: 'PDES test cases' }, |
| 179 | + { name: 'Craig Lanning', affiliation: '', note: 'PDES test cases' }, |
| 180 | + { name: 'Paul Monson', affiliation: '', note: 'PDES test cases' }, |
| 181 | +] |
| 182 | +
|
| 183 | +const organizations = [ |
| 184 | + { |
| 185 | + name: 'NIST', |
| 186 | + full: 'National Institute of Standards and Technology', |
| 187 | + url: 'https://www.nist.gov', |
| 188 | + contributions: [ |
| 189 | + 'CFD analysis for thermal management', |
| 190 | + 'Geometric Dimensioning and Tolerancing (GDT) for connectors and packages', |
| 191 | + 'SPICE integration with AP210 mechanical design models', |
| 192 | + 'JSDAI reference implementation and validation test cases', |
| 193 | + ], |
| 194 | + }, |
| 195 | + { |
| 196 | + name: 'PDES Inc.', |
| 197 | + full: 'PDES Inc.', |
| 198 | + url: 'https://pdesinc.org', |
| 199 | + contributions: [ |
| 200 | + 'AP210 Viewer development and testing', |
| 201 | + 'IDF-to-AP210 conversion tools', |
| 202 | + 'Training materials and educational resources', |
| 203 | + 'Standards validation and test case development', |
| 204 | + ], |
| 205 | + }, |
| 206 | + { |
| 207 | + name: 'ISO TC 184/SC 4', |
| 208 | + full: 'ISO Technical Committee 184, Subcommittee 4', |
| 209 | + url: '', |
| 210 | + contributions: [ |
| 211 | + 'Governs the entire STEP (ISO 10303) family of standards', |
| 212 | + 'Develops and maintains AP 210 under the Industrial data subcommittee', |
| 213 | + ], |
| 214 | + }, |
| 215 | +] |
| 216 | +
|
| 217 | +const publications = [ |
| 218 | + { id: 'NIST AMS 100-51', title: 'On Migrating ISO 10303 PMI Models to a Common Core', authors: 'Feeney & Thurman', url: 'https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=935394' }, |
| 219 | + { id: 'NIST AMS 300-12', title: 'Research Results and Recommendations for Universally Unique Identifiers', authors: 'NIST', url: 'https://nvlpubs.nist.gov/nistpubs/ams/NIST.AMS.300-12.pdf' }, |
| 220 | + { id: 'NIST GCR 15-990', title: 'Representation of Thermal Resistor Network Model in STEP AP210 Ed2', authors: 'Stori, Brady & Thurman', url: 'https://www.nist.gov/publications/representation-thermal-resistor-network-model-packaged-component-step-ap210-edition-2' }, |
| 221 | + { id: 'NIST GCR 15-991', title: 'Extensions of Recommended Practices for GD&T in STEP-AP210', authors: 'NIST', url: 'https://www.nist.gov/publications/extensions-recommended-practices-gdt-step-ap210-context-packaged-electronic-components' }, |
| 222 | + { id: 'NIST IR 6991', title: 'Thermal Resistor Network Model for a Packaged Component for Use in STEP AP210', authors: 'NIST', url: 'https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=903903' }, |
| 223 | + { id: 'NIST IR 7648', title: 'NIST IR 7648', authors: 'NIST', url: 'https://doi.org/10.6028/NIST.IR.7648' }, |
| 224 | + { id: 'PLM Requirements', title: 'Requirements on Information Technology for Product Lifecycle Management', authors: 'Denno & Thurman', url: 'https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=822191' }, |
| 225 | + { id: 'INCOSE MBSE', title: 'On Enabling a Model-Based Systems Engineering Discipline', authors: 'Denno, Thurman, Mettenburg & Hardy', url: 'https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=824653' }, |
| 226 | + { id: 'NIST IR 7677', title: 'AP210 Edition 2 Concept of Operations', authors: 'Stori & Brady', url: 'https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=905123' }, |
| 227 | + { id: 'NIST IR 7717', title: 'Use Cases for Management and Maintenance of Multi-Domain AP210 Component Models', authors: 'NIST', url: 'https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=906355' }, |
| 228 | +] |
| 229 | +</script> |
| 230 | + |
| 231 | +<template> |
| 232 | + <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12"> |
| 233 | + <Breadcrumbs /> |
| 234 | + |
| 235 | + <!-- Header --> |
| 236 | + <AnimatedSection> |
| 237 | + <div class="text-center mb-16"> |
| 238 | + <p class="font-mono text-xs tracking-[0.2em] uppercase text-elf-blue dark:text-elf-blue mb-3">People & Organizations</p> |
| 239 | + <h1 class="text-3xl sm:text-4xl font-serif font-bold text-gray-900 dark:text-white">Team & Acknowledgments</h1> |
| 240 | + <p class="mt-4 text-gray-500 dark:text-gray-400 max-w-2xl mx-auto leading-relaxed"> |
| 241 | + AP 210 is the product of decades of collaborative work by researchers, engineers, and standards professionals |
| 242 | + from industry, government, and academia. |
| 243 | + </p> |
| 244 | + </div> |
| 245 | + </AnimatedSection> |
| 246 | + |
| 247 | + <!-- Key Contributors — grouped by category --> |
| 248 | + <section v-for="(group, gi) in contributors" :key="group.category" class="mb-20"> |
| 249 | + <AnimatedSection> |
| 250 | + <div class="mb-8"> |
| 251 | + <h2 class="text-2xl font-serif font-bold text-gray-900 dark:text-white">{{ group.category }}</h2> |
| 252 | + <p class="mt-2 text-sm text-gray-500 dark:text-gray-400 max-w-2xl">{{ group.description }}</p> |
| 253 | + </div> |
| 254 | + </AnimatedSection> |
| 255 | + |
| 256 | + <div class="grid md:grid-cols-2 lg:grid-cols-3 gap-5"> |
| 257 | + <AnimatedSection v-for="(person, pi) in group.people" :key="person.name" :style="{ transitionDelay: `${(gi * 3 + pi) * 60}ms` }"> |
| 258 | + <BaseCard :padding="'lg'" :hover="false"> |
| 259 | + <div class="flex items-start gap-4 mb-4"> |
| 260 | + <div class="w-12 h-12 rounded-full bg-elf-blue/10 dark:bg-elf-blue/15 flex items-center justify-center shrink-0"> |
| 261 | + <span class="text-lg font-serif font-bold text-elf-blue dark:text-elf-blue">{{ person.name.split(' ').map(w => w[0]).join('') }}</span> |
| 262 | + </div> |
| 263 | + <div class="min-w-0"> |
| 264 | + <h3 class="font-serif font-bold text-gray-900 dark:text-white text-lg leading-tight">{{ person.name }}</h3> |
| 265 | + <p class="text-sm text-elf-blue dark:text-elf-blue font-medium">{{ person.role }}</p> |
| 266 | + <p class="text-xs text-gray-400 dark:text-gray-500 mt-0.5">{{ person.affiliation }}</p> |
| 267 | + </div> |
| 268 | + </div> |
| 269 | + |
| 270 | + <ul class="space-y-1.5 mb-4"> |
| 271 | + <li v-for="h in person.highlights" :key="h" class="text-sm text-gray-600 dark:text-gray-300 flex items-start gap-2 leading-snug"> |
| 272 | + <span class="w-1.5 h-1.5 rounded-full bg-elf-blue/40 dark:bg-elf-blue/30 shrink-0 mt-1.5" /> |
| 273 | + {{ h }} |
| 274 | + </li> |
| 275 | + </ul> |
| 276 | + |
| 277 | + <div v-if="person.publications?.length" class="pt-3 border-t border-gray-100 dark:border-gray-700/40"> |
| 278 | + <p class="text-[0.65rem] font-mono uppercase tracking-wider text-gray-400 dark:text-gray-500 mb-2">Publications</p> |
| 279 | + <div class="flex flex-wrap gap-1.5"> |
| 280 | + <a |
| 281 | + v-for="pub in person.publications" |
| 282 | + :key="pub.label" |
| 283 | + :href="pub.url" |
| 284 | + target="_blank" |
| 285 | + rel="noopener" |
| 286 | + class="inline-flex items-center text-xs px-2 py-1 rounded-md bg-gray-50 dark:bg-gray-800/60 text-gray-600 dark:text-gray-400 hover:text-elf-blue dark:hover:text-elf-blue hover:bg-elf-blue/5 dark:hover:bg-elf-blue/10 transition-colors" |
| 287 | + > |
| 288 | + {{ pub.label }} |
| 289 | + <svg class="w-3 h-3 ml-1 opacity-50" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/></svg> |
| 290 | + </a> |
| 291 | + </div> |
| 292 | + </div> |
| 293 | + </BaseCard> |
| 294 | + </AnimatedSection> |
| 295 | + </div> |
| 296 | + </section> |
| 297 | + |
| 298 | + <!-- Test Case & Training Contributors --> |
| 299 | + <section class="mb-20"> |
| 300 | + <AnimatedSection> |
| 301 | + <div class="mb-8"> |
| 302 | + <h2 class="text-2xl font-serif font-bold text-gray-900 dark:text-white">Test Cases & Training</h2> |
| 303 | + <p class="mt-2 text-sm text-gray-500 dark:text-gray-400 max-w-2xl">Contributors to PDES test cases, recommended practices, and training materials.</p> |
| 304 | + </div> |
| 305 | + </AnimatedSection> |
| 306 | + |
| 307 | + <AnimatedSection> |
| 308 | + <div class="grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-3"> |
| 309 | + <div |
| 310 | + v-for="tc in testContributors" |
| 311 | + :key="tc.name" |
| 312 | + class="rounded-xl border border-gray-200/80 dark:border-gray-700/60 bg-white dark:bg-navy-light p-4" |
| 313 | + > |
| 314 | + <p class="font-semibold text-gray-900 dark:text-white text-sm">{{ tc.name }}</p> |
| 315 | + <p v-if="tc.affiliation" class="text-xs text-gray-400 dark:text-gray-500 mt-0.5">{{ tc.affiliation }}</p> |
| 316 | + <p class="text-xs text-gray-500 dark:text-gray-400 mt-1">{{ tc.note }}</p> |
| 317 | + </div> |
| 318 | + </div> |
| 319 | + </AnimatedSection> |
| 320 | + </section> |
| 321 | + |
| 322 | + <!-- Contributing Organizations --> |
| 323 | + <section class="mb-20"> |
| 324 | + <AnimatedSection> |
| 325 | + <div class="mb-8"> |
| 326 | + <h2 class="text-2xl font-serif font-bold text-gray-900 dark:text-white">Contributing Organizations</h2> |
| 327 | + </div> |
| 328 | + </AnimatedSection> |
| 329 | + |
| 330 | + <div class="grid md:grid-cols-3 gap-5"> |
| 331 | + <AnimatedSection v-for="(org, i) in organizations" :key="org.name" :style="{ transitionDelay: `${i * 80}ms` }"> |
| 332 | + <BaseCard :href="org.url || undefined" :padding="'lg'" :hover="!!org.url"> |
| 333 | + <h3 class="font-serif font-bold text-xl text-gray-900 dark:text-white mb-1">{{ org.name }}</h3> |
| 334 | + <p class="text-xs text-gray-400 dark:text-gray-500 mb-4">{{ org.full }}</p> |
| 335 | + <ul class="space-y-2"> |
| 336 | + <li v-for="c in org.contributions" :key="c" class="text-sm text-gray-600 dark:text-gray-300 flex items-start gap-2"> |
| 337 | + <span class="w-1.5 h-1.5 rounded-full bg-elf-salmon/60 dark:bg-elf-salmon/40 shrink-0 mt-1.5" /> |
| 338 | + {{ c }} |
| 339 | + </li> |
| 340 | + </ul> |
| 341 | + </BaseCard> |
| 342 | + </AnimatedSection> |
| 343 | + </div> |
| 344 | + </section> |
| 345 | + |
| 346 | + <!-- Reference Publications --> |
| 347 | + <section class="mb-12"> |
| 348 | + <AnimatedSection> |
| 349 | + <div class="mb-8"> |
| 350 | + <h2 class="text-2xl font-serif font-bold text-gray-900 dark:text-white">Reference Publications</h2> |
| 351 | + <p class="mt-2 text-sm text-gray-500 dark:text-gray-400">Key NIST and INCOSE publications documenting AP 210 research and methodology.</p> |
| 352 | + </div> |
| 353 | + </AnimatedSection> |
| 354 | + |
| 355 | + <AnimatedSection> |
| 356 | + <div class="rounded-xl border border-gray-200/80 dark:border-gray-700/60 bg-white dark:bg-navy-light overflow-hidden"> |
| 357 | + <div class="divide-y divide-gray-100 dark:divide-gray-700/40"> |
| 358 | + <a |
| 359 | + v-for="pub in publications" |
| 360 | + :key="pub.id" |
| 361 | + :href="pub.url" |
| 362 | + target="_blank" |
| 363 | + rel="noopener" |
| 364 | + class="flex items-start gap-4 px-5 py-3.5 hover:bg-elf-blue/[0.03] dark:hover:bg-elf-blue/[0.05] transition-colors group" |
| 365 | + > |
| 366 | + <span class="shrink-0 mt-0.5 font-mono text-[0.65rem] tracking-wider text-gray-400 dark:text-gray-500 bg-gray-50 dark:bg-gray-800/60 px-2 py-1 rounded-md">{{ pub.id }}</span> |
| 367 | + <div class="min-w-0 flex-1"> |
| 368 | + <p class="text-sm font-medium text-gray-900 dark:text-white group-hover:text-elf-blue transition-colors leading-snug">{{ pub.title }}</p> |
| 369 | + <p class="text-xs text-gray-400 dark:text-gray-500 mt-0.5">{{ pub.authors }}</p> |
| 370 | + </div> |
| 371 | + <svg class="w-4 h-4 text-gray-300 dark:text-gray-600 group-hover:text-elf-blue shrink-0 mt-1 transition-colors" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/></svg> |
| 372 | + </a> |
| 373 | + </div> |
| 374 | + </div> |
| 375 | + </AnimatedSection> |
| 376 | + |
| 377 | + <AnimatedSection> |
| 378 | + <div class="mt-10 pt-8 border-t border-gray-100 dark:border-gray-700/40"> |
| 379 | + <h2 class="text-xl font-serif font-bold text-gray-900 dark:text-white mb-3">Open Source Maintenance</h2> |
| 380 | + <p class="text-sm text-gray-500 dark:text-gray-400 leading-relaxed"> |
| 381 | + The AP 210 online resources, including this website, the research data archive, and educational materials, |
| 382 | + are maintained by the <a href="https://expresslang.org" target="_blank" rel="noopener" class="text-elf-blue dark:text-elf-blue hover:underline">EXPRESS Language Foundation</a> |
| 383 | + and the open source community at <a href="https://github.com/expresslang" target="_blank" rel="noopener" class="text-elf-blue dark:text-elf-blue hover:underline">GitHub</a>. |
| 384 | + </p> |
| 385 | + <p class="text-sm text-gray-400 dark:text-gray-500 mt-3"> |
| 386 | + The research datasets are released under Creative Commons Attribution 4.0 International License (CC-BY 4.0) to support open science and reproducible research. |
| 387 | + </p> |
| 388 | + </div> |
| 389 | + </AnimatedSection> |
| 390 | + </section> |
| 391 | + </div> |
| 392 | +</template> |
0 commit comments