@armoyu/ui 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/dist/app/Providers.d.ts +6 -0
  2. package/dist/app/Providers.d.ts.map +1 -0
  3. package/dist/app/Providers.js +37 -0
  4. package/dist/app/Providers.js.map +1 -0
  5. package/dist/app/api/proxy/[...path]/route.d.ts +22 -0
  6. package/dist/app/api/proxy/[...path]/route.d.ts.map +1 -0
  7. package/dist/app/api/proxy/[...path]/route.js +97 -0
  8. package/dist/app/api/proxy/[...path]/route.js.map +1 -0
  9. package/dist/app/layout.d.ts.map +1 -1
  10. package/dist/app/layout.js +16 -23
  11. package/dist/app/layout.js.map +1 -1
  12. package/dist/components/RollingNumber.d.ts +6 -6
  13. package/dist/components/RollingNumber.js +23 -23
  14. package/dist/components/RollingNumber.js.map +1 -1
  15. package/dist/components/StatsGrid.d.ts +5 -5
  16. package/dist/components/modules/auth/Dashboard.d.ts +1 -1
  17. package/dist/components/modules/auth/PostCard.d.ts +25 -24
  18. package/dist/components/modules/auth/PostCard.d.ts.map +1 -1
  19. package/dist/components/modules/auth/PostCard.js +115 -112
  20. package/dist/components/modules/auth/PostCard.js.map +1 -1
  21. package/dist/components/modules/auth/PostInteractionsModal.d.ts +11 -11
  22. package/dist/components/modules/auth/RepostModal.d.ts +21 -21
  23. package/dist/components/modules/auth/SidebarLeft.d.ts +1 -1
  24. package/dist/components/modules/auth/SidebarLeft.d.ts.map +1 -1
  25. package/dist/components/modules/auth/SidebarLeft.js +8 -40
  26. package/dist/components/modules/auth/SidebarLeft.js.map +1 -1
  27. package/dist/components/modules/auth/Stories.d.ts +1 -1
  28. package/dist/components/modules/auth/StoryViewer.d.ts +9 -9
  29. package/dist/components/modules/auth/widgets/EconomyWidget.d.ts +2 -0
  30. package/dist/components/modules/auth/widgets/EconomyWidget.d.ts.map +1 -0
  31. package/dist/components/modules/auth/widgets/EconomyWidget.js +38 -0
  32. package/dist/components/modules/auth/widgets/EconomyWidget.js.map +1 -0
  33. package/dist/components/modules/auth/widgets/LeagueWidget.d.ts +2 -0
  34. package/dist/components/modules/auth/widgets/LeagueWidget.d.ts.map +1 -0
  35. package/dist/components/modules/auth/widgets/LeagueWidget.js +36 -0
  36. package/dist/components/modules/auth/widgets/LeagueWidget.js.map +1 -0
  37. package/dist/components/modules/auth/widgets/MinecraftWidget.d.ts +2 -0
  38. package/dist/components/modules/auth/widgets/MinecraftWidget.d.ts.map +1 -0
  39. package/dist/components/modules/auth/widgets/MinecraftWidget.js +36 -0
  40. package/dist/components/modules/auth/widgets/MinecraftWidget.js.map +1 -0
  41. package/dist/components/modules/auth/widgets/RankingWidget.d.ts +5 -0
  42. package/dist/components/modules/auth/widgets/RankingWidget.d.ts.map +1 -0
  43. package/dist/components/modules/auth/widgets/RankingWidget.js +79 -0
  44. package/dist/components/modules/auth/widgets/RankingWidget.js.map +1 -0
  45. package/dist/components/modules/chat/ChatContainer.d.ts +1 -1
  46. package/dist/components/modules/chat/ChatInput.d.ts +4 -4
  47. package/dist/components/modules/chat/ChatList.d.ts +6 -6
  48. package/dist/components/modules/chat/ChatNotes.d.ts +1 -1
  49. package/dist/components/modules/community/GroupHeader.d.ts +10 -10
  50. package/dist/components/modules/community/GroupMenu.d.ts +9 -9
  51. package/dist/components/modules/community/SchoolCard.d.ts +6 -6
  52. package/dist/components/modules/community/SurveyCard.d.ts +6 -6
  53. package/dist/components/modules/forum/ForumBoard.d.ts +16 -16
  54. package/dist/components/modules/forum/ForumBoard.js +6 -6
  55. package/dist/components/modules/forum/ForumBoard.js.map +1 -1
  56. package/dist/components/modules/forum/TopicItem.d.ts +15 -15
  57. package/dist/components/modules/forum/TopicItem.js +6 -6
  58. package/dist/components/modules/forum/TopicItem.js.map +1 -1
  59. package/dist/components/modules/guest/Introduction.d.ts +1 -1
  60. package/dist/components/modules/magaza/BackToStore.d.ts +1 -1
  61. package/dist/components/modules/magaza/StoreHeader.d.ts +5 -5
  62. package/dist/components/modules/news/NewsCard.d.ts +11 -11
  63. package/dist/components/modules/news/NewsComments.d.ts +1 -1
  64. package/dist/components/modules/profile/ProfileContent.d.ts +4 -4
  65. package/dist/components/modules/profile/ProfileContent.d.ts.map +1 -1
  66. package/dist/components/modules/profile/ProfileContent.js +98 -70
  67. package/dist/components/modules/profile/ProfileContent.js.map +1 -1
  68. package/dist/components/modules/profile/ProfileHeader.d.ts +7 -7
  69. package/dist/components/modules/profile/ProfileHeader.js +19 -19
  70. package/dist/components/modules/profile/ProfileHeader.js.map +1 -1
  71. package/dist/components/modules/profile/ProfileStats.d.ts +6 -1
  72. package/dist/components/modules/profile/ProfileStats.d.ts.map +1 -1
  73. package/dist/components/modules/profile/ProfileStats.js +11 -6
  74. package/dist/components/modules/profile/ProfileStats.js.map +1 -1
  75. package/dist/components/modules/profile/TeamSelectorModal.d.ts +10 -10
  76. package/dist/components/modules/profile/tabs/AboutTab.d.ts +10 -0
  77. package/dist/components/modules/profile/tabs/AboutTab.d.ts.map +1 -0
  78. package/dist/components/modules/profile/tabs/AboutTab.js +9 -0
  79. package/dist/components/modules/profile/tabs/AboutTab.js.map +1 -0
  80. package/dist/components/modules/profile/tabs/CareerTab.d.ts +7 -0
  81. package/dist/components/modules/profile/tabs/CareerTab.d.ts.map +1 -0
  82. package/dist/components/modules/profile/tabs/CareerTab.js +46 -0
  83. package/dist/components/modules/profile/tabs/CareerTab.js.map +1 -0
  84. package/dist/components/modules/profile/tabs/FriendsTab.d.ts +7 -0
  85. package/dist/components/modules/profile/tabs/FriendsTab.d.ts.map +1 -0
  86. package/dist/components/modules/profile/tabs/FriendsTab.js +8 -0
  87. package/dist/components/modules/profile/tabs/FriendsTab.js.map +1 -0
  88. package/dist/components/modules/profile/tabs/GamesTab.d.ts +7 -0
  89. package/dist/components/modules/profile/tabs/GamesTab.d.ts.map +1 -0
  90. package/dist/components/modules/profile/tabs/GamesTab.js +37 -0
  91. package/dist/components/modules/profile/tabs/GamesTab.js.map +1 -0
  92. package/dist/components/modules/profile/tabs/PostsTab.d.ts +7 -0
  93. package/dist/components/modules/profile/tabs/PostsTab.d.ts.map +1 -0
  94. package/dist/components/modules/profile/tabs/PostsTab.js +81 -0
  95. package/dist/components/modules/profile/tabs/PostsTab.js.map +1 -0
  96. package/dist/components/modules/profile/widgets/ProfileBadgesWidget.d.ts +2 -0
  97. package/dist/components/modules/profile/widgets/ProfileBadgesWidget.d.ts.map +1 -0
  98. package/dist/components/modules/profile/widgets/ProfileBadgesWidget.js +6 -0
  99. package/dist/components/modules/profile/widgets/ProfileBadgesWidget.js.map +1 -0
  100. package/dist/components/modules/profile/widgets/ProfileCloudWidget.d.ts +6 -0
  101. package/dist/components/modules/profile/widgets/ProfileCloudWidget.d.ts.map +1 -0
  102. package/dist/components/modules/profile/widgets/ProfileCloudWidget.js +6 -0
  103. package/dist/components/modules/profile/widgets/ProfileCloudWidget.js.map +1 -0
  104. package/dist/components/modules/profile/widgets/ProfileFriendsWidget.d.ts +8 -0
  105. package/dist/components/modules/profile/widgets/ProfileFriendsWidget.d.ts.map +1 -0
  106. package/dist/components/modules/profile/widgets/ProfileFriendsWidget.js +12 -0
  107. package/dist/components/modules/profile/widgets/ProfileFriendsWidget.js.map +1 -0
  108. package/dist/components/modules/stations/StationCard.d.ts +2 -2
  109. package/dist/components/modules/stations/StationQRModal.d.ts +9 -9
  110. package/dist/components/shared/DevTools.d.ts +2 -0
  111. package/dist/components/shared/DevTools.d.ts.map +1 -0
  112. package/dist/components/shared/DevTools.js +39 -0
  113. package/dist/components/shared/DevTools.js.map +1 -0
  114. package/dist/components/shared/FloatingChatButton.d.ts +4 -4
  115. package/dist/components/shared/Header.d.ts +1 -1
  116. package/dist/components/shared/Header.d.ts.map +1 -1
  117. package/dist/components/shared/Header.js +108 -97
  118. package/dist/components/shared/Header.js.map +1 -1
  119. package/dist/components/shared/LoginModal.d.ts +4 -4
  120. package/dist/components/shared/LoginModal.d.ts.map +1 -1
  121. package/dist/components/shared/LoginModal.js +65 -69
  122. package/dist/components/shared/LoginModal.js.map +1 -1
  123. package/dist/components/shared/MainLayoutWrapper.d.ts +3 -3
  124. package/dist/components/showcase/ProfileTab.d.ts.map +1 -1
  125. package/dist/components/showcase/ProfileTab.js +43 -3
  126. package/dist/components/showcase/ProfileTab.js.map +1 -1
  127. package/dist/components/showcase/SocialTab.d.ts.map +1 -1
  128. package/dist/components/showcase/SocialTab.js +86 -2
  129. package/dist/components/showcase/SocialTab.js.map +1 -1
  130. package/dist/context/ArmoyuContext.d.ts +42 -0
  131. package/dist/context/ArmoyuContext.d.ts.map +1 -0
  132. package/dist/context/ArmoyuContext.js +76 -0
  133. package/dist/context/ArmoyuContext.js.map +1 -0
  134. package/dist/context/AuthContext.d.ts +18 -18
  135. package/dist/context/AuthContext.d.ts.map +1 -1
  136. package/dist/context/AuthContext.js +97 -74
  137. package/dist/context/AuthContext.js.map +1 -1
  138. package/dist/context/CartContext.d.ts +16 -16
  139. package/dist/context/SocketContext.d.ts +12 -12
  140. package/dist/context/SocketContext.d.ts.map +1 -1
  141. package/dist/context/SocketContext.js +31 -30
  142. package/dist/context/SocketContext.js.map +1 -1
  143. package/dist/index.d.ts +67 -65
  144. package/dist/index.d.ts.map +1 -1
  145. package/dist/index.js +83 -80
  146. package/dist/index.js.map +1 -1
  147. package/dist/lib/ArmoyuUI.d.ts +18 -0
  148. package/dist/lib/ArmoyuUI.d.ts.map +1 -0
  149. package/dist/lib/ArmoyuUI.js +25 -0
  150. package/dist/lib/ArmoyuUI.js.map +1 -0
  151. package/dist/lib/constants/educationData.d.ts +7 -7
  152. package/dist/lib/constants/seedData.d.ts +164 -164
  153. package/dist/lib/constants/seedData.d.ts.map +1 -1
  154. package/dist/lib/constants/seedData.js +694 -694
  155. package/dist/lib/constants/seedData.js.map +1 -1
  156. package/dist/lib/constants/stationData.d.ts +13 -13
  157. package/dist/lib/constants/stationData.js +166 -166
  158. package/dist/lib/constants/stationData.js.map +1 -1
  159. package/dist/lib/constants/surveyData.d.ts +2 -2
  160. package/dist/lib/constants/teamData.d.ts +12 -12
  161. package/package.json +14 -12
  162. package/next.config.ts +0 -13
  163. package/postcss.config.js +0 -6
  164. package/src/app/layout.tsx +0 -67
  165. package/src/app/page.tsx +0 -101
  166. package/src/components/Button.tsx +0 -41
  167. package/src/components/GenderStatsBar.tsx +0 -66
  168. package/src/components/RollingNumber.tsx +0 -50
  169. package/src/components/Slider.tsx +0 -114
  170. package/src/components/StatsGrid.tsx +0 -35
  171. package/src/components/ViewModeToggle.tsx +0 -39
  172. package/src/components/modules/auth/Dashboard.tsx +0 -649
  173. package/src/components/modules/auth/MediaLightbox.tsx +0 -112
  174. package/src/components/modules/auth/PostCard.tsx +0 -556
  175. package/src/components/modules/auth/PostInteractionsModal.tsx +0 -138
  176. package/src/components/modules/auth/RepostModal.tsx +0 -167
  177. package/src/components/modules/auth/SidebarLeft.tsx +0 -237
  178. package/src/components/modules/auth/Stories.tsx +0 -69
  179. package/src/components/modules/auth/StoryViewer.tsx +0 -146
  180. package/src/components/modules/chat/ChatContainer.tsx +0 -332
  181. package/src/components/modules/chat/ChatInput.tsx +0 -57
  182. package/src/components/modules/chat/ChatList.tsx +0 -179
  183. package/src/components/modules/chat/ChatMessage.tsx +0 -43
  184. package/src/components/modules/chat/ChatNotes.tsx +0 -58
  185. package/src/components/modules/community/GroupHeader.tsx +0 -111
  186. package/src/components/modules/community/GroupMenu.tsx +0 -82
  187. package/src/components/modules/community/SchoolCard.tsx +0 -104
  188. package/src/components/modules/community/SurveyCard.tsx +0 -149
  189. package/src/components/modules/forum/ForumBoard.tsx +0 -78
  190. package/src/components/modules/forum/ForumPost.tsx +0 -71
  191. package/src/components/modules/forum/NewTopicModal.tsx +0 -112
  192. package/src/components/modules/forum/TopicItem.tsx +0 -72
  193. package/src/components/modules/galleries/GalleryCard.tsx +0 -66
  194. package/src/components/modules/giveaways/GiveawayCard.tsx +0 -76
  195. package/src/components/modules/groups/ApplicationModal.tsx +0 -133
  196. package/src/components/modules/groups/GroupCard.tsx +0 -96
  197. package/src/components/modules/guest/Introduction.tsx +0 -60
  198. package/src/components/modules/magaza/BackToStore.tsx +0 -53
  199. package/src/components/modules/magaza/StoreHeader.tsx +0 -74
  200. package/src/components/modules/news/NewsCard.tsx +0 -66
  201. package/src/components/modules/news/NewsComments.tsx +0 -141
  202. package/src/components/modules/profile/CloudStorageModal.tsx +0 -200
  203. package/src/components/modules/profile/EditProfileModal.tsx +0 -191
  204. package/src/components/modules/profile/ProfileContent.tsx +0 -491
  205. package/src/components/modules/profile/ProfileHeader.tsx +0 -128
  206. package/src/components/modules/profile/ProfileStats.tsx +0 -72
  207. package/src/components/modules/profile/TeamSelectorModal.tsx +0 -129
  208. package/src/components/modules/stations/StationCard.tsx +0 -95
  209. package/src/components/modules/stations/StationQRModal.tsx +0 -102
  210. package/src/components/shared/FloatingChatButton.tsx +0 -57
  211. package/src/components/shared/Footer.tsx +0 -77
  212. package/src/components/shared/Header.tsx +0 -799
  213. package/src/components/shared/LoginModal.tsx +0 -208
  214. package/src/components/shared/MainLayoutWrapper.tsx +0 -15
  215. package/src/components/shared/PageWidth.tsx +0 -22
  216. package/src/components/showcase/CommunityTab.tsx +0 -22
  217. package/src/components/showcase/CorporateTab.tsx +0 -38
  218. package/src/components/showcase/GeneralTab.tsx +0 -41
  219. package/src/components/showcase/MessagesTab.tsx +0 -26
  220. package/src/components/showcase/ProfileTab.tsx +0 -20
  221. package/src/components/showcase/ShopTab.tsx +0 -24
  222. package/src/components/showcase/SocialTab.tsx +0 -28
  223. package/src/context/AuthContext.tsx +0 -104
  224. package/src/context/CartContext.tsx +0 -93
  225. package/src/context/ChatContext.tsx +0 -32
  226. package/src/context/LayoutContext.tsx +0 -29
  227. package/src/context/SocketContext.tsx +0 -50
  228. package/src/context/ThemeContext.tsx +0 -52
  229. package/src/index.ts +0 -96
  230. package/src/lib/constants/educationData.ts +0 -124
  231. package/src/lib/constants/punishmentData.ts +0 -201
  232. package/src/lib/constants/seedData.ts +0 -758
  233. package/src/lib/constants/stationData.ts +0 -170
  234. package/src/lib/constants/surveyData.ts +0 -53
  235. package/src/lib/constants/teamData.ts +0 -69
  236. package/src/lib/utils/numberFormat.ts +0 -16
  237. package/src/lib/utils/odpUtils.ts +0 -51
  238. package/src/types/index.ts +0 -1
  239. package/src/types/stats.ts +0 -17
@@ -1,72 +0,0 @@
1
- import React from 'react';
2
- import { RollingNumber } from '../../RollingNumber';
3
- import { formatStatValue } from '../../../lib/utils/numberFormat';
4
-
5
- export function ProfileStats() {
6
- const followersCount = 14200;
7
- const followingCount = 356;
8
- const viewsCount = 1200000;
9
- const respectCount = 145;
10
-
11
- const followers = formatStatValue(followersCount);
12
- const following = formatStatValue(followingCount);
13
- const views = formatStatValue(viewsCount);
14
- const respect = formatStatValue(respectCount);
15
-
16
- return (
17
- <div className="w-full bg-armoyu-card-bg border border-armoyu-card-border rounded-3xl p-6 shadow-sm flex flex-col md:flex-row justify-between items-center gap-6">
18
-
19
- {/* Rakamlar */}
20
- <div className="flex flex-wrap justify-center md:justify-start gap-6 md:gap-12 w-full md:w-auto">
21
- <div className="text-center md:text-left">
22
- <div className="text-2xl font-black text-armoyu-text flex items-baseline">
23
- <RollingNumber value={followers.value} />
24
- <span className="text-lg font-bold ml-1 text-armoyu-text/80">{followers.unit}</span>
25
- </div>
26
- <div className="text-xs font-bold text-armoyu-text-muted uppercase tracking-wider mt-1">Takipçi</div>
27
- </div>
28
- <div className="text-center md:text-left">
29
- <div className="text-2xl font-black text-armoyu-text flex items-baseline">
30
- <RollingNumber value={following.value} />
31
- <span className="text-lg font-bold ml-1 text-armoyu-text/80">{following.unit}</span>
32
- </div>
33
- <div className="text-xs font-bold text-armoyu-text-muted uppercase tracking-wider mt-1">Takip</div>
34
- </div>
35
- <div className="text-center md:text-left">
36
- <div className="text-2xl font-black text-armoyu-text flex items-baseline">
37
- <RollingNumber value={views.value} />
38
- <span className="text-lg font-bold ml-1 text-armoyu-text/80">{views.unit}</span>
39
- </div>
40
- <div className="text-xs font-bold text-armoyu-text-muted uppercase tracking-wider mt-1">Görüntülenme</div>
41
- </div>
42
- <div className="text-center md:text-left">
43
- <div className="text-2xl font-black text-emerald-500 flex items-baseline">
44
- <RollingNumber value={respect.value} />
45
- <span className="text-lg font-bold ml-1 text-emerald-500/80">{respect.unit}</span>
46
- </div>
47
- <div className="text-xs font-bold text-armoyu-text-muted uppercase tracking-wider mt-1">Saygı Puanı</div>
48
- </div>
49
- </div>
50
-
51
- {/* Level / XP */}
52
- <div className="w-full md:w-72 bg-black/5 dark:bg-white/5 border border-black/5 dark:border-white/5 rounded-2xl p-4">
53
- <div className="flex justify-between items-end mb-2">
54
- <div>
55
- <span className="text-xs font-bold text-armoyu-text-muted uppercase tracking-wider">Oyuncu Seviyesi</span>
56
- <div className="text-xl font-bold text-blue-500 mt-0.5 flex items-center gap-1">
57
- Seviye <RollingNumber value={42} />
58
- </div>
59
- </div>
60
- <div className="text-xs font-bold text-armoyu-text-muted flex items-center gap-1">
61
- <RollingNumber value={850} /> / <RollingNumber value={1000} /> XP
62
- </div>
63
- </div>
64
- {/* Progress Bar */}
65
- <div className="h-2.5 w-full bg-gray-200 dark:bg-gray-800 rounded-full overflow-hidden">
66
- <div className="h-full bg-gradient-to-r from-blue-600 to-indigo-500 w-[85%] rounded-full shadow-[0_0_10px_rgba(59,130,246,0.6)]"></div>
67
- </div>
68
- </div>
69
-
70
- </div>
71
- );
72
- }
@@ -1,129 +0,0 @@
1
- 'use client';
2
-
3
- import React, { useState } from 'react';
4
- import { X, Check, Star } from 'lucide-react';
5
- import { SUPER_LEAGUE_TEAMS, ZODIAC_SIGNS } from '../../../lib/constants/teamData';
6
- import { Team } from '@armoyu/core';
7
-
8
-
9
- interface TeamSelectorModalProps {
10
- isOpen: boolean;
11
- onClose: () => void;
12
- onSelect: (team: Team | null, zodiac: string) => void;
13
- initialTeam?: Team | null;
14
- initialZodiac?: string;
15
- }
16
-
17
- export function TeamSelectorModal({ isOpen, onClose, onSelect, initialTeam, initialZodiac }: TeamSelectorModalProps) {
18
- const [selectedTeam, setSelectedTeam] = useState<Team | null>(initialTeam || null);
19
- const [selectedZodiac, setSelectedZodiac] = useState<string>(initialZodiac || '');
20
-
21
- if (!isOpen) return null;
22
-
23
- return (
24
- <div className="fixed inset-0 z-[100] flex items-center justify-center p-4 md:p-8">
25
- {/* Backdrop */}
26
- <div className="absolute inset-0 bg-black/60 backdrop-blur-md animate-in fade-in duration-300" onClick={onClose} />
27
-
28
- {/* Modal Content */}
29
- <div className="bg-armoyu-card-bg border border-armoyu-card-border rounded-[40px] w-full max-w-2xl relative z-10 shadow-2xl animate-in zoom-in-95 duration-500 overflow-hidden flex flex-col max-h-[90vh]">
30
-
31
- {/* Header */}
32
- <div className="p-8 border-b border-armoyu-card-border flex items-center justify-between bg-black/5 shrink-0">
33
- <div className="flex items-center gap-4">
34
- <div className="w-12 h-12 rounded-2xl bg-blue-500/10 flex items-center justify-center text-blue-500 shadow-inner">
35
- <Star size={24} className="fill-current" />
36
- </div>
37
- <div>
38
- <h3 className="text-xl font-black text-armoyu-text uppercase italic tracking-tighter leading-none">PROFİLİNİ TAMAMLA</h3>
39
- <p className="text-[10px] font-bold text-armoyu-text-muted uppercase tracking-widest mt-2 italic opacity-60">Seni daha yakından tanıyalım</p>
40
- </div>
41
- </div>
42
- <button onClick={onClose} className="p-2 text-armoyu-text-muted hover:text-armoyu-text bg-black/10 rounded-xl transition-all">
43
- <X size={20} />
44
- </button>
45
- </div>
46
-
47
- {/* Form Content */}
48
- <div className="p-8 space-y-10 overflow-y-auto custom-scrollbar">
49
-
50
- {/* Team Selection */}
51
- <section className="space-y-4">
52
- <div className="flex items-center justify-between">
53
- <label className="text-[11px] font-black text-armoyu-text-muted uppercase tracking-[0.2em] italic ml-1 leading-none">FAVORİ TAKIMIN</label>
54
- <span className="text-[10px] font-bold text-blue-500 uppercase tracking-widest italic">{selectedTeam?.name || 'Seçilmedi'}</span>
55
- </div>
56
-
57
- <div className="grid grid-cols-2 sm:grid-cols-3 gap-3">
58
- {SUPER_LEAGUE_TEAMS.map((team) => (
59
- <button
60
- key={team.id}
61
- onClick={() => setSelectedTeam(team)}
62
- className={`relative p-4 rounded-3xl border transition-all duration-300 flex flex-col items-center gap-3 group ${selectedTeam?.id === team.id
63
- ? 'bg-blue-600/10 border-blue-500 shadow-[0_0_20px_rgba(59,130,246,0.2)]'
64
- : 'bg-black/5 border-armoyu-card-border hover:border-white/20'
65
- }`}
66
- >
67
- {team.logo ? (
68
- <img src={team.logo} alt={team.name} className="w-12 h-12 object-contain group-hover:scale-110 transition-transform duration-500" />
69
- ) : (
70
- <div className="w-12 h-12 rounded-full bg-white/5 flex items-center justify-center text-xl">🚫</div>
71
- )}
72
- <span className={`text-[10px] font-black uppercase tracking-widest text-center ${selectedTeam?.id === team.id ? 'text-blue-500' : 'text-armoyu-text-muted'}`}>
73
- {team.name}
74
- </span>
75
-
76
- {selectedTeam?.id === team.id && (
77
- <div className="absolute top-2 right-2 w-5 h-5 bg-blue-500 rounded-full flex items-center justify-center text-white animate-in zoom-in duration-300">
78
- <Check size={12} strokeWidth={4} />
79
- </div>
80
- )}
81
- </button>
82
- ))}
83
- </div>
84
- </section>
85
-
86
- {/* Zodiac Selection */}
87
- <section className="space-y-4 pb-4">
88
- <div className="flex items-center justify-between">
89
- <label className="text-[11px] font-black text-armoyu-text-muted uppercase tracking-[0.2em] italic ml-1 leading-none">BURCUN</label>
90
- <span className="text-[10px] font-bold text-purple-500 uppercase tracking-widest italic">{selectedZodiac || 'Seçilmedi'}</span>
91
- </div>
92
-
93
- <div className="grid grid-cols-4 sm:grid-cols-6 gap-2">
94
- {ZODIAC_SIGNS.map((zodiac) => (
95
- <button
96
- key={zodiac.name}
97
- onClick={() => setSelectedZodiac(zodiac.name)}
98
- className={`p-3 rounded-2xl border transition-all duration-300 flex flex-col items-center gap-1.5 group ${selectedZodiac === zodiac.name
99
- ? 'bg-purple-600/10 border-purple-500 shadow-[0_0_15px_rgba(168,85,247,0.2)]'
100
- : 'bg-black/5 border-armoyu-card-border hover:border-white/10'
101
- }`}
102
- title={zodiac.name}
103
- >
104
- <span className={`text-2xl group-hover:scale-110 transition-transform duration-500 ${selectedZodiac === zodiac.name ? 'opacity-100' : 'opacity-60'}`}>
105
- {zodiac.icon}
106
- </span>
107
- <span className={`text-[8px] font-bold uppercase tracking-tighter ${selectedZodiac === zodiac.name ? 'text-purple-500' : 'text-armoyu-text-muted'}`}>
108
- {zodiac.name}
109
- </span>
110
- </button>
111
- ))}
112
- </div>
113
- </section>
114
- </div>
115
-
116
- {/* Footer */}
117
- <div className="p-8 border-t border-armoyu-card-border bg-black/5 shrink-0">
118
- <button
119
- onClick={() => onSelect(selectedTeam, selectedZodiac)}
120
- className="w-full py-5 bg-gradient-to-r from-blue-600 to-blue-500 hover:from-blue-500 hover:to-blue-400 text-white font-black rounded-3xl text-[11px] uppercase tracking-[0.2em] shadow-2xl shadow-blue-500/30 active:scale-95 transition-all flex items-center justify-center gap-3 italic"
121
- >
122
- DEĞİŞİKLİKLERİ KAYDET <Check size={18} strokeWidth={3} />
123
- </button>
124
- </div>
125
- </div>
126
- </div>
127
- );
128
- }
129
-
@@ -1,95 +0,0 @@
1
- 'use client';
2
-
3
- import React from 'react';
4
- import Link from 'next/link';
5
- import { Station } from '@armoyu/core';
6
-
7
- import { MapPin, Star, Coffee, Monitor, Trophy, Dumbbell, ChevronRight } from 'lucide-react';
8
-
9
- export function StationCard(station: Station) {
10
- const Icon = {
11
- 'YEMEK': Coffee,
12
- 'INTERNET_KAFE': Monitor,
13
- 'HALI_SAHA': Trophy,
14
- 'SPOR_KOMPLEKSI': Dumbbell
15
- }[station.type];
16
-
17
- const typeLabel = {
18
- 'YEMEK': 'Yemek & Kahve',
19
- 'INTERNET_KAFE': 'İnternet Kafe',
20
- 'HALI_SAHA': 'Halı Saha',
21
- 'SPOR_KOMPLEKSI': 'Spor Kompleksi'
22
- }[station.type];
23
-
24
- const typeColor = {
25
- 'YEMEK': 'text-amber-500 bg-amber-500/10',
26
- 'INTERNET_KAFE': 'text-blue-500 bg-blue-500/10',
27
- 'HALI_SAHA': 'text-emerald-500 bg-emerald-500/10',
28
- 'SPOR_KOMPLEKSI': 'text-purple-500 bg-purple-500/10'
29
- }[station.type];
30
-
31
- return (
32
- <div className="group relative glass-panel rounded-[32px] border border-armoyu-card-border overflow-hidden bg-armoyu-card-bg hover:shadow-2xl transition-all duration-500 flex flex-col h-full animate-in fade-in zoom-in duration-700">
33
- {/* Banner */}
34
- <div className="relative h-48 overflow-hidden">
35
- <img
36
- src={station.banner}
37
- alt={station.name}
38
- className="w-full h-full object-cover group-hover:scale-110 transition-transform duration-700"
39
- />
40
- <div className="absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent" />
41
-
42
- {/* Type Badge */}
43
- <div className={`absolute top-4 left-4 flex items-center gap-2 px-3 py-1.5 rounded-xl backdrop-blur-md border border-white/10 ${typeColor}`}>
44
- <Icon size={14} strokeWidth={2.5} />
45
- <span className="text-[10px] font-black uppercase tracking-widest">{typeLabel}</span>
46
- </div>
47
- </div>
48
-
49
- {/* Content */}
50
- <div className="p-6 flex flex-col flex-1 relative">
51
- {/* Logo Overlay */}
52
- <div className="absolute -top-10 left-6 w-20 h-20 rounded-2xl border-4 border-armoyu-card-bg overflow-hidden shadow-xl bg-white">
53
- <img src={station.logo} alt={station.name} className="w-full h-full object-cover" />
54
- </div>
55
-
56
- <div className="mt-12 flex-1">
57
- <div className="flex justify-between items-start mb-2">
58
- <h3 className="text-xl font-black text-armoyu-text uppercase tracking-tight group-hover:text-blue-500 transition-colors truncate pr-2">
59
- {station.name}
60
- </h3>
61
- <div className="flex items-center gap-1 shrink-0">
62
- <Star size={14} className="text-amber-500 fill-amber-500" />
63
- <span className="text-sm font-black text-armoyu-text">{station.rating}</span>
64
- </div>
65
- </div>
66
-
67
- <div className="flex items-center gap-2 mb-4 text-armoyu-text-muted">
68
- <MapPin size={14} className="shrink-0 opacity-50" />
69
- <span className="text-xs font-bold truncate">{station.location}</span>
70
- </div>
71
-
72
- <p className="text-sm text-armoyu-text-muted font-medium line-clamp-2 leading-relaxed mb-6 opacity-80">
73
- {station.description}
74
- </p>
75
- </div>
76
-
77
- {/* Footer */}
78
- <div className="pt-6 border-t border-armoyu-card-border flex items-center justify-between">
79
- <div className="flex flex-col">
80
- <span className="text-[10px] font-black text-armoyu-text-muted uppercase tracking-widest opacity-50">YORUMLAR</span>
81
- <span className="text-xs font-black text-armoyu-text">{station.reviewCount} Değerlendirme</span>
82
- </div>
83
-
84
- <Link
85
- href={`/istasyonlar/${station.slug}`}
86
- className="w-10 h-10 rounded-xl bg-armoyu-text dark:bg-white text-white dark:text-black flex items-center justify-center hover:scale-110 active:scale-95 transition-all shadow-lg"
87
- >
88
- <ChevronRight size={20} strokeWidth={3} />
89
- </Link>
90
- </div>
91
- </div>
92
- </div>
93
- );
94
- }
95
-
@@ -1,102 +0,0 @@
1
- 'use client';
2
-
3
- import React from 'react';
4
- import { X, QrCode } from 'lucide-react';
5
- import { StationProduct } from '@armoyu/core';
6
-
7
-
8
- interface StationQRModalProps {
9
- isOpen: boolean;
10
- onClose: () => void;
11
- stationName: string;
12
- item: StationProduct | null;
13
- }
14
-
15
- export function StationQRModal({ isOpen, onClose, stationName, item }: StationQRModalProps) {
16
- if (!isOpen || !item) return null;
17
-
18
- // Mock username - normally would come from auth context
19
- const username = 'berkaytikeno';
20
- const qrData = encodeURIComponent(`${stationName} | ${item.name} | ${item.discountRate || 'No Discount'} | User: ${username}`);
21
- const qrUrl = `https://api.qrserver.com/v1/create-qr-code/?size=250x250&data=${qrData}&bgcolor=ffffff&color=000000&margin=10`;
22
-
23
- return (
24
- <div className="fixed inset-0 z-[100] flex items-center justify-center p-6 animate-in fade-in duration-300">
25
- {/* Backdrop */}
26
- <div
27
- className="absolute inset-0 bg-black/80 backdrop-blur-md"
28
- onClick={onClose}
29
- />
30
-
31
- {/* Modal Content */}
32
- <div className="relative w-full max-w-md bg-white dark:bg-zinc-900 rounded-[48px] overflow-hidden shadow-[0_0_100px_rgba(0,0,0,0.5)] border border-white/10 animate-in zoom-in slide-in-from-bottom-12 duration-500">
33
- <div className="p-8 pb-0 flex justify-end">
34
- <button
35
- onClick={onClose}
36
- className="w-10 h-10 rounded-full bg-black/5 dark:bg-white/5 flex items-center justify-center hover:bg-red-500 hover:text-white transition-all active:scale-90"
37
- >
38
- <X size={20} />
39
- </button>
40
- </div>
41
-
42
- <div className="p-10 pt-4 text-center">
43
- <div className="mb-6">
44
- <span className="px-4 py-1.5 bg-blue-500/10 text-blue-500 rounded-full text-[10px] font-black uppercase tracking-[0.2em] mb-4 inline-block">
45
- ARMOYU AVANTAJ KODU
46
- </span>
47
- <h3 className="text-2xl font-black text-armoyu-text uppercase tracking-tighter italic leading-tight">
48
- {item.name}
49
- </h3>
50
- <p className="text-armoyu-text-muted text-xs font-bold uppercase tracking-widest mt-1 opacity-60">
51
- {stationName}
52
- </p>
53
- </div>
54
-
55
- {/* QR Code Container */}
56
- <div className="relative p-6 bg-white rounded-[40px] shadow-inner mb-8 inline-block mx-auto group">
57
- <div className="absolute inset-0 bg-blue-500/5 blur-3xl rounded-full scale-150 group-hover:bg-blue-500/10 transition-colors" />
58
- <img
59
- src={qrUrl}
60
- alt="QR Code"
61
- className="relative z-10 w-48 h-48 md:w-56 md:h-56 object-contain mix-blend-multiply dark:mix-blend-normal"
62
- />
63
-
64
- {/* Corner Accents */}
65
- <div className="absolute top-0 left-0 w-8 h-8 border-t-4 border-l-4 border-blue-600 rounded-tl-2xl" />
66
- <div className="absolute top-0 right-0 w-8 h-8 border-t-4 border-r-4 border-blue-600 rounded-tr-2xl" />
67
- <div className="absolute bottom-0 left-0 w-8 h-8 border-b-4 border-l-4 border-blue-600 rounded-bl-2xl" />
68
- <div className="absolute bottom-0 right-0 w-8 h-8 border-b-4 border-r-4 border-blue-600 rounded-br-2xl" />
69
- </div>
70
-
71
- <div className="space-y-4">
72
- <div className="p-5 bg-black/5 dark:bg-white/5 rounded-3xl border border-black/5 dark:border-white/5">
73
- <div className="flex justify-between items-center mb-1">
74
- <span className="text-[10px] font-black text-armoyu-text-muted uppercase tracking-widest leading-none">İNDİRİM ORANI</span>
75
- <span className="text-xl font-black text-emerald-500 italic">{item.discountRate || 'Özel Fiyat'}</span>
76
- </div>
77
- <div className="flex justify-between items-center">
78
- <span className="text-[10px] font-black text-armoyu-text-muted uppercase tracking-widest leading-none">ÜCRET</span>
79
- <span className="text-xl font-black text-armoyu-text">{item.price} ₺</span>
80
- </div>
81
- </div>
82
-
83
- <p className="text-[10px] font-bold text-armoyu-text-muted uppercase tracking-widest leading-relaxed opacity-60 max-w-[280px] mx-auto">
84
- BU KODU KASADAKİ GÖREVLİYE OKUTARAK İNDİRİMİNİZİ ANINDA UYGALAYABİLİRSİNİZ.
85
- </p>
86
- </div>
87
- </div>
88
-
89
- {/* Footer */}
90
- <div className="p-8 bg-blue-600 text-white text-center">
91
- <button
92
- onClick={onClose}
93
- className="w-full py-4 bg-white text-blue-600 rounded-2xl font-black text-xs uppercase tracking-widest shadow-xl active:scale-95 transition-all"
94
- >
95
- KAPAT
96
- </button>
97
- </div>
98
- </div>
99
- </div>
100
- );
101
- }
102
-
@@ -1,57 +0,0 @@
1
- 'use client';
2
-
3
- import React from 'react';
4
- import { useAuth } from '../../context/AuthContext';
5
- import { useChat } from '../../context/ChatContext';
6
- import { ChatContainer } from '../../components/modules/chat/ChatContainer';
7
-
8
- export interface FloatingChatButtonProps {
9
- position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
10
- }
11
-
12
- export function FloatingChatButton({ position = 'bottom-right' }: FloatingChatButtonProps) {
13
- const { user } = useAuth();
14
- const { isChatOpen, toggleChat } = useChat();
15
-
16
- if (!user) return null;
17
-
18
- const positionClasses = {
19
- 'bottom-right': 'bottom-6 right-6 md:bottom-10 md:right-10',
20
- 'bottom-left': 'bottom-6 left-6 md:bottom-10 md:left-10',
21
- 'top-right': 'top-24 right-6 md:top-24 md:right-10',
22
- 'top-left': 'top-24 left-6 md:top-24 md:left-10',
23
- };
24
-
25
- return (
26
- <div key="floating-chat-wrapper">
27
- {/* Floating Buton (Sadece sohbet KAPALIYKEN görünür) */}
28
- {!isChatOpen && (
29
- <div key="floating-trigger" className={`fixed z-[80] animate-in fade-in zoom-in duration-500 ${positionClasses[position]}`}>
30
- <button
31
- onClick={toggleChat}
32
- className="w-14 h-14 md:w-16 md:h-16 rounded-full bg-gradient-to-r from-blue-600 to-blue-500 text-white shadow-[0_0_20px_rgba(37,99,235,0.4)] hover:shadow-[0_0_30px_rgba(37,99,235,0.6)] hover:scale-105 active:scale-95 transition-all flex items-center justify-center border border-blue-400/50 group focus:outline-none"
33
- title="Sohbeti Aç"
34
- >
35
- <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" className="group-hover:-translate-y-0.5 transition-transform md:w-7 md:h-7 animate-in spin-in-[-90deg] duration-300">
36
- <path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path>
37
- </svg>
38
- {/* Unread Badge */}
39
- <span className="absolute top-0 right-0 md:top-0.5 md:right-0.5 w-3.5 h-3.5 md:w-4 md:h-4 bg-red-500 rounded-full border-2 border-white dark:border-[#0a0a0e] shadow-sm animate-pulse"></span>
40
- </button>
41
- </div>
42
- )}
43
-
44
- {/* Floating Chat Container - Always mounted to persist state, visibility toggled with CSS */}
45
- <div
46
- key="floating-container"
47
- className={`fixed bottom-0 right-0 md:bottom-6 md:right-6 z-[70] w-full sm:w-[400px] h-[100dvh] sm:h-[calc(100vh-100px)] md:h-[650px] shadow-[0_0_40px_rgba(0,0,0,0.3)] origin-bottom-right transition-all duration-500 sm:rounded-3xl overflow-hidden border border-black/5 dark:border-white/10 flex flex-col bg-armoyu-card-bg backdrop-blur-xl ${
48
- isChatOpen
49
- ? 'translate-y-0 scale-100 opacity-100 pointer-events-auto'
50
- : 'translate-y-10 scale-95 opacity-0 pointer-events-none'
51
- }`}
52
- >
53
- <ChatContainer />
54
- </div>
55
- </div>
56
- );
57
- }
@@ -1,77 +0,0 @@
1
- import React from 'react';
2
-
3
- export function Footer() {
4
- const latestPosts = [
5
- { title: "Yeni Minecraft Sunucu Altyapımız Yayında!", date: "18 Mart 2026", link: "#" },
6
- { title: "Valorant Kış Turnuvası Kayıtları Başladı, Yerini Ayırt", date: "15 Mart 2026", link: "#" },
7
- { title: "ARMOYU Çekiliş Sonuçları Açıklandı", date: "10 Mart 2026", link: "#" },
8
- ];
9
-
10
- return (
11
- <footer className="w-full mt-24 border-t border-armoyu-card-border bg-armoyu-bg py-12 px-6 md:px-8 relative z-20 text-center md:text-left">
12
- <div className="max-w-7xl mx-auto grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-12">
13
-
14
- {/* Hakkımızda */}
15
- <div className="space-y-4 flex flex-col items-center md:items-start">
16
- <h2 className="text-2xl font-black bg-clip-text text-transparent bg-gradient-to-r from-blue-500 to-indigo-600 dark:from-white dark:to-gray-300 tracking-tight">ARMOYU</h2>
17
- <p className="text-armoyu-text-muted text-sm leading-relaxed max-w-sm font-medium">
18
- Türkiye'nin en aktif ve yenilikçi oyuncu topluluğu. Oyun dünyasındaki gelişmeleri takip et, arkadaşlarınla ekipler kur ve rekabete katıl.
19
- </p>
20
- {/* Sosyal Medya İkonları */}
21
- <div className="flex gap-3 pt-4 justify-center md:justify-start">
22
- <a href="#" className="w-10 h-10 rounded-full bg-black/5 dark:bg-white/5 flex items-center justify-center text-armoyu-text-muted hover:text-indigo-500 hover:bg-black/10 dark:hover:bg-white/10 transition-colors border border-black/5 dark:border-white/5" title="Discord">
23
- <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M9 12h.01"/><path d="M15 12h.01"/><path d="M8 8a9 9 0 0 0-4 3c-1.3 4-1.5 6-.5 8 1 2 4 1 6-1h4c2 2 5 3 6 1 1-2 .8-4-.5-8a9 9 0 0 0-4-3 7 7 0 0 0-6 0z"/></svg>
24
- </a>
25
- <a href="#" className="w-10 h-10 rounded-full bg-black/5 dark:bg-white/5 flex items-center justify-center text-armoyu-text-muted hover:text-pink-500 hover:bg-black/10 dark:hover:bg-white/10 transition-colors border border-black/5 dark:border-white/5" title="Instagram">
26
- <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><rect x="2" y="2" width="20" height="20" rx="5" ry="5"></rect><path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"></path><line x1="17.5" y1="6.5" x2="17.51" y2="6.5"></line></svg>
27
- </a>
28
- <a href="#" className="w-10 h-10 rounded-full bg-black/5 dark:bg-white/5 flex items-center justify-center text-armoyu-text-muted hover:text-red-500 hover:bg-black/10 dark:hover:bg-white/10 transition-colors border border-black/5 dark:border-white/5" title="YouTube">
29
- <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z"></path><polygon points="9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02"></polygon></svg>
30
- </a>
31
- <a href="#" className="w-10 h-10 rounded-full bg-black/5 dark:bg-white/5 flex items-center justify-center text-armoyu-text-muted hover:text-blue-500 hover:bg-black/10 dark:hover:bg-white/10 transition-colors border border-black/5 dark:border-white/5" title="X (Twitter)">
32
- <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M4 4l11.733 16h4.267l-11.733 -16z" /><path d="M4 20l6.768 -6.768m2.46 -2.46l6.772 -6.772" /></svg>
33
- </a>
34
- </div>
35
- </div>
36
-
37
- {/* Hızlı Bağlantılar */}
38
- <div className="space-y-4 lg:pl-8 flex flex-col items-center md:items-start">
39
- <h3 className="text-lg font-bold text-armoyu-text tracking-wide">Hızlı Bağlantılar</h3>
40
- <ul className="space-y-3 text-sm text-armoyu-text-muted font-bold w-full md:w-auto flex flex-col items-center md:items-start">
41
- <li><a href="#" className="hover:text-blue-500 transition-colors flex items-center gap-2"><span className="w-1.5 h-1.5 rounded-full bg-blue-500/50 hidden md:block"></span> Ana Sayfa</a></li>
42
- <li><a href="#" className="hover:text-blue-500 transition-colors flex items-center gap-2"><span className="w-1.5 h-1.5 rounded-full bg-blue-500/50 hidden md:block"></span> Gruplar</a></li>
43
- <li><a href="#" className="hover:text-blue-500 transition-colors flex items-center gap-2"><span className="w-1.5 h-1.5 rounded-full bg-blue-500/50 hidden md:block"></span> Forum</a></li>
44
- <li><a href="#" className="hover:text-blue-500 transition-colors flex items-center gap-2"><span className="w-1.5 h-1.5 rounded-full bg-blue-500/50 hidden md:block"></span> Mağaza</a></li>
45
- <li><a href="#" className="hover:text-blue-500 transition-colors flex items-center gap-2"><span className="w-1.5 h-1.5 rounded-full bg-blue-500/50 hidden md:block"></span> Destek Talebi</a></li>
46
- </ul>
47
- </div>
48
-
49
- {/* Son Yazılar */}
50
- <div className="space-y-4 lg:col-span-2">
51
- <h3 className="text-lg font-bold text-armoyu-text tracking-wide">Son Paylaşımlar</h3>
52
- <div className="space-y-3">
53
- {latestPosts.map((post, idx) => (
54
- <a key={idx} href={post.link} className="block group text-left">
55
- <div className="bg-black/5 dark:bg-white/5 p-4 rounded-xl border border-black/5 dark:border-white/5 group-hover:bg-black/10 dark:group-hover:bg-white/10 group-hover:border-blue-500/30 transition-all cursor-pointer flex flex-col sm:flex-row justify-between sm:items-center gap-2 sm:gap-4 shadow-sm">
56
- <h4 className="text-armoyu-text text-sm font-bold group-hover:text-blue-500 transition-colors line-clamp-2 md:line-clamp-1 flex-1">{post.title}</h4>
57
- <span className="text-xs text-blue-600 dark:text-blue-400 font-extrabold whitespace-nowrap sm:bg-blue-500/10 sm:px-2.5 sm:py-1 rounded-md">{post.date}</span>
58
- </div>
59
- </a>
60
- ))}
61
- </div>
62
- </div>
63
-
64
- </div>
65
-
66
- {/* Alt Karartma (Copyright) */}
67
- <div className="max-w-7xl mx-auto mt-12 pt-8 border-t border-armoyu-card-border flex flex-col md:flex-row items-center justify-between gap-6 text-xs font-bold text-armoyu-text-muted">
68
- <p>© 2026 Aramızdaki Oyuncu. Tüm hakları saklıdır.</p>
69
- <div className="flex flex-wrap justify-center gap-4 md:gap-6">
70
- <a href="#" className="hover:text-armoyu-text transition-colors">Gizlilik Politikası</a>
71
- <a href="#" className="hover:text-armoyu-text transition-colors">Hizmet Şartları</a>
72
- <a href="#" className="hover:text-armoyu-text transition-colors">Kurallar</a>
73
- </div>
74
- </div>
75
- </footer>
76
- );
77
- }