feat: add expo mobile application source code

This commit is contained in:
2026-05-21 16:06:35 +07:00
parent 76d7a5c5c6
commit 0c65a7811b
77 changed files with 20356 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
export const MOCK_ARTICLES = [
{
id: 'A1',
title: 'How Transformers Work in Deep Learning',
author: 'Dr. Martin Shah',
category: 'LLM',
img: 'https://images.unsplash.com/photo-1677442136019-21780ecad995?auto=format&fit=crop&w=400&q=80',
},
{
id: 'A2',
title: 'AI Ethics in Modern Journalism',
author: 'Alex Wong',
category: 'Ethics',
img: 'https://images.unsplash.com/photo-1485827404703-89b55fcc595e?auto=format&fit=crop&w=400&q=80',
},
{
id: 'A3',
title: 'Medical Diagnosis with Computer Vision',
author: 'Sarah Lee',
category: 'Health',
img: 'https://images.unsplash.com/photo-1551288049-bebda4e38f71?auto=format&fit=crop&w=400&q=80',
},
];
export const MOCK_NOTIFICATIONS = [
{ id: '1', title: 'System Sync Complete', desc: 'All configurations have been updated successfully.', time: '2m ago', type: 'success' },
{ id: '2', title: 'Model Updated', desc: 'AI engine has been upgraded to the latest version.', time: '1h ago', type: 'update' },
{ id: '3', title: 'New Login Detected', desc: 'A new login was detected from a MacOS device.', time: '3h ago', type: 'alert' },
{ id: '4', title: 'Usage Report Ready', desc: 'Your weekly usage report is now available.', time: '1d ago', type: 'info' },
{ id: '5', title: 'Subscription Reminder', desc: 'Your plan renews in 3 days. Check payment details.', time: '2d ago', type: 'warning' },
];
export const MOCK_FAQS = [
{ id: '1', q: 'How to initiate a system sync?', a: 'Go to Dashboard and click the Sync System button at the top right.' },
{ id: '2', q: 'How to change security settings?', a: 'Visit Profile > Preferences to manage biometrics and passwords.' },
{ id: '3', q: 'Where to find API documentation?', a: 'Documentation can be accessed via the Help Center links.' },
];
+150
View File
@@ -0,0 +1,150 @@
// ─────────────────────────────────────────────────────
// BIIPROJECT — Design System v3.0
// Palette: Neon Lime (#C6F135) · Charcoal Black (#1A1A1A) · Clean White (#FFFFFF)
// Inspired by: modern fintech/logistics dark-contrast UI
// ─────────────────────────────────────────────────────
export const PALETTE = {
// ── Core ──────────────────────────────────────────
lime: '#C6F135', // Primary Neon Lime — CTA, active states, highlights
limeDark: '#A8D820', // Darker lime for pressed states
limeLight: '#ECFB97', // Soft lime for backgrounds/badges
limeMuted: '#C6F13526', // 15% opacity lime for subtle tints
black: '#111111', // True near-black — primary surfaces/dark mode bg
charcoal: '#1A1A1A', // Charcoal — text, buttons, cards
graphite: '#2A2A2A', // Card surface in dark mode
steel: '#3D3D3D', // Borders, dividers in dark mode
white: '#FFFFFF', // Pure white — light mode backgrounds
offWhite: '#F5F5F5', // Light gray background
snow: '#FAFAFA', // Card surfaces in light mode
mist: '#EEEEEE', // Border / divider in light mode
fog: '#D4D4D4', // Muted / disabled
// ── Semantic ──────────────────────────────────────
textDark: '#111111', // Primary text in light mode
textMuted: '#6B6B6B', // Secondary text in light mode
textDimmed: '#9B9B9B', // Placeholder / timestamp
textLight: '#FFFFFF', // Primary text in dark mode
textLightMuted: '#A3A3A3', // Secondary text in dark mode
// ── Status ────────────────────────────────────────
success: '#22C55E', // Green (status success)
error: '#EF4444', // Red (errors, danger)
warning: '#F59E0B', // Amber (warnings)
info: '#3B82F6', // Blue (info)
};
export const Theme = {
light: {
background: PALETTE.offWhite, // Page background: #F5F5F5
surface: PALETTE.white, // Card surface: #FFFFFF
surfaceLight: PALETTE.snow, // Subtle surface: #FAFAFA
surfaceElevated: PALETTE.white,
primary: PALETTE.lime, // CTA / Active: #C6F135
primaryDark: PALETTE.limeDark, // Press state: #A8D820
primaryLight: PALETTE.limeLight, // Badge bg: #ECFB97
primaryMuted: PALETTE.limeMuted, // Tinted bg: #C6F13526
secondary: PALETTE.charcoal, // Buttons/icons: #1A1A1A
accent: PALETTE.lime,
text: PALETTE.textDark, // #111111
textSecondary: PALETTE.textMuted, // #6B6B6B
textPlaceholder: PALETTE.textDimmed, // #9B9B9B
border: PALETTE.mist, // #EEEEEE
divider: PALETTE.fog, // #D4D4D4
tabBar: PALETTE.white, // Tab bar background
tabBarActive: PALETTE.charcoal, // Active tab icon: charcoal
tabBarInactive: '#A3A3A3', // Inactive tab icon
error: PALETTE.error,
success: PALETTE.success,
warning: PALETTE.warning,
// Legacy compat
darkNav: PALETTE.charcoal,
pastelPurple: PALETTE.limeLight,
pastelBlue: '#C6F135',
pastelYellow: PALETTE.limeLight,
pastelPink: PALETTE.limeMuted,
glass: 'rgba(255, 255, 255, 0.92)',
},
dark: {
background: PALETTE.black, // #111111
surface: PALETTE.graphite, // #2A2A2A
surfaceLight: '#333333',
surfaceElevated: '#3A3A3A',
primary: PALETTE.lime, // Lime stays vibrant in dark: #C6F135
primaryDark: PALETTE.limeDark,
primaryLight: '#3A3D00', // Dark lime tint for dark mode badges
primaryMuted: PALETTE.limeMuted,
secondary: PALETTE.white,
accent: PALETTE.lime,
text: PALETTE.textLight, // #FFFFFF
textSecondary: PALETTE.textLightMuted, // #A3A3A3
textPlaceholder: '#6B6B6B',
border: PALETTE.steel, // #3D3D3D
divider: '#333333',
tabBar: PALETTE.black,
tabBarActive: PALETTE.lime, // Active = lime in dark mode
tabBarInactive: '#6B6B6B',
error: '#FF6B6B',
success: '#4ADE80',
warning: '#FBBF24',
// Legacy compat
darkNav: PALETTE.black,
pastelPurple: '#C6F13515',
pastelBlue: '#C6F13515',
pastelYellow: '#C6F13515',
pastelPink: '#C6F13515',
glass: 'rgba(17, 17, 17, 0.92)',
},
spacing: {
xs: 4,
sm: 8,
md: 16,
lg: 24,
xl: 32,
xxl: 40,
},
radius: {
sm: 12,
md: 20,
lg: 28,
xl: 36,
full: 999,
},
};
export const Colors = {
light: {
text: PALETTE.textDark,
background: PALETTE.offWhite,
tint: PALETTE.lime,
icon: PALETTE.textMuted,
tabIconDefault: '#A3A3A3',
tabIconSelected: PALETTE.charcoal,
},
dark: {
text: PALETTE.textLight,
background: PALETTE.black,
tint: PALETTE.lime,
icon: PALETTE.textLightMuted,
tabIconDefault: '#6B6B6B',
tabIconSelected: PALETTE.lime,
},
};