@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
package/package.json
CHANGED
|
@@ -1,46 +1,47 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@armoyu/ui",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "UI component library for ARMOYU platforms.",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"module": "dist/index.js",
|
|
7
|
-
"types": "dist/index.d.ts",
|
|
8
|
-
"files": [
|
|
9
|
-
"dist",
|
|
10
|
-
"src"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
"
|
|
14
|
-
|
|
15
|
-
"private": false,
|
|
16
|
-
"scripts": {
|
|
17
|
-
"build": "tsc -p tsconfig.lib.json",
|
|
18
|
-
"watch": "tsc -p tsconfig.lib.json --watch",
|
|
19
|
-
"dev": "next dev"
|
|
20
|
-
},
|
|
21
|
-
"
|
|
22
|
-
"@armoyu/core": "
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"react": "^
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"@
|
|
33
|
-
"@types/
|
|
34
|
-
"@types/react
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"react
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
|
|
46
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@armoyu/ui",
|
|
3
|
+
"version": "1.0.2",
|
|
4
|
+
"description": "Premium UI component library for ARMOYU platforms.",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"module": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist/",
|
|
10
|
+
"src/globals.css"
|
|
11
|
+
],
|
|
12
|
+
"publishConfig": {
|
|
13
|
+
"access": "public"
|
|
14
|
+
},
|
|
15
|
+
"private": false,
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsc -p tsconfig.lib.json",
|
|
18
|
+
"watch": "tsc -p tsconfig.lib.json --watch",
|
|
19
|
+
"dev": "next dev"
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"@armoyu/core": "^1.0.2"
|
|
23
|
+
},
|
|
24
|
+
"peerDependencies": {
|
|
25
|
+
"lucide-react": "^1.7.0",
|
|
26
|
+
"next": "^16.1.7",
|
|
27
|
+
"react": "^19.0.0",
|
|
28
|
+
"react-dom": "^19.0.0",
|
|
29
|
+
"socket.io-client": "^4.8.3"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@tailwindcss/postcss": "^4.2.2",
|
|
33
|
+
"@types/node": "^20.0.0",
|
|
34
|
+
"@types/react": "^19.2.14",
|
|
35
|
+
"@types/react-dom": "^19.2.3",
|
|
36
|
+
"autoprefixer": "^10.4.27",
|
|
37
|
+
"lucide-react": "^1.7.0",
|
|
38
|
+
"next": "^16.1.7",
|
|
39
|
+
"postcss": "^8.5.8",
|
|
40
|
+
"react": "^19.2.4",
|
|
41
|
+
"react-dom": "^19.2.4",
|
|
42
|
+
"socket.io-client": "^4.8.3",
|
|
43
|
+
"tailwindcss": "^4.2.2",
|
|
44
|
+
"tsc-alias": "^1.8.16",
|
|
45
|
+
"typescript": "^5.9.3"
|
|
46
|
+
}
|
|
47
|
+
}
|
package/src/globals.css
CHANGED
|
@@ -1,187 +1,187 @@
|
|
|
1
|
-
@import "tailwindcss";
|
|
2
|
-
@source "./components/**/*.{js,ts,jsx,tsx}";
|
|
3
|
-
@source "./app/**/*.{js,ts,jsx,tsx}";
|
|
4
|
-
|
|
5
|
-
/*
|
|
6
|
-
* TAILWIND V4 DARK MODE STRATEGY FIX
|
|
7
|
-
* Varsayılan olarak Tailwind v4 sistem temasına (@media prefers-color-scheme) bakar.
|
|
8
|
-
* Aşağıdaki kural ile Tailwind'in sadece .dark class'ı varken çalışmasını sağlıyoruz.
|
|
9
|
-
*/
|
|
10
|
-
@custom-variant dark (&:where(.dark, .dark *));
|
|
11
|
-
|
|
12
|
-
/*
|
|
13
|
-
* GLOBAL TEMALANDIRMA DEĞİŞKENLERİ
|
|
14
|
-
* Bu yapı sayesinde gelecekte yüzlerce farklı renk/tema (Kırmızı Mod, RGB Modu vb.) tanımlanabilir.
|
|
15
|
-
*/
|
|
16
|
-
@layer base {
|
|
17
|
-
:root {
|
|
18
|
-
--armoyu-bg: #f8fafc;
|
|
19
|
-
/* Slate 50 - Daha asil bir açık gri */
|
|
20
|
-
--armoyu-fg: #0f172a;
|
|
21
|
-
|
|
22
|
-
--armoyu-header-bg: rgba(255, 255, 255, 0.85);
|
|
23
|
-
--armoyu-header-border: rgba(0, 0, 0, 0.04);
|
|
24
|
-
|
|
25
|
-
--armoyu-drawer-bg: rgba(255, 255, 255, 0.9);
|
|
26
|
-
--armoyu-drawer-border: rgba(0, 0, 0, 0.04);
|
|
27
|
-
|
|
28
|
-
--armoyu-card-bg: rgba(255, 255, 255, 0.75);
|
|
29
|
-
--armoyu-card-border: rgba(0, 0, 0, 0.04);
|
|
30
|
-
|
|
31
|
-
--armoyu-text: #1e293b;
|
|
32
|
-
/* Slate 800 */
|
|
33
|
-
--armoyu-text-muted: #64748b;
|
|
34
|
-
/* Slate 500 */
|
|
35
|
-
--armoyu-panel-width: 90%;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.dark {
|
|
39
|
-
--armoyu-bg: #0a0a0e;
|
|
40
|
-
--armoyu-fg: #f8fafc;
|
|
41
|
-
|
|
42
|
-
--armoyu-header-bg: #0a0a0e;
|
|
43
|
-
/* Tamamen Mat Koyu Siyah */
|
|
44
|
-
--armoyu-header-border: rgba(255, 255, 255, 0.05);
|
|
45
|
-
|
|
46
|
-
--armoyu-drawer-bg: rgba(10, 10, 14, 0.65);
|
|
47
|
-
/* Menü Çekmecesi Yüksek Saydamlık */
|
|
48
|
-
--armoyu-drawer-border: rgba(255, 255, 255, 0.1);
|
|
49
|
-
|
|
50
|
-
--armoyu-card-bg: rgba(10, 10, 14, 0.4);
|
|
51
|
-
--armoyu-card-border: rgba(255, 255, 255, 0.05);
|
|
52
|
-
|
|
53
|
-
--armoyu-text: #ffffff;
|
|
54
|
-
--armoyu-text-muted: #9ca3af;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
body {
|
|
58
|
-
background-color: var(--armoyu-bg);
|
|
59
|
-
background-image:
|
|
60
|
-
radial-gradient(at 0% 0%, rgba(59, 130, 246, 0.03) 0, transparent 50%),
|
|
61
|
-
radial-gradient(at 50% 0%, rgba(139, 92, 246, 0.03) 0, transparent 50%),
|
|
62
|
-
radial-gradient(at 100% 0%, rgba(59, 130, 246, 0.03) 0, transparent 50%);
|
|
63
|
-
color: var(--armoyu-fg);
|
|
64
|
-
line-height: inherit;
|
|
65
|
-
font-family: var(--font-sans);
|
|
66
|
-
min-height: 100vh;
|
|
67
|
-
overflow-x: hidden;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
.dark body {
|
|
71
|
-
background-image: none;
|
|
72
|
-
/* Dark modda düz siyah/koyu kalsın */
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/* Kullanıcının istediği özel açık tema arka plan kuralı */
|
|
76
|
-
@media (prefers-color-scheme: light) {
|
|
77
|
-
body {
|
|
78
|
-
background-color: var(--armoyu-bg);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
@theme {
|
|
84
|
-
--color-background: #0a0a0e;
|
|
85
|
-
--color-foreground: #ededed;
|
|
86
|
-
--color-primary: #3b82f6;
|
|
87
|
-
--color-secondary: #1e1e24;
|
|
88
|
-
--font-sans: var(--font-inter), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
|
89
|
-
--animate-fill-bar: fill-bar 5s linear forwards;
|
|
90
|
-
|
|
91
|
-
/* TAILWIND TANIMLAMALARI (Tüm proje genelinde class olarak kullanılabilir hale getirir) */
|
|
92
|
-
--color-armoyu-bg: var(--armoyu-bg);
|
|
93
|
-
--color-armoyu-fg: var(--armoyu-fg);
|
|
94
|
-
--color-armoyu-header-bg: var(--armoyu-header-bg);
|
|
95
|
-
--color-armoyu-header-border: var(--armoyu-header-border);
|
|
96
|
-
--color-armoyu-drawer-bg: var(--armoyu-drawer-bg);
|
|
97
|
-
--color-armoyu-drawer-border: var(--armoyu-drawer-border);
|
|
98
|
-
--color-armoyu-card-bg: var(--armoyu-card-bg);
|
|
99
|
-
--color-armoyu-card-border: var(--armoyu-card-border);
|
|
100
|
-
--color-armoyu-text: var(--armoyu-text);
|
|
101
|
-
--color-armoyu-text-muted: var(--armoyu-text-muted);
|
|
102
|
-
--spacing-armoyu-panel: var(--armoyu-panel-width);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
/* Glassmorphism Classes */
|
|
106
|
-
.glass-panel {
|
|
107
|
-
background: var(--armoyu-card-bg);
|
|
108
|
-
backdrop-filter: blur(16px);
|
|
109
|
-
-webkit-backdrop-filter: blur(16px);
|
|
110
|
-
border: 1px solid var(--armoyu-card-border);
|
|
111
|
-
box-shadow: 0 4px 24px rgba(0, 0, 0, 0.03);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/* Koyu Tema Glassmorphism Stili */
|
|
115
|
-
.dark .glass-panel {
|
|
116
|
-
background: rgba(255, 255, 255, 0.03);
|
|
117
|
-
backdrop-filter: blur(10px);
|
|
118
|
-
-webkit-backdrop-filter: blur(10px);
|
|
119
|
-
border: 1px solid rgba(255, 255, 255, 0.05);
|
|
120
|
-
box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
.text-gradient {
|
|
124
|
-
background: linear-gradient(to right, #3b82f6, #8b5cf6);
|
|
125
|
-
-webkit-background-clip: text;
|
|
126
|
-
-webkit-text-fill-color: transparent;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/* Premium Scrollbar Styling */
|
|
130
|
-
::-webkit-scrollbar {
|
|
131
|
-
width: 6px;
|
|
132
|
-
height: 6px;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
::-webkit-scrollbar-track {
|
|
136
|
-
background: transparent;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
::-webkit-scrollbar-thumb {
|
|
140
|
-
background: rgba(0, 0, 0, 0.1);
|
|
141
|
-
border-radius: 10px;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
.dark ::-webkit-scrollbar-thumb {
|
|
145
|
-
background: rgba(255, 255, 255, 0.05);
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
::-webkit-scrollbar-thumb:hover {
|
|
149
|
-
background: rgba(0, 0, 0, 0.2);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
.dark ::-webkit-scrollbar-thumb:hover {
|
|
153
|
-
background: rgba(255, 255, 255, 0.1);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
/* Hide scrollbar utility (Renamed from hide-scrollbar for consistency) */
|
|
157
|
-
.no-scrollbar::-webkit-scrollbar {
|
|
158
|
-
display: none !important;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
.no-scrollbar {
|
|
162
|
-
-ms-overflow-style: none !important;
|
|
163
|
-
/* IE and Edge */
|
|
164
|
-
scrollbar-width: none !important;
|
|
165
|
-
/* Firefox */
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
/* Elegant Thin Scrollbar */
|
|
169
|
-
.thin-scrollbar::-webkit-scrollbar {
|
|
170
|
-
width: 4px;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
.thin-scrollbar::-webkit-scrollbar-thumb {
|
|
174
|
-
background: rgba(0, 0, 0, 0.1);
|
|
175
|
-
border-radius: 20px;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
/* Slider Progress Bar Animation */
|
|
179
|
-
@keyframes progressBar {
|
|
180
|
-
from {
|
|
181
|
-
width: 0%;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
to {
|
|
185
|
-
width: 100%;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
1
|
+
@import "tailwindcss";
|
|
2
|
+
@source "./components/**/*.{js,ts,jsx,tsx}";
|
|
3
|
+
@source "./app/**/*.{js,ts,jsx,tsx}";
|
|
4
|
+
|
|
5
|
+
/*
|
|
6
|
+
* TAILWIND V4 DARK MODE STRATEGY FIX
|
|
7
|
+
* Varsayılan olarak Tailwind v4 sistem temasına (@media prefers-color-scheme) bakar.
|
|
8
|
+
* Aşağıdaki kural ile Tailwind'in sadece .dark class'ı varken çalışmasını sağlıyoruz.
|
|
9
|
+
*/
|
|
10
|
+
@custom-variant dark (&:where(.dark, .dark *));
|
|
11
|
+
|
|
12
|
+
/*
|
|
13
|
+
* GLOBAL TEMALANDIRMA DEĞİŞKENLERİ
|
|
14
|
+
* Bu yapı sayesinde gelecekte yüzlerce farklı renk/tema (Kırmızı Mod, RGB Modu vb.) tanımlanabilir.
|
|
15
|
+
*/
|
|
16
|
+
@layer base {
|
|
17
|
+
:root {
|
|
18
|
+
--armoyu-bg: #f8fafc;
|
|
19
|
+
/* Slate 50 - Daha asil bir açık gri */
|
|
20
|
+
--armoyu-fg: #0f172a;
|
|
21
|
+
|
|
22
|
+
--armoyu-header-bg: rgba(255, 255, 255, 0.85);
|
|
23
|
+
--armoyu-header-border: rgba(0, 0, 0, 0.04);
|
|
24
|
+
|
|
25
|
+
--armoyu-drawer-bg: rgba(255, 255, 255, 0.9);
|
|
26
|
+
--armoyu-drawer-border: rgba(0, 0, 0, 0.04);
|
|
27
|
+
|
|
28
|
+
--armoyu-card-bg: rgba(255, 255, 255, 0.75);
|
|
29
|
+
--armoyu-card-border: rgba(0, 0, 0, 0.04);
|
|
30
|
+
|
|
31
|
+
--armoyu-text: #1e293b;
|
|
32
|
+
/* Slate 800 */
|
|
33
|
+
--armoyu-text-muted: #64748b;
|
|
34
|
+
/* Slate 500 */
|
|
35
|
+
--armoyu-panel-width: 90%;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.dark {
|
|
39
|
+
--armoyu-bg: #0a0a0e;
|
|
40
|
+
--armoyu-fg: #f8fafc;
|
|
41
|
+
|
|
42
|
+
--armoyu-header-bg: #0a0a0e;
|
|
43
|
+
/* Tamamen Mat Koyu Siyah */
|
|
44
|
+
--armoyu-header-border: rgba(255, 255, 255, 0.05);
|
|
45
|
+
|
|
46
|
+
--armoyu-drawer-bg: rgba(10, 10, 14, 0.65);
|
|
47
|
+
/* Menü Çekmecesi Yüksek Saydamlık */
|
|
48
|
+
--armoyu-drawer-border: rgba(255, 255, 255, 0.1);
|
|
49
|
+
|
|
50
|
+
--armoyu-card-bg: rgba(10, 10, 14, 0.4);
|
|
51
|
+
--armoyu-card-border: rgba(255, 255, 255, 0.05);
|
|
52
|
+
|
|
53
|
+
--armoyu-text: #ffffff;
|
|
54
|
+
--armoyu-text-muted: #9ca3af;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
body {
|
|
58
|
+
background-color: var(--armoyu-bg);
|
|
59
|
+
background-image:
|
|
60
|
+
radial-gradient(at 0% 0%, rgba(59, 130, 246, 0.03) 0, transparent 50%),
|
|
61
|
+
radial-gradient(at 50% 0%, rgba(139, 92, 246, 0.03) 0, transparent 50%),
|
|
62
|
+
radial-gradient(at 100% 0%, rgba(59, 130, 246, 0.03) 0, transparent 50%);
|
|
63
|
+
color: var(--armoyu-fg);
|
|
64
|
+
line-height: inherit;
|
|
65
|
+
font-family: var(--font-sans);
|
|
66
|
+
min-height: 100vh;
|
|
67
|
+
overflow-x: hidden;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.dark body {
|
|
71
|
+
background-image: none;
|
|
72
|
+
/* Dark modda düz siyah/koyu kalsın */
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/* Kullanıcının istediği özel açık tema arka plan kuralı */
|
|
76
|
+
@media (prefers-color-scheme: light) {
|
|
77
|
+
body {
|
|
78
|
+
background-color: var(--armoyu-bg);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
@theme {
|
|
84
|
+
--color-background: #0a0a0e;
|
|
85
|
+
--color-foreground: #ededed;
|
|
86
|
+
--color-primary: #3b82f6;
|
|
87
|
+
--color-secondary: #1e1e24;
|
|
88
|
+
--font-sans: var(--font-inter), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
|
89
|
+
--animate-fill-bar: fill-bar 5s linear forwards;
|
|
90
|
+
|
|
91
|
+
/* TAILWIND TANIMLAMALARI (Tüm proje genelinde class olarak kullanılabilir hale getirir) */
|
|
92
|
+
--color-armoyu-bg: var(--armoyu-bg);
|
|
93
|
+
--color-armoyu-fg: var(--armoyu-fg);
|
|
94
|
+
--color-armoyu-header-bg: var(--armoyu-header-bg);
|
|
95
|
+
--color-armoyu-header-border: var(--armoyu-header-border);
|
|
96
|
+
--color-armoyu-drawer-bg: var(--armoyu-drawer-bg);
|
|
97
|
+
--color-armoyu-drawer-border: var(--armoyu-drawer-border);
|
|
98
|
+
--color-armoyu-card-bg: var(--armoyu-card-bg);
|
|
99
|
+
--color-armoyu-card-border: var(--armoyu-card-border);
|
|
100
|
+
--color-armoyu-text: var(--armoyu-text);
|
|
101
|
+
--color-armoyu-text-muted: var(--armoyu-text-muted);
|
|
102
|
+
--spacing-armoyu-panel: var(--armoyu-panel-width);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* Glassmorphism Classes */
|
|
106
|
+
.glass-panel {
|
|
107
|
+
background: var(--armoyu-card-bg);
|
|
108
|
+
backdrop-filter: blur(16px);
|
|
109
|
+
-webkit-backdrop-filter: blur(16px);
|
|
110
|
+
border: 1px solid var(--armoyu-card-border);
|
|
111
|
+
box-shadow: 0 4px 24px rgba(0, 0, 0, 0.03);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/* Koyu Tema Glassmorphism Stili */
|
|
115
|
+
.dark .glass-panel {
|
|
116
|
+
background: rgba(255, 255, 255, 0.03);
|
|
117
|
+
backdrop-filter: blur(10px);
|
|
118
|
+
-webkit-backdrop-filter: blur(10px);
|
|
119
|
+
border: 1px solid rgba(255, 255, 255, 0.05);
|
|
120
|
+
box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.text-gradient {
|
|
124
|
+
background: linear-gradient(to right, #3b82f6, #8b5cf6);
|
|
125
|
+
-webkit-background-clip: text;
|
|
126
|
+
-webkit-text-fill-color: transparent;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/* Premium Scrollbar Styling */
|
|
130
|
+
::-webkit-scrollbar {
|
|
131
|
+
width: 6px;
|
|
132
|
+
height: 6px;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
::-webkit-scrollbar-track {
|
|
136
|
+
background: transparent;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
::-webkit-scrollbar-thumb {
|
|
140
|
+
background: rgba(0, 0, 0, 0.1);
|
|
141
|
+
border-radius: 10px;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.dark ::-webkit-scrollbar-thumb {
|
|
145
|
+
background: rgba(255, 255, 255, 0.05);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
::-webkit-scrollbar-thumb:hover {
|
|
149
|
+
background: rgba(0, 0, 0, 0.2);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.dark ::-webkit-scrollbar-thumb:hover {
|
|
153
|
+
background: rgba(255, 255, 255, 0.1);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/* Hide scrollbar utility (Renamed from hide-scrollbar for consistency) */
|
|
157
|
+
.no-scrollbar::-webkit-scrollbar {
|
|
158
|
+
display: none !important;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.no-scrollbar {
|
|
162
|
+
-ms-overflow-style: none !important;
|
|
163
|
+
/* IE and Edge */
|
|
164
|
+
scrollbar-width: none !important;
|
|
165
|
+
/* Firefox */
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/* Elegant Thin Scrollbar */
|
|
169
|
+
.thin-scrollbar::-webkit-scrollbar {
|
|
170
|
+
width: 4px;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.thin-scrollbar::-webkit-scrollbar-thumb {
|
|
174
|
+
background: rgba(0, 0, 0, 0.1);
|
|
175
|
+
border-radius: 20px;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/* Slider Progress Bar Animation */
|
|
179
|
+
@keyframes progressBar {
|
|
180
|
+
from {
|
|
181
|
+
width: 0%;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
to {
|
|
185
|
+
width: 100%;
|
|
186
|
+
}
|
|
187
|
+
}
|
package/next.config.ts
DELETED
package/postcss.config.js
DELETED
package/src/app/layout.tsx
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import type { Metadata } from 'next';
|
|
2
|
-
import { Inter } from 'next/font/google';
|
|
3
|
-
import "../globals.css";
|
|
4
|
-
import { ThemeProvider } from "../context/ThemeContext";
|
|
5
|
-
import { LayoutProvider } from "../context/LayoutContext";
|
|
6
|
-
import { AuthProvider } from "../context/AuthContext";
|
|
7
|
-
import { SocketProvider } from "../context/SocketContext";
|
|
8
|
-
import { CartProvider } from "../context/CartContext";
|
|
9
|
-
import { ChatProvider } from "../context/ChatContext";
|
|
10
|
-
|
|
11
|
-
const inter = Inter({ subsets: ['latin'] });
|
|
12
|
-
|
|
13
|
-
export const metadata: Metadata = {
|
|
14
|
-
title: "ARMOYU UI Showcase",
|
|
15
|
-
description: "Visual component gallery for Armoyu UI Library",
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
export default function RootLayout({
|
|
19
|
-
children,
|
|
20
|
-
}: Readonly<{
|
|
21
|
-
children: React.ReactNode;
|
|
22
|
-
}>) {
|
|
23
|
-
return (
|
|
24
|
-
<html lang="tr" className="scroll-smooth dark" suppressHydrationWarning>
|
|
25
|
-
<head>
|
|
26
|
-
<script
|
|
27
|
-
dangerouslySetInnerHTML={{
|
|
28
|
-
__html: `
|
|
29
|
-
(function() {
|
|
30
|
-
try {
|
|
31
|
-
var theme = localStorage.getItem('armoyu_theme');
|
|
32
|
-
if (theme === 'light') {
|
|
33
|
-
document.documentElement.classList.remove('dark');
|
|
34
|
-
} else {
|
|
35
|
-
document.documentElement.classList.add('dark');
|
|
36
|
-
}
|
|
37
|
-
} catch (e) {}
|
|
38
|
-
})();
|
|
39
|
-
`,
|
|
40
|
-
}}
|
|
41
|
-
/>
|
|
42
|
-
</head>
|
|
43
|
-
<body className={`${inter.className} bg-armoyu-bg text-armoyu-text min-h-screen flex flex-col antialiased relative transition-colors duration-500`}>
|
|
44
|
-
<ThemeProvider>
|
|
45
|
-
<AuthProvider>
|
|
46
|
-
<SocketProvider>
|
|
47
|
-
<LayoutProvider>
|
|
48
|
-
<CartProvider>
|
|
49
|
-
<ChatProvider>
|
|
50
|
-
<div className="fixed inset-0 pointer-events-none z-[-1]">
|
|
51
|
-
<div className="absolute top-[-10%] left-[-10%] w-[40%] h-[40%] bg-blue-600/20 blur-[120px] rounded-full" />
|
|
52
|
-
<div className="absolute bottom-[-10%] right-[-10%] w-[40%] h-[40%] bg-purple-600/20 blur-[120px] rounded-full" />
|
|
53
|
-
</div>
|
|
54
|
-
{children}
|
|
55
|
-
</ChatProvider>
|
|
56
|
-
</CartProvider>
|
|
57
|
-
</LayoutProvider>
|
|
58
|
-
</SocketProvider>
|
|
59
|
-
</AuthProvider>
|
|
60
|
-
</ThemeProvider>
|
|
61
|
-
</body>
|
|
62
|
-
</html>
|
|
63
|
-
);
|
|
64
|
-
}
|
package/src/app/page.tsx
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import React, { useState } from 'react';
|
|
4
|
-
import {
|
|
5
|
-
Box,
|
|
6
|
-
Layers,
|
|
7
|
-
Share2,
|
|
8
|
-
User,
|
|
9
|
-
MessageSquare,
|
|
10
|
-
ShoppingBag,
|
|
11
|
-
Users
|
|
12
|
-
} from 'lucide-react';
|
|
13
|
-
|
|
14
|
-
// Showcase Components
|
|
15
|
-
import { GeneralTab } from '../components/showcase/GeneralTab';
|
|
16
|
-
import { CorporateTab } from '../components/showcase/CorporateTab';
|
|
17
|
-
import { SocialTab } from '../components/showcase/SocialTab';
|
|
18
|
-
import { ProfileTab } from '../components/showcase/ProfileTab';
|
|
19
|
-
import { MessagesTab } from '../components/showcase/MessagesTab';
|
|
20
|
-
import { CommunityTab } from '../components/showcase/CommunityTab';
|
|
21
|
-
import { ShopTab } from '../components/showcase/ShopTab';
|
|
22
|
-
|
|
23
|
-
export default function ShowcasePage() {
|
|
24
|
-
const [activeTab, setActiveTab] = useState('Genel');
|
|
25
|
-
|
|
26
|
-
const tabs = [
|
|
27
|
-
{ name: 'Genel', icon: <Box size={18} /> },
|
|
28
|
-
{ name: 'Kurumsal', icon: <Layers size={18} /> },
|
|
29
|
-
{ name: 'Sosyal', icon: <Share2 size={18} /> },
|
|
30
|
-
{ name: 'Profil', icon: <User size={18} /> },
|
|
31
|
-
{ name: 'Mesajlar', icon: <MessageSquare size={18} /> },
|
|
32
|
-
{ name: 'Topluluk', icon: <Users size={18} /> },
|
|
33
|
-
{ name: 'Mağaza', icon: <ShoppingBag size={18} /> },
|
|
34
|
-
];
|
|
35
|
-
|
|
36
|
-
const renderTabContent = () => {
|
|
37
|
-
switch (activeTab) {
|
|
38
|
-
case 'Genel': return <GeneralTab />;
|
|
39
|
-
case 'Kurumsal': return <CorporateTab />;
|
|
40
|
-
case 'Sosyal': return <SocialTab />;
|
|
41
|
-
case 'Profil': return <ProfileTab />;
|
|
42
|
-
case 'Mesajlar': return <MessagesTab />;
|
|
43
|
-
case 'Topluluk': return <CommunityTab />;
|
|
44
|
-
case 'Mağaza': return <ShopTab />;
|
|
45
|
-
default: return <GeneralTab />;
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
return (
|
|
50
|
-
<div className="min-h-screen bg-armoyu-bg flex flex-col font-sans selection:bg-blue-500/30">
|
|
51
|
-
|
|
52
|
-
{/* MINIMAL SHOWCASE HEADER */}
|
|
53
|
-
<nav className="sticky top-0 z-[110] w-full border-b border-white/5 bg-black/20 backdrop-blur-2xl">
|
|
54
|
-
<div className="max-w-7xl mx-auto px-6 h-16 flex items-center justify-between">
|
|
55
|
-
<div className="flex items-center gap-4">
|
|
56
|
-
<div className="w-8 h-8 rounded-xl bg-gradient-to-br from-blue-600 to-indigo-600 flex items-center justify-center shadow-lg shadow-blue-600/20">
|
|
57
|
-
<span className="text-white font-black text-xs italic">UI</span>
|
|
58
|
-
</div>
|
|
59
|
-
<div>
|
|
60
|
-
<h2 className="text-sm font-black text-armoyu-text uppercase tracking-tighter italic">ARMOYU <span className="text-blue-500">VITRINI</span></h2>
|
|
61
|
-
<p className="text-[9px] font-bold text-armoyu-text-muted uppercase tracking-[0.2em] opacity-50">V3 Design System</p>
|
|
62
|
-
</div>
|
|
63
|
-
</div>
|
|
64
|
-
|
|
65
|
-
<div className="hidden md:flex items-center gap-1 bg-white/5 p-1 rounded-xl border border-white/5">
|
|
66
|
-
{tabs.map((tab) => (
|
|
67
|
-
<button
|
|
68
|
-
key={tab.name}
|
|
69
|
-
onClick={() => setActiveTab(tab.name)}
|
|
70
|
-
className={`px-4 py-2 rounded-lg text-[10px] font-black uppercase tracking-widest transition-all italic ${
|
|
71
|
-
activeTab === tab.name
|
|
72
|
-
? 'bg-white dark:bg-white/10 text-blue-500 shadow-sm'
|
|
73
|
-
: 'text-armoyu-text-muted hover:text-armoyu-text'
|
|
74
|
-
}`}
|
|
75
|
-
>
|
|
76
|
-
{tab.name}
|
|
77
|
-
</button>
|
|
78
|
-
))}
|
|
79
|
-
</div>
|
|
80
|
-
|
|
81
|
-
<div className="flex items-center gap-3">
|
|
82
|
-
<span className="text-[10px] font-black py-1.5 px-3 rounded-full bg-emerald-500/10 text-emerald-500 border border-emerald-500/20 uppercase tracking-widest">v1.0.0 Stable</span>
|
|
83
|
-
</div>
|
|
84
|
-
</div>
|
|
85
|
-
</nav>
|
|
86
|
-
|
|
87
|
-
<main className="flex-1 max-w-7xl mx-auto w-full px-4 py-12">
|
|
88
|
-
<div className="animate-in fade-in slide-in-from-bottom-4 duration-700">
|
|
89
|
-
{renderTabContent()}
|
|
90
|
-
</div>
|
|
91
|
-
</main>
|
|
92
|
-
|
|
93
|
-
{/* MINIMAL SHOWCASE FOOTER */}
|
|
94
|
-
<footer className="py-8 border-t border-white/5 text-center">
|
|
95
|
-
<p className="text-[10px] font-black text-armoyu-text-muted uppercase tracking-[0.4em] opacity-30 italic">
|
|
96
|
-
© 2024 ARMOYU DEVELOPER EXPERIENCE • VITRIN MODU
|
|
97
|
-
</p>
|
|
98
|
-
</footer>
|
|
99
|
-
</div>
|
|
100
|
-
);
|
|
101
|
-
}
|