@armoyu/ui 1.0.0 → 1.0.2
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/api/proxy/[...path]/route.d.ts +22 -0
- package/dist/app/api/proxy/[...path]/route.d.ts.map +1 -0
- package/dist/app/api/proxy/[...path]/route.js +89 -0
- package/dist/app/api/proxy/[...path]/route.js.map +1 -0
- package/dist/app/layout.js +11 -11
- package/dist/components/Button.d.ts +7 -7
- package/dist/components/Button.js +15 -15
- package/dist/components/GenderStatsBar.d.ts +5 -5
- package/dist/components/GenderStatsBar.js +7 -7
- package/dist/components/RollingNumber.d.ts +6 -6
- package/dist/components/RollingNumber.js +23 -23
- package/dist/components/Slider.d.ts +10 -10
- package/dist/components/Slider.js +35 -35
- package/dist/components/StatsGrid.js +13 -13
- package/dist/components/ViewModeToggle.d.ts +7 -7
- package/dist/components/ViewModeToggle.js +9 -9
- package/dist/components/modules/auth/Dashboard.js +250 -250
- package/dist/components/modules/auth/MediaLightbox.d.ts +13 -13
- package/dist/components/modules/auth/MediaLightbox.js +46 -46
- package/dist/components/modules/auth/PostCard.js +112 -112
- package/dist/components/modules/auth/PostInteractionsModal.js +12 -12
- package/dist/components/modules/auth/RepostModal.js +75 -75
- package/dist/components/modules/auth/SidebarLeft.js +40 -40
- package/dist/components/modules/auth/Stories.js +15 -15
- package/dist/components/modules/auth/StoryViewer.js +47 -47
- package/dist/components/modules/chat/ChatContainer.js +196 -196
- package/dist/components/modules/chat/ChatInput.js +30 -30
- package/dist/components/modules/chat/ChatList.js +51 -51
- package/dist/components/modules/chat/ChatMessage.d.ts +11 -11
- package/dist/components/modules/chat/ChatMessage.js +6 -6
- package/dist/components/modules/chat/ChatNotes.js +11 -11
- package/dist/components/modules/community/GroupHeader.js +17 -17
- package/dist/components/modules/community/GroupMenu.js +16 -16
- package/dist/components/modules/community/SchoolCard.js +7 -7
- package/dist/components/modules/community/SurveyCard.js +35 -35
- package/dist/components/modules/forum/ForumBoard.d.ts +16 -16
- package/dist/components/modules/forum/ForumBoard.js +6 -6
- package/dist/components/modules/forum/ForumPost.d.ts +13 -13
- package/dist/components/modules/forum/ForumPost.js +5 -5
- package/dist/components/modules/forum/NewTopicModal.d.ts +7 -7
- package/dist/components/modules/forum/NewTopicModal.js +26 -26
- package/dist/components/modules/forum/TopicItem.d.ts +15 -15
- package/dist/components/modules/forum/TopicItem.js +6 -6
- package/dist/components/modules/galleries/GalleryCard.d.ts +9 -9
- package/dist/components/modules/galleries/GalleryCard.js +5 -5
- package/dist/components/modules/giveaways/GiveawayCard.d.ts +9 -9
- package/dist/components/modules/giveaways/GiveawayCard.js +6 -6
- package/dist/components/modules/groups/ApplicationModal.d.ts +7 -7
- package/dist/components/modules/groups/ApplicationModal.js +27 -27
- package/dist/components/modules/groups/GroupCard.d.ts +12 -12
- package/dist/components/modules/groups/GroupCard.js +6 -6
- package/dist/components/modules/guest/Introduction.js +13 -13
- package/dist/components/modules/magaza/BackToStore.js +10 -10
- package/dist/components/modules/magaza/StoreHeader.js +8 -8
- package/dist/components/modules/news/NewsCard.js +6 -6
- package/dist/components/modules/news/NewsComments.js +52 -52
- package/dist/components/modules/profile/CloudStorageModal.d.ts +8 -8
- package/dist/components/modules/profile/CloudStorageModal.js +31 -31
- package/dist/components/modules/profile/EditProfileModal.d.ts +8 -8
- package/dist/components/modules/profile/EditProfileModal.js +27 -27
- package/dist/components/modules/profile/ProfileContent.js +70 -70
- package/dist/components/modules/profile/ProfileHeader.js +19 -19
- package/dist/components/modules/profile/ProfileStats.d.ts +1 -1
- package/dist/components/modules/profile/ProfileStats.js +14 -14
- package/dist/components/modules/profile/TeamSelectorModal.js +16 -16
- package/dist/components/modules/stations/StationCard.js +25 -25
- package/dist/components/modules/stations/StationQRModal.js +12 -12
- package/dist/components/shared/FloatingChatButton.js +20 -20
- package/dist/components/shared/Footer.d.ts +1 -1
- package/dist/components/shared/Footer.js +9 -9
- package/dist/components/shared/Header.js +97 -97
- package/dist/components/shared/LoginModal.d.ts.map +1 -1
- package/dist/components/shared/LoginModal.js +12 -16
- package/dist/components/shared/LoginModal.js.map +1 -1
- package/dist/components/shared/MainLayoutWrapper.js +7 -7
- package/dist/components/shared/PageWidth.d.ts +5 -5
- package/dist/components/shared/PageWidth.js +13 -13
- package/dist/components/showcase/SocialTab.d.ts.map +1 -1
- package/dist/components/showcase/SocialTab.js +47 -2
- package/dist/components/showcase/SocialTab.js.map +1 -1
- package/dist/context/AuthContext.d.ts +1 -1
- package/dist/context/AuthContext.d.ts.map +1 -1
- package/dist/context/AuthContext.js +52 -33
- package/dist/context/AuthContext.js.map +1 -1
- package/dist/context/CartContext.js +63 -63
- package/dist/context/ChatContext.d.ts +12 -12
- package/dist/context/ChatContext.js +17 -17
- package/dist/context/LayoutContext.d.ts +10 -10
- package/dist/context/LayoutContext.js +16 -16
- package/dist/context/SocketContext.js +30 -30
- package/dist/context/ThemeContext.d.ts +10 -10
- package/dist/context/ThemeContext.js +39 -39
- package/dist/index.js +80 -80
- package/dist/lib/constants/educationData.js +117 -117
- package/dist/lib/constants/punishmentData.d.ts +29 -29
- package/dist/lib/constants/punishmentData.js +183 -183
- package/dist/lib/constants/seedData.js +694 -694
- package/dist/lib/constants/stationData.js +166 -166
- package/dist/lib/constants/surveyData.js +49 -49
- package/dist/lib/constants/teamData.js +65 -65
- package/dist/types/stats.d.ts +17 -17
- package/dist/types/stats.js +1 -1
- package/package.json +47 -46
- package/src/globals.css +187 -187
- package/next.config.ts +0 -13
- package/postcss.config.js +0 -6
- package/src/app/layout.tsx +0 -64
- package/src/app/page.tsx +0 -101
- package/src/components/Button.tsx +0 -41
- package/src/components/GenderStatsBar.tsx +0 -66
- package/src/components/RollingNumber.tsx +0 -50
- package/src/components/Slider.tsx +0 -114
- package/src/components/StatsGrid.tsx +0 -35
- package/src/components/ViewModeToggle.tsx +0 -39
- package/src/components/modules/auth/Dashboard.tsx +0 -649
- package/src/components/modules/auth/MediaLightbox.tsx +0 -112
- package/src/components/modules/auth/PostCard.tsx +0 -556
- package/src/components/modules/auth/PostInteractionsModal.tsx +0 -138
- package/src/components/modules/auth/RepostModal.tsx +0 -167
- package/src/components/modules/auth/SidebarLeft.tsx +0 -237
- package/src/components/modules/auth/Stories.tsx +0 -69
- package/src/components/modules/auth/StoryViewer.tsx +0 -146
- package/src/components/modules/chat/ChatContainer.tsx +0 -332
- package/src/components/modules/chat/ChatInput.tsx +0 -57
- package/src/components/modules/chat/ChatList.tsx +0 -179
- package/src/components/modules/chat/ChatMessage.tsx +0 -43
- package/src/components/modules/chat/ChatNotes.tsx +0 -58
- package/src/components/modules/community/GroupHeader.tsx +0 -111
- package/src/components/modules/community/GroupMenu.tsx +0 -82
- package/src/components/modules/community/SchoolCard.tsx +0 -104
- package/src/components/modules/community/SurveyCard.tsx +0 -149
- package/src/components/modules/forum/ForumBoard.tsx +0 -78
- package/src/components/modules/forum/ForumPost.tsx +0 -71
- package/src/components/modules/forum/NewTopicModal.tsx +0 -112
- package/src/components/modules/forum/TopicItem.tsx +0 -72
- package/src/components/modules/galleries/GalleryCard.tsx +0 -66
- package/src/components/modules/giveaways/GiveawayCard.tsx +0 -76
- package/src/components/modules/groups/ApplicationModal.tsx +0 -133
- package/src/components/modules/groups/GroupCard.tsx +0 -96
- package/src/components/modules/guest/Introduction.tsx +0 -60
- package/src/components/modules/magaza/BackToStore.tsx +0 -53
- package/src/components/modules/magaza/StoreHeader.tsx +0 -74
- package/src/components/modules/news/NewsCard.tsx +0 -66
- package/src/components/modules/news/NewsComments.tsx +0 -141
- package/src/components/modules/profile/CloudStorageModal.tsx +0 -200
- package/src/components/modules/profile/EditProfileModal.tsx +0 -191
- package/src/components/modules/profile/ProfileContent.tsx +0 -491
- package/src/components/modules/profile/ProfileHeader.tsx +0 -128
- package/src/components/modules/profile/ProfileStats.tsx +0 -72
- package/src/components/modules/profile/TeamSelectorModal.tsx +0 -129
- package/src/components/modules/stations/StationCard.tsx +0 -95
- package/src/components/modules/stations/StationQRModal.tsx +0 -102
- package/src/components/shared/FloatingChatButton.tsx +0 -57
- package/src/components/shared/Footer.tsx +0 -77
- package/src/components/shared/Header.tsx +0 -799
- package/src/components/shared/LoginModal.tsx +0 -208
- package/src/components/shared/MainLayoutWrapper.tsx +0 -15
- package/src/components/shared/PageWidth.tsx +0 -22
- package/src/components/showcase/CommunityTab.tsx +0 -22
- package/src/components/showcase/CorporateTab.tsx +0 -38
- package/src/components/showcase/GeneralTab.tsx +0 -41
- package/src/components/showcase/MessagesTab.tsx +0 -26
- package/src/components/showcase/ProfileTab.tsx +0 -20
- package/src/components/showcase/ShopTab.tsx +0 -24
- package/src/components/showcase/SocialTab.tsx +0 -28
- package/src/context/AuthContext.tsx +0 -104
- package/src/context/CartContext.tsx +0 -93
- package/src/context/ChatContext.tsx +0 -32
- package/src/context/LayoutContext.tsx +0 -29
- package/src/context/SocketContext.tsx +0 -50
- package/src/context/ThemeContext.tsx +0 -52
- package/src/index.ts +0 -96
- package/src/lib/constants/educationData.ts +0 -124
- package/src/lib/constants/punishmentData.ts +0 -201
- package/src/lib/constants/seedData.ts +0 -758
- package/src/lib/constants/stationData.ts +0 -170
- package/src/lib/constants/surveyData.ts +0 -53
- package/src/lib/constants/teamData.ts +0 -69
- package/src/lib/utils/numberFormat.ts +0 -16
- package/src/lib/utils/odpUtils.ts +0 -51
- package/src/types/index.ts +0 -1
- package/src/types/stats.ts +0 -17
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { NextRequest, NextResponse } from 'next/server';
|
|
2
|
+
export declare function POST(req: NextRequest, { params }: {
|
|
3
|
+
params: Promise<{
|
|
4
|
+
path: string[];
|
|
5
|
+
}>;
|
|
6
|
+
}): Promise<NextResponse<any>>;
|
|
7
|
+
export declare function GET(req: NextRequest, { params }: {
|
|
8
|
+
params: Promise<{
|
|
9
|
+
path: string[];
|
|
10
|
+
}>;
|
|
11
|
+
}): Promise<NextResponse<any>>;
|
|
12
|
+
export declare function PUT(req: NextRequest, { params }: {
|
|
13
|
+
params: Promise<{
|
|
14
|
+
path: string[];
|
|
15
|
+
}>;
|
|
16
|
+
}): Promise<NextResponse<any>>;
|
|
17
|
+
export declare function DELETE(req: NextRequest, { params }: {
|
|
18
|
+
params: Promise<{
|
|
19
|
+
path: string[];
|
|
20
|
+
}>;
|
|
21
|
+
}): Promise<NextResponse<any>>;
|
|
22
|
+
//# sourceMappingURL=route.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../src/app/api/proxy/[...path]/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExD,wBAAsB,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAA;CAAE,8BAG/F;AAED,wBAAsB,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAA;CAAE,8BAG9F;AAED,wBAAsB,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAA;CAAE,8BAG9F;AAED,wBAAsB,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAA;CAAE,8BAGjG"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { NextResponse } from 'next/server';
|
|
2
|
+
export async function POST(req, { params }) {
|
|
3
|
+
const { path } = await params;
|
|
4
|
+
return handleProxy(req, path);
|
|
5
|
+
}
|
|
6
|
+
export async function GET(req, { params }) {
|
|
7
|
+
const { path } = await params;
|
|
8
|
+
return handleProxy(req, path);
|
|
9
|
+
}
|
|
10
|
+
export async function PUT(req, { params }) {
|
|
11
|
+
const { path } = await params;
|
|
12
|
+
return handleProxy(req, path);
|
|
13
|
+
}
|
|
14
|
+
export async function DELETE(req, { params }) {
|
|
15
|
+
const { path } = await params;
|
|
16
|
+
return handleProxy(req, path);
|
|
17
|
+
}
|
|
18
|
+
async function handleProxy(req, pathSegments) {
|
|
19
|
+
const apiKey = req.headers.get('x-api-key') || '';
|
|
20
|
+
const endpoint = '/' + pathSegments.join('/');
|
|
21
|
+
if (!apiKey) {
|
|
22
|
+
return NextResponse.json({ durum: 0, aciklama: 'X-API-KEY header missing' }, { status: 400 });
|
|
23
|
+
}
|
|
24
|
+
// Target Armoyu API
|
|
25
|
+
const targetUrl = `https://api.armoyu.com/botlar/${apiKey}${endpoint}`;
|
|
26
|
+
const method = req.method;
|
|
27
|
+
const headers = new Headers();
|
|
28
|
+
// Helper to safely set headers and avoid ISO-8859-1 errors
|
|
29
|
+
const safeSetHeader = (key, value) => {
|
|
30
|
+
if (!value)
|
|
31
|
+
return;
|
|
32
|
+
const isAscii = /^[ -~]*$/.test(value);
|
|
33
|
+
if (isAscii) {
|
|
34
|
+
headers.set(key, value);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
console.warn(`[Proxy] Skipping header ${key} due to non-ASCII characters`);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
// Whitelist of headers to forward
|
|
41
|
+
const allowedHeaders = ['authorization', 'content-type', 'x-api-key', 'accept', 'user-agent', 'x-requested-with'];
|
|
42
|
+
req.headers.forEach((value, key) => {
|
|
43
|
+
if (allowedHeaders.includes(key.toLowerCase())) {
|
|
44
|
+
safeSetHeader(key, value);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
if (apiKey) {
|
|
48
|
+
safeSetHeader('X-API-KEY', apiKey);
|
|
49
|
+
}
|
|
50
|
+
try {
|
|
51
|
+
const fetchOptions = {
|
|
52
|
+
method,
|
|
53
|
+
headers,
|
|
54
|
+
cache: 'no-store'
|
|
55
|
+
};
|
|
56
|
+
if (method !== 'GET' && method !== 'HEAD') {
|
|
57
|
+
try {
|
|
58
|
+
const bodyClone = req.clone();
|
|
59
|
+
const arrayBuffer = await bodyClone.arrayBuffer();
|
|
60
|
+
if (arrayBuffer.byteLength > 0) {
|
|
61
|
+
fetchOptions.body = arrayBuffer;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch (bodyError) {
|
|
65
|
+
console.warn(`[Proxy] Body read warning: ${bodyError.message}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
const response = await fetch(targetUrl, fetchOptions);
|
|
69
|
+
const responseText = await response.text();
|
|
70
|
+
let responseData;
|
|
71
|
+
try {
|
|
72
|
+
responseData = JSON.parse(responseText);
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
responseData = responseText;
|
|
76
|
+
}
|
|
77
|
+
return NextResponse.json(responseData, { status: response.status });
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
console.error(`[Proxy Error] ${method} ${targetUrl}:`, error);
|
|
81
|
+
return NextResponse.json({
|
|
82
|
+
durum: 0,
|
|
83
|
+
aciklama: `Proxy Error: ${error.message}`,
|
|
84
|
+
targetUrl,
|
|
85
|
+
error: error.stack
|
|
86
|
+
}, { status: 500 });
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=route.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../../src/app/api/proxy/[...path]/route.ts"],"names":[],"mappings":"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"}
|
package/dist/app/layout.js
CHANGED
|
@@ -14,17 +14,17 @@ export const metadata = {
|
|
|
14
14
|
};
|
|
15
15
|
export default function RootLayout({ children, }) {
|
|
16
16
|
return (_jsxs("html", { lang: "tr", className: "scroll-smooth dark", suppressHydrationWarning: true, children: [_jsx("head", { children: _jsx("script", { dangerouslySetInnerHTML: {
|
|
17
|
-
__html: `
|
|
18
|
-
(function() {
|
|
19
|
-
try {
|
|
20
|
-
var theme = localStorage.getItem('armoyu_theme');
|
|
21
|
-
if (theme === 'light') {
|
|
22
|
-
document.documentElement.classList.remove('dark');
|
|
23
|
-
} else {
|
|
24
|
-
document.documentElement.classList.add('dark');
|
|
25
|
-
}
|
|
26
|
-
} catch (e) {}
|
|
27
|
-
})();
|
|
17
|
+
__html: `
|
|
18
|
+
(function() {
|
|
19
|
+
try {
|
|
20
|
+
var theme = localStorage.getItem('armoyu_theme');
|
|
21
|
+
if (theme === 'light') {
|
|
22
|
+
document.documentElement.classList.remove('dark');
|
|
23
|
+
} else {
|
|
24
|
+
document.documentElement.classList.add('dark');
|
|
25
|
+
}
|
|
26
|
+
} catch (e) {}
|
|
27
|
+
})();
|
|
28
28
|
`,
|
|
29
29
|
} }) }), _jsx("body", { className: `${inter.className} bg-armoyu-bg text-armoyu-text min-h-screen flex flex-col antialiased relative transition-colors duration-500`, children: _jsx(ThemeProvider, { children: _jsx(AuthProvider, { children: _jsx(SocketProvider, { children: _jsx(LayoutProvider, { children: _jsx(CartProvider, { children: _jsxs(ChatProvider, { children: [_jsxs("div", { className: "fixed inset-0 pointer-events-none z-[-1]", children: [_jsx("div", { className: "absolute top-[-10%] left-[-10%] w-[40%] h-[40%] bg-blue-600/20 blur-[120px] rounded-full" }), _jsx("div", { className: "absolute bottom-[-10%] right-[-10%] w-[40%] h-[40%] bg-purple-600/20 blur-[120px] rounded-full" })] }), children] }) }) }) }) }) }) })] }));
|
|
30
30
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
3
|
-
variant?: 'primary' | 'secondary' | 'danger' | 'ghost';
|
|
4
|
-
isLoading?: boolean;
|
|
5
|
-
}
|
|
6
|
-
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
7
|
-
export { Button };
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
3
|
+
variant?: 'primary' | 'secondary' | 'danger' | 'ghost';
|
|
4
|
+
isLoading?: boolean;
|
|
5
|
+
}
|
|
6
|
+
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
7
|
+
export { Button };
|
|
8
8
|
//# sourceMappingURL=Button.d.ts.map
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
const Button = React.forwardRef(({ className = '', variant = 'primary', isLoading, children, ...props }, ref) => {
|
|
4
|
-
// Core aesthetic premium styling (Glassmorphism & Modern UI)
|
|
5
|
-
const baseStyles = "inline-flex items-center justify-center rounded-lg text-sm font-medium transition-all duration-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 disabled:pointer-events-none disabled:opacity-50 h-10 px-4 py-2 cursor-pointer";
|
|
6
|
-
const variants = {
|
|
7
|
-
primary: "bg-blue-600 text-white hover:bg-blue-700 hover:shadow-[0_0_15px_rgba(37,99,235,0.5)] border border-transparent",
|
|
8
|
-
secondary: "bg-white/5 text-white hover:bg-white/10 backdrop-blur-md border border-white/10 hover:border-white/20 shadow-[0_4px_30px_rgba(0,0,0,0.1)]",
|
|
9
|
-
danger: "bg-red-500/80 text-white hover:bg-red-600 border border-red-500/50 hover:shadow-[0_0_15px_rgba(239,68,68,0.5)]",
|
|
10
|
-
ghost: "hover:bg-white/10 hover:text-white text-gray-300"
|
|
11
|
-
};
|
|
12
|
-
return (_jsxs("button", { ref: ref, className: `${baseStyles} ${variants[variant]} ${className}`, disabled: isLoading || props.disabled, ...props, children: [isLoading ? (_jsxs("span", { className: "mr-2 relative flex h-4 w-4", children: [_jsx("span", { className: "animate-ping absolute inline-flex h-full w-full rounded-full bg-white opacity-75" }), _jsx("span", { className: "relative inline-flex rounded-full h-4 w-4 bg-white/50 border-2 border-white border-t-transparent animate-spin" })] })) : null, children] }));
|
|
13
|
-
});
|
|
14
|
-
Button.displayName = "Button";
|
|
15
|
-
export { Button };
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
const Button = React.forwardRef(({ className = '', variant = 'primary', isLoading, children, ...props }, ref) => {
|
|
4
|
+
// Core aesthetic premium styling (Glassmorphism & Modern UI)
|
|
5
|
+
const baseStyles = "inline-flex items-center justify-center rounded-lg text-sm font-medium transition-all duration-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 disabled:pointer-events-none disabled:opacity-50 h-10 px-4 py-2 cursor-pointer";
|
|
6
|
+
const variants = {
|
|
7
|
+
primary: "bg-blue-600 text-white hover:bg-blue-700 hover:shadow-[0_0_15px_rgba(37,99,235,0.5)] border border-transparent",
|
|
8
|
+
secondary: "bg-white/5 text-white hover:bg-white/10 backdrop-blur-md border border-white/10 hover:border-white/20 shadow-[0_4px_30px_rgba(0,0,0,0.1)]",
|
|
9
|
+
danger: "bg-red-500/80 text-white hover:bg-red-600 border border-red-500/50 hover:shadow-[0_0_15px_rgba(239,68,68,0.5)]",
|
|
10
|
+
ghost: "hover:bg-white/10 hover:text-white text-gray-300"
|
|
11
|
+
};
|
|
12
|
+
return (_jsxs("button", { ref: ref, className: `${baseStyles} ${variants[variant]} ${className}`, disabled: isLoading || props.disabled, ...props, children: [isLoading ? (_jsxs("span", { className: "mr-2 relative flex h-4 w-4", children: [_jsx("span", { className: "animate-ping absolute inline-flex h-full w-full rounded-full bg-white opacity-75" }), _jsx("span", { className: "relative inline-flex rounded-full h-4 w-4 bg-white/50 border-2 border-white border-t-transparent animate-spin" })] })) : null, children] }));
|
|
13
|
+
});
|
|
14
|
+
Button.displayName = "Button";
|
|
15
|
+
export { Button };
|
|
16
16
|
//# sourceMappingURL=Button.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export interface GenderStatsBarProps {
|
|
2
|
-
maleCount: number;
|
|
3
|
-
femaleCount: number;
|
|
4
|
-
}
|
|
5
|
-
export declare function GenderStatsBar({ maleCount, femaleCount }: GenderStatsBarProps): import("react/jsx-runtime").JSX.Element;
|
|
1
|
+
export interface GenderStatsBarProps {
|
|
2
|
+
maleCount: number;
|
|
3
|
+
femaleCount: number;
|
|
4
|
+
}
|
|
5
|
+
export declare function GenderStatsBar({ maleCount, femaleCount }: GenderStatsBarProps): import("react/jsx-runtime").JSX.Element;
|
|
6
6
|
//# sourceMappingURL=GenderStatsBar.d.ts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
export function GenderStatsBar({ maleCount = 50, femaleCount = 50 }) {
|
|
3
|
-
const total = maleCount + femaleCount;
|
|
4
|
-
const malePercentage = total > 0 ? Math.round((maleCount / total) * 100) : 0;
|
|
5
|
-
const femalePercentage = total > 0 ? 100 - malePercentage : 0;
|
|
6
|
-
return (_jsxs("div", { className: "w-full space-y-3", children: [_jsxs("div", { className: "flex justify-between items-end px-1", children: [_jsxs("div", { className: "flex items-center gap-2 text-blue-400", children: [_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "22", height: "22", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", className: "drop-shadow-[0_0_8px_rgba(59,130,246,0.6)]", children: [_jsx("circle", { cx: "10", cy: "14", r: "5" }), _jsx("line", { x1: "13.5", y1: "10.5", x2: "19", y2: "5" }), _jsx("polyline", { points: "14 5 19 5 19 10" })] }), _jsxs("span", { className: "font-extrabold text-xl tracking-tight", children: [malePercentage, "%"] }), _jsxs("span", { className: "text-gray-400 text-sm hidden sm:inline border-l border-white/10 pl-2 ml-1", children: ["Erkek \u00DCyeler (", maleCount.toLocaleString('tr-TR'), ")"] })] }), _jsxs("div", { className: "flex items-center gap-2 text-pink-400", children: [_jsxs("span", { className: "text-gray-400 text-sm hidden sm:inline border-r border-white/10 pr-2 mr-1 text-right", children: ["Kad\u0131n \u00DCyeler (", femaleCount.toLocaleString('tr-TR'), ")"] }), _jsxs("span", { className: "font-extrabold text-xl tracking-tight", children: [femalePercentage, "%"] }), _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "22", height: "22", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", className: "drop-shadow-[0_0_8px_rgba(236,72,153,0.6)]", children: [_jsx("circle", { cx: "12", cy: "10", r: "5" }), _jsx("line", { x1: "12", y1: "15", x2: "12", y2: "22" }), _jsx("line", { x1: "9", y1: "19", x2: "15", y2: "19" })] })] })] }), _jsxs("div", { className: "w-full h-5 rounded-full bg-white/5 border border-white/10 flex overflow-hidden shadow-inner p-0.5 relative", children: [_jsx("div", { className: "absolute inset-0 bg-gradient-to-r from-blue-500/20 to-pink-500/20 blur-xl" }), _jsx("div", { className: "h-full bg-gradient-to-r from-blue-600 to-blue-400 shadow-[0_0_15px_rgba(59,130,246,0.8)] transition-all duration-[1500ms] cubic-bezier(0.4, 0, 0.2, 1) rounded-full z-10", style: { width: `${malePercentage}%` }, title: `Erkek: ${malePercentage}%` }), _jsx("div", { className: "h-full bg-gradient-to-r from-pink-400 to-pink-600 shadow-[0_0_15px_rgba(236,72,153,0.8)] transition-all duration-[1500ms] cubic-bezier(0.4, 0, 0.2, 1) rounded-full ml-1 z-10", style: { width: `calc(${femalePercentage}% - 4px)` }, title: `Kadın: ${femalePercentage}%` })] })] }));
|
|
7
|
-
}
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export function GenderStatsBar({ maleCount = 50, femaleCount = 50 }) {
|
|
3
|
+
const total = maleCount + femaleCount;
|
|
4
|
+
const malePercentage = total > 0 ? Math.round((maleCount / total) * 100) : 0;
|
|
5
|
+
const femalePercentage = total > 0 ? 100 - malePercentage : 0;
|
|
6
|
+
return (_jsxs("div", { className: "w-full space-y-3", children: [_jsxs("div", { className: "flex justify-between items-end px-1", children: [_jsxs("div", { className: "flex items-center gap-2 text-blue-400", children: [_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "22", height: "22", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", className: "drop-shadow-[0_0_8px_rgba(59,130,246,0.6)]", children: [_jsx("circle", { cx: "10", cy: "14", r: "5" }), _jsx("line", { x1: "13.5", y1: "10.5", x2: "19", y2: "5" }), _jsx("polyline", { points: "14 5 19 5 19 10" })] }), _jsxs("span", { className: "font-extrabold text-xl tracking-tight", children: [malePercentage, "%"] }), _jsxs("span", { className: "text-gray-400 text-sm hidden sm:inline border-l border-white/10 pl-2 ml-1", children: ["Erkek \u00DCyeler (", maleCount.toLocaleString('tr-TR'), ")"] })] }), _jsxs("div", { className: "flex items-center gap-2 text-pink-400", children: [_jsxs("span", { className: "text-gray-400 text-sm hidden sm:inline border-r border-white/10 pr-2 mr-1 text-right", children: ["Kad\u0131n \u00DCyeler (", femaleCount.toLocaleString('tr-TR'), ")"] }), _jsxs("span", { className: "font-extrabold text-xl tracking-tight", children: [femalePercentage, "%"] }), _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "22", height: "22", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", className: "drop-shadow-[0_0_8px_rgba(236,72,153,0.6)]", children: [_jsx("circle", { cx: "12", cy: "10", r: "5" }), _jsx("line", { x1: "12", y1: "15", x2: "12", y2: "22" }), _jsx("line", { x1: "9", y1: "19", x2: "15", y2: "19" })] })] })] }), _jsxs("div", { className: "w-full h-5 rounded-full bg-white/5 border border-white/10 flex overflow-hidden shadow-inner p-0.5 relative", children: [_jsx("div", { className: "absolute inset-0 bg-gradient-to-r from-blue-500/20 to-pink-500/20 blur-xl" }), _jsx("div", { className: "h-full bg-gradient-to-r from-blue-600 to-blue-400 shadow-[0_0_15px_rgba(59,130,246,0.8)] transition-all duration-[1500ms] cubic-bezier(0.4, 0, 0.2, 1) rounded-full z-10", style: { width: `${malePercentage}%` }, title: `Erkek: ${malePercentage}%` }), _jsx("div", { className: "h-full bg-gradient-to-r from-pink-400 to-pink-600 shadow-[0_0_15px_rgba(236,72,153,0.8)] transition-all duration-[1500ms] cubic-bezier(0.4, 0, 0.2, 1) rounded-full ml-1 z-10", style: { width: `calc(${femalePercentage}% - 4px)` }, title: `Kadın: ${femalePercentage}%` })] })] }));
|
|
7
|
+
}
|
|
8
8
|
//# sourceMappingURL=GenderStatsBar.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
interface RollingNumberProps {
|
|
2
|
-
value: number | string;
|
|
3
|
-
className?: string;
|
|
4
|
-
}
|
|
5
|
-
export declare function RollingNumber({ value, className }: RollingNumberProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
-
export {};
|
|
1
|
+
interface RollingNumberProps {
|
|
2
|
+
value: number | string;
|
|
3
|
+
className?: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function RollingNumber({ value, className }: RollingNumberProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export {};
|
|
7
7
|
//# sourceMappingURL=RollingNumber.d.ts.map
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { useEffect, useState } from 'react';
|
|
4
|
-
export function RollingNumber({ value, className = "" }) {
|
|
5
|
-
const [digits, setDigits] = useState([]);
|
|
6
|
-
useEffect(() => {
|
|
7
|
-
setDigits(value.toString().split(''));
|
|
8
|
-
}, [value]);
|
|
9
|
-
return (_jsx("div", { className: `flex items-center overflow-hidden h-[1.2em] leading-[1.2em] ${className}`, children: digits.map((digit, idx) => (_jsx(Digit, { char: digit }, `${idx}-${digit}`))) }));
|
|
10
|
-
}
|
|
11
|
-
function Digit({ char }) {
|
|
12
|
-
const isNumber = !isNaN(parseInt(char));
|
|
13
|
-
const [offset, setOffset] = useState(0);
|
|
14
|
-
useEffect(() => {
|
|
15
|
-
if (isNumber) {
|
|
16
|
-
setOffset(parseInt(char) * 100);
|
|
17
|
-
}
|
|
18
|
-
}, [char, isNumber]);
|
|
19
|
-
if (!isNumber) {
|
|
20
|
-
return _jsx("span", { className: "inline-block transition-all duration-500", children: char });
|
|
21
|
-
}
|
|
22
|
-
return (_jsx("div", { className: "relative w-[0.6em] h-[1.2em] flex flex-col transition-transform duration-500 ease-out", style: { transform: `translateY(-${offset}%)` }, children: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].map((n) => (_jsx("span", { className: "h-[1.2em] flex items-center justify-center shrink-0", children: n }, n))) }));
|
|
23
|
-
}
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useState } from 'react';
|
|
4
|
+
export function RollingNumber({ value, className = "" }) {
|
|
5
|
+
const [digits, setDigits] = useState([]);
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
setDigits(value.toString().split(''));
|
|
8
|
+
}, [value]);
|
|
9
|
+
return (_jsx("div", { className: `flex items-center overflow-hidden h-[1.2em] leading-[1.2em] ${className}`, children: digits.map((digit, idx) => (_jsx(Digit, { char: digit }, `${idx}-${digit}`))) }));
|
|
10
|
+
}
|
|
11
|
+
function Digit({ char }) {
|
|
12
|
+
const isNumber = !isNaN(parseInt(char));
|
|
13
|
+
const [offset, setOffset] = useState(0);
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
if (isNumber) {
|
|
16
|
+
setOffset(parseInt(char) * 100);
|
|
17
|
+
}
|
|
18
|
+
}, [char, isNumber]);
|
|
19
|
+
if (!isNumber) {
|
|
20
|
+
return _jsx("span", { className: "inline-block transition-all duration-500", children: char });
|
|
21
|
+
}
|
|
22
|
+
return (_jsx("div", { className: "relative w-[0.6em] h-[1.2em] flex flex-col transition-transform duration-500 ease-out", style: { transform: `translateY(-${offset}%)` }, children: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].map((n) => (_jsx("span", { className: "h-[1.2em] flex items-center justify-center shrink-0", children: n }, n))) }));
|
|
23
|
+
}
|
|
24
24
|
//# sourceMappingURL=RollingNumber.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export interface SlideItem {
|
|
3
|
-
wallpaper: string;
|
|
4
|
-
content: React.ReactNode;
|
|
5
|
-
}
|
|
6
|
-
export interface SliderProps {
|
|
7
|
-
slides?: SlideItem[];
|
|
8
|
-
durationTime?: number;
|
|
9
|
-
}
|
|
10
|
-
export declare function Slider({ slides, durationTime }: SliderProps): import("react/jsx-runtime").JSX.Element | null;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface SlideItem {
|
|
3
|
+
wallpaper: string;
|
|
4
|
+
content: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export interface SliderProps {
|
|
7
|
+
slides?: SlideItem[];
|
|
8
|
+
durationTime?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function Slider({ slides, durationTime }: SliderProps): import("react/jsx-runtime").JSX.Element | null;
|
|
11
11
|
//# sourceMappingURL=Slider.d.ts.map
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useState, useEffect } from 'react';
|
|
4
|
-
const defaultSlides = [
|
|
5
|
-
{
|
|
6
|
-
wallpaper: 'https://images.unsplash.com/photo-1542751371-adc38448a05e?q=80&w=2070&auto=format&fit=crop',
|
|
7
|
-
content: (_jsxs("div", { className: "space-y-4", children: [_jsx("h2", { className: "text-4xl md:text-6xl font-black text-white drop-shadow-lg", children: "E-Spor Turnuvalar\u0131" }), _jsx("p", { className: "text-lg md:text-xl text-gray-200 drop-shadow-md font-medium", children: "Yeteneklerini g\u00F6ster ve devasa \u00F6d\u00FCl havuzundan pay\u0131n\u0131 al." })] }))
|
|
8
|
-
},
|
|
9
|
-
{
|
|
10
|
-
wallpaper: 'https://images.unsplash.com/photo-1511512578047-dfb367046420?q=80&w=2071&auto=format&fit=crop',
|
|
11
|
-
content: (_jsxs("div", { className: "space-y-4", children: [_jsx("h2", { className: "text-4xl md:text-6xl font-black text-white drop-shadow-lg", children: "ARMOYU Minecraft" }), _jsx("p", { className: "text-lg md:text-xl text-gray-200 drop-shadow-md font-medium", children: "Geli\u015Fmi\u015F eklentiler ve bitmeyen aksiyon mc.armoyu.com'da." })] }))
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
wallpaper: 'https://images.unsplash.com/photo-1552820728-8b83bb6b773f?q=80&w=2070&auto=format&fit=crop',
|
|
15
|
-
content: (_jsxs("div", { className: "space-y-4", children: [_jsx("h2", { className: "text-4xl md:text-6xl font-black text-white drop-shadow-lg", children: "B\u00FCy\u00FCk Topluluk" }), _jsx("p", { className: "text-lg md:text-xl text-gray-200 drop-shadow-md font-medium", children: "Binlerce oyuncuyla tan\u0131\u015F, ekibini kur ve rekabete kat\u0131l." })] }))
|
|
16
|
-
}
|
|
17
|
-
];
|
|
18
|
-
export function Slider({ slides = defaultSlides, durationTime = 5000 }) {
|
|
19
|
-
const [currentIndex, setCurrentIndex] = useState(0);
|
|
20
|
-
useEffect(() => {
|
|
21
|
-
if (!slides || slides.length <= 1)
|
|
22
|
-
return;
|
|
23
|
-
const timer = setInterval(() => {
|
|
24
|
-
setCurrentIndex((prev) => (prev + 1) % slides.length);
|
|
25
|
-
}, durationTime);
|
|
26
|
-
return () => clearInterval(timer);
|
|
27
|
-
}, [slides, durationTime, currentIndex]);
|
|
28
|
-
if (!slides || slides.length === 0)
|
|
29
|
-
return null;
|
|
30
|
-
return (_jsxs("div", { className: "relative w-full h-full min-h-[400px] md:min-h-[500px] rounded-[30px] overflow-hidden group shadow-2xl border border-white/5", children: [slides.map((slide, index) => (_jsxs("div", { className: `absolute inset-0 transition-opacity duration-1000 ease-in-out ${index === currentIndex ? 'opacity-100 z-10' : 'opacity-0 z-0'}`, children: [_jsx("div", { className: "absolute inset-0 bg-gradient-to-t from-[#0a0a0e] via-black/40 to-transparent z-10" }), _jsx("img", { src: slide.wallpaper, alt: `Slide ${index}`, className: "absolute inset-0 w-full h-full object-cover transition-transform duration-[10000ms] ease-linear overflow-hidden", style: {
|
|
31
|
-
transform: index === currentIndex ? 'scale(1.05)' : 'scale(1)',
|
|
32
|
-
} }), _jsx("div", { className: "absolute inset-0 z-20 flex flex-col justify-end pb-20 px-8 lg:px-16 text-left max-w-7xl mx-auto", children: _jsx("div", { className: `transition-all duration-700 transform ${index === currentIndex ? 'translate-y-0 opacity-100' : 'translate-y-8 opacity-0'}`, children: slide.content }) })] }, index))), _jsx("div", { className: "absolute bottom-6 left-0 right-0 z-20 flex justify-center px-8 lg:px-16 max-w-7xl mx-auto", children: _jsx("div", { className: "flex gap-3 w-full", children: slides.map((_, index) => (_jsxs("div", { className: "h-1 lg:h-1.5 flex-1 bg-white/20 rounded-full overflow-hidden cursor-pointer backdrop-blur-sm transition-all hover:bg-white/40", onClick: () => setCurrentIndex(index), children: [index === currentIndex && (_jsx("div", { className: "h-full bg-blue-500 rounded-full shadow-[0_0_10px_rgba(59,130,246,0.8)]", style: {
|
|
33
|
-
animation: `progressBar ${durationTime}ms linear forwards`
|
|
34
|
-
} }, `progress-${currentIndex}`)), index < currentIndex && (_jsx("div", { className: "h-full bg-white/60 rounded-full" }))] }, index))) }) })] }));
|
|
35
|
-
}
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState, useEffect } from 'react';
|
|
4
|
+
const defaultSlides = [
|
|
5
|
+
{
|
|
6
|
+
wallpaper: 'https://images.unsplash.com/photo-1542751371-adc38448a05e?q=80&w=2070&auto=format&fit=crop',
|
|
7
|
+
content: (_jsxs("div", { className: "space-y-4", children: [_jsx("h2", { className: "text-4xl md:text-6xl font-black text-white drop-shadow-lg", children: "E-Spor Turnuvalar\u0131" }), _jsx("p", { className: "text-lg md:text-xl text-gray-200 drop-shadow-md font-medium", children: "Yeteneklerini g\u00F6ster ve devasa \u00F6d\u00FCl havuzundan pay\u0131n\u0131 al." })] }))
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
wallpaper: 'https://images.unsplash.com/photo-1511512578047-dfb367046420?q=80&w=2071&auto=format&fit=crop',
|
|
11
|
+
content: (_jsxs("div", { className: "space-y-4", children: [_jsx("h2", { className: "text-4xl md:text-6xl font-black text-white drop-shadow-lg", children: "ARMOYU Minecraft" }), _jsx("p", { className: "text-lg md:text-xl text-gray-200 drop-shadow-md font-medium", children: "Geli\u015Fmi\u015F eklentiler ve bitmeyen aksiyon mc.armoyu.com'da." })] }))
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
wallpaper: 'https://images.unsplash.com/photo-1552820728-8b83bb6b773f?q=80&w=2070&auto=format&fit=crop',
|
|
15
|
+
content: (_jsxs("div", { className: "space-y-4", children: [_jsx("h2", { className: "text-4xl md:text-6xl font-black text-white drop-shadow-lg", children: "B\u00FCy\u00FCk Topluluk" }), _jsx("p", { className: "text-lg md:text-xl text-gray-200 drop-shadow-md font-medium", children: "Binlerce oyuncuyla tan\u0131\u015F, ekibini kur ve rekabete kat\u0131l." })] }))
|
|
16
|
+
}
|
|
17
|
+
];
|
|
18
|
+
export function Slider({ slides = defaultSlides, durationTime = 5000 }) {
|
|
19
|
+
const [currentIndex, setCurrentIndex] = useState(0);
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
if (!slides || slides.length <= 1)
|
|
22
|
+
return;
|
|
23
|
+
const timer = setInterval(() => {
|
|
24
|
+
setCurrentIndex((prev) => (prev + 1) % slides.length);
|
|
25
|
+
}, durationTime);
|
|
26
|
+
return () => clearInterval(timer);
|
|
27
|
+
}, [slides, durationTime, currentIndex]);
|
|
28
|
+
if (!slides || slides.length === 0)
|
|
29
|
+
return null;
|
|
30
|
+
return (_jsxs("div", { className: "relative w-full h-full min-h-[400px] md:min-h-[500px] rounded-[30px] overflow-hidden group shadow-2xl border border-white/5", children: [slides.map((slide, index) => (_jsxs("div", { className: `absolute inset-0 transition-opacity duration-1000 ease-in-out ${index === currentIndex ? 'opacity-100 z-10' : 'opacity-0 z-0'}`, children: [_jsx("div", { className: "absolute inset-0 bg-gradient-to-t from-[#0a0a0e] via-black/40 to-transparent z-10" }), _jsx("img", { src: slide.wallpaper, alt: `Slide ${index}`, className: "absolute inset-0 w-full h-full object-cover transition-transform duration-[10000ms] ease-linear overflow-hidden", style: {
|
|
31
|
+
transform: index === currentIndex ? 'scale(1.05)' : 'scale(1)',
|
|
32
|
+
} }), _jsx("div", { className: "absolute inset-0 z-20 flex flex-col justify-end pb-20 px-8 lg:px-16 text-left max-w-7xl mx-auto", children: _jsx("div", { className: `transition-all duration-700 transform ${index === currentIndex ? 'translate-y-0 opacity-100' : 'translate-y-8 opacity-0'}`, children: slide.content }) })] }, index))), _jsx("div", { className: "absolute bottom-6 left-0 right-0 z-20 flex justify-center px-8 lg:px-16 max-w-7xl mx-auto", children: _jsx("div", { className: "flex gap-3 w-full", children: slides.map((_, index) => (_jsxs("div", { className: "h-1 lg:h-1.5 flex-1 bg-white/20 rounded-full overflow-hidden cursor-pointer backdrop-blur-sm transition-all hover:bg-white/40", onClick: () => setCurrentIndex(index), children: [index === currentIndex && (_jsx("div", { className: "h-full bg-blue-500 rounded-full shadow-[0_0_10px_rgba(59,130,246,0.8)]", style: {
|
|
33
|
+
animation: `progressBar ${durationTime}ms linear forwards`
|
|
34
|
+
} }, `progress-${currentIndex}`)), index < currentIndex && (_jsx("div", { className: "h-full bg-white/60 rounded-full" }))] }, index))) }) })] }));
|
|
35
|
+
}
|
|
36
36
|
//# sourceMappingURL=Slider.js.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
export function StatsGrid({ stats }) {
|
|
4
|
-
const statItems = [
|
|
5
|
-
{ label: 'Toplam Oyuncu', value: stats.totalPlayers.toLocaleString('tr-TR'), icon: '🎮', color: 'text-blue-400' },
|
|
6
|
-
{ label: 'Aktif Kullanıcı (24s)', value: stats.activeUsers24h.toLocaleString('tr-TR'), icon: '🔥', color: 'text-orange-400' },
|
|
7
|
-
{ label: 'Açılan Forum', value: stats.totalForums.toLocaleString('tr-TR'), icon: '💬', color: 'text-purple-400' },
|
|
8
|
-
{ label: 'Oynanan Maç', value: stats.totalMatchesPlayed.toLocaleString('tr-TR'), icon: '⚔️', color: 'text-red-400' },
|
|
9
|
-
{ label: 'Kurulan Grup', value: stats.totalGuilds.toLocaleString('tr-TR'), icon: '🛡️', color: 'text-yellow-400' },
|
|
10
|
-
{ label: 'Düzenlenen Anket', value: stats.totalPolls.toLocaleString('tr-TR'), icon: '📊', color: 'text-emerald-400' },
|
|
11
|
-
];
|
|
12
|
-
return (_jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4", children: statItems.map((item, idx) => (_jsxs("div", { className: "bg-white/5 p-4 flex items-center gap-4 rounded-2xl border border-white/5 hover:bg-white/10 transition-colors shadow-lg hover:-translate-y-1 duration-300 cursor-default", children: [_jsx("div", { className: "text-3xl bg-[#0a0a0e]/50 p-3 rounded-xl border border-white/10 shadow-inner", children: item.icon }), _jsxs("div", { children: [_jsx("p", { className: "text-gray-400 text-sm font-medium", children: item.label }), _jsx("p", { className: `text-2xl font-black tracking-tight ${item.color}`, children: item.value })] })] }, idx))) }));
|
|
13
|
-
}
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
export function StatsGrid({ stats }) {
|
|
4
|
+
const statItems = [
|
|
5
|
+
{ label: 'Toplam Oyuncu', value: stats.totalPlayers.toLocaleString('tr-TR'), icon: '🎮', color: 'text-blue-400' },
|
|
6
|
+
{ label: 'Aktif Kullanıcı (24s)', value: stats.activeUsers24h.toLocaleString('tr-TR'), icon: '🔥', color: 'text-orange-400' },
|
|
7
|
+
{ label: 'Açılan Forum', value: stats.totalForums.toLocaleString('tr-TR'), icon: '💬', color: 'text-purple-400' },
|
|
8
|
+
{ label: 'Oynanan Maç', value: stats.totalMatchesPlayed.toLocaleString('tr-TR'), icon: '⚔️', color: 'text-red-400' },
|
|
9
|
+
{ label: 'Kurulan Grup', value: stats.totalGuilds.toLocaleString('tr-TR'), icon: '🛡️', color: 'text-yellow-400' },
|
|
10
|
+
{ label: 'Düzenlenen Anket', value: stats.totalPolls.toLocaleString('tr-TR'), icon: '📊', color: 'text-emerald-400' },
|
|
11
|
+
];
|
|
12
|
+
return (_jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4", children: statItems.map((item, idx) => (_jsxs("div", { className: "bg-white/5 p-4 flex items-center gap-4 rounded-2xl border border-white/5 hover:bg-white/10 transition-colors shadow-lg hover:-translate-y-1 duration-300 cursor-default", children: [_jsx("div", { className: "text-3xl bg-[#0a0a0e]/50 p-3 rounded-xl border border-white/10 shadow-inner", children: item.icon }), _jsxs("div", { children: [_jsx("p", { className: "text-gray-400 text-sm font-medium", children: item.label }), _jsx("p", { className: `text-2xl font-black tracking-tight ${item.color}`, children: item.value })] })] }, idx))) }));
|
|
13
|
+
}
|
|
14
14
|
//# sourceMappingURL=StatsGrid.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export type ViewMode = 'grid' | 'table';
|
|
2
|
-
interface ViewModeToggleProps {
|
|
3
|
-
mode: ViewMode;
|
|
4
|
-
onChange: (mode: ViewMode) => void;
|
|
5
|
-
}
|
|
6
|
-
export declare function ViewModeToggle({ mode, onChange }: ViewModeToggleProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
-
export {};
|
|
1
|
+
export type ViewMode = 'grid' | 'table';
|
|
2
|
+
interface ViewModeToggleProps {
|
|
3
|
+
mode: ViewMode;
|
|
4
|
+
onChange: (mode: ViewMode) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function ViewModeToggle({ mode, onChange }: ViewModeToggleProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
8
|
//# sourceMappingURL=ViewModeToggle.d.ts.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
export function ViewModeToggle({ mode, onChange }) {
|
|
4
|
-
return (_jsxs("div", { className: "flex bg-black/5 dark:bg-white/5 p-1 rounded-2xl border border-black/5 dark:border-white/5 shadow-inner", children: [_jsx("button", { onClick: () => onChange('grid'), className: `p-2.5 rounded-xl transition-all ${mode === 'grid'
|
|
5
|
-
? 'bg-white dark:bg-blue-600 text-blue-600 dark:text-white shadow-lg'
|
|
6
|
-
: 'text-gray-400 hover:text-white hover:bg-black/5 dark:hover:bg-white/5'}`, title: "Izgara G\u00F6r\u00FCn\u00FCm\u00FC", children: _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("rect", { x: "3", y: "3", width: "7", height: "7" }), _jsx("rect", { x: "14", y: "3", width: "7", height: "7" }), _jsx("rect", { x: "14", y: "14", width: "7", height: "7" }), _jsx("rect", { x: "3", y: "14", width: "7", height: "7" })] }) }), _jsx("button", { onClick: () => onChange('table'), className: `p-2.5 rounded-xl transition-all ${mode === 'table'
|
|
7
|
-
? 'bg-white dark:bg-blue-600 text-blue-600 dark:text-white shadow-lg'
|
|
8
|
-
: 'text-gray-400 hover:text-white hover:bg-black/5 dark:hover:bg-white/5'}`, title: "Tablo G\u00F6r\u00FCn\u00FCm\u00FC", children: _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("line", { x1: "8", y1: "6", x2: "21", y2: "6" }), _jsx("line", { x1: "8", y1: "12", x2: "21", y2: "12" }), _jsx("line", { x1: "8", y1: "18", x2: "21", y2: "18" }), _jsx("line", { x1: "3", y1: "6", x2: "3.01", y2: "6" }), _jsx("line", { x1: "3", y1: "12", x2: "3.01", y2: "12" }), _jsx("line", { x1: "3", y1: "18", x2: "3.01", y2: "18" })] }) })] }));
|
|
9
|
-
}
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
export function ViewModeToggle({ mode, onChange }) {
|
|
4
|
+
return (_jsxs("div", { className: "flex bg-black/5 dark:bg-white/5 p-1 rounded-2xl border border-black/5 dark:border-white/5 shadow-inner", children: [_jsx("button", { onClick: () => onChange('grid'), className: `p-2.5 rounded-xl transition-all ${mode === 'grid'
|
|
5
|
+
? 'bg-white dark:bg-blue-600 text-blue-600 dark:text-white shadow-lg'
|
|
6
|
+
: 'text-gray-400 hover:text-white hover:bg-black/5 dark:hover:bg-white/5'}`, title: "Izgara G\u00F6r\u00FCn\u00FCm\u00FC", children: _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("rect", { x: "3", y: "3", width: "7", height: "7" }), _jsx("rect", { x: "14", y: "3", width: "7", height: "7" }), _jsx("rect", { x: "14", y: "14", width: "7", height: "7" }), _jsx("rect", { x: "3", y: "14", width: "7", height: "7" })] }) }), _jsx("button", { onClick: () => onChange('table'), className: `p-2.5 rounded-xl transition-all ${mode === 'table'
|
|
7
|
+
? 'bg-white dark:bg-blue-600 text-blue-600 dark:text-white shadow-lg'
|
|
8
|
+
: 'text-gray-400 hover:text-white hover:bg-black/5 dark:hover:bg-white/5'}`, title: "Tablo G\u00F6r\u00FCn\u00FCm\u00FC", children: _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("line", { x1: "8", y1: "6", x2: "21", y2: "6" }), _jsx("line", { x1: "8", y1: "12", x2: "21", y2: "12" }), _jsx("line", { x1: "8", y1: "18", x2: "21", y2: "18" }), _jsx("line", { x1: "3", y1: "6", x2: "3.01", y2: "6" }), _jsx("line", { x1: "3", y1: "12", x2: "3.01", y2: "12" }), _jsx("line", { x1: "3", y1: "18", x2: "3.01", y2: "18" })] }) })] }));
|
|
9
|
+
}
|
|
10
10
|
//# sourceMappingURL=ViewModeToggle.js.map
|