@armoyu/ui 1.0.0
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.
- package/dist/app/layout.d.ts +7 -0
- package/dist/app/layout.d.ts.map +1 -0
- package/dist/app/layout.js +31 -0
- package/dist/app/layout.js.map +1 -0
- package/dist/app/page.d.ts +2 -0
- package/dist/app/page.d.ts.map +1 -0
- package/dist/app/page.js +40 -0
- package/dist/app/page.js.map +1 -0
- package/dist/components/Button.d.ts +8 -0
- package/dist/components/Button.d.ts.map +1 -0
- package/dist/components/Button.js +16 -0
- package/dist/components/Button.js.map +1 -0
- package/dist/components/GenderStatsBar.d.ts +6 -0
- package/dist/components/GenderStatsBar.d.ts.map +1 -0
- package/dist/components/GenderStatsBar.js +8 -0
- package/dist/components/GenderStatsBar.js.map +1 -0
- package/dist/components/RollingNumber.d.ts +7 -0
- package/dist/components/RollingNumber.d.ts.map +1 -0
- package/dist/components/RollingNumber.js +24 -0
- package/dist/components/RollingNumber.js.map +1 -0
- package/dist/components/Slider.d.ts +11 -0
- package/dist/components/Slider.d.ts.map +1 -0
- package/dist/components/Slider.js +36 -0
- package/dist/components/Slider.js.map +1 -0
- package/dist/components/StatsGrid.d.ts +6 -0
- package/dist/components/StatsGrid.d.ts.map +1 -0
- package/dist/components/StatsGrid.js +14 -0
- package/dist/components/StatsGrid.js.map +1 -0
- package/dist/components/ViewModeToggle.d.ts +8 -0
- package/dist/components/ViewModeToggle.d.ts.map +1 -0
- package/dist/components/ViewModeToggle.js +10 -0
- package/dist/components/ViewModeToggle.js.map +1 -0
- package/dist/components/modules/auth/Dashboard.d.ts +2 -0
- package/dist/components/modules/auth/Dashboard.d.ts.map +1 -0
- package/dist/components/modules/auth/Dashboard.js +251 -0
- package/dist/components/modules/auth/Dashboard.js.map +1 -0
- package/dist/components/modules/auth/MediaLightbox.d.ts +14 -0
- package/dist/components/modules/auth/MediaLightbox.d.ts.map +1 -0
- package/dist/components/modules/auth/MediaLightbox.js +47 -0
- package/dist/components/modules/auth/MediaLightbox.js.map +1 -0
- package/dist/components/modules/auth/PostCard.d.ts +25 -0
- package/dist/components/modules/auth/PostCard.d.ts.map +1 -0
- package/dist/components/modules/auth/PostCard.js +113 -0
- package/dist/components/modules/auth/PostCard.js.map +1 -0
- package/dist/components/modules/auth/PostInteractionsModal.d.ts +12 -0
- package/dist/components/modules/auth/PostInteractionsModal.d.ts.map +1 -0
- package/dist/components/modules/auth/PostInteractionsModal.js +13 -0
- package/dist/components/modules/auth/PostInteractionsModal.js.map +1 -0
- package/dist/components/modules/auth/RepostModal.d.ts +22 -0
- package/dist/components/modules/auth/RepostModal.d.ts.map +1 -0
- package/dist/components/modules/auth/RepostModal.js +76 -0
- package/dist/components/modules/auth/RepostModal.js.map +1 -0
- package/dist/components/modules/auth/SidebarLeft.d.ts +2 -0
- package/dist/components/modules/auth/SidebarLeft.d.ts.map +1 -0
- package/dist/components/modules/auth/SidebarLeft.js +41 -0
- package/dist/components/modules/auth/SidebarLeft.js.map +1 -0
- package/dist/components/modules/auth/Stories.d.ts +2 -0
- package/dist/components/modules/auth/Stories.d.ts.map +1 -0
- package/dist/components/modules/auth/Stories.js +16 -0
- package/dist/components/modules/auth/Stories.js.map +1 -0
- package/dist/components/modules/auth/StoryViewer.d.ts +10 -0
- package/dist/components/modules/auth/StoryViewer.d.ts.map +1 -0
- package/dist/components/modules/auth/StoryViewer.js +48 -0
- package/dist/components/modules/auth/StoryViewer.js.map +1 -0
- package/dist/components/modules/chat/ChatContainer.d.ts +2 -0
- package/dist/components/modules/chat/ChatContainer.d.ts.map +1 -0
- package/dist/components/modules/chat/ChatContainer.js +197 -0
- package/dist/components/modules/chat/ChatContainer.js.map +1 -0
- package/dist/components/modules/chat/ChatInput.d.ts +5 -0
- package/dist/components/modules/chat/ChatInput.d.ts.map +1 -0
- package/dist/components/modules/chat/ChatInput.js +31 -0
- package/dist/components/modules/chat/ChatInput.js.map +1 -0
- package/dist/components/modules/chat/ChatList.d.ts +7 -0
- package/dist/components/modules/chat/ChatList.d.ts.map +1 -0
- package/dist/components/modules/chat/ChatList.js +52 -0
- package/dist/components/modules/chat/ChatList.js.map +1 -0
- package/dist/components/modules/chat/ChatMessage.d.ts +12 -0
- package/dist/components/modules/chat/ChatMessage.d.ts.map +1 -0
- package/dist/components/modules/chat/ChatMessage.js +7 -0
- package/dist/components/modules/chat/ChatMessage.js.map +1 -0
- package/dist/components/modules/chat/ChatNotes.d.ts +2 -0
- package/dist/components/modules/chat/ChatNotes.d.ts.map +1 -0
- package/dist/components/modules/chat/ChatNotes.js +12 -0
- package/dist/components/modules/chat/ChatNotes.js.map +1 -0
- package/dist/components/modules/community/GroupHeader.d.ts +11 -0
- package/dist/components/modules/community/GroupHeader.d.ts.map +1 -0
- package/dist/components/modules/community/GroupHeader.js +18 -0
- package/dist/components/modules/community/GroupHeader.js.map +1 -0
- package/dist/components/modules/community/GroupMenu.d.ts +10 -0
- package/dist/components/modules/community/GroupMenu.d.ts.map +1 -0
- package/dist/components/modules/community/GroupMenu.js +17 -0
- package/dist/components/modules/community/GroupMenu.js.map +1 -0
- package/dist/components/modules/community/SchoolCard.d.ts +7 -0
- package/dist/components/modules/community/SchoolCard.d.ts.map +1 -0
- package/dist/components/modules/community/SchoolCard.js +8 -0
- package/dist/components/modules/community/SchoolCard.js.map +1 -0
- package/dist/components/modules/community/SurveyCard.d.ts +7 -0
- package/dist/components/modules/community/SurveyCard.d.ts.map +1 -0
- package/dist/components/modules/community/SurveyCard.js +38 -0
- package/dist/components/modules/community/SurveyCard.js.map +1 -0
- package/dist/components/modules/forum/ForumBoard.d.ts +17 -0
- package/dist/components/modules/forum/ForumBoard.d.ts.map +1 -0
- package/dist/components/modules/forum/ForumBoard.js +7 -0
- package/dist/components/modules/forum/ForumBoard.js.map +1 -0
- package/dist/components/modules/forum/ForumPost.d.ts +14 -0
- package/dist/components/modules/forum/ForumPost.d.ts.map +1 -0
- package/dist/components/modules/forum/ForumPost.js +6 -0
- package/dist/components/modules/forum/ForumPost.js.map +1 -0
- package/dist/components/modules/forum/NewTopicModal.d.ts +8 -0
- package/dist/components/modules/forum/NewTopicModal.d.ts.map +1 -0
- package/dist/components/modules/forum/NewTopicModal.js +27 -0
- package/dist/components/modules/forum/NewTopicModal.js.map +1 -0
- package/dist/components/modules/forum/TopicItem.d.ts +16 -0
- package/dist/components/modules/forum/TopicItem.d.ts.map +1 -0
- package/dist/components/modules/forum/TopicItem.js +7 -0
- package/dist/components/modules/forum/TopicItem.js.map +1 -0
- package/dist/components/modules/galleries/GalleryCard.d.ts +10 -0
- package/dist/components/modules/galleries/GalleryCard.d.ts.map +1 -0
- package/dist/components/modules/galleries/GalleryCard.js +6 -0
- package/dist/components/modules/galleries/GalleryCard.js.map +1 -0
- package/dist/components/modules/giveaways/GiveawayCard.d.ts +10 -0
- package/dist/components/modules/giveaways/GiveawayCard.d.ts.map +1 -0
- package/dist/components/modules/giveaways/GiveawayCard.js +7 -0
- package/dist/components/modules/giveaways/GiveawayCard.js.map +1 -0
- package/dist/components/modules/groups/ApplicationModal.d.ts +8 -0
- package/dist/components/modules/groups/ApplicationModal.d.ts.map +1 -0
- package/dist/components/modules/groups/ApplicationModal.js +28 -0
- package/dist/components/modules/groups/ApplicationModal.js.map +1 -0
- package/dist/components/modules/groups/GroupCard.d.ts +13 -0
- package/dist/components/modules/groups/GroupCard.d.ts.map +1 -0
- package/dist/components/modules/groups/GroupCard.js +7 -0
- package/dist/components/modules/groups/GroupCard.js.map +1 -0
- package/dist/components/modules/guest/Introduction.d.ts +2 -0
- package/dist/components/modules/guest/Introduction.d.ts.map +1 -0
- package/dist/components/modules/guest/Introduction.js +14 -0
- package/dist/components/modules/guest/Introduction.js.map +1 -0
- package/dist/components/modules/magaza/BackToStore.d.ts +2 -0
- package/dist/components/modules/magaza/BackToStore.d.ts.map +1 -0
- package/dist/components/modules/magaza/BackToStore.js +11 -0
- package/dist/components/modules/magaza/BackToStore.js.map +1 -0
- package/dist/components/modules/magaza/StoreHeader.d.ts +6 -0
- package/dist/components/modules/magaza/StoreHeader.d.ts.map +1 -0
- package/dist/components/modules/magaza/StoreHeader.js +9 -0
- package/dist/components/modules/magaza/StoreHeader.js.map +1 -0
- package/dist/components/modules/news/NewsCard.d.ts +12 -0
- package/dist/components/modules/news/NewsCard.d.ts.map +1 -0
- package/dist/components/modules/news/NewsCard.js +7 -0
- package/dist/components/modules/news/NewsCard.js.map +1 -0
- package/dist/components/modules/news/NewsComments.d.ts +2 -0
- package/dist/components/modules/news/NewsComments.d.ts.map +1 -0
- package/dist/components/modules/news/NewsComments.js +53 -0
- package/dist/components/modules/news/NewsComments.js.map +1 -0
- package/dist/components/modules/profile/CloudStorageModal.d.ts +9 -0
- package/dist/components/modules/profile/CloudStorageModal.d.ts.map +1 -0
- package/dist/components/modules/profile/CloudStorageModal.js +32 -0
- package/dist/components/modules/profile/CloudStorageModal.js.map +1 -0
- package/dist/components/modules/profile/EditProfileModal.d.ts +9 -0
- package/dist/components/modules/profile/EditProfileModal.d.ts.map +1 -0
- package/dist/components/modules/profile/EditProfileModal.js +28 -0
- package/dist/components/modules/profile/EditProfileModal.js.map +1 -0
- package/dist/components/modules/profile/ProfileContent.d.ts +5 -0
- package/dist/components/modules/profile/ProfileContent.d.ts.map +1 -0
- package/dist/components/modules/profile/ProfileContent.js +71 -0
- package/dist/components/modules/profile/ProfileContent.js.map +1 -0
- package/dist/components/modules/profile/ProfileHeader.d.ts +8 -0
- package/dist/components/modules/profile/ProfileHeader.d.ts.map +1 -0
- package/dist/components/modules/profile/ProfileHeader.js +20 -0
- package/dist/components/modules/profile/ProfileHeader.js.map +1 -0
- package/dist/components/modules/profile/ProfileStats.d.ts +2 -0
- package/dist/components/modules/profile/ProfileStats.d.ts.map +1 -0
- package/dist/components/modules/profile/ProfileStats.js +15 -0
- package/dist/components/modules/profile/ProfileStats.js.map +1 -0
- package/dist/components/modules/profile/TeamSelectorModal.d.ts +11 -0
- package/dist/components/modules/profile/TeamSelectorModal.d.ts.map +1 -0
- package/dist/components/modules/profile/TeamSelectorModal.js +17 -0
- package/dist/components/modules/profile/TeamSelectorModal.js.map +1 -0
- package/dist/components/modules/stations/StationCard.d.ts +3 -0
- package/dist/components/modules/stations/StationCard.d.ts.map +1 -0
- package/dist/components/modules/stations/StationCard.js +26 -0
- package/dist/components/modules/stations/StationCard.js.map +1 -0
- package/dist/components/modules/stations/StationQRModal.d.ts +10 -0
- package/dist/components/modules/stations/StationQRModal.d.ts.map +1 -0
- package/dist/components/modules/stations/StationQRModal.js +13 -0
- package/dist/components/modules/stations/StationQRModal.js.map +1 -0
- package/dist/components/shared/FloatingChatButton.d.ts +5 -0
- package/dist/components/shared/FloatingChatButton.d.ts.map +1 -0
- package/dist/components/shared/FloatingChatButton.js +21 -0
- package/dist/components/shared/FloatingChatButton.js.map +1 -0
- package/dist/components/shared/Footer.d.ts +2 -0
- package/dist/components/shared/Footer.d.ts.map +1 -0
- package/dist/components/shared/Footer.js +10 -0
- package/dist/components/shared/Footer.js.map +1 -0
- package/dist/components/shared/Header.d.ts +2 -0
- package/dist/components/shared/Header.d.ts.map +1 -0
- package/dist/components/shared/Header.js +98 -0
- package/dist/components/shared/Header.js.map +1 -0
- package/dist/components/shared/LoginModal.d.ts +5 -0
- package/dist/components/shared/LoginModal.d.ts.map +1 -0
- package/dist/components/shared/LoginModal.js +70 -0
- package/dist/components/shared/LoginModal.js.map +1 -0
- package/dist/components/shared/MainLayoutWrapper.d.ts +4 -0
- package/dist/components/shared/MainLayoutWrapper.d.ts.map +1 -0
- package/dist/components/shared/MainLayoutWrapper.js +8 -0
- package/dist/components/shared/MainLayoutWrapper.js.map +1 -0
- package/dist/components/shared/PageWidth.d.ts +6 -0
- package/dist/components/shared/PageWidth.d.ts.map +1 -0
- package/dist/components/shared/PageWidth.js +14 -0
- package/dist/components/shared/PageWidth.js.map +1 -0
- package/dist/components/showcase/CommunityTab.d.ts +2 -0
- package/dist/components/showcase/CommunityTab.d.ts.map +1 -0
- package/dist/components/showcase/CommunityTab.js +6 -0
- package/dist/components/showcase/CommunityTab.js.map +1 -0
- package/dist/components/showcase/CorporateTab.d.ts +2 -0
- package/dist/components/showcase/CorporateTab.d.ts.map +1 -0
- package/dist/components/showcase/CorporateTab.js +6 -0
- package/dist/components/showcase/CorporateTab.js.map +1 -0
- package/dist/components/showcase/GeneralTab.d.ts +2 -0
- package/dist/components/showcase/GeneralTab.d.ts.map +1 -0
- package/dist/components/showcase/GeneralTab.js +6 -0
- package/dist/components/showcase/GeneralTab.js.map +1 -0
- package/dist/components/showcase/MessagesTab.d.ts +2 -0
- package/dist/components/showcase/MessagesTab.d.ts.map +1 -0
- package/dist/components/showcase/MessagesTab.js +6 -0
- package/dist/components/showcase/MessagesTab.js.map +1 -0
- package/dist/components/showcase/ProfileTab.d.ts +2 -0
- package/dist/components/showcase/ProfileTab.d.ts.map +1 -0
- package/dist/components/showcase/ProfileTab.js +7 -0
- package/dist/components/showcase/ProfileTab.js.map +1 -0
- package/dist/components/showcase/ShopTab.d.ts +2 -0
- package/dist/components/showcase/ShopTab.d.ts.map +1 -0
- package/dist/components/showcase/ShopTab.js +6 -0
- package/dist/components/showcase/ShopTab.js.map +1 -0
- package/dist/components/showcase/SocialTab.d.ts +2 -0
- package/dist/components/showcase/SocialTab.d.ts.map +1 -0
- package/dist/components/showcase/SocialTab.js +7 -0
- package/dist/components/showcase/SocialTab.js.map +1 -0
- package/dist/context/AuthContext.d.ts +19 -0
- package/dist/context/AuthContext.d.ts.map +1 -0
- package/dist/context/AuthContext.js +75 -0
- package/dist/context/AuthContext.js.map +1 -0
- package/dist/context/CartContext.d.ts +17 -0
- package/dist/context/CartContext.d.ts.map +1 -0
- package/dist/context/CartContext.js +64 -0
- package/dist/context/CartContext.js.map +1 -0
- package/dist/context/ChatContext.d.ts +13 -0
- package/dist/context/ChatContext.d.ts.map +1 -0
- package/dist/context/ChatContext.js +18 -0
- package/dist/context/ChatContext.js.map +1 -0
- package/dist/context/LayoutContext.d.ts +11 -0
- package/dist/context/LayoutContext.d.ts.map +1 -0
- package/dist/context/LayoutContext.js +17 -0
- package/dist/context/LayoutContext.js.map +1 -0
- package/dist/context/SocketContext.d.ts +13 -0
- package/dist/context/SocketContext.d.ts.map +1 -0
- package/dist/context/SocketContext.js +31 -0
- package/dist/context/SocketContext.js.map +1 -0
- package/dist/context/ThemeContext.d.ts +11 -0
- package/dist/context/ThemeContext.d.ts.map +1 -0
- package/dist/context/ThemeContext.js +40 -0
- package/dist/context/ThemeContext.js.map +1 -0
- package/dist/index.d.ts +66 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +81 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/constants/educationData.d.ts +8 -0
- package/dist/lib/constants/educationData.d.ts.map +1 -0
- package/dist/lib/constants/educationData.js +118 -0
- package/dist/lib/constants/educationData.js.map +1 -0
- package/dist/lib/constants/punishmentData.d.ts +30 -0
- package/dist/lib/constants/punishmentData.d.ts.map +1 -0
- package/dist/lib/constants/punishmentData.js +184 -0
- package/dist/lib/constants/punishmentData.js.map +1 -0
- package/dist/lib/constants/seedData.d.ts +165 -0
- package/dist/lib/constants/seedData.d.ts.map +1 -0
- package/dist/lib/constants/seedData.js +709 -0
- package/dist/lib/constants/seedData.js.map +1 -0
- package/dist/lib/constants/stationData.d.ts +14 -0
- package/dist/lib/constants/stationData.d.ts.map +1 -0
- package/dist/lib/constants/stationData.js +167 -0
- package/dist/lib/constants/stationData.js.map +1 -0
- package/dist/lib/constants/surveyData.d.ts +3 -0
- package/dist/lib/constants/surveyData.d.ts.map +1 -0
- package/dist/lib/constants/surveyData.js +50 -0
- package/dist/lib/constants/surveyData.js.map +1 -0
- package/dist/lib/constants/teamData.d.ts +13 -0
- package/dist/lib/constants/teamData.d.ts.map +1 -0
- package/dist/lib/constants/teamData.js +66 -0
- package/dist/lib/constants/teamData.js.map +1 -0
- package/dist/lib/utils/numberFormat.d.ts +10 -0
- package/dist/lib/utils/numberFormat.d.ts.map +1 -0
- package/dist/lib/utils/numberFormat.js +17 -0
- package/dist/lib/utils/numberFormat.js.map +1 -0
- package/dist/lib/utils/odpUtils.d.ts +16 -0
- package/dist/lib/utils/odpUtils.d.ts.map +1 -0
- package/dist/lib/utils/odpUtils.js +44 -0
- package/dist/lib/utils/odpUtils.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/stats.d.ts +18 -0
- package/dist/types/stats.d.ts.map +1 -0
- package/dist/types/stats.js +2 -0
- package/dist/types/stats.js.map +1 -0
- package/next.config.ts +13 -0
- package/package.json +46 -0
- package/postcss.config.js +6 -0
- package/src/app/layout.tsx +64 -0
- package/src/app/page.tsx +101 -0
- package/src/components/Button.tsx +41 -0
- package/src/components/GenderStatsBar.tsx +66 -0
- package/src/components/RollingNumber.tsx +50 -0
- package/src/components/Slider.tsx +114 -0
- package/src/components/StatsGrid.tsx +35 -0
- package/src/components/ViewModeToggle.tsx +39 -0
- package/src/components/modules/auth/Dashboard.tsx +649 -0
- package/src/components/modules/auth/MediaLightbox.tsx +112 -0
- package/src/components/modules/auth/PostCard.tsx +556 -0
- package/src/components/modules/auth/PostInteractionsModal.tsx +138 -0
- package/src/components/modules/auth/RepostModal.tsx +167 -0
- package/src/components/modules/auth/SidebarLeft.tsx +237 -0
- package/src/components/modules/auth/Stories.tsx +69 -0
- package/src/components/modules/auth/StoryViewer.tsx +146 -0
- package/src/components/modules/chat/ChatContainer.tsx +332 -0
- package/src/components/modules/chat/ChatInput.tsx +57 -0
- package/src/components/modules/chat/ChatList.tsx +179 -0
- package/src/components/modules/chat/ChatMessage.tsx +43 -0
- package/src/components/modules/chat/ChatNotes.tsx +58 -0
- package/src/components/modules/community/GroupHeader.tsx +111 -0
- package/src/components/modules/community/GroupMenu.tsx +82 -0
- package/src/components/modules/community/SchoolCard.tsx +104 -0
- package/src/components/modules/community/SurveyCard.tsx +149 -0
- package/src/components/modules/forum/ForumBoard.tsx +78 -0
- package/src/components/modules/forum/ForumPost.tsx +71 -0
- package/src/components/modules/forum/NewTopicModal.tsx +112 -0
- package/src/components/modules/forum/TopicItem.tsx +72 -0
- package/src/components/modules/galleries/GalleryCard.tsx +66 -0
- package/src/components/modules/giveaways/GiveawayCard.tsx +76 -0
- package/src/components/modules/groups/ApplicationModal.tsx +133 -0
- package/src/components/modules/groups/GroupCard.tsx +96 -0
- package/src/components/modules/guest/Introduction.tsx +60 -0
- package/src/components/modules/magaza/BackToStore.tsx +53 -0
- package/src/components/modules/magaza/StoreHeader.tsx +74 -0
- package/src/components/modules/news/NewsCard.tsx +66 -0
- package/src/components/modules/news/NewsComments.tsx +141 -0
- package/src/components/modules/profile/CloudStorageModal.tsx +200 -0
- package/src/components/modules/profile/EditProfileModal.tsx +191 -0
- package/src/components/modules/profile/ProfileContent.tsx +491 -0
- package/src/components/modules/profile/ProfileHeader.tsx +128 -0
- package/src/components/modules/profile/ProfileStats.tsx +72 -0
- package/src/components/modules/profile/TeamSelectorModal.tsx +129 -0
- package/src/components/modules/stations/StationCard.tsx +95 -0
- package/src/components/modules/stations/StationQRModal.tsx +102 -0
- package/src/components/shared/FloatingChatButton.tsx +57 -0
- package/src/components/shared/Footer.tsx +77 -0
- package/src/components/shared/Header.tsx +799 -0
- package/src/components/shared/LoginModal.tsx +208 -0
- package/src/components/shared/MainLayoutWrapper.tsx +15 -0
- package/src/components/shared/PageWidth.tsx +22 -0
- package/src/components/showcase/CommunityTab.tsx +22 -0
- package/src/components/showcase/CorporateTab.tsx +38 -0
- package/src/components/showcase/GeneralTab.tsx +41 -0
- package/src/components/showcase/MessagesTab.tsx +26 -0
- package/src/components/showcase/ProfileTab.tsx +20 -0
- package/src/components/showcase/ShopTab.tsx +24 -0
- package/src/components/showcase/SocialTab.tsx +28 -0
- package/src/context/AuthContext.tsx +104 -0
- package/src/context/CartContext.tsx +93 -0
- package/src/context/ChatContext.tsx +32 -0
- package/src/context/LayoutContext.tsx +29 -0
- package/src/context/SocketContext.tsx +50 -0
- package/src/context/ThemeContext.tsx +52 -0
- package/src/globals.css +187 -0
- package/src/index.ts +96 -0
- package/src/lib/constants/educationData.ts +124 -0
- package/src/lib/constants/punishmentData.ts +201 -0
- package/src/lib/constants/seedData.ts +758 -0
- package/src/lib/constants/stationData.ts +170 -0
- package/src/lib/constants/surveyData.ts +53 -0
- package/src/lib/constants/teamData.ts +69 -0
- package/src/lib/utils/numberFormat.ts +16 -0
- package/src/lib/utils/odpUtils.ts +51 -0
- package/src/types/index.ts +1 -0
- package/src/types/stats.ts +17 -0
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { ArmoyuEvent, Game, Station, StationProduct, WorkstationEquipment, StationCoupon } from '@armoyu/core';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* GAMES (gameList)
|
|
6
|
+
*/
|
|
7
|
+
export const gameList: Game[] = [
|
|
8
|
+
new Game({ id: '1', name: 'Counter Strike 2', poster: 'https://images.unsplash.com/photo-1542751371-adc38448a05e?w=800&q=80' }),
|
|
9
|
+
new Game({ id: '2', name: 'Valorant', poster: 'https://images.unsplash.com/photo-1542751110-97427bbecf20?w=800&q=80' }),
|
|
10
|
+
new Game({ id: '3', name: 'League of Legends', poster: 'https://images.unsplash.com/photo-1542751163-44203649479e?w=800&q=80' }),
|
|
11
|
+
new Game({ id: '4', name: 'Minecraft', poster: 'https://images.unsplash.com/photo-1627398242454-45a1465c2479?w=800&q=80' }),
|
|
12
|
+
new Game({ id: '5', name: 'Euro Truck Simulator 2', poster: 'https://images.unsplash.com/photo-1601584115167-0effcb193f0c?w=800&q=80' }),
|
|
13
|
+
new Game({ id: '6', name: 'GTA V', poster: 'https://images.unsplash.com/photo-1605898399783-1820b7f53631?w=800&q=80' }),
|
|
14
|
+
new Game({ id: '7', name: 'Assetto Corsa', poster: 'https://images.unsplash.com/photo-1541899481282-d53bffe3c35d?w=800&q=80' }),
|
|
15
|
+
new Game({ id: '8', name: 'PUBG', poster: 'https://images.unsplash.com/photo-1552820728-8b83bb6b773f?w=800&q=80' }),
|
|
16
|
+
new Game({ id: '9', name: 'Dota 2', poster: 'https://images.unsplash.com/photo-1542751110-97427bbecf20?w=800&q=80' }),
|
|
17
|
+
new Game({ id: '10', name: 'Rocket League', poster: 'https://images.unsplash.com/photo-1542751371-adc38448a05e?w=800&q=80' }),
|
|
18
|
+
];
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* EVENTS (eventList)
|
|
22
|
+
*/
|
|
23
|
+
export const eventList: ArmoyuEvent[] = [
|
|
24
|
+
new ArmoyuEvent({
|
|
25
|
+
id: 'cs2-wingman-tr',
|
|
26
|
+
title: 'CS2 Wingman Turnuvası',
|
|
27
|
+
game: 'Counter Strike 2',
|
|
28
|
+
status: 'Kayıtlar Açık',
|
|
29
|
+
participationType: 'BOTH',
|
|
30
|
+
banner: 'https://images.unsplash.com/photo-1542751371-adc38448a05e?w=1600&q=80',
|
|
31
|
+
date: '20 Nisan 2026, 20:00',
|
|
32
|
+
location: 'ARMOYU Sunucuları',
|
|
33
|
+
participantLimit: 16,
|
|
34
|
+
currentParticipants: 8,
|
|
35
|
+
isHot: true,
|
|
36
|
+
rewards: 'AWP | Atheris Skin',
|
|
37
|
+
description: 'Yoldaşını al gel, CS2 sahalarında en iyi ikili kim belli olsun!',
|
|
38
|
+
minODP: 40
|
|
39
|
+
}),
|
|
40
|
+
new ArmoyuEvent({
|
|
41
|
+
id: 'armoyu-pro-league',
|
|
42
|
+
title: 'ARMOYU LoL: Pro League Sezon 4',
|
|
43
|
+
game: 'League of Legends',
|
|
44
|
+
status: 'DEVAM EDİYOR',
|
|
45
|
+
participationType: 'GROUP',
|
|
46
|
+
template: 'TOURNAMENT',
|
|
47
|
+
hasStats: true,
|
|
48
|
+
banner: 'https://images.unsplash.com/photo-1542751163-44203649479e?q=80&w=1600',
|
|
49
|
+
date: '04 Nisan 2026, 21:00',
|
|
50
|
+
location: 'ARMOYU Arena / Online',
|
|
51
|
+
participantLimit: 16,
|
|
52
|
+
currentParticipants: 16,
|
|
53
|
+
isHot: true,
|
|
54
|
+
isLive: true,
|
|
55
|
+
rewards: '50.000 TL Nakit + ARMOYU Pro Lisansı',
|
|
56
|
+
description: 'Türkiye\'nin en iyi 16 e-spor takımının kıran kırana mücadelesi! Sezonun son haftasına girilirken şampiyonluk yarışı kızışıyor. MVP ödülü için Berkay ve MythX arasındaki çekişme tüm hızıyla devam ediyor!',
|
|
57
|
+
minODP: 60,
|
|
58
|
+
admins: [
|
|
59
|
+
{ name: 'Berkay Tikenoğlu', role: 'Baş Hakem', avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Berkay' },
|
|
60
|
+
{ name: 'MythX', role: 'Organizasyon Sorumlusu', avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=MythX' }
|
|
61
|
+
],
|
|
62
|
+
teams: [
|
|
63
|
+
{ id: 't1', name: 'Shadow Ninjas', logo: 'https://api.dicebear.com/7.x/identicon/svg?seed=Shadow', played: 14, won: 12, lost: 2, points: 36, streak: ['W', 'W', 'W', 'L', 'W'] },
|
|
64
|
+
{ id: 't2', name: 'Neon Wizards', logo: 'https://api.dicebear.com/7.x/identicon/svg?seed=Neon', played: 14, won: 11, lost: 3, points: 33, streak: ['W', 'W', 'L', 'W', 'W'] },
|
|
65
|
+
{ id: 't3', name: 'Iron Valkyries', logo: 'https://api.dicebear.com/7.x/identicon/svg?seed=Iron', played: 14, won: 10, lost: 4, points: 30, streak: ['L', 'W', 'W', 'W', 'L'] },
|
|
66
|
+
{ id: 't4', name: 'Cyber Phantoms', logo: 'https://api.dicebear.com/7.x/identicon/svg?seed=Cyber', played: 14, won: 9, lost: 5, points: 27, streak: ['W', 'L', 'W', 'L', 'W'] },
|
|
67
|
+
{ id: 't5', name: 'Runic Storm', logo: 'https://api.dicebear.com/7.x/identicon/svg?seed=Runic', played: 14, won: 8, lost: 6, points: 24, streak: ['W', 'W', 'L', 'W', 'L'] },
|
|
68
|
+
{ id: 't6', name: 'Void Walkers', logo: 'https://api.dicebear.com/7.x/identicon/svg?seed=Void', played: 14, won: 8, lost: 6, points: 24, streak: ['L', 'L', 'W', 'W', 'W'] },
|
|
69
|
+
{ id: 't7', name: 'Solar Flare', logo: 'https://api.dicebear.com/7.x/identicon/svg?seed=Solar', played: 14, won: 7, lost: 7, points: 21, streak: ['W', 'L', 'L', 'W', 'L'] },
|
|
70
|
+
{ id: 't8', name: 'Frost Giants', logo: 'https://api.dicebear.com/7.x/identicon/svg?seed=Frost', played: 14, won: 7, lost: 7, points: 21, streak: ['L', 'W', 'W', 'L', 'W'] },
|
|
71
|
+
{ id: 't9', name: 'Cobra Kai', logo: 'https://api.dicebear.com/7.x/identicon/svg?seed=Cobra', played: 14, won: 6, lost: 8, points: 18, streak: ['W', 'L', 'W', 'L', 'L'] },
|
|
72
|
+
{ id: 't10', name: 'Titan Force', logo: 'https://api.dicebear.com/7.x/identicon/svg?seed=Titan', played: 14, won: 6, lost: 8, points: 18, streak: ['L', 'W', 'L', 'L', 'W'] },
|
|
73
|
+
{ id: 't11', name: 'Phoenix Reborn', logo: 'https://api.dicebear.com/7.x/identicon/svg?seed=Phoenix', played: 14, won: 5, lost: 9, points: 15, streak: ['W', 'L', 'L', 'W', 'L'] },
|
|
74
|
+
{ id: 't12', name: 'Apex Predators', logo: 'https://api.dicebear.com/7.x/identicon/svg?seed=Apex', played: 14, won: 5, lost: 9, points: 15, streak: ['L', 'L', 'W', 'L', 'W'] },
|
|
75
|
+
{ id: 't13', name: 'Inferno Squad', logo: 'https://api.dicebear.com/7.x/identicon/svg?seed=Inferno', played: 14, won: 4, lost: 10, points: 12, streak: ['L', 'W', 'L', 'W', 'L'] },
|
|
76
|
+
{ id: 't14', name: 'Ghost Protocol', logo: 'https://api.dicebear.com/7.x/identicon/svg?seed=Ghost', played: 14, won: 4, lost: 10, points: 12, streak: ['W', 'L', 'L', 'L', 'L'] },
|
|
77
|
+
{ id: 't15', name: 'Vortex Legion', logo: 'https://api.dicebear.com/7.x/identicon/svg?seed=Vortex', played: 14, won: 3, lost: 11, points: 9, streak: ['L', 'L', 'L', 'W', 'L'] },
|
|
78
|
+
{ id: 't16', name: 'Zenith Zero', logo: 'https://api.dicebear.com/7.x/identicon/svg?seed=Zenith', played: 14, won: 2, lost: 12, points: 6, streak: ['L', 'L', 'W', 'L', 'L'] }
|
|
79
|
+
],
|
|
80
|
+
leaderboard: [
|
|
81
|
+
{ rank: 1, player: 'Berkay Tikenoğlu', team: 'Shadow Ninjas', kills: 245, deaths: 85, assists: 120, points: 3450, avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Berkay' },
|
|
82
|
+
{ rank: 2, player: 'MythX', team: 'Neon Wizards', kills: 232, deaths: 92, assists: 145, points: 3200, avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=MythX' },
|
|
83
|
+
{ rank: 3, player: 'GlobalElite', team: 'Iron Valkyries', kills: 210, deaths: 105, assists: 88, points: 2950, avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Global' },
|
|
84
|
+
{ rank: 4, player: 'KralSlayer', team: 'Cyber Phantoms', kills: 198, deaths: 112, assists: 65, points: 2700, avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Kral' },
|
|
85
|
+
{ rank: 5, player: 'NinjaX', team: 'Void Walkers', kills: 185, deaths: 98, assists: 130, points: 2650, avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Ninja' }
|
|
86
|
+
]
|
|
87
|
+
}),
|
|
88
|
+
new ArmoyuEvent({
|
|
89
|
+
id: 'val-bahar-kupasi',
|
|
90
|
+
title: 'Valorant Bahar Kupası',
|
|
91
|
+
game: 'Valorant',
|
|
92
|
+
status: 'Yeni',
|
|
93
|
+
participationType: 'BOTH',
|
|
94
|
+
banner: 'https://images.unsplash.com/photo-1542751110-97427bbecf20?w=1600&q=80',
|
|
95
|
+
date: '15 Mayıs 2026, 19:00',
|
|
96
|
+
location: 'ARMOYU Discord Sahnesi',
|
|
97
|
+
participantLimit: 100,
|
|
98
|
+
currentParticipants: 0,
|
|
99
|
+
isHot: false,
|
|
100
|
+
rewards: '5.000 VP Havuzu',
|
|
101
|
+
description: 'Baharın gelişini harika bir Valorant şöleni ile kutluyoruz.',
|
|
102
|
+
minODP: 20
|
|
103
|
+
})
|
|
104
|
+
];
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* STATIONS (stationList)
|
|
108
|
+
*/
|
|
109
|
+
export const stationList: Station[] = [
|
|
110
|
+
new Station({
|
|
111
|
+
id: '1',
|
|
112
|
+
name: 'Zerdüşt Coffee & Food',
|
|
113
|
+
slug: 'zerdust-coffee',
|
|
114
|
+
type: 'YEMEK',
|
|
115
|
+
description: 'Şehrin en iyi kahvesi ve atıştırmalıkları burada!',
|
|
116
|
+
location: 'Beşiktaş, İstanbul',
|
|
117
|
+
rating: 4.8,
|
|
118
|
+
reviewCount: 156,
|
|
119
|
+
logo: 'https://api.dicebear.com/7.x/initials/svg?seed=Zerdust',
|
|
120
|
+
banner: 'https://images.unsplash.com/photo-1495474472287-4d71bcdd2085?w=1200&h=400',
|
|
121
|
+
products: [
|
|
122
|
+
new StationProduct({ id: 'p1', name: 'Americano', price: 65, category: 'Kahve' }),
|
|
123
|
+
new StationProduct({ id: 'p3', name: 'Oyuncu Burger', price: 185, category: 'Yemek', isDeal: true, discountRate: '%15' }),
|
|
124
|
+
],
|
|
125
|
+
coupons: [
|
|
126
|
+
new StationCoupon({ code: 'ARMOYU10', discount: '%10', expiryDate: '01.01.2027', description: 'Tüm kahvelerde geçerli!' })
|
|
127
|
+
]
|
|
128
|
+
}),
|
|
129
|
+
new Station({
|
|
130
|
+
id: '2',
|
|
131
|
+
name: 'ARMOYU Elite Gaming Center',
|
|
132
|
+
slug: 'armoyu-elite-gaming',
|
|
133
|
+
type: 'INTERNET_KAFE',
|
|
134
|
+
description: 'En son teknoloji PCler ve profesyonel ekipmanlar.',
|
|
135
|
+
location: 'Kadıköy, İstanbul',
|
|
136
|
+
rating: 4.9,
|
|
137
|
+
reviewCount: 842,
|
|
138
|
+
logo: 'https://api.dicebear.com/7.x/initials/svg?seed=ARMOYU',
|
|
139
|
+
banner: 'https://images.unsplash.com/photo-1542751110-97427bbecf20?w=1200&h=400',
|
|
140
|
+
equipment: [
|
|
141
|
+
new WorkstationEquipment({
|
|
142
|
+
id: 'eq1',
|
|
143
|
+
name: 'VIP Streaming Odası',
|
|
144
|
+
cpu: 'Intel Core i9-14900K',
|
|
145
|
+
gpu: 'NVIDIA RTX 4090',
|
|
146
|
+
ram: '64GB DDR5',
|
|
147
|
+
monitor: 'ASUS ROG 540Hz'
|
|
148
|
+
})
|
|
149
|
+
],
|
|
150
|
+
pricing: [
|
|
151
|
+
{ label: 'Saati', price: 35, unit: 'saat' }
|
|
152
|
+
]
|
|
153
|
+
}),
|
|
154
|
+
new Station({
|
|
155
|
+
id: '3',
|
|
156
|
+
name: 'Arena Halı Saha',
|
|
157
|
+
slug: 'arena-hali-saha',
|
|
158
|
+
type: 'HALI_SAHA',
|
|
159
|
+
description: 'Yapay çim, duş imkanı ve kantin.',
|
|
160
|
+
location: 'Şişli, İstanbul',
|
|
161
|
+
rating: 4.5,
|
|
162
|
+
reviewCount: 215,
|
|
163
|
+
logo: 'https://api.dicebear.com/7.x/initials/svg?seed=Arena',
|
|
164
|
+
banner: 'https://images.unsplash.com/photo-1529900903114-93da367104e7?w=1200&h=400',
|
|
165
|
+
facilities: ['Otopark', 'Duş', 'Kantin'],
|
|
166
|
+
pricing: [
|
|
167
|
+
{ label: 'Gündüz (1 Saat)', price: 800, unit: 'seans' }
|
|
168
|
+
]
|
|
169
|
+
})
|
|
170
|
+
];
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Survey, SurveyAnswer, User } from '@armoyu/core';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
// Assuming we need userList from seedData, but let's define some IDs locally
|
|
5
|
+
// to avoid circular dependencies if we move it.
|
|
6
|
+
// For now, let's just use the existing author objects from what we know.
|
|
7
|
+
|
|
8
|
+
export const MOCK_SURVEYS_DATA = (userList: any[]) => [
|
|
9
|
+
new Survey({
|
|
10
|
+
id: 's1',
|
|
11
|
+
question: 'Bir sonraki turnuva hangi oyunda olmalı?',
|
|
12
|
+
description: 'Topluluk haftalık turnuvaları için oyun seçimi yapıyoruz. Oyununuzu kullanın!',
|
|
13
|
+
createdAt: '2 gün önce',
|
|
14
|
+
expiresAt: '2024-05-10',
|
|
15
|
+
author: userList[0],
|
|
16
|
+
options: [
|
|
17
|
+
new SurveyAnswer({ id: 'o1', text: 'Counter-Strike 2', votes: 145 }),
|
|
18
|
+
new SurveyAnswer({ id: 'o2', text: 'League of Legends', votes: 89 }),
|
|
19
|
+
new SurveyAnswer({ id: 'o3', text: 'Valorant', votes: 210 }),
|
|
20
|
+
new SurveyAnswer({ id: 'o4', text: 'Rocket League', votes: 42 }),
|
|
21
|
+
],
|
|
22
|
+
hasVoted: true,
|
|
23
|
+
myVoteId: 'o3'
|
|
24
|
+
}),
|
|
25
|
+
new Survey({
|
|
26
|
+
id: 's2',
|
|
27
|
+
question: 'ARMOYU V3 tasarımı hakkında ne düşünüyorsunuz?',
|
|
28
|
+
description: 'Yeni nesil arayüzümüz hakkındaki görüşleriniz bizim için çok değerli. Lütfen puan verin!',
|
|
29
|
+
createdAt: '5 saat önce',
|
|
30
|
+
author: userList[0],
|
|
31
|
+
options: [
|
|
32
|
+
new SurveyAnswer({ id: 'o1', text: 'Mükemmel, çok modern!', votes: 450 }),
|
|
33
|
+
new SurveyAnswer({ id: 'o2', text: 'Güzel ama gelişmesi gereken yerler var.', votes: 65 }),
|
|
34
|
+
new SurveyAnswer({ id: 'o3', text: 'Eskisi daha iyiydi.', votes: 12 }),
|
|
35
|
+
],
|
|
36
|
+
hasVoted: false
|
|
37
|
+
}),
|
|
38
|
+
new Survey({
|
|
39
|
+
id: 's3',
|
|
40
|
+
question: 'Yazılım ekibimize yeni üyeler katılmalı mı?',
|
|
41
|
+
description: 'Genişleyen projelerimiz için yeni yetenekler arıyoruz.',
|
|
42
|
+
createdAt: '1 gün önce',
|
|
43
|
+
expiresAt: '2024-04-30',
|
|
44
|
+
author: userList[1],
|
|
45
|
+
options: [
|
|
46
|
+
new SurveyAnswer({ id: 'o1', text: 'Evet, daha hızlı ilerleriz.', votes: 210 }),
|
|
47
|
+
new SurveyAnswer({ id: 'o2', text: 'Hayır, şu anki ekip yeterli.', votes: 45 }),
|
|
48
|
+
],
|
|
49
|
+
hasVoted: true,
|
|
50
|
+
myVoteId: 'o1'
|
|
51
|
+
})
|
|
52
|
+
];
|
|
53
|
+
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Team } from '@armoyu/core';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Super League Teams Data
|
|
6
|
+
*/
|
|
7
|
+
export const SUPER_LEAGUE_TEAMS: Team[] = [
|
|
8
|
+
new Team({
|
|
9
|
+
id: 't1',
|
|
10
|
+
name: 'Galatasaray',
|
|
11
|
+
shortName: 'GS',
|
|
12
|
+
logo: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/37/Galatasaray_Star_Logo.png/600px-Galatasaray_Star_Logo.png',
|
|
13
|
+
primaryColor: '#ef4444'
|
|
14
|
+
}),
|
|
15
|
+
new Team({
|
|
16
|
+
id: 't2',
|
|
17
|
+
name: 'Fenerbahçe',
|
|
18
|
+
shortName: 'FB',
|
|
19
|
+
logo: 'https://upload.wikimedia.org/wikipedia/tr/thumb/8/86/Fenerbah%C3%A7e_SK.png/600px-Fenerbah%C3%A7e_SK.png',
|
|
20
|
+
primaryColor: '#fbbf24'
|
|
21
|
+
}),
|
|
22
|
+
new Team({
|
|
23
|
+
id: 't3',
|
|
24
|
+
name: 'Beşiktaş',
|
|
25
|
+
shortName: 'BJK',
|
|
26
|
+
logo: 'https://upload.wikimedia.org/wikipedia/commons/thumb/2/20/Logo_of_Be%C5%9Fikta%C5%9F_JK.svg/600px-Logo_of_Be%C5%9Fikta%C5%9F_JK.svg.png',
|
|
27
|
+
primaryColor: '#000000'
|
|
28
|
+
}),
|
|
29
|
+
new Team({
|
|
30
|
+
id: 't4',
|
|
31
|
+
name: 'Trabzonspor',
|
|
32
|
+
shortName: 'TS',
|
|
33
|
+
logo: 'https://upload.wikimedia.org/wikipedia/tr/thumb/a/ab/Trabzonspor_Logo.png/600px-Trabzonspor_Logo.png',
|
|
34
|
+
primaryColor: '#9d174d'
|
|
35
|
+
}),
|
|
36
|
+
new Team({
|
|
37
|
+
id: 't5',
|
|
38
|
+
name: 'Başakşehir',
|
|
39
|
+
shortName: 'IBFK',
|
|
40
|
+
logo: 'https://upload.wikimedia.org/wikipedia/tr/thumb/c/c6/Istanbul_Basaksehir_FK.png/600px-Istanbul_Basaksehir_FK.png',
|
|
41
|
+
primaryColor: '#f97316'
|
|
42
|
+
}),
|
|
43
|
+
new Team({
|
|
44
|
+
id: 'none',
|
|
45
|
+
name: 'Takım Tutmuyorum',
|
|
46
|
+
shortName: 'NONE',
|
|
47
|
+
logo: '',
|
|
48
|
+
primaryColor: '#808080'
|
|
49
|
+
})
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Zodiac Signs Data
|
|
54
|
+
*/
|
|
55
|
+
export const ZODIAC_SIGNS = [
|
|
56
|
+
{ name: 'Koç', icon: '♈' },
|
|
57
|
+
{ name: 'Boğa', icon: '♉' },
|
|
58
|
+
{ name: 'İkizler', icon: '♊' },
|
|
59
|
+
{ name: 'Yengeç', icon: '♋' },
|
|
60
|
+
{ name: 'Aslan', icon: '♌' },
|
|
61
|
+
{ name: 'Başak', icon: '♍' },
|
|
62
|
+
{ name: 'Terazi', icon: '♎' },
|
|
63
|
+
{ name: 'Akrep', icon: '♏' },
|
|
64
|
+
{ name: 'Yay', icon: '♐' },
|
|
65
|
+
{ name: 'Oğlak', icon: '♑' },
|
|
66
|
+
{ name: 'Kova', icon: '♒' },
|
|
67
|
+
{ name: 'Balık', icon: '♓' }
|
|
68
|
+
];
|
|
69
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formats large numbers into a shorter string and its unit suffix.
|
|
3
|
+
* 14200 -> { value: "14.2", unit: "B" }
|
|
4
|
+
* 1200000 -> { value: "1.2", unit: "M" }
|
|
5
|
+
*/
|
|
6
|
+
export function formatStatValue(num: number): { value: string | number; unit: string } {
|
|
7
|
+
if (num >= 1000000) {
|
|
8
|
+
const val = (num / 1000000).toFixed(1);
|
|
9
|
+
return { value: val.endsWith('.0') ? val.slice(0, -2) : val, unit: 'M' };
|
|
10
|
+
}
|
|
11
|
+
if (num >= 1000) {
|
|
12
|
+
const val = (num / 1000).toFixed(1);
|
|
13
|
+
return { value: val.endsWith('.0') ? val.slice(0, -2) : val, unit: 'B' };
|
|
14
|
+
}
|
|
15
|
+
return { value: num, unit: '' };
|
|
16
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export interface ODPStatus {
|
|
2
|
+
label: 'Tehlikeli' | 'Dengesiz' | 'İyi' | 'Sadık';
|
|
3
|
+
color: string;
|
|
4
|
+
bgColor: string;
|
|
5
|
+
borderColor: string;
|
|
6
|
+
icon: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Normalizes and categorizes ODP scores into human-readable branding.
|
|
11
|
+
* 0-30: Tehlikeli
|
|
12
|
+
* 31-60: Dengesiz
|
|
13
|
+
* 61-90: İyi
|
|
14
|
+
* 91-100: Sadık
|
|
15
|
+
*/
|
|
16
|
+
export const getODPStatus = (score: number): ODPStatus => {
|
|
17
|
+
if (score <= 30) {
|
|
18
|
+
return {
|
|
19
|
+
label: 'Tehlikeli',
|
|
20
|
+
color: 'text-red-500',
|
|
21
|
+
bgColor: 'bg-red-500/10',
|
|
22
|
+
borderColor: 'border-red-500/20',
|
|
23
|
+
icon: 'AlertTriangle'
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
if (score <= 60) {
|
|
27
|
+
return {
|
|
28
|
+
label: 'Dengesiz',
|
|
29
|
+
color: 'text-orange-500',
|
|
30
|
+
bgColor: 'bg-orange-500/10',
|
|
31
|
+
borderColor: 'border-orange-500/20',
|
|
32
|
+
icon: 'Zap'
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
if (score <= 90) {
|
|
36
|
+
return {
|
|
37
|
+
label: 'İyi',
|
|
38
|
+
color: 'text-emerald-500',
|
|
39
|
+
bgColor: 'bg-emerald-500/10',
|
|
40
|
+
borderColor: 'border-emerald-500/20',
|
|
41
|
+
icon: 'ShieldCheck'
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
label: 'Sadık',
|
|
46
|
+
color: 'text-purple-500',
|
|
47
|
+
bgColor: 'bg-purple-500/10',
|
|
48
|
+
borderColor: 'border-purple-500/20',
|
|
49
|
+
icon: 'Crown'
|
|
50
|
+
};
|
|
51
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './stats';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global Statistics Interface
|
|
3
|
+
* Bu arayüz, sitemizin genelindeki tüm sayısal verileri tutmak için tasarlanmıştır.
|
|
4
|
+
* İlerleyen aşamalarda bu veriler backend API üzerinden dinamik olarak beslenecektir.
|
|
5
|
+
*/
|
|
6
|
+
export interface GlobalStats {
|
|
7
|
+
totalPlayers: number;
|
|
8
|
+
malePlayers: number;
|
|
9
|
+
femalePlayers: number;
|
|
10
|
+
totalForums: number;
|
|
11
|
+
totalPolls: number;
|
|
12
|
+
activeUsers24h: number;
|
|
13
|
+
totalMatchesPlayed: number;
|
|
14
|
+
totalGuilds: number;
|
|
15
|
+
monthlyVisitors: number;
|
|
16
|
+
totalNews: number;
|
|
17
|
+
}
|