feat: huge UI/UX overhaul, AUR improvements, and code polish

- Shortcuts Bar: Redesigned layout (Esc/Tab grouped, Space added), unified NAV styling, and implemented consistent Arch Blue branding.
- AUR Integration:
  - Added yay/paru helper toggle with keyboard shortcuts (1/2).
  - Implemented minimal visual ARCH logo indicator for AUR packages.
  - Standardized all AUR-related UI elements (checkboxes, badges) to official Arch Blue (#1793d1).
- Theme System: Refactored useTheme hook to a global Context Provider for perfect animation sync.
- Animations & UI: Enhanced drawer animations (slide-up/down), tooltips, and hover states using GSAP.
- Performance: Optimized app filtering with useMemo to prevent re-renders; fixed reconciliation issues.
- Fixes: Resolved hydration mismatches and malformed HTML tags.
- Docs: Updated README and CONTRIBUTING guidelines.
- Refactor: Cleaned up unused code.
This commit is contained in:
NIJAT
2025-12-28 23:58:49 +04:00
parent 84e212cc40
commit b0bd27341a
21 changed files with 1560 additions and 381 deletions

View File

@@ -23,13 +23,14 @@ import {
interface ScriptOptions {
distroId: DistroId;
selectedAppIds: Set<string>;
helper?: 'yay' | 'paru';
}
/**
* Generate a full installation script with progress bars, error handling, and retries
*/
export function generateInstallScript(options: ScriptOptions): string {
const { distroId, selectedAppIds } = options;
const { distroId, selectedAppIds, helper = 'yay' } = options;
const distro = distros.find(d => d.id === distroId);
if (!distro) return '#!/bin/bash\necho "Error: Unknown distribution"\nexit 1';
@@ -40,7 +41,7 @@ export function generateInstallScript(options: ScriptOptions): string {
switch (distroId) {
case 'ubuntu': return generateUbuntuScript(packages);
case 'debian': return generateDebianScript(packages);
case 'arch': return generateArchScript(packages);
case 'arch': return generateArchScript(packages, helper);
case 'fedora': return generateFedoraScript(packages);
case 'opensuse': return generateOpenSUSEScript(packages);
case 'nix': return generateNixScript(packages);