{{ $game['name'] }}
+{{ $game['desc'] }}
+ +diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000000000000000000000000000000000000..8f0de65c560259bd171d746d12aa187f666893a3 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,18 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false + +[*.{yml,yaml}] +indent_size = 2 + +[docker-compose.yml] +indent_size = 4 diff --git a/.env.example b/.env.example new file mode 100644 index 0000000000000000000000000000000000000000..35db1ddf0e04fb9f138a372b17d0bfc8480bef38 --- /dev/null +++ b/.env.example @@ -0,0 +1,65 @@ +APP_NAME=Laravel +APP_ENV=local +APP_KEY= +APP_DEBUG=true +APP_URL=http://localhost + +APP_LOCALE=en +APP_FALLBACK_LOCALE=en +APP_FAKER_LOCALE=en_US + +APP_MAINTENANCE_DRIVER=file +# APP_MAINTENANCE_STORE=database + +PHP_CLI_SERVER_WORKERS=4 + +BCRYPT_ROUNDS=12 + +LOG_CHANNEL=stack +LOG_STACK=single +LOG_DEPRECATIONS_CHANNEL=null +LOG_LEVEL=debug + +DB_CONNECTION=sqlite +# DB_HOST=127.0.0.1 +# DB_PORT=3306 +# DB_DATABASE=laravel +# DB_USERNAME=root +# DB_PASSWORD= + +SESSION_DRIVER=database +SESSION_LIFETIME=120 +SESSION_ENCRYPT=false +SESSION_PATH=/ +SESSION_DOMAIN=null + +BROADCAST_CONNECTION=log +FILESYSTEM_DISK=local +QUEUE_CONNECTION=database + +CACHE_STORE=database +# CACHE_PREFIX= + +MEMCACHED_HOST=127.0.0.1 + +REDIS_CLIENT=phpredis +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_MAILER=log +MAIL_SCHEME=null +MAIL_HOST=127.0.0.1 +MAIL_PORT=2525 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_FROM_ADDRESS="hello@example.com" +MAIL_FROM_NAME="${APP_NAME}" + +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_DEFAULT_REGION=us-east-1 +AWS_BUCKET= +AWS_USE_PATH_STYLE_ENDPOINT=false + +VITE_APP_NAME="${APP_NAME}" diff --git a/.gitattributes b/.gitattributes index a6344aac8c09253b3b630fb776ae94478aa0275b..77c3019a2ba765fae7c781c7f51336d76c0ab18e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,35 +1,28 @@ -*.7z filter=lfs diff=lfs merge=lfs -text -*.arrow filter=lfs diff=lfs merge=lfs -text -*.bin filter=lfs diff=lfs merge=lfs -text -*.bz2 filter=lfs diff=lfs merge=lfs -text -*.ckpt filter=lfs diff=lfs merge=lfs -text -*.ftz filter=lfs diff=lfs merge=lfs -text -*.gz filter=lfs diff=lfs merge=lfs -text -*.h5 filter=lfs diff=lfs merge=lfs -text -*.joblib filter=lfs diff=lfs merge=lfs -text -*.lfs.* filter=lfs diff=lfs merge=lfs -text -*.mlmodel filter=lfs diff=lfs merge=lfs -text -*.model filter=lfs diff=lfs merge=lfs -text -*.msgpack filter=lfs diff=lfs merge=lfs -text -*.npy filter=lfs diff=lfs merge=lfs -text -*.npz filter=lfs diff=lfs merge=lfs -text -*.onnx filter=lfs diff=lfs merge=lfs -text -*.ot filter=lfs diff=lfs merge=lfs -text -*.parquet filter=lfs diff=lfs merge=lfs -text -*.pb filter=lfs diff=lfs merge=lfs -text -*.pickle filter=lfs diff=lfs merge=lfs -text -*.pkl filter=lfs diff=lfs merge=lfs -text -*.pt filter=lfs diff=lfs merge=lfs -text -*.pth filter=lfs diff=lfs merge=lfs -text -*.rar filter=lfs diff=lfs merge=lfs -text -*.safetensors filter=lfs diff=lfs merge=lfs -text -saved_model/**/* filter=lfs diff=lfs merge=lfs -text -*.tar.* filter=lfs diff=lfs merge=lfs -text -*.tar filter=lfs diff=lfs merge=lfs -text -*.tflite filter=lfs diff=lfs merge=lfs -text -*.tgz filter=lfs diff=lfs merge=lfs -text -*.wasm filter=lfs diff=lfs merge=lfs -text -*.xz filter=lfs diff=lfs merge=lfs -text -*.zip filter=lfs diff=lfs merge=lfs -text -*.zst filter=lfs diff=lfs merge=lfs -text -*tfevents* filter=lfs diff=lfs merge=lfs -text +* text=auto eol=lf + +*.blade.php diff=html +*.css diff=css +*.html diff=html +*.md diff=markdown +*.php diff=php + +/.github export-ignore +CHANGELOG.md export-ignore +.styleci.yml export-ignore +storage/app/public/payment_slips/Gdx6m0rw4cUSUAufq3NTNAUWyQSKjRRg7eLmIZEA.gif filter=lfs diff=lfs merge=lfs -text +storage/app/public/payment_slips/seALBjryd95AWErPzTvLGVfMOdvwDQVYK62vIJ5D.png filter=lfs diff=lfs merge=lfs -text +storage/app/public/payment_slips/YaS0Sd9UUJBNmekUXcgndzeVeGfXGMiTOnxnvEYj.jpg filter=lfs diff=lfs merge=lfs -text +storage/app/public/products/3Qk5m64c3TAqttQLi39MPeukQNG2rSEhZ8g1l9qI.jpg filter=lfs diff=lfs merge=lfs -text +storage/app/public/products/6CSKo9nXd4Xj61MEEmXeH3LO0jcVh1HCqowzQoBk.png filter=lfs diff=lfs merge=lfs -text +storage/app/public/products/cxSKE9LV3Zg1KzpaIFm43T9fCL3UngNSeJevsthU.jpg filter=lfs diff=lfs merge=lfs -text +storage/app/public/products/D3419EtxxLBwPIZQtYa3FfDXpVrQNQOHtdEfOK8U.png filter=lfs diff=lfs merge=lfs -text +storage/app/public/products/HdmkT7kc8AjFLIbZMseuNMLuo4MwnbWXzERl2hQQ.png filter=lfs diff=lfs merge=lfs -text +storage/app/public/products/HxgaBcFWUAVlXmPH4wsasrVE3NDzHqApCC4EJe76.png filter=lfs diff=lfs merge=lfs -text +storage/app/public/products/I1X5iyRSD2GD1Vi6dwbE37rhzgPFFQf80JDmpkFQ.jpg filter=lfs diff=lfs merge=lfs -text +storage/app/public/products/iG3yc6NCOj5bWJhVk4JLIUJeg42lmfWyLcPuHQdX.png filter=lfs diff=lfs merge=lfs -text +storage/app/public/products/Keuu1FkTKIBfFghhZqn7Ly5uw33Yetqk0DlhjDjN.jpg filter=lfs diff=lfs merge=lfs -text +storage/app/public/products/KOzqgZj7XUkMt2uPDYRXXKFVT1gmfRSh9RwB4Qnp.png filter=lfs diff=lfs merge=lfs -text +storage/app/public/products/p1IZEaJITbWLSg0A2mS4dg0zfmNzQbsoFk6vEDvy.png filter=lfs diff=lfs merge=lfs -text +storage/app/public/products/XYixdNVbWsh0WDYV9YiNN99CwXp6nMcoIdp07Gt7.jpg filter=lfs diff=lfs merge=lfs -text +storage/app/public/products/YBE7KBU74W2XxWwQFDLC8qqH3abpRM9WEFco8tt2.jpg filter=lfs diff=lfs merge=lfs -text +storage/app/public/products/Zl5tjkxHxKwEE69XgnJSUJgqNH0iQ32TWYv9fb8o.png filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..d11a3d934d1fdf24e49e138ebe9b0bbab4543a17 --- /dev/null +++ b/.gitignore @@ -0,0 +1,57 @@ +/.phpunit.cache +/node_modules +/public/build +/public/hot +/public/storage +/storage/*.key +/storage/pail +/storage/logs +/vendor +.env +.env.backup +.env.production +.env.local +.env.*.local +.phpactor.json +.phpunit.result.cache +Homestead.json +Homestead.yaml +npm-debug.log +yarn-error.log +/auth.json +/.fleet +/.idea +/.nova +/.vscode +/.zed + +# Database files +/database/database.sqlite +*.sqlite +*.db + +# Log files +*.log + +# Cache and session files +/bootstrap/cache/* +/storage/framework/cache/* +/storage/framework/sessions/* +/storage/framework/views/* + +# Sensitive configuration +/config/database.php.backup +/config/app.php.backup + +# IDE and editor files +.DS_Store +Thumbs.db + +# Temporary files +*.tmp +*.temp +*.swp +*.swo + +# Kiro IDE files (optional - you might want to keep these) +# .kiro/ diff --git a/.kiro/specs/category-search-fix/design.md b/.kiro/specs/category-search-fix/design.md new file mode 100644 index 0000000000000000000000000000000000000000..ffecbb7cc6a3b334b2af771002d30cacad348a18 --- /dev/null +++ b/.kiro/specs/category-search-fix/design.md @@ -0,0 +1,172 @@ +# Design Document + +## Overview + +This design addresses the category selection functionality on the my-orders page where users can click "All Categories" to open a dropdown/modal and select a specific category. The current implementation opens a modal but doesn't update the "All Categories" button to reflect the selected category. This design will transform the category button to show the selected category's icon and name while maintaining the dropdown functionality. + +## Architecture + +The solution involves modifying the existing category selection system to: + +1. **Button State Management**: Track the currently selected category and update the button appearance +2. **Visual Transformation**: Replace the "All Categories" button content with the selected category's icon and name +3. **Interaction Preservation**: Maintain the existing modal/dropdown functionality for category selection +4. **Filter Integration**: Ensure the visual changes work seamlessly with the existing filter system + +## Components and Interfaces + +### 1. Category Button Component + +**Current Structure:** +```html +
${message}
+ +${message}
+Review your items and proceed to checkout
+Looks like you haven't added any items to your cart yet. Start shopping to fill it up!
+ + Continue Shopping + ++ Discover premium digital content for your favorite games. From exclusive accounts to rare items, elevate your gaming experience. +
+ + + @php + $totalCategories = \App\Models\Product::select('game')->distinct()->whereNotNull('game')->count(); + $totalItemsSold = \App\Models\Order::count(); + $totalUsers = \App\Models\User::count(); + @endphp +Select a category to browse available items
++ + Secure transactions • Instant delivery • 24/7 support +
+Quality products with reliable service
+Get your products instantly after purchase
+Protected transactions with secure encryption
+Customer support available anytime
+High quality accounts and items, verified by experts
++ + Loading products... +
++ Professional gaming products and premium digital content for {{ $category }} enthusiasts +
+Carefully curated selection of high-quality digital products
+{{ $product->description }}
+This category is currently empty. New products will be added soon.
+ + Browse Categories + +Item has been added to your cart
+Premium Gaming Experience
+Loading your gaming experience...
++ Previous: {{ $prefix }}{{ number_format($previousValue) }}{{ $suffix }} +
+ @endif + @endif ++ Your gaming journey through time +
+Click on categories to filter your order history
+{{ $order->created_at->format('M j, Y') }}
+Try selecting a different filter.
+Real-time insights and performance metrics
+Track your store's key metrics and trends
+Previous: ฿0
+Previous: 0
+Previous: 0
+Active products
+Administrative Terminal
+Order #{{ str_pad($order->id, 4, '0', STR_PAD_LEFT) }}
+{{ $order->created_at->format('M j, Y g:i A') }}
+No payment slip uploaded
+Manage all customer orders and transactions
+No customer orders have been placed yet. Orders will appear here once customers start purchasing.
+ +Try adjusting your search or filter criteria.
++ {{ __('Once your account is deleted, all of its resources and data will be permanently deleted. Before deleting your account, please download any data or information that you wish to retain.') }} +
++ {{ __('Ensure your account is using a long, random password to stay secure.') }} +
++ {{ __("Update your account's profile information and email address.") }} +
++ Discover premium digital content for your favourite games +
+ + +{{ $game['desc'] }}
+ +People have purchased this item
+Item has been added to your cart
+Manage your store inventory with precision and ease
++ @if(request()->hasAny(['game', 'stock', 'search'])) + {{ $products->count() }} filtered results + @if($products->count() > 0) + • + + View all products + + @endif + @else + {{ $products->count() }} products in your catalog + @endif +
+Start building your inventory by adding your first product.
+ ++ {{ $product->description }} +
+ + +