SherlockRamos commited on
Commit
ccf2b04
·
verified ·
1 Parent(s): a187dbb

Upload components/QuickAccess.js with huggingface_hub

Browse files
Files changed (1) hide show
  1. components/QuickAccess.js +66 -24
components/QuickAccess.js CHANGED
@@ -1,7 +1,11 @@
 
1
  import Link from 'next/link'
 
2
  import { HiBookOpen, HiLightningBolt, HiDocumentText, HiAcademicCap } from 'react-icons/hi'
3
 
4
  export default function QuickAccess() {
 
 
5
  const quickAccessItems = [
6
  {
7
  title: 'Biblioteca de Prompts',
@@ -9,66 +13,104 @@ export default function QuickAccess() {
9
  icon: HiBookOpen,
10
  href: '/prompts',
11
  color: 'bg-blue-500',
12
- highlight: true
 
13
  },
14
  {
15
  title: 'Prompts Jurídicos',
16
  description: 'Peticionamento, contratos e análises legais',
17
  icon: HiDocumentText,
18
  href: '/prompts?tag=juridico',
19
- color: 'bg-green-500'
 
20
  },
21
  {
22
  title: 'Concursos Públicos',
23
  description: 'Estratégias de estudo e simulados com IA',
24
  icon: HiAcademicCap,
25
  href: '/prompts?tag=concurso',
26
- color: 'bg-purple-500'
 
27
  },
28
  {
29
  title: 'Gestão Administrativa',
30
  description: 'Organização e otimização de processos',
31
  icon: HiLightningBolt,
32
  href: '/prompts?tag=administrativo',
33
- color: 'bg-orange-500'
 
34
  }
35
  ]
36
 
37
  return (
38
  <section className="py-16 bg-white">
39
  <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
40
- <div className="text-center mb-12">
 
 
 
 
 
 
41
  <h2 className="text-3xl lg:text-4xl font-bold text-gray-900 mb-4">
42
  Acesso Rápido aos Melhores Recursos
43
  </h2>
44
  <p className="text-xl text-gray-600 max-w-3xl mx-auto">
45
  Encontre rapidamente o que você precisa para transformar sua prática profissional
46
  </p>
47
- </div>
48
 
49
  <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
50
  {quickAccessItems.map((item, index) => (
51
- <Link
52
  key={index}
53
- href={item.href}
54
- className={`card p-6 group hover:scale-105 transition-all duration-300 ${
55
- item.highlight ? 'ring-2 ring-primary-500 ring-opacity-50' : ''
56
- }`}
 
 
57
  >
58
- <div className="text-center">
59
- <div className={`${item.color} w-16 h-16 rounded-xl flex items-center justify-center mx-auto mb-4 group-hover:scale-110 transition-transform duration-300`}>
60
- <item.icon className="h-8 w-8 text-white" />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  </div>
62
-
63
- <h3 className="text-lg font-semibold text-gray-900 mb-2 group-hover:text-primary-600 transition-colors duration-200">
64
- {item.title}
65
- </h3>
66
-
67
- <p className="text-gray-600 text-sm leading-relaxed">
68
- {item.description}
69
- </p>
70
- </div>
71
- </Link>
72
  ))}
73
  </div>
74
  </div>
 
1
+ import { motion } from 'framer-motion'
2
  import Link from 'next/link'
3
+ import { useState } from 'react'
4
  import { HiBookOpen, HiLightningBolt, HiDocumentText, HiAcademicCap } from 'react-icons/hi'
5
 
6
  export default function QuickAccess() {
7
+ const [hoveredIndex, setHoveredIndex] = useState(null)
8
+
9
  const quickAccessItems = [
10
  {
11
  title: 'Biblioteca de Prompts',
 
13
  icon: HiBookOpen,
14
  href: '/prompts',
15
  color: 'bg-blue-500',
16
+ highlight: true,
17
+ stats: '50+ prompts'
18
  },
19
  {
20
  title: 'Prompts Jurídicos',
21
  description: 'Peticionamento, contratos e análises legais',
22
  icon: HiDocumentText,
23
  href: '/prompts?tag=juridico',
24
+ color: 'bg-green-500',
25
+ stats: '20+ prompts'
26
  },
27
  {
28
  title: 'Concursos Públicos',
29
  description: 'Estratégias de estudo e simulados com IA',
30
  icon: HiAcademicCap,
31
  href: '/prompts?tag=concurso',
32
+ color: 'bg-purple-500',
33
+ stats: '15+ prompts'
34
  },
35
  {
36
  title: 'Gestão Administrativa',
37
  description: 'Organização e otimização de processos',
38
  icon: HiLightningBolt,
39
  href: '/prompts?tag=administrativo',
40
+ color: 'bg-orange-500',
41
+ stats: '15+ prompts'
42
  }
43
  ]
44
 
45
  return (
46
  <section className="py-16 bg-white">
47
  <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
48
+ <motion.div
49
+ className="text-center mb-12"
50
+ initial={{ opacity: 0, y: 20 }}
51
+ whileInView={{ opacity: 1, y: 0 }}
52
+ transition={{ duration: 0.6 }}
53
+ viewport={{ once: true }}
54
+ >
55
  <h2 className="text-3xl lg:text-4xl font-bold text-gray-900 mb-4">
56
  Acesso Rápido aos Melhores Recursos
57
  </h2>
58
  <p className="text-xl text-gray-600 max-w-3xl mx-auto">
59
  Encontre rapidamente o que você precisa para transformar sua prática profissional
60
  </p>
61
+ </motion.div>
62
 
63
  <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
64
  {quickAccessItems.map((item, index) => (
65
+ <motion.div
66
  key={index}
67
+ initial={{ opacity: 0, y: 20 }}
68
+ whileInView={{ opacity: 1, y: 0 }}
69
+ transition={{ duration: 0.6, delay: index * 0.1 }}
70
+ viewport={{ once: true }}
71
+ whileHover={{ y: -8 }}
72
+ className={`group ${item.highlight ? 'md:col-span-2 lg:col-span-1' : ''}`}
73
  >
74
+ <Link
75
+ href={item.href}
76
+ className={`block ${item.highlight ? 'md:flex md:items-center' : ''}`}
77
+ onMouseEnter={() => setHoveredIndex(index)}
78
+ onMouseLeave={() => setHoveredIndex(null)}
79
+ >
80
+ <div className={`category-card ${item.highlight ? 'md:flex-1' : ''}`}>
81
+ <div className="text-center">
82
+ <motion.div
83
+ className={`${item.color} w-16 h-16 rounded-2xl flex items-center justify-center mx-auto mb-4 group-hover:scale-110 transition-transform duration-300`}
84
+ animate={hoveredIndex === index ? { scale: 1.1, rotate: 5 } : { scale: 1, rotate: 0 }}
85
+ transition={{ duration: 0.3 }}
86
+ >
87
+ <item.icon className="h-8 w-8 text-white" aria-hidden="true" />
88
+ </motion.div>
89
+
90
+ <div className="flex items-center justify-center space-x-2 mb-2">
91
+ <h3 className="text-lg font-semibold text-gray-900 group-hover:text-primary-600 transition-colors duration-200">
92
+ {item.title}
93
+ </h3>
94
+ {item.highlight && (
95
+ <span className="bg-accent-100 text-accent-700 text-xs font-medium px-2 py-1 rounded-full">
96
+ Destaque
97
+ </span>
98
+ )}
99
+ </div>
100
+
101
+ <p className="text-gray-600 text-sm leading-relaxed mb-3">
102
+ {item.description}
103
+ </p>
104
+
105
+ <div className="flex items-center justify-center space-x-2 text-xs text-gray-500">
106
+ <span>{item.stats}</span>
107
+ <span>•</span>
108
+ <span>Clique para acessar</span>
109
+ </div>
110
+ </div>
111
  </div>
112
+ </Link>
113
+ </motion.div>
 
 
 
 
 
 
 
 
114
  ))}
115
  </div>
116
  </div>