AssenavGnuj commited on
Commit
e383fb0
·
verified ·
1 Parent(s): 445b7d4

Add 3 files

Browse files
Files changed (3) hide show
  1. README.md +7 -5
  2. index.html +1330 -19
  3. prompts.txt +1 -0
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Test
3
- emoji:
4
- colorFrom: green
5
- colorTo: gray
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: test
3
+ emoji: 🐳
4
+ colorFrom: red
5
+ colorTo: blue
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,1330 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="pt-BR">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Cachimbos & Tabacos</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
+ <style>
10
+ .dropdown-menu {
11
+ display: none;
12
+ }
13
+ .dropdown:hover .dropdown-menu,
14
+ .dropdown:focus-within .dropdown-menu {
15
+ display: block;
16
+ }
17
+ .image-container {
18
+ width: 1080px;
19
+ height: 1080px;
20
+ overflow: hidden;
21
+ display: flex;
22
+ justify-content: center;
23
+ align-items: center;
24
+ }
25
+ .image-container img {
26
+ max-width: 100%;
27
+ max-height: 100%;
28
+ object-fit: contain;
29
+ }
30
+ .pipe-gallery {
31
+ display: grid;
32
+ grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
33
+ gap: 20px;
34
+ }
35
+ .pipe-card {
36
+ transition: transform 0.3s ease;
37
+ }
38
+ .pipe-card:hover {
39
+ transform: translateY(-5px);
40
+ }
41
+ .comment-section {
42
+ max-height: 400px;
43
+ overflow-y: auto;
44
+ }
45
+ .admin-panel {
46
+ transition: all 0.3s ease;
47
+ transform: translateX(-100%);
48
+ }
49
+ .admin-panel.open {
50
+ transform: translateX(0);
51
+ }
52
+ /* Custom scrollbar */
53
+ .comment-section::-webkit-scrollbar {
54
+ width: 8px;
55
+ }
56
+ .comment-section::-webkit-scrollbar-track {
57
+ background: #f1f1f1;
58
+ }
59
+ .comment-section::-webkit-scrollbar-thumb {
60
+ background: #888;
61
+ border-radius: 4px;
62
+ }
63
+ .comment-section::-webkit-scrollbar-thumb:hover {
64
+ background: #555;
65
+ }
66
+ /* Prevent dropdown from closing when clicking inside */
67
+ .dropdown-menu {
68
+ pointer-events: auto;
69
+ }
70
+ </style>
71
+ </head>
72
+ <body class="bg-gray-100 font-sans">
73
+ <!-- Admin Panel Toggle -->
74
+ <button id="admin-toggle" class="fixed top-4 left-4 bg-amber-800 text-white p-3 rounded-full shadow-lg z-50">
75
+ <i class="fas fa-user-cog"></i>
76
+ </button>
77
+
78
+ <!-- Admin Panel -->
79
+ <div id="admin-panel" class="admin-panel fixed top-0 left-0 h-full w-80 bg-gray-800 text-white shadow-xl z-40 p-4 overflow-y-auto">
80
+ <div class="flex justify-between items-center mb-6 border-b border-gray-700 pb-4">
81
+ <h2 class="text-xl font-bold">Painel de Administração</h2>
82
+ <button id="close-admin" class="text-gray-400 hover:text-white">
83
+ <i class="fas fa-times"></i>
84
+ </button>
85
+ </div>
86
+
87
+ <div class="space-y-4">
88
+ <div class="admin-section">
89
+ <h3 class="font-semibold mb-2 flex items-center justify-between cursor-pointer" onclick="toggleAdminSection(this)">
90
+ <span>Cachimbos</span>
91
+ <i class="fas fa-chevron-down"></i>
92
+ </h3>
93
+ <div class="admin-content hidden pl-4 space-y-2">
94
+ <button class="admin-btn w-full text-left" onclick="showAdminContent('add-pipe')">
95
+ <i class="fas fa-plus mr-2"></i> Adicionar Cachimbo
96
+ </button>
97
+ <button class="admin-btn w-full text-left" onclick="showAdminContent('manage-pipes')">
98
+ <i class="fas fa-edit mr-2"></i> Gerenciar Cachimbos
99
+ </button>
100
+ <button class="admin-btn w-full text-left" onclick="showAdminContent('pipe-categories')">
101
+ <i class="fas fa-tags mr-2"></i> Categorias
102
+ </button>
103
+ </div>
104
+ </div>
105
+
106
+ <div class="admin-section">
107
+ <h3 class="font-semibold mb-2 flex items-center justify-between cursor-pointer" onclick="toggleAdminSection(this)">
108
+ <span>Acessórios</span>
109
+ <i class="fas fa-chevron-down"></i>
110
+ </h3>
111
+ <div class="admin-content hidden pl-4 space-y-2">
112
+ <button class="admin-btn w-full text-left" onclick="showAdminContent('add-accessory')">
113
+ <i class="fas fa-plus mr-2"></i> Adicionar Acessório
114
+ </button>
115
+ <button class="admin-btn w-full text-left" onclick="showAdminContent('manage-accessories')">
116
+ <i class="fas fa-edit mr-2"></i> Gerenciar Acessórios
117
+ </button>
118
+ </div>
119
+ </div>
120
+
121
+ <div class="admin-section">
122
+ <h3 class="font-semibold mb-2 flex items-center justify-between cursor-pointer" onclick="toggleAdminSection(this)">
123
+ <span>Materiais para Restauração</span>
124
+ <i class="fas fa-chevron-down"></i>
125
+ </h3>
126
+ <div class="admin-content hidden pl-4 space-y-2">
127
+ <button class="admin-btn w-full text-left" onclick="showAdminContent('add-restoration')">
128
+ <i class="fas fa-plus mr-2"></i> Adicionar Material
129
+ </button>
130
+ <button class="admin-btn w-full text-left" onclick="showAdminContent('manage-restorations')">
131
+ <i class="fas fa-edit mr-2"></i> Gerenciar Materiais
132
+ </button>
133
+ </div>
134
+ </div>
135
+
136
+ <div class="admin-section">
137
+ <h3 class="font-semibold mb-2 flex items-center justify-between cursor-pointer" onclick="toggleAdminSection(this)">
138
+ <span>Tabacos</span>
139
+ <i class="fas fa-chevron-down"></i>
140
+ </h3>
141
+ <div class="admin-content hidden pl-4 space-y-2">
142
+ <button class="admin-btn w-full text-left" onclick="showAdminContent('add-tobacco')">
143
+ <i class="fas fa-plus mr-2"></i> Adicionar Tabaco
144
+ </button>
145
+ <button class="admin-btn w-full text-left" onclick="showAdminContent('manage-tobaccos')">
146
+ <i class="fas fa-edit mr-2"></i> Gerenciar Tabacos
147
+ </button>
148
+ <button class="admin-btn w-full text-left" onclick="showAdminContent('tobacco-categories')">
149
+ <i class="fas fa-tags mr-2"></i> Categorias
150
+ </button>
151
+ </div>
152
+ </div>
153
+
154
+ <div class="admin-section">
155
+ <h3 class="font-semibold mb-2 flex items-center justify-between cursor-pointer" onclick="toggleAdminSection(this)">
156
+ <span>Comentários</span>
157
+ <i class="fas fa-chevron-down"></i>
158
+ </h3>
159
+ <div class="admin-content hidden pl-4 space-y-2">
160
+ <button class="admin-btn w-full text-left" onclick="showAdminContent('manage-comments')">
161
+ <i class="fas fa-comments mr-2"></i> Gerenciar Comentários
162
+ </button>
163
+ </div>
164
+ </div>
165
+
166
+ <div class="admin-section">
167
+ <h3 class="font-semibold mb-2 flex items-center justify-between cursor-pointer" onclick="toggleAdminSection(this)">
168
+ <span>Configurações</span>
169
+ <i class="fas fa-chevron-down"></i>
170
+ </h3>
171
+ <div class="admin-content hidden pl-4 space-y-2">
172
+ <button class="admin-btn w-full text-left" onclick="showAdminContent('site-settings')">
173
+ <i class="fas fa-cog mr-2"></i> Configurações do Site
174
+ </button>
175
+ <button class="admin-btn w-full text-left" onclick="showAdminContent('user-management')">
176
+ <i class="fas fa-users mr-2"></i> Gerenciar Usuários
177
+ </button>
178
+ </div>
179
+ </div>
180
+ </div>
181
+
182
+ <!-- Admin Content Area -->
183
+ <div id="admin-content-area" class="mt-8 hidden">
184
+ <!-- Content will be loaded here dynamically -->
185
+ </div>
186
+ </div>
187
+
188
+ <!-- Header -->
189
+ <header class="bg-amber-900 text-white shadow-lg">
190
+ <div class="container mx-auto px-4 py-6">
191
+ <h1 class="text-4xl font-bold text-center mb-6">Cachimbos & Tabacos</h1>
192
+
193
+ <!-- Navigation -->
194
+ <nav class="relative">
195
+ <ul class="flex justify-center space-x-8">
196
+ <li>
197
+ <a href="#home" class="hover:text-amber-200 font-medium">Home</a>
198
+ </li>
199
+
200
+ <!-- Cachimbos Dropdown -->
201
+ <li class="dropdown relative">
202
+ <button class="hover:text-amber-200 font-medium flex items-center focus:outline-none">
203
+ Cachimbos <i class="fas fa-chevron-down ml-1 text-xs"></i>
204
+ </button>
205
+ <ul class="dropdown-menu absolute bg-white text-gray-800 shadow-lg rounded mt-2 w-48 z-10">
206
+ <li><a href="#dinamarqueses" class="block px-4 py-2 hover:bg-amber-100">Dinamarqueses</a></li>
207
+ <li><a href="#franceses" class="block px-4 py-2 hover:bg-amber-100">Franceses</a></li>
208
+ <li><a href="#holandeses" class="block px-4 py-2 hover:bg-amber-100">Holandeses</a></li>
209
+ <li><a href="#ingleses" class="block px-4 py-2 hover:bg-amber-100">Ingleses</a></li>
210
+ <li><a href="#irlandeses" class="block px-4 py-2 hover:bg-amber-100">Irlandeses</a></li>
211
+ <li><a href="#italianos" class="block px-4 py-2 hover:bg-amber-100">Italianos</a></li>
212
+ <li><a href="#norte-americanos" class="block px-4 py-2 hover:bg-amber-100">Norte-americanos</a></li>
213
+ <li><a href="#outros-paises" class="block px-4 py-2 hover:bg-amber-100">Outros Países</a></li>
214
+ </ul>
215
+ </li>
216
+
217
+ <!-- Acessórios Dropdown -->
218
+ <li class="dropdown relative">
219
+ <button class="hover:text-amber-200 font-medium flex items-center focus:outline-none">
220
+ Acessórios <i class="fas fa-chevron-down ml-1 text-xs"></i>
221
+ </button>
222
+ <ul class="dropdown-menu absolute bg-white text-gray-800 shadow-lg rounded mt-2 w-48 z-10">
223
+ <li><a href="#tampers" class="block px-4 py-2 hover:bg-amber-100">Tampers</a></li>
224
+ <li><a href="#diversos-acessorios" class="block px-4 py-2 hover:bg-amber-100">Diversos</a></li>
225
+ </ul>
226
+ </li>
227
+
228
+ <!-- Materiais para Restauração Dropdown -->
229
+ <li class="dropdown relative">
230
+ <button class="hover:text-amber-200 font-medium flex items-center focus:outline-none">
231
+ Materiais para Restauração <i class="fas fa-chevron-down ml-1 text-xs"></i>
232
+ </button>
233
+ <ul class="dropdown-menu absolute bg-white text-gray-800 shadow-lg rounded mt-2 w-48 z-10">
234
+ <li><a href="#polimento" class="block px-4 py-2 hover:bg-amber-100">Polimento</a></li>
235
+ <li><a href="#diversos-materiais" class="block px-4 py-2 hover:bg-amber-100">Diversos</a></li>
236
+ </ul>
237
+ </li>
238
+
239
+ <!-- Tabacos Dropdown -->
240
+ <li class="dropdown relative">
241
+ <button class="hover:text-amber-200 font-medium flex items-center focus:outline-none">
242
+ Tabacos <i class="fas fa-chevron-down ml-1 text-xs"></i>
243
+ </button>
244
+ <ul class="dropdown-menu absolute bg-white text-gray-800 shadow-lg rounded mt-2 w-48 z-10">
245
+ <li><a href="#aromaticos" class="block px-4 py-2 hover:bg-amber-100">Aromáticos</a></li>
246
+ <li><a href="#misturas-inglesas" class="block px-4 py-2 hover:bg-amber-100">Misturas Inglesas</a></li>
247
+ <li><a href="#orientais" class="block px-4 py-2 hover:bg-amber-100">Orientais</a></li>
248
+ <li><a href="#diversos-tabacos" class="block px-4 py-2 hover:bg-amber-100">Diversos</a></li>
249
+ </ul>
250
+ </li>
251
+ </ul>
252
+ </nav>
253
+ </div>
254
+ </header>
255
+
256
+ <!-- Main Content -->
257
+ <main class="container mx-auto px-4 py-8">
258
+ <!-- Home Section -->
259
+ <section id="home" class="mb-12">
260
+ <div class="bg-white rounded-lg shadow-md p-8">
261
+ <h2 class="text-3xl font-bold text-amber-900 mb-6">Bem-vindo à Minha Coleção</h2>
262
+ <p class="text-gray-700 mb-4">
263
+ Esta é a minha coleção pessoal de cachimbos e tabacos, acumulada ao longo de muitos anos de paixão por essa arte. Aqui você encontrará peças de diversas origens, estilos e períodos históricos.
264
+ </p>
265
+ <p class="text-gray-700 mb-4">
266
+ Cada cachimbo tem sua própria história and características únicas. Explore a coleção navegando pelas categorias acima e descubra as maravilhas do mundo dos cachimbos.
267
+ </p>
268
+ <p class="text-gray-700">
269
+ Se você também é um entusiasta, sinta-se à vontade para deixar seus comentários e compartilhar suas experiências!
270
+ </p>
271
+ </div>
272
+ </section>
273
+
274
+ <!-- Pipe Collection Section (Dynamically loaded based on selection) -->
275
+ <section id="pipe-collection" class="hidden">
276
+ <div class="flex justify-between items-center mb-6">
277
+ <h2 id="collection-title" class="text-3xl font-bold text-amber-900"></h2>
278
+ <div class="flex space-x-4">
279
+ <button id="add-pipe-btn" class="bg-amber-700 hover:bg-amber-800 text-white px-4 py-2 rounded-lg flex items-center">
280
+ <i class="fas fa-plus mr-2"></i> Novo Cachimbo
281
+ </button>
282
+ <div class="relative">
283
+ <input type="text" id="search-pipes" placeholder="Buscar cachimbos..." class="border border-gray-300 rounded-lg px-4 py-2 pl-10 focus:outline-none focus:ring-2 focus:ring-amber-500">
284
+ <i class="fas fa-search absolute left-3 top-3 text-gray-400"></i>
285
+ </div>
286
+ </div>
287
+ </div>
288
+
289
+ <!-- Pipe Gallery -->
290
+ <div id="pipe-gallery" class="pipe-gallery">
291
+ <!-- Pipes will be loaded here dynamically -->
292
+ </div>
293
+ </section>
294
+
295
+ <!-- Pipe Detail Modal -->
296
+ <div id="pipe-modal" class="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 hidden">
297
+ <div class="bg-white rounded-lg shadow-xl w-11/12 max-w-6xl max-h-screen overflow-y-auto">
298
+ <div class="p-6">
299
+ <div class="flex justify-between items-start mb-6">
300
+ <h3 id="pipe-modal-title" class="text-2xl font-bold text-amber-900"></h3>
301
+ <button id="close-modal" class="text-gray-500 hover:text-gray-700">
302
+ <i class="fas fa-times"></i>
303
+ </button>
304
+ </div>
305
+
306
+ <div class="grid grid-cols-1 lg:grid-cols-2 gap-8">
307
+ <!-- Pipe Images -->
308
+ <div>
309
+ <div class="image-container bg-gray-200 rounded-lg mb-4">
310
+ <img id="main-pipe-image" src="" alt="Cachimbo" class="w-full h-auto">
311
+ </div>
312
+ <div class="grid grid-cols-5 gap-2">
313
+ <div class="image-thumbnail cursor-pointer border-2 border-transparent hover:border-amber-500">
314
+ <img src="" alt="Thumbnail 1" class="w-full h-20 object-cover">
315
+ </div>
316
+ <div class="image-thumbnail cursor-pointer border-2 border-transparent hover:border-amber-500">
317
+ <img src="" alt="Thumbnail 2" class="w-full h-20 object-cover">
318
+ </div>
319
+ <div class="image-thumbnail cursor-pointer border-2 border-transparent hover:border-amber-500">
320
+ <img src="" alt="Thumbnail 3" class="w-full h-20 object-cover">
321
+ </div>
322
+ <div class="image-thumbnail cursor-pointer border-2 border-transparent hover:border-amber-500">
323
+ <img src="" alt="Thumbnail 4" class="w-full h-20 object-cover">
324
+ </div>
325
+ <div class="image-thumbnail cursor-pointer border-2 border-transparent hover:border-amber-500">
326
+ <img src="" alt="Thumbnail 5" class="w-full h-20 object-cover">
327
+ </div>
328
+ </div>
329
+ </div>
330
+
331
+ <!-- Pipe Details -->
332
+ <div>
333
+ <div class="mb-6">
334
+ <h4 class="text-lg font-semibold text-amber-800 mb-2">Detalhes do Cachimbo</h4>
335
+ <div class="space-y-4">
336
+ <div>
337
+ <label class="block text-sm font-medium text-gray-700">Marca</label>
338
+ <p id="pipe-brand" class="mt-1 text-gray-900"></p>
339
+ </div>
340
+ <div>
341
+ <label class="block text-sm font-medium text-gray-700">Nome</label>
342
+ <p id="pipe-name" class="mt-1 text-gray-900"></p>
343
+ </div>
344
+ <div>
345
+ <label class="block text-sm font-medium text-gray-700">Stem (Piteira)</label>
346
+ <p id="pipe-stem" class="mt-1 text-gray-900"></p>
347
+ </div>
348
+ <div>
349
+ <label class="block text-sm font-medium text-gray-700">Filter (Filtro)</label>
350
+ <p id="pipe-filter" class="mt-1 text-gray-900"></p>
351
+ </div>
352
+ <div>
353
+ <label class="block text-sm font-medium text-gray-700">Shape (Forma)</label>
354
+ <p id="pipe-shape" class="mt-1 text-gray-900"></p>
355
+ </div>
356
+ <div>
357
+ <label class="block text-sm font-medium text-gray-700">Texture (Textura)</label>
358
+ <p id="pipe-texture" class="mt-1 text-gray-900"></p>
359
+ </div>
360
+ <div>
361
+ <label class="block text-sm font-medium text-gray-700">Condition (Condição)</label>
362
+ <p id="pipe-condition" class="mt-1 text-gray-900"></p>
363
+ </div>
364
+ <div>
365
+ <label class="block text-sm font-medium text-gray-700">Level of Restoration</label>
366
+ <p id="pipe-restoration" class="mt-1 text-gray-900"></p>
367
+ </div>
368
+ <div>
369
+ <label class="block text-sm font-medium text-gray-700">Country (País</label>
370
+ <p id="pipe-country" class="mt-1 text-gray-900"></p>
371
+ </div>
372
+ <div>
373
+ <label class="block text-sm font-medium text-gray-700">Observações</label>
374
+ <p id="pipe-notes" class="mt-1 text-gray-900"></p>
375
+ </div>
376
+ </div>
377
+ </div>
378
+
379
+ <div class="flex space-x-4">
380
+ <button id="edit-pipe-btn" class="bg-amber-600 hover:bg-amber-700 text-white px-4 py-2 rounded-lg flex items-center">
381
+ <i class="fas fa-edit mr-2"></i> Editar
382
+ </button>
383
+ <button id="delete-pipe-btn" class="bg-red-600 hover:bg-red-700 text-white px-4 py-2 rounded-lg flex items-center">
384
+ <i class="fas fa-trash mr-2"></i> Excluir
385
+ </button>
386
+ </div>
387
+ </div>
388
+ </div>
389
+
390
+ <!-- Comments Section -->
391
+ <div class="mt-8 border-t pt-6">
392
+ <h4 class="text-lg font-semibold text-amber-800 mb-4">Comentários</h4>
393
+
394
+ <div id="comments-container" class="comment-section mb-6 space-y-4">
395
+ <!-- Comments will be loaded here -->
396
+ </div>
397
+
398
+ <div class="bg-gray-50 p-4 rounded-lg">
399
+ <h5 class="font-medium text-gray-800 mb-3">Deixe seu comentário</h5>
400
+ <form id="comment-form" class="space-y-3">
401
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
402
+ <div>
403
+ <label for="comment-name" class="block text-sm font-medium text-gray-700">Nome *</label>
404
+ <input type="text" id="comment-name" required class="mt-1 block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-amber-500 focus:border-amber-500">
405
+ </div>
406
+ <div>
407
+ <label for="comment-email" class="block text-sm font-medium text-gray-700">E-mail *</label>
408
+ <input type="email" id="comment-email" required class="mt-1 block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-amber-500 focus:border-amber-500">
409
+ </div>
410
+ </div>
411
+ <div>
412
+ <label for="comment-phone" class="block text-sm font-medium text-gray-700">Telefone (opcional)</label>
413
+ <input type="tel" id="comment-phone" class="mt-1 block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-amber-500 focus:border-amber-500">
414
+ </div>
415
+ <div>
416
+ <label for="comment-text" class="block text-sm font-medium text-gray-700">Comentário *</label>
417
+ <textarea id="comment-text" rows="3" required class="mt-1 block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-amber-500 focus:border-amber-500"></textarea>
418
+ </div>
419
+ <div class="flex justify-end">
420
+ <button type="submit" class="bg-amber-700 hover:bg-amber-800 text-white px-4 py-2 rounded-lg">
421
+ Enviar Comentário
422
+ </button>
423
+ </div>
424
+ </form>
425
+ </div>
426
+ </div>
427
+ </div>
428
+ </div>
429
+ </div>
430
+
431
+ <!-- Add/Edit Pipe Form Modal -->
432
+ <div id="pipe-form-modal" class="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 hidden">
433
+ <div class="bg-white rounded-lg shadow-xl w-11/12 max-w-4xl max-h-screen overflow-y-auto">
434
+ <div class="p-6">
435
+ <div class="flex justify-between items-start mb-6">
436
+ <h3 id="pipe-form-title" class="text-2xl font-bold text-amber-900">Adicionar Novo Cachimbo</h3>
437
+ <button id="close-form-modal" class="text-gray-500 hover:text-gray-700">
438
+ <i class="fas fa-times"></i>
439
+ </button>
440
+ </div>
441
+
442
+ <form id="pipe-form" class="space-y-4">
443
+ <input type="hidden" id="pipe-id">
444
+
445
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
446
+ <!-- Left Column -->
447
+ <div class="space-y-4">
448
+ <div>
449
+ <label for="pipe-brand-input" class="block text-sm font-medium text-gray-700">Marca *</label>
450
+ <div class="mt-1 flex">
451
+ <input type="text" id="pipe-brand-input" required class="flex-1 border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-amber-500 focus:border-amber-500">
452
+ <button type="button" id="add-brand-btn" class="ml-2 bg-gray-200 hover:bg-gray-300 text-gray-800 px-3 py-2 rounded-md">
453
+ <i class="fas fa-plus"></i>
454
+ </button>
455
+ </div>
456
+ </div>
457
+
458
+ <div>
459
+ <label for="pipe-name-input" class="block text-sm font-medium text-gray-700">Nome *</label>
460
+ <input type="text" id="pipe-name-input" required class="mt-1 block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-amber-500 focus:border-amber-500">
461
+ </div>
462
+
463
+ <div>
464
+ <label for="pipe-stem-input" class="block text-sm font-medium text-gray-700">Stem (Piteira) *</label>
465
+ <select id="pipe-stem-input" required class="mt-1 block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-amber-500 focus:border-amber-500">
466
+ <option value="">Selecione...</option>
467
+ <option value="acrylic">Acrylic</option>
468
+ <option value="vulcanite">Vulcanite</option>
469
+ <option value="cumberland">Cumberland</option>
470
+ </select>
471
+ </div>
472
+
473
+ <div>
474
+ <label for="pipe-filter-input" class="block text-sm font-medium text-gray-700">Filter (Filtro) *</label>
475
+ <select id="pipe-filter-input" required class="mt-1 block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-amber-500 focus:border-amber-500">
476
+ <option value="">Selecione...</option>
477
+ <option value="no">No</option>
478
+ <option value="6mm">6mm</option>
479
+ <option value="9mm">9mm</option>
480
+ <option value="balsa">Balsa</option>
481
+ </select>
482
+ </div>
483
+
484
+ <div>
485
+ <label for="pipe-shape-input" class="block text-sm font-medium text-gray-700">Shape (Forma)</label>
486
+ <input type="text" id="pipe-shape-input" class="mt-1 block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-amber-500 focus:border-amber-500">
487
+ </div>
488
+ </div>
489
+
490
+ <!-- Right Column -->
491
+ <div class="space-y-4">
492
+ <div>
493
+ <label for="pipe-texture-input" class="block text-sm font-medium text-gray-700">Texture (Textura) *</label>
494
+ <select id="pipe-texture-input" required class="mt-1 block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-amber-500 focus:border-amber-500">
495
+ <option value="">Selecione...</option>
496
+ <option value="smooth">Smooth</option>
497
+ <option value="rusticated">Rusticated</option>
498
+ <option value="sandblasted">Sandblasted</option>
499
+ <option value="corn cob">Corn Cob</option>
500
+ </select>
501
+ </div>
502
+
503
+ <div>
504
+ <label for="pipe-condition-input" class="block text-sm font-medium text-gray-700">Condition (Condição) *</label>
505
+ <select id="pipe-condition-input" required class="mt-1 block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-amber-500 focus:border-amber-500">
506
+ <option value="">Selecione...</option>
507
+ <option value="estate">Estate</option>
508
+ <option value="new">New</option>
509
+ </select>
510
+ </div>
511
+
512
+ <div>
513
+ <label for="pipe-restoration-input" class="block text-sm font-medium text-gray-700">Level of Restoration *</label>
514
+ <select id="pipe-restoration-input" required class="mt-1 block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-amber-500 focus:border-amber-500">
515
+ <option value="">Selecione...</option>
516
+ <option value="Level 1">Level 1</option>
517
+ <option value="Level 2">Level 2</option>
518
+ <option value="Level 3">Level 3</option>
519
+ <option value="Level 4">Level 4</option>
520
+ <option value="Level 5">Level 5</option>
521
+ </select>
522
+ </div>
523
+
524
+ <div>
525
+ <label for="pipe-country-input" class="block text-sm font-medium text-gray-700">Country (País) *</label>
526
+ <div class="mt-1 flex">
527
+ <input type="text" id="pipe-country-input" required class="flex-1 border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-amber-500 focus:border-amber-500">
528
+ <button type="button" id="add-country-btn" class="ml-2 bg-gray-200 hover:bg-gray-300 text-gray-800 px-3 py-2 rounded-md">
529
+ <i class="fas fa-plus"></i>
530
+ </button>
531
+ </div>
532
+ </div>
533
+
534
+ <div>
535
+ <label for="pipe-notes-input" class="block text-sm font-medium text-gray-700">Observações</label>
536
+ <textarea id="pipe-notes-input" rows="3" class="mt-1 block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-amber-500 focus:border-amber-500"></textarea>
537
+ </div>
538
+ </div>
539
+ </div>
540
+
541
+ <div class="border-t pt-4">
542
+ <h4 class="text-lg font-medium text-gray-800 mb-3">Fotos do Cachimbo</h4>
543
+ <div class="grid grid-cols-5 gap-4">
544
+ <div class="image-upload-container border-2 border-dashed border-gray-300 rounded-lg h-32 flex items-center justify-center cursor-pointer">
545
+ <input type="file" class="image-upload hidden" accept="image/*">
546
+ <div class="text-center">
547
+ <i class="fas fa-camera text-gray-400 text-2xl mb-1"></i>
548
+ <p class="text-xs text-gray-500">Foto 1</p>
549
+ </div>
550
+ </div>
551
+ <div class="image-upload-container border-2 border-dashed border-gray-300 rounded-lg h-32 flex items-center justify-center cursor-pointer">
552
+ <input type="file" class="image-upload hidden" accept="image/*">
553
+ <div class="text-center">
554
+ <i class="fas fa-camera text-gray-400 text-2xl mb-1"></i>
555
+ <p class="text-xs text-gray-500">Foto 2</p>
556
+ </div>
557
+ </div>
558
+ <div class="image-upload-container border-2 border-dashed border-gray-300 rounded-lg h-32 flex items-center justify-center cursor-pointer">
559
+ <input type="file" class="image-upload hidden" accept="image/*">
560
+ <div class="text-center">
561
+ <i class="fas fa-camera text-gray-400 text-2xl mb-1"></i>
562
+ <p class="text-xs text-gray-500">Foto 3</p>
563
+ </div>
564
+ </div>
565
+ <div class="image-upload-container border-2 border-dashed border-gray-300 rounded-lg h-32 flex items-center justify-center cursor-pointer">
566
+ <input type="file" class="image-upload hidden" accept="image/*">
567
+ <div class="text-center">
568
+ <i class="fas fa-camera text-gray-400 text-2xl mb-1"></i>
569
+ <p class="text-xs text-gray-500">Foto 4</p>
570
+ </div>
571
+ </div>
572
+ <div class="image-upload-container border-2 border-dashed border-gray-300 rounded-lg h-32 flex items-center justify-center cursor-pointer">
573
+ <input type="file" class="image-upload hidden" accept="image/*">
574
+ <div class="text-center">
575
+ <i class="fas fa-camera text-gray-400 text-2xl mb-1"></i>
576
+ <p class="text-xs text-gray-500">Foto 5</p>
577
+ </div>
578
+ </div>
579
+ </div>
580
+ </div>
581
+
582
+ <div class="flex justify-end space-x-4 pt-6">
583
+ <button type="button" id="cancel-pipe-btn" class="bg-gray-200 hover:bg-gray-300 text-gray-800 px-4 py-2 rounded-lg">
584
+ Cancelar
585
+ </button>
586
+ <button type="submit" id="save-pipe-btn" class="bg-amber-700 hover:bg-amber-800 text-white px-4 py-2 rounded-lg">
587
+ Salvar Cachimbo
588
+ </button>
589
+ </div>
590
+ </form>
591
+ </div>
592
+ </div>
593
+ </div>
594
+ </main>
595
+
596
+ <!-- Footer -->
597
+ <footer class="bg-amber-900 text-white py-8">
598
+ <div class="container mx-auto px-4 text-center">
599
+ <p>&copy; 2023 Cachimbos & Tabacos. Todos os direitos reservados.</p>
600
+ <p class="mt-2 text-amber-200">Uma coleção pessoal de cachimbos e tabacos de todo o mundo.</p>
601
+ </div>
602
+ </footer>
603
+
604
+ <!-- Admin Content Templates -->
605
+ <template id="add-pipe-template">
606
+ <div class="bg-gray-700 p-4 rounded-lg">
607
+ <h4 class="text-lg font-semibold mb-4">Adicionar Novo Cachimbo</h4>
608
+ <form id="admin-pipe-form" class="space-y-4">
609
+ <div>
610
+ <label class="block text-sm font-medium mb-1">Categoria</label>
611
+ <select class="w-full bg-gray-600 border border-gray-500 rounded px-3 py-2">
612
+ <option>Dinamarqueses</option>
613
+ <option>Franceses</option>
614
+ <option>Holandeses</option>
615
+ <option>Ingleses</option>
616
+ <option>Irlandeses</option>
617
+ <option>Italianos</option>
618
+ <option>Norte-americanos</option>
619
+ <option>Outros Países</option>
620
+ </select>
621
+ </div>
622
+ <div>
623
+ <label class="block text-sm font-medium mb-1">Marca</label>
624
+ <input type="text" class="w-full bg-gray-600 border border-gray-500 rounded px-3 py-2">
625
+ </div>
626
+ <div>
627
+ <label class="block text-sm font-medium mb-1">Nome</label>
628
+ <input type="text" class="w-full bg-gray-600 border border-gray-500 rounded px-3 py-2">
629
+ </div>
630
+ <div class="grid grid-cols-2 gap-4">
631
+ <div>
632
+ <label class="block text-sm font-medium mb-1">Stem (Piteira)</label>
633
+ <select class="w-full bg-gray-600 border border-gray-500 rounded px-3 py-2">
634
+ <option>Acrylic</option>
635
+ <option>Vulcanite</option>
636
+ <option>Cumberland</option>
637
+ </select>
638
+ </div>
639
+ <div>
640
+ <label class="block text-sm font-medium mb-1">Filter (Filtro</label>
641
+ <select class="w-full bg-gray-600 border border-gray-500 rounded px-3 py-2">
642
+ <option>No</option>
643
+ <option>6mm</option>
644
+ <option>9mm</option>
645
+ <option>Balsa</option>
646
+ </select>
647
+ </div>
648
+ </div>
649
+ <div>
650
+ <label class="block text-sm font-medium mb-1">Fotos</label>
651
+ <div class="border-2 border-dashed border-gray-500 rounded p-4 text-center">
652
+ <i class="fas fa-camera text-gray-400 text-2xl mb-2"></i>
653
+ <p class="text-sm text-gray-300">Arraste e solte fotos aqui ou clique para selecionar</p>
654
+ <input type="file" multiple class="hidden">
655
+ </div>
656
+ </div>
657
+ <div class="flex justify-end">
658
+ <button type="submit" class="bg-amber-600 hover:bg-amber-700 px-4 py-2 rounded">Salvar</button>
659
+ </div>
660
+ </form>
661
+ </div>
662
+ </template>
663
+
664
+ <template id="manage-pipes-template">
665
+ <div class="bg-gray-700 p-4 rounded-lg">
666
+ <h4 class="text-lg font-semibold mb-4">Gerenciar Cachimbos</h4>
667
+ <div class="mb-4 flex justify-between items-center">
668
+ <div class="relative w-64">
669
+ <input type="text" placeholder="Buscar cachimbos..." class="w-full bg-gray-600 border border-gray-500 rounded px-3 py-2 pl-8">
670
+ <i class="fas fa-search absolute left-3 top-3 text-gray-400"></i>
671
+ </div>
672
+ <select class="bg-gray-600 border border-gray-500 rounded px-3 py-2">
673
+ <option>Todas categorias</option>
674
+ <option>Dinamarqueses</option>
675
+ <option>Franceses</option>
676
+ <option>Holandeses</option>
677
+ <option>Ingleses</option>
678
+ <option>Irlandeses</option>
679
+ <option>Italianos</option>
680
+ <option>Norte-americanos</option>
681
+ <option>Outros Países</option>
682
+ </select>
683
+ </div>
684
+ <div class="overflow-x-auto">
685
+ <table class="w-full text-sm">
686
+ <thead>
687
+ <tr class="border-b border-gray-600">
688
+ <th class="text-left py-2">Marca</th>
689
+ <th class="text-left py-2">Nome</th>
690
+ <th class="text-left py-2">Categoria</th>
691
+ <th class="text-left py-2">Ações</th>
692
+ </tr>
693
+ </thead>
694
+ <tbody>
695
+ <tr class="border-b border-gray-600 hover:bg-gray-600">
696
+ <td class="py-3">Stanwell</td>
697
+ <td>Hans Christian Andersen</td>
698
+ <td>Dinamarqueses</td>
699
+ <td>
700
+ <button class="text-amber-400 hover:text-amber-300 mr-2"><i class="fas fa-edit"></i></button>
701
+ <button class="text-red-400 hover:text-red-300"><i class="fas fa-trash"></i></button>
702
+ </td>
703
+ </tr>
704
+ <tr class="border-b border-gray-600 hover:bg-gray-600">
705
+ <td class="py-3">Nording</td>
706
+ <td>Signature Freehand</td>
707
+ <td>Dinamarqueses</td>
708
+ <td>
709
+ <button class="text-amber-400 hover:text-amber-300 mr-2"><i class="fas fa-edit"></i></button>
710
+ <button class="text-red-400 hover:text-red-300"><i class="fas fa-trash"></i></button>
711
+ </td>
712
+ </tr>
713
+ <tr class="border-b border-gray-600 hover:bg-gray-600">
714
+ <td class="py-3">Chacom</td>
715
+ <td>Gravat</td>
716
+ <td>Franceses</td>
717
+ <td>
718
+ <button class="text-amber-400 hover:text-amber-300 mr-2"><i class="fas fa-edit"></i></button>
719
+ <button class="text-red-400 hover:text-red-300"><i class="fas fa-trash"></i></button>
720
+ </td>
721
+ </tr>
722
+ <tr class="border-b border-gray-600 hover:bg-gray-600">
723
+ <td class="py-3">Dunhill</td>
724
+ <td>Shell Briar</td>
725
+ <td>Ingleses</td>
726
+ <td>
727
+ <button class="text-amber-400 hover:text-amber-300 mr-2"><i class="fas fa-edit"></i></button>
728
+ <button class="text-red-400 hover:text-red-300"><i class="fas fa-trash"></i></button>
729
+ </td>
730
+ </tr>
731
+ <tr class="hover:bg-gray-600">
732
+ <td class="py-3">Peterson</td>
733
+ <td>System Standard 307</td>
734
+ <td>Irlandeses</td>
735
+ <td>
736
+ <button class="text-amber-400 hover:text-amber-300 mr-2"><i class="fas fa-edit"></i></button>
737
+ <button class="text-red-400 hover:text-red-300"><i class="fas fa-trash"></i></button>
738
+ </td>
739
+ </tr>
740
+ </tbody>
741
+ </table>
742
+ </div>
743
+ <div class="mt-4 flex justify-between items-center">
744
+ <div class="text-sm text-gray-400">Mostrando 1 a 5 de 15 itens</div>
745
+ <div class="flex space-x-1">
746
+ <button class="bg-gray-600 hover:bg-gray-500 px-3 py-1 rounded"><i class="fas fa-chevron-left"></i></button>
747
+ <button class="bg-amber-600 px-3 py-1 rounded">1</button>
748
+ <button class="bg-gray-600 hover:bg-gray-500 px-3 py-1 rounded">2</button>
749
+ <button class="bg-gray-600 hover:bg-gray-500 px-3 py-1 rounded">3</button>
750
+ <button class="bg-gray-600 hover:bg-gray-500 px-3 py-1 rounded"><i class="fas fa-chevron-right"></i></button>
751
+ </div>
752
+ </div>
753
+ </div>
754
+ </template>
755
+
756
+ <template id="pipe-categories-template">
757
+ <div class="bg-gray-700 p-4 rounded-lg">
758
+ <h4 class="text-lg font-semibold mb-4">Categorias de Cachimbos</h4>
759
+ <div class="mb-4 flex justify-between items-center">
760
+ <div class="relative w-64">
761
+ <input type="text" placeholder="Buscar categorias..." class="w-full bg-gray-600 border border-gray-500 rounded px-3 py-2 pl-8">
762
+ <i class="fas fa-search absolute left-3 top-3 text-gray-400"></i>
763
+ </div>
764
+ <button class="bg-amber-600 hover:bg-amber-700 px-4 py-2 rounded flex items-center">
765
+ <i class="fas fa-plus mr-2"></i> Nova Categoria
766
+ </button>
767
+ </div>
768
+ <div class="overflow-x-auto">
769
+ <table class="w-full text-sm">
770
+ <thead>
771
+ <tr class="border-b border-gray-600">
772
+ <th class="text-left py-2">Nome</th>
773
+ <th class="text-left py-2">Itens</th>
774
+ <th class="text-left py-2">Ações</th>
775
+ </tr>
776
+ </thead>
777
+ <tbody>
778
+ <tr class="border-b border-gray-600 hover:bg-gray-600">
779
+ <td class="py-3">Dinamarqueses</td>
780
+ <td>12</td>
781
+ <td>
782
+ <button class="text-amber-400 hover:text-amber-300 mr-2"><i class="fas fa-edit"></i></button>
783
+ <button class="text-red-400 hover:text-red-300"><i class="fas fa-trash"></i></button>
784
+ </td>
785
+ </tr>
786
+ <tr class="border-b border-gray-600 hover:bg-gray-600">
787
+ <td class="py-3">Franceses</td>
788
+ <td>8</td>
789
+ <td>
790
+ <button class="text-amber-400 hover:text-amber-300 mr-2"><i class="fas fa-edit"></i></button>
791
+ <button class="text-red-400 hover:text-red-300"><i class="fas fa-trash"></i></button>
792
+ </td>
793
+ </tr>
794
+ <tr class="border-b border-gray-600 hover:bg-gray-600">
795
+ <td class="py-3">Holandeses</td>
796
+ <td>5</td>
797
+ <td>
798
+ <button class="text-amber-400 hover:text-amber-300 mr-2"><i class="fas fa-edit"></i></button>
799
+ <button class="text-red-400 hover:text-red-300"><i class="fas fa-trash"></i></button>
800
+ </td>
801
+ </tr>
802
+ <tr class="border-b border-gray-600 hover:bg-gray-600">
803
+ <td class="py-3">Ingleses</td>
804
+ <td>15</td>
805
+ <td>
806
+ <button class="text-amber-400 hover:text-amber-300 mr-2"><i class="fas fa-edit"></i></button>
807
+ <button class="text-red-400 hover:text-red-300"><i class="fas fa-trash"></i></button>
808
+ </td>
809
+ </tr>
810
+ <tr class="hover:bg-gray-600">
811
+ <td class="py-3">Irlandeses</td>
812
+ <td>7</td>
813
+ <td>
814
+ <button class="text-amber-400 hover:text-amber-300 mr-2"><i class="fas fa-edit"></i></button>
815
+ <button class="text-red-400 hover:text-red-300"><i class="fas fa-trash"></i></button>
816
+ </td>
817
+ </tr>
818
+ </tbody>
819
+ </table>
820
+ </div>
821
+ </div>
822
+ </template>
823
+
824
+ <template id="add-accessory-template">
825
+ <div class="bg-gray-700 p-4 rounded-lg">
826
+ <h4 class="text-lg font-semibold mb-4">Adicionar Acessório</h4>
827
+ <form class="space-y-4">
828
+ <div>
829
+ <label class="block text-sm font-medium mb-1">Tipo</label>
830
+ <select class="w-full bg-gray-600 border border-gray-500 rounded px-3 py-2">
831
+ <option>Tampers</option>
832
+ <option>Diversos</option>
833
+ </select>
834
+ </div>
835
+ <div>
836
+ <label class="block text-sm font-medium mb-1">Nome</label>
837
+ <input type="text" class="w-full bg-gray-600 border border-gray-500 rounded px-3 py-2">
838
+ </div>
839
+ <div>
840
+ <label class="block text-sm font-medium mb-1">Descrição</label>
841
+ <textarea class="w-full bg-gray-600 border border-gray-500 rounded px-3 py-2"></textarea>
842
+ </div>
843
+ <div>
844
+ <label class="block text-sm font-medium mb-1">Foto</label>
845
+ <div class="border-2 border-dashed border-gray-500 rounded p-4 text-center">
846
+ <i class="fas fa-camera text-gray-400 text-2xl mb-2"></i>
847
+ <p class="text-sm text-gray-300">Arraste e solte a foto aqui ou clique para selecionar</p>
848
+ <input type="file" class="hidden">
849
+ </div>
850
+ </div>
851
+ <div class="flex justify-end">
852
+ <button type="submit" class="bg-amber-600 hover:bg-amber-700 px-4 py-2 rounded">Salvar</button>
853
+ </div>
854
+ </form>
855
+ </div>
856
+ </template>
857
+
858
+ <template id="manage-comments-template">
859
+ <div class="bg-gray-700 p-4 rounded-lg">
860
+ <h4 class="text-lg font-semibold mb-4">Gerenciar Comentários</h4>
861
+ <div class="mb-4">
862
+ <div class="relative w-full">
863
+ <input type="text" placeholder="Buscar comentários..." class="w-full bg-gray-600 border border-gray-500 rounded px-3 py-2 pl-8">
864
+ <i class="fas fa-search absolute left-3 top-3 text-gray-400"></i>
865
+ </div>
866
+ </div>
867
+ <div class="space-y-4">
868
+ <div class="bg-gray-600 p-3 rounded">
869
+ <div class="flex justify-between items-start">
870
+ <div>
871
+ <h5 class="font-medium">João Silva</h5>
872
+ <p class="text-sm text-gray-300">joao@email.com</p>
873
+ </div>
874
+ <span class="text-xs text-gray-400">2023-05-15</span>
875
+ </div>
876
+ <p class="mt-2 text-sm">Adoro este cachimbo! A textura sandblasted é incrível.</p>
877
+ <div class="mt-3 flex justify-end space-x-2">
878
+ <button class="text-green-400 hover:text-green-300 text-sm"><i class="fas fa-check mr-1"></i> Aprovar</button>
879
+ <button class="text-red-400 hover:text-red-300 text-sm"><i class="fas fa-trash mr-1"></i> Excluir</button>
880
+ </div>
881
+ </div>
882
+ <div class="bg-gray-600 p-3 rounded">
883
+ <div class="flex justify-between items-start">
884
+ <div>
885
+ <h5 class="font-medium">Carlos Mendes</h5>
886
+ <p class="text-sm text-gray-300">carlos@email.com</p>
887
+ </div>
888
+ <span class="text-xs text-gray-400">2023-06-02</span>
889
+ </div>
890
+ <p class="mt-2 text-sm">Tenho um similar. Excelente para tabacos aromáticos.</p>
891
+ <div class="mt-3 flex justify-end space-x-2">
892
+ <button class="text-green-400 hover:text-green-300 text-sm"><i class="fas fa-check mr-1"></i> Aprovar</button>
893
+ <button class="text-red-400 hover:text-red-300 text-sm"><i class="fas fa-trash mr-1"></i> Excluir</button>
894
+ </div>
895
+ </div>
896
+ <div class="bg-gray-600 p-3 rounded">
897
+ <div class="flex justify-between items-start">
898
+ <div>
899
+ <h5 class="font-medium">Ana Paula</h5>
900
+ <p class="text-sm text-gray-300">ana@email.com</p>
901
+ </div>
902
+ <span class="text-xs text-gray-400">2023-04-20</span>
903
+ </div>
904
+ <p class="mt-2 text-sm">Lindíssimo trabalho de freehand! Parabéns pela aquisição.</p>
905
+ <div class="mt-3 flex justify-end space-x-2">
906
+ <button class="text-green-400 hover:text-green-300 text-sm"><i class="fas fa-check mr-1"></i> Aprovar</button>
907
+ <button class="text-red-400 hover:text-red-300 text-sm"><i class="fas fa-trash mr-1"></i> Excluir</button>
908
+ </div>
909
+ </div>
910
+ </div>
911
+ </div>
912
+ </template>
913
+
914
+ <script>
915
+ // Sample data for demonstration
916
+ const pipeData = {
917
+ 'dinamarqueses': [
918
+ {
919
+ id: 1,
920
+ brand: 'Stanwell',
921
+ name: 'Hans Christian Andersen',
922
+ stem: 'vulcanite',
923
+ filter: '9mm',
924
+ shape: 'Bent Apple',
925
+ texture: 'sandblasted',
926
+ condition: 'estate',
927
+ restoration: 'Level 2',
928
+ country: 'Dinamarca',
929
+ notes: 'Excelente cachimbo para fumar tabacos aromáticos. Adquirido em 2018.',
930
+ images: [
931
+ 'https://via.placeholder.com/1080x1080/cccccc/999999?text=Stanwell+HCA+1',
932
+ 'https://via.placeholder.com/1080x1080/cccccc/999999?text=Stanwell+HCA+2',
933
+ 'https://via.placeholder.com/1080x1080/cccccc/999999?text=Stanwell+HCA+3',
934
+ '',
935
+ ''
936
+ ]
937
+ },
938
+ {
939
+ id: 2,
940
+ brand: 'Nording',
941
+ name: 'Signature Freehand',
942
+ stem: 'acrylic',
943
+ filter: 'no',
944
+ shape: 'Freehand',
945
+ texture: 'rusticated',
946
+ condition: 'new',
947
+ restoration: 'Level 1',
948
+ country: 'Dinamarca',
949
+ notes: 'Presente de aniversário em 2020. Lindo cachimbo esculpido à mão.',
950
+ images: [
951
+ 'https://via.placeholder.com/1080x1080/cccccc/999999?text=Nording+Freehand+1',
952
+ 'https://via.placeholder.com/1080x1080/cccccc/999999?text=Nording+Freehand+2',
953
+ 'https://via.placeholder.com/1080x1080/cccccc/999999?text=Nording+Freehand+3',
954
+ 'https://via.placeholder.com/1080x1080/cccccc/999999?text=Nording+Freehand+4',
955
+ 'https://via.placeholder.com/1080x1080/cccccc/999999?text=Nording+Freehand+5'
956
+ ]
957
+ }
958
+ ],
959
+ 'franceses': [
960
+ {
961
+ id: 3,
962
+ brand: 'Chacom',
963
+ name: 'Gravat',
964
+ stem: 'cumberland',
965
+ filter: '6mm',
966
+ shape: 'Bent Billiard',
967
+ texture: 'smooth',
968
+ condition: 'estate',
969
+ restoration: 'Level 3',
970
+ country: 'França',
971
+ notes: 'Restaurado em 2019. Excelente fumada.',
972
+ images: [
973
+ 'https://via.placeholder.com/1080x1080/cccccc/999999?text=Chacom+Gravat+1',
974
+ 'https://via.placeholder.com/1080x1080/cccccc/999999?text=Chacom+Gravat+2',
975
+ '',
976
+ '',
977
+ ''
978
+ ]
979
+ }
980
+ ],
981
+ 'ingleses': [
982
+ {
983
+ id: 4,
984
+ brand: 'Dunhill',
985
+ name: 'Shell Briar',
986
+ stem: 'vulcanite',
987
+ filter: 'no',
988
+ shape: 'Straight Billiard',
989
+ texture: 'sandblasted',
990
+ condition: 'estate',
991
+ restoration: 'Level 4',
992
+ country: 'Inglaterra',
993
+ notes: 'Peça vintage dos anos 60. Requer cuidados especiais.',
994
+ images: [
995
+ 'https://via.placeholder.com/1080x1080/cccccc/999999?text=Dunhill+Shell+1',
996
+ 'https://via.placeholder.com/1080x1080/cccccc/999999?text=Dunhill+Shell+2',
997
+ 'https://via.placeholder.com/1080x1080/cccccc/999999?text=Dunhill+Shell+3',
998
+ 'https://via.placeholder.com/1080x1080/cccccc/999999?text=Dunhill+Shell+4',
999
+ ''
1000
+ ]
1001
+ },
1002
+ {
1003
+ id: 5,
1004
+ brand: 'Peterson',
1005
+ name: 'System Standard 307',
1006
+ stem: 'acrylic',
1007
+ filter: '9mm',
1008
+ shape: 'Bent Billiard',
1009
+ texture: 'smooth',
1010
+ condition: 'new',
1011
+ restoration: 'Level 1',
1012
+ country: 'Irlanda',
1013
+ notes: 'Adquirido novo em 2021. Excelente para viagens.',
1014
+ images: [
1015
+ 'https://via.placeholder.com/1080x1080/cccccc/999999?text=Peterson+307+1',
1016
+ 'https://via.placeholder.com/1080x1080/cccccc/999999?text=Peterson+307+2',
1017
+ '',
1018
+ '',
1019
+ ''
1020
+ ]
1021
+ }
1022
+ ]
1023
+ };
1024
+
1025
+ // Comments data
1026
+ const commentsData = {
1027
+ 1: [
1028
+ { name: 'João Silva', email: 'joao@email.com', phone: '', text: 'Adoro este cachimbo! A textura sandblasted é incrível.', date: '2023-05-15' },
1029
+ { name: 'Carlos Mendes', email: 'carlos@email.com', phone: '(11) 98765-4321', text: 'Tenho um similar. Excelente para tabacos aromáticos.', date: '2023-06-02' }
1030
+ ],
1031
+ 2: [
1032
+ { name: 'Ana Paula', email: 'ana@email.com', phone: '', text: 'Lindíssimo trabalho de freehand! Parabéns pela aquisição.', date: '2023-04-20' }
1033
+ ],
1034
+ 3: [
1035
+ { name: 'Pierre Dubois', email: 'pierre@email.com', phone: '', text: 'Classic French pipe! Beautiful grain.', date: '2023-07-10' }
1036
+ ],
1037
+ 4: [
1038
+ { name: 'Robert Smith', email: 'robert@email.com', phone: '(44) 1234-5678', text: 'Vintage Dunhills are the best. Great restoration work!', date: '3/15/2023' }
1039
+ ],
1040
+ 5: [
1041
+ { name: 'Miguel Torres', email: 'miguel@email.com', phone: '(21) 99876-5432', text: 'Peterson System é meu favorito. Boa escolha!', date: '8/5/2023' }
1042
+ ]
1043
+ };
1044
+
1045
+ // Current state
1046
+ let currentCollection = '';
1047
+ let currentPipeId = null;
1048
+ let editingPipe = false;
1049
+
1050
+ // DOM elements
1051
+ const homeSection = document.getElementById('home');
1052
+ const pipeCollectionSection = document.getElementById('pipe-collection');
1053
+ const collectionTitle = document.getElementById('collection-title');
1054
+ const pipeGallery = document.getElementById('pipe-gallery');
1055
+ const pipeModal = document.getElementById('pipe-modal');
1056
+ const pipeModalTitle = document.getElementById('pipe-modal-title');
1057
+ const mainPipeImage = document.getElementById('main-pipe-image');
1058
+ const pipeFormModal = document.getElementById('pipe-form-modal');
1059
+ const pipeFormTitle = document.getElementById('pipe-form-title');
1060
+ const pipeForm = document.getElementById('pipe-form');
1061
+ const pipeIdInput = document.getElementById('pipe-id');
1062
+ const searchPipesInput = document.getElementById('search-pipes');
1063
+ const commentsContainer = document.getElementById('comments-container');
1064
+ const commentForm = document.getElementById('comment-form');
1065
+ const adminPanel = document.getElementById('admin-panel');
1066
+ const adminToggle = document.getElementById('admin-toggle');
1067
+ const closeAdmin = document.getElementById('close-admin');
1068
+ const adminContentArea = document.getElementById('admin-content-area');
1069
+
1070
+ // Admin Panel Functions
1071
+ function toggleAdminPanel() {
1072
+ adminPanel.classList.toggle('open');
1073
+ }
1074
+
1075
+ function toggleAdminSection(sectionHeader) {
1076
+ const sectionContent = sectionHeader.nextElementSibling;
1077
+ sectionContent.classList.toggle('hidden');
1078
+ const icon = sectionHeader.querySelector('i');
1079
+ icon.classList.toggle('fa-chevron-down');
1080
+ icon.classList.toggle('fa-chevron-up');
1081
+ }
1082
+
1083
+ function showAdminContent(contentType) {
1084
+ const template = document.getElementById(`${contentType}-template`);
1085
+ if (template) {
1086
+ adminContentArea.innerHTML = '';
1087
+ adminContentArea.appendChild(template.content.cloneNode(true));
1088
+ adminContentArea.classList.remove('hidden');
1089
+ }
1090
+ }
1091
+
1092
+ // Admin Panel Event Listeners
1093
+ adminToggle.addEventListener('click', toggleAdminPanel);
1094
+ closeAdmin.addEventListener('click', toggleAdminPanel);
1095
+
1096
+ // Navigation event listeners
1097
+ document.querySelectorAll('nav a[href^="#"]').forEach(anchor => {
1098
+ anchor.addEventListener('click', function(e) {
1099
+ e.preventDefault();
1100
+
1101
+ const targetId = this.getAttribute('href').substring(1);
1102
+
1103
+ if (targetId === 'home') {
1104
+ showHomeSection();
1105
+ } else if (['dinamarqueses', 'franceses', 'holandeses', 'ingleses', 'irlandeses', 'italianos', 'norte-americanos', 'outros-paises'].includes(targetId)) {
1106
+ showPipeCollection(targetId);
1107
+ }
1108
+
1109
+ // Scroll to section
1110
+ document.getElementById(targetId)?.scrollIntoView({ behavior: 'smooth' });
1111
+ });
1112
+ });
1113
+
1114
+ // Show home section
1115
+ function showHomeSection() {
1116
+ homeSection.classList.remove('hidden');
1117
+ pipeCollectionSection.classList.add('hidden');
1118
+ currentCollection = '';
1119
+ }
1120
+
1121
+ // Show pipe collection
1122
+ function showPipeCollection(collectionId) {
1123
+ homeSection.classList.add('hidden');
1124
+ pipeCollectionSection.classList.remove('hidden');
1125
+
1126
+ currentCollection = collectionId;
1127
+
1128
+ // Set collection title based on ID
1129
+ const titles = {
1130
+ 'dinamarqueses': 'Cachimbos Dinamarqueses',
1131
+ 'franceses': 'Cachimbos Franceses',
1132
+ 'holandeses': 'Cachimbos Holandeses',
1133
+ 'ingleses': 'Cachimbos Ingleses',
1134
+ 'irlandeses': 'Cachimbos Irlandeses',
1135
+ 'italianos': 'Cachimbos Italianos',
1136
+ 'norte-americanos': 'Cachimbos Norte-americanos',
1137
+ 'outros-paises': 'Cachimbos de Outros Países'
1138
+ };
1139
+
1140
+ collectionTitle.textContent = titles[collectionId] || 'Coleção de Cachimbos';
1141
+
1142
+ // Load pipes for this collection
1143
+ loadPipes(collectionId);
1144
+ }
1145
+
1146
+ // Load pipes for a collection
1147
+ function loadPipes(collectionId, searchTerm = '') {
1148
+ pipeGallery.innerHTML = '';
1149
+
1150
+ const pipes = pipeData[collectionId] || [];
1151
+ const filteredPipes = searchTerm
1152
+ ? pipes.filter(pipe =>
1153
+ pipe.brand.toLowerCase().includes(searchTerm.toLowerCase()) ||
1154
+ pipe.name.toLowerCase().includes(searchTerm.toLowerCase()))
1155
+ : pipes;
1156
+
1157
+ if (filteredPipes.length === 0) {
1158
+ pipeGallery.innerHTML = `
1159
+ <div class="col-span-full text-center py-12">
1160
+ <i class="fas fa-pipe text-4xl text-gray-400 mb-4"></i>
1161
+ <p class="text-gray-600">Nenhum cachimbo encontrado nesta categoria.</p>
1162
+ ${searchTerm ? '<p class="text-gray-500 mt-2">Tente ajustar sua busca.</p>' : ''}
1163
+ </div>
1164
+ `;
1165
+ return;
1166
+ }
1167
+
1168
+ filteredPipes.forEach(pipe => {
1169
+ const pipeCard = document.createElement('div');
1170
+ pipeCard.className = 'pipe-card bg-white rounded-lg shadow-md overflow-hidden cursor-pointer';
1171
+ pipeCard.innerHTML = `
1172
+ <div class="h-48 bg-gray-200 flex items-center justify-center">
1173
+ <img src="${pipe.images[0] || 'https://via.placeholder.com/300x300/cccccc/999999?text=No+Image'}" alt="${pipe.brand} ${pipe.name}" class="w-full h-full object-cover">
1174
+ </div>
1175
+ <div class="p-4">
1176
+ <h3 class="font-bold text-lg text-amber-900">${pipe.brand}</h3>
1177
+ <p class="text-gray-700">${pipe.name}</p>
1178
+ <div class="mt-2 flex justify-between items-center">
1179
+ <span class="text-sm text-gray-500">${pipe.country}</span>
1180
+ <span class="text-xs px-2 py-1 rounded ${pipe.condition === 'new' ? 'bg-green-100 text-green-800' : 'bg-amber-100 text-amber-800'}">
1181
+ ${pipe.condition === 'new' ? 'Novo' : 'Usado'}
1182
+ </span>
1183
+ </div>
1184
+ </div>
1185
+ `;
1186
+
1187
+ pipeCard.addEventListener('click', () => showPipeDetails(pipe.id));
1188
+ pipeGallery.appendChild(pipeCard);
1189
+ });
1190
+ }
1191
+
1192
+ // Show pipe details
1193
+ function showPipeDetails(pipeId) {
1194
+ const collectionPipes = pipeData[currentCollection] || [];
1195
+ const pipe = collectionPipes.find(p => p.id === pipeId);
1196
+
1197
+ if (!pipe) return;
1198
+
1199
+ currentPipeId = pipeId;
1200
+ pipeModalTitle.textContent = `${pipe.brand} ${pipe.name}`;
1201
+
1202
+ // Set main image
1203
+ const firstImage = pipe.images.find(img => img) || 'https://via.placeholder.com/1080x1080/cccccc/999999?text=No+Image';
1204
+ mainPipeImage.src = firstImage;
1205
+ mainPipeImage.alt = `${pipe.bbrand} ${pipe.name}`;
1206
+
1207
+ // Set thumbnails
1208
+ document.querySelectorAll('.image-thumbnail img').forEach((img, index) => {
1209
+ if (pipe.images[index]) {
1210
+ img.src = pipe.images[index];
1211
+ img.alt = `${pipe.brand} ${pipe.name} ${index + 1}`;
1212
+ img.parentElement.style.display = 'block';
1213
+ } else {
1214
+ img.parentElement.style.display = 'none';
1215
+ }
1216
+ });
1217
+
1218
+ // Set details
1219
+ document.getElementById('pipe-brand').textContent = pipe.brand;
1220
+ document.getElementById('pipe-name').textContent = pipe.name;
1221
+ document.getElementById('pipe-stem').textContent = getDisplayValue('stem', pipe.stem);
1222
+ document.getElementById('pipe-filter').textContent = getDisplayValue('filter', pipe.filter);
1223
+ document.getElementById('pipe-shape').textContent = pipe.shape || 'N/A';
1224
+ document.getElementById('pipe-texture').textContent = getDisplayValue('texture', pipe.texture);
1225
+ document.getElementById('pipe-condition').textContent = getDisplayValue('condition', pipe.condition);
1226
+ document.getElementById('pipe-restoration').textContent = pipe.restoration;
1227
+ document.getElementById('pipe-country').textContent = pipe.country;
1228
+ document.getElementById('pipe-notes').textContent = pipe.notes || 'Nenhuma observação.';
1229
+
1230
+ // Load comments
1231
+ loadComments(pipeId);
1232
+
1233
+ // Show modal
1234
+ pipeModal.classList.remove('hidden');
1235
+ }
1236
+
1237
+ // Get display value for pipe properties
1238
+ function getDisplayValue(property, value) {
1239
+ const displayValues = {
1240
+ 'stem': {
1241
+ 'acrylic': 'Acrílico',
1242
+ 'vulcanite': 'Vulcanite',
1243
+ 'cumberland': 'Cumberland'
1244
+ },
1245
+ 'filter': {
1246
+ 'no': 'Sem filtro',
1247
+ '6mm': '6mm',
1248
+ '9mm': '9mm',
1249
+ 'balsa': 'Balsa'
1250
+ },
1251
+ 'texture': {
1252
+ 'smooth': 'Liso',
1253
+ 'rusticated': 'Rusticado',
1254
+ 'sandblasted': 'Jateado',
1255
+ 'corn cob': 'Milho'
1256
+ },
1257
+ 'condition': {
1258
+ 'estate': 'Usado',
1259
+ 'new': 'Novo'
1260
+ }
1261
+ };
1262
+
1263
+ return displayValues[property]?.[value] || value;
1264
+ }
1265
+
1266
+ // Load comments for a pipe
1267
+ function loadComments(pipeId) {
1268
+ commentsContainer.innerHTML = '';
1269
+
1270
+ const comments = commentsData[pipeId] || [];
1271
+
1272
+ if (comments.length === 0) {
1273
+ commentsContainer.innerHTML = `
1274
+ <div class="text-center py-4 text-gray-500">
1275
+ Nenhum comentário ainda. Seja o primeiro a comentar!
1276
+ </div>
1277
+ `;
1278
+ return;
1279
+ }
1280
+
1281
+ comments.forEach(comment => {
1282
+ const commentElement = document.createElement('div');
1283
+ commentElement.className = 'bg-gray-50 p-4 rounded-lg';
1284
+ commentElement.innerHTML = `
1285
+ <div class="flex justify-between items-start">
1286
+ <h5 class="font-medium text-gray-800">${comment.name}</h5>
1287
+ <span class="text-xs text-gray-500">${comment.date}</span>
1288
+ </div>
1289
+ ${comment.phone ? `<p class="text-xs text-gray-600 mt-1">${comment.phone}</p>` : ''}
1290
+ <p class="mt-2 text-gray-700">${comment.text}</p>
1291
+ `;
1292
+ commentsContainer.appendChild(commentElement);
1293
+ });
1294
+ }
1295
+
1296
+ // Add new pipe
1297
+ document.getElementById('add-pipe-btn').addEventListener('click', () => {
1298
+ editingPipe = false;
1299
+ pipeFormTitle.textContent = 'Adicionar Novo Cachimbo';
1300
+ pipeIdInput.value = '';
1301
+ pipeForm.reset();
1302
+
1303
+ // Reset image upload containers
1304
+ document.querySelectorAll('.image-upload-container').forEach(container => {
1305
+ container.innerHTML = `
1306
+ <input type="file" class="image-upload hidden" accept="image/*">
1307
+ <div class="text-center">
1308
+ <i class="fas fa-camera text-gray-400 text-2xl mb-1"></i>
1309
+ <p class="text-xs text-gray-500">Foto ${container.dataset.index}</p>
1310
+ </div>
1311
+ `;
1312
+ });
1313
+
1314
+ pipeFormModal.classList.remove('hidden');
1315
+ });
1316
+
1317
+ // Edit pipe
1318
+ document.getElementById('edit-pipe-btn').addEventListener('click', () => {
1319
+ const collectionPipes = pipeData[currentCollection] || [];
1320
+ const pipe = collectionPipes.find(p => p.id === currentPipeId);
1321
+
1322
+ if (!pipe) return;
1323
+
1324
+ editingPipe = true;
1325
+ pipeFormTitle.textContent = 'Editar Cachimbo';
1326
+ pipeIdInput.value = pipe.id;
1327
+
1328
+ // Fill form with pipe data
1329
+ document.getElementById('pipe
1330
+ </html>
prompts.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ Não consigo clicar nas opções dos itens com scroll down, quando vou clicar em alguma das opções o menu scroll-down desaparece. Também não consigo acessar nada, não vai para páginas diferentes. Não consigo acessar o admin panel.