From 00b8ff77b2d395be5db318ca31390f12109d90ca Mon Sep 17 00:00:00 2001 From: twotalesanimation <80506065+twotalesanimation@users.noreply.github.com> Date: Mon, 29 Dec 2025 14:43:24 +0200 Subject: [PATCH] yoco updated to use webhook --- .env.example | 65 - app/Helpers/Logger.php | 50 + app/Http/Controllers/AccountController.php | 73 + .../Controllers/Auth/GoogleAuthController.php | 74 + .../Controllers/CustomOrderController.php | 316 ++ app/Http/Controllers/OrderController.php | 262 +- app/Http/Middleware/VerifyCsrfToken.php | 17 + app/Models/AppSetting.php | 40 + app/Models/CustomOrder.php | 100 + app/Models/CustomOrderFile.php | 35 + app/Models/CustomOrderProof.php | 44 + app/Models/CustomOrderSpecification.php | 42 + app/Models/Order.php | 6 +- app/Models/User.php | 2 + bootstrap/app.php | 1 + check_products.php | 12 + composer.json | 5 +- config/services.php | 22 +- ...025_12_09_add_google_id_to_users_table.php | 28 + .../2025_12_09_create_app_settings_table.php | 31 + ...2025_12_09_create_custom_orders_tables.php | 93 + public/css/styles.css | 187 +- public/js/script.js | 23 +- .../views/account/order-detail.blade.php | 420 +++ resources/views/account/orders.blade.php | 277 ++ .../views/account/pending-payments.blade.php | 94 + resources/views/account/profile.blade.php | 275 ++ resources/views/auth/login.blade.php | 187 ++ resources/views/components/header.blade.php | 89 +- .../views/custom-orders/create.blade.php | 749 +++++ .../custom-orders/deposit-success.blade.php | 150 + resources/views/custom-orders/index.blade.php | 355 +++ resources/views/custom-orders/show.blade.php | 431 +++ resources/views/order-history.blade.php | 25 +- resources/views/product-detail.blade.php | 8 +- routes/api.php | 7 + routes/web.php | 22 +- .../07f69d5795cff36023392bba5118d65e.php | 91 - .../0aa47c2ab87a57533b80c2bb4b3930a5.php | 74 - ...0b43769f58139770b64ab9dccb89db6a.blade.php | 6 - .../0bcfbbb024ca890265d0c94b4bc8e9c5.php | 23 - .../0bd5f576a924b89ab17a30cf16e6ad08.php | 79 - .../0ced4ab8b623c6535cabe6077207c3f3.php | 49 - .../0d11b7694f7a419aa9ed2bbbdf2dda56.php | 354 --- .../0ff4c44d6c7a7dc85eddb6c22b81e0f3.php | 424 +++ .../1110161c070d609557c8a6c1fcc48147.php | 46 - .../1130d2b8cd83a5966be7850e2d899795.php | 147 - .../12dd7925def29d9b0f42cd5bfa646f44.php | 53 - .../1575aae6437543bfaf50d3515c944142.php | 5 - .../188f70ecf2f26b3a12d26b9291ea91c9.php | 17 - .../19b3c4acfafb733d6a4d95652d5529f8.php | 135 - .../1c1a588d1c9b277d3ae21decb63dcf81.php | 124 - .../27dcc0c718a54e1b25f82047ae88c072.php | 76 - .../2b58ef18ac3a69be239b865277695457.php | 53 - .../2b5f4cc9a13273a6143a686c2fa1d3b4.php | 23 - .../2b91b9a791ff7f292edb8c55adaa6117.php | 2821 ----------------- .../2cbdabaff7adb77281bce3493d2e0c33.php | 137 - .../2d870470bd6fffdcf1b9facb07d1049b.php | 221 -- .../317ab1fc8ab0d9c5e22a5c4737c540b9.php | 104 - .../34ae340ff479643953f86c68f04ac61d.php | 191 ++ .../35148eb10cca4a42fac641d4131e91d7.php | 96 - .../3763665363475be06cdc81b77877ae07.php | 439 +++ .../3764fdc9fc3bd11621707db2096f5ed3.php | 106 - .../39345582fc2db52dbc7f0f200cead333.php | 229 -- .../3a2cb9666b458ecc4f2fa2c2fec9d575.php | 292 ++ .../4354f4286f5df87d0ec1b7f2a28b22ae.php | 198 -- .../455ff850486ccce453ce0236dc39aa1c.php | 65 - .../4d849bad84da6cde90ae52b9d9f50dec.php | 286 -- .../54c3d5356cdbbbf74cb08435146375fb.php | 7 + .../56fb2027097802fe9887c535d9dde9ce.php | 101 - .../5f17ddd0ec9f99758a0ca6c6c13e21d7.php | 23 - .../61c62dff15b13791a69c395cb00e09c8.php | 59 - .../66ae2094a35369fe66cfe9d08e5483c4.php | 70 - .../67a7f07200c3d8fa00ba4fe72a50cf46.php | 52 - .../690e9b8d1239f81f482e37c384703b0e.php | 8 +- .../6e51499aeff83c919e16b854057abefc.php | 342 -- .../6e571b420efa227e90ca35c72263dced.php | 67 - ...723528cd4a5a6edc2403dddc15fad8ce.blade.php | 6 - .../77a9bf0e867fdca3a11ef51783d0e448.php | 12 - .../793878bac7f49084851c6a750de7b680.php | 206 -- .../80c9a0a6308b17fbb7bf93fb62efe7a3.php | 18 - .../81d5610fd0a2b1fb1ea0942d4e877062.php | 378 --- .../8225b4ab5e177c6ce756bf6bd43eb60c.php | 45 - .../8848a11e123e6274892c44c05c02e2c0.php | 21 - .../89e20d28937b735b6c73bd70fec38023.php | 265 -- .../8dd2c79bd081de46821e5a4c16e0218a.php | 282 ++ .../8e965d04afbd3d125b04967406aafa03.php | 189 -- .../8f77655fced827f2335dc0fd5b0b86c6.php | 112 - .../90551f17a50a15ab24b4377ee8ae47dd.php | 292 -- .../92893849a26fcfa0273e3d6dabd17540.php | 96 - .../963fa7931519a2bda4d512a9065cf86a.php | 21 - .../97867fde05c61ffbb4be32bd2ec46ec7.php | 127 - .../9d691895ebd68604830197fe0ba20c4e.php | 227 -- .../9ef0dfd29e0ee94f00e7cbd0892f433c.php | 75 - .../9f8ad04ac0e5cad2ba5cbdf9e6b839ac.php | 325 -- .../a01f2f0ad64ffb4bec6c224e0a32b065.php | 29 - .../adc4c4a369b2bee1705d8da3a6247c45.php | 808 +++++ .../af830d64c98ea537dd47cb4334f3a451.php | 517 --- .../b050c707ba664a0ff93eb239317b5280.php | 53 - .../b235d3c77d869dcdade57f7a1b61c8ff.php | 212 -- .../b534ed8dcc766a521ddb9b5ab34526ff.php | 74 - .../be6715616843b225cf6deff982e77b14.php | 396 --- .../bfd832b53fad5948a8706f00a290c0cf.php | 217 -- .../c3da01bbeb1428090c4fa29e17c4a415.php | 92 - .../c6d1a975364ea77cf193b26f4d0c05e1.php | 215 -- .../c6faad983759e39bbadd89a10c0f74b3.php | 380 --- .../cb60a36db4e92d8fcf5107fb500e9e22.php | 225 -- .../cdba3960ec17faacee7b079add6c1ae2.php | 49 - .../d136669968d8cce7e458e5d7777f6a32.php | 49 - .../d399d1abe65e3f2cc73d217c76f9e0d5.php | 88 +- ...e54a5d3be34ee3bfef9f87d7de2dda8f.blade.php | 6 - .../e5d7be41700811dd965c7910cdd63b16.php | 128 - .../e5d92f0df5c965b06cb33f9117a8c00d.php | 8 - .../e8622c5fb0c67bd1ec098292efc31e4f.php | 53 - .../e8d91e93ead2004545f050787ca085e3.php | 77 - .../ea5a1ff31204d266f5d19cf6324c898a.php | 435 --- .../ec6b175cafc2ad7bc060e67f10781d51.php | 66 - .../f08ad9fca67479dc124a5f64a7514f97.php | 108 - ...f173681a20263f194334b1a3014b6285.blade.php | 6 - .../f51a8a3b702dbf521511d5f222940525.php | 47 - ...f7c29b22c1a51c7cd7168f60bd430f61.blade.php | 16 - .../f909bcbbb630bac1bb471924797df459.php | 80 - .../f98c182f4ecf0c1b66c11b701478d8d6.php | 187 -- 123 files changed, 6959 insertions(+), 12669 deletions(-) delete mode 100644 .env.example create mode 100644 app/Helpers/Logger.php create mode 100644 app/Http/Controllers/AccountController.php create mode 100644 app/Http/Controllers/Auth/GoogleAuthController.php create mode 100644 app/Http/Controllers/CustomOrderController.php create mode 100644 app/Http/Middleware/VerifyCsrfToken.php create mode 100644 app/Models/AppSetting.php create mode 100644 app/Models/CustomOrder.php create mode 100644 app/Models/CustomOrderFile.php create mode 100644 app/Models/CustomOrderProof.php create mode 100644 app/Models/CustomOrderSpecification.php create mode 100644 check_products.php create mode 100644 database/migrations/2025_12_09_add_google_id_to_users_table.php create mode 100644 database/migrations/2025_12_09_create_app_settings_table.php create mode 100644 database/migrations/2025_12_09_create_custom_orders_tables.php create mode 100644 resources/views/account/order-detail.blade.php create mode 100644 resources/views/account/orders.blade.php create mode 100644 resources/views/account/pending-payments.blade.php create mode 100644 resources/views/account/profile.blade.php create mode 100644 resources/views/auth/login.blade.php create mode 100644 resources/views/custom-orders/create.blade.php create mode 100644 resources/views/custom-orders/deposit-success.blade.php create mode 100644 resources/views/custom-orders/index.blade.php create mode 100644 resources/views/custom-orders/show.blade.php create mode 100644 routes/api.php delete mode 100644 storage/framework/views/07f69d5795cff36023392bba5118d65e.php delete mode 100644 storage/framework/views/0aa47c2ab87a57533b80c2bb4b3930a5.php delete mode 100644 storage/framework/views/0b43769f58139770b64ab9dccb89db6a.blade.php delete mode 100644 storage/framework/views/0bcfbbb024ca890265d0c94b4bc8e9c5.php delete mode 100644 storage/framework/views/0bd5f576a924b89ab17a30cf16e6ad08.php delete mode 100644 storage/framework/views/0ced4ab8b623c6535cabe6077207c3f3.php delete mode 100644 storage/framework/views/0d11b7694f7a419aa9ed2bbbdf2dda56.php create mode 100644 storage/framework/views/0ff4c44d6c7a7dc85eddb6c22b81e0f3.php delete mode 100644 storage/framework/views/1110161c070d609557c8a6c1fcc48147.php delete mode 100644 storage/framework/views/1130d2b8cd83a5966be7850e2d899795.php delete mode 100644 storage/framework/views/12dd7925def29d9b0f42cd5bfa646f44.php delete mode 100644 storage/framework/views/1575aae6437543bfaf50d3515c944142.php delete mode 100644 storage/framework/views/188f70ecf2f26b3a12d26b9291ea91c9.php delete mode 100644 storage/framework/views/19b3c4acfafb733d6a4d95652d5529f8.php delete mode 100644 storage/framework/views/1c1a588d1c9b277d3ae21decb63dcf81.php delete mode 100644 storage/framework/views/27dcc0c718a54e1b25f82047ae88c072.php delete mode 100644 storage/framework/views/2b58ef18ac3a69be239b865277695457.php delete mode 100644 storage/framework/views/2b5f4cc9a13273a6143a686c2fa1d3b4.php delete mode 100644 storage/framework/views/2b91b9a791ff7f292edb8c55adaa6117.php delete mode 100644 storage/framework/views/2cbdabaff7adb77281bce3493d2e0c33.php delete mode 100644 storage/framework/views/2d870470bd6fffdcf1b9facb07d1049b.php delete mode 100644 storage/framework/views/317ab1fc8ab0d9c5e22a5c4737c540b9.php create mode 100644 storage/framework/views/34ae340ff479643953f86c68f04ac61d.php delete mode 100644 storage/framework/views/35148eb10cca4a42fac641d4131e91d7.php create mode 100644 storage/framework/views/3763665363475be06cdc81b77877ae07.php delete mode 100644 storage/framework/views/3764fdc9fc3bd11621707db2096f5ed3.php delete mode 100644 storage/framework/views/39345582fc2db52dbc7f0f200cead333.php create mode 100644 storage/framework/views/3a2cb9666b458ecc4f2fa2c2fec9d575.php delete mode 100644 storage/framework/views/4354f4286f5df87d0ec1b7f2a28b22ae.php delete mode 100644 storage/framework/views/455ff850486ccce453ce0236dc39aa1c.php delete mode 100644 storage/framework/views/4d849bad84da6cde90ae52b9d9f50dec.php create mode 100644 storage/framework/views/54c3d5356cdbbbf74cb08435146375fb.php delete mode 100644 storage/framework/views/56fb2027097802fe9887c535d9dde9ce.php delete mode 100644 storage/framework/views/5f17ddd0ec9f99758a0ca6c6c13e21d7.php delete mode 100644 storage/framework/views/61c62dff15b13791a69c395cb00e09c8.php delete mode 100644 storage/framework/views/66ae2094a35369fe66cfe9d08e5483c4.php delete mode 100644 storage/framework/views/67a7f07200c3d8fa00ba4fe72a50cf46.php delete mode 100644 storage/framework/views/6e51499aeff83c919e16b854057abefc.php delete mode 100644 storage/framework/views/6e571b420efa227e90ca35c72263dced.php delete mode 100644 storage/framework/views/723528cd4a5a6edc2403dddc15fad8ce.blade.php delete mode 100644 storage/framework/views/77a9bf0e867fdca3a11ef51783d0e448.php delete mode 100644 storage/framework/views/793878bac7f49084851c6a750de7b680.php delete mode 100644 storage/framework/views/80c9a0a6308b17fbb7bf93fb62efe7a3.php delete mode 100644 storage/framework/views/81d5610fd0a2b1fb1ea0942d4e877062.php delete mode 100644 storage/framework/views/8225b4ab5e177c6ce756bf6bd43eb60c.php delete mode 100644 storage/framework/views/8848a11e123e6274892c44c05c02e2c0.php delete mode 100644 storage/framework/views/89e20d28937b735b6c73bd70fec38023.php create mode 100644 storage/framework/views/8dd2c79bd081de46821e5a4c16e0218a.php delete mode 100644 storage/framework/views/8e965d04afbd3d125b04967406aafa03.php delete mode 100644 storage/framework/views/8f77655fced827f2335dc0fd5b0b86c6.php delete mode 100644 storage/framework/views/90551f17a50a15ab24b4377ee8ae47dd.php delete mode 100644 storage/framework/views/92893849a26fcfa0273e3d6dabd17540.php delete mode 100644 storage/framework/views/963fa7931519a2bda4d512a9065cf86a.php delete mode 100644 storage/framework/views/97867fde05c61ffbb4be32bd2ec46ec7.php delete mode 100644 storage/framework/views/9d691895ebd68604830197fe0ba20c4e.php delete mode 100644 storage/framework/views/9ef0dfd29e0ee94f00e7cbd0892f433c.php delete mode 100644 storage/framework/views/9f8ad04ac0e5cad2ba5cbdf9e6b839ac.php delete mode 100644 storage/framework/views/a01f2f0ad64ffb4bec6c224e0a32b065.php create mode 100644 storage/framework/views/adc4c4a369b2bee1705d8da3a6247c45.php delete mode 100644 storage/framework/views/af830d64c98ea537dd47cb4334f3a451.php delete mode 100644 storage/framework/views/b050c707ba664a0ff93eb239317b5280.php delete mode 100644 storage/framework/views/b235d3c77d869dcdade57f7a1b61c8ff.php delete mode 100644 storage/framework/views/b534ed8dcc766a521ddb9b5ab34526ff.php delete mode 100644 storage/framework/views/be6715616843b225cf6deff982e77b14.php delete mode 100644 storage/framework/views/bfd832b53fad5948a8706f00a290c0cf.php delete mode 100644 storage/framework/views/c3da01bbeb1428090c4fa29e17c4a415.php delete mode 100644 storage/framework/views/c6d1a975364ea77cf193b26f4d0c05e1.php delete mode 100644 storage/framework/views/c6faad983759e39bbadd89a10c0f74b3.php delete mode 100644 storage/framework/views/cb60a36db4e92d8fcf5107fb500e9e22.php delete mode 100644 storage/framework/views/cdba3960ec17faacee7b079add6c1ae2.php delete mode 100644 storage/framework/views/d136669968d8cce7e458e5d7777f6a32.php delete mode 100644 storage/framework/views/e54a5d3be34ee3bfef9f87d7de2dda8f.blade.php delete mode 100644 storage/framework/views/e5d7be41700811dd965c7910cdd63b16.php delete mode 100644 storage/framework/views/e5d92f0df5c965b06cb33f9117a8c00d.php delete mode 100644 storage/framework/views/e8622c5fb0c67bd1ec098292efc31e4f.php delete mode 100644 storage/framework/views/e8d91e93ead2004545f050787ca085e3.php delete mode 100644 storage/framework/views/ea5a1ff31204d266f5d19cf6324c898a.php delete mode 100644 storage/framework/views/ec6b175cafc2ad7bc060e67f10781d51.php delete mode 100644 storage/framework/views/f08ad9fca67479dc124a5f64a7514f97.php delete mode 100644 storage/framework/views/f173681a20263f194334b1a3014b6285.blade.php delete mode 100644 storage/framework/views/f51a8a3b702dbf521511d5f222940525.php delete mode 100644 storage/framework/views/f7c29b22c1a51c7cd7168f60bd430f61.blade.php delete mode 100644 storage/framework/views/f909bcbbb630bac1bb471924797df459.php delete mode 100644 storage/framework/views/f98c182f4ecf0c1b66c11b701478d8d6.php diff --git a/.env.example b/.env.example deleted file mode 100644 index c0660ea..0000000 --- a/.env.example +++ /dev/null @@ -1,65 +0,0 @@ -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/app/Helpers/Logger.php b/app/Helpers/Logger.php new file mode 100644 index 0000000..41ab215 --- /dev/null +++ b/app/Helpers/Logger.php @@ -0,0 +1,50 @@ + auth()->user(), + ]); + } + + /** + * Update user account + */ + public function update(Request $request) + { + $validated = $request->validate([ + 'name' => 'required|string|max:255', + 'email' => 'required|email|unique:users,email,' . auth()->id(), + ]); + + auth()->user()->update($validated); + + return redirect()->route('my-account')->with('success', 'Profile updated successfully.'); + } + + /** + * Show user's orders (both standard and custom) + */ + public function orders(): View + { + $user = auth()->user(); + + $standardOrders = Order::where('user_id', $user->id) + ->orderBy('created_at', 'desc') + ->get(); + + $customOrders = CustomOrder::where('user_id', $user->id) + ->orderBy('created_at', 'desc') + ->get(); + + return view('account.orders', [ + 'standardOrders' => $standardOrders, + 'customOrders' => $customOrders, + ]); + } + + /** + * Show order detail (both standard and custom) + */ + public function orderDetail(Order $order) + { + // Check authorization + if ($order->user_id !== auth()->id() && !auth()->user()->is_admin) { + abort(403); + } + + return view('account.order-detail', [ + 'order' => $order, + ]); + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/Auth/GoogleAuthController.php b/app/Http/Controllers/Auth/GoogleAuthController.php new file mode 100644 index 0000000..e04a079 --- /dev/null +++ b/app/Http/Controllers/Auth/GoogleAuthController.php @@ -0,0 +1,74 @@ +redirect(); + } + + /** + * Handle Google OAuth callback + */ + public function callback() + { + try { + $googleUser = Socialite::driver('google')->user(); + + // Find or create user + $user = User::firstOrCreate( + ['email' => $googleUser->getEmail()], + [ + 'name' => $googleUser->getName(), + 'google_id' => $googleUser->getId(), + 'email_verified_at' => now(), + // Set a random password so the row passes DB constraints; not used for login + 'password' => Str::random(32), + ] + ); + + // Update Google ID if not already set + if (!$user->google_id) { + $user->update(['google_id' => $googleUser->getId()]); + } + + Auth::login($user, remember: true); + + return redirect()->intended('/'); + } catch (\Exception $e) { + Log::error('Google OAuth callback failed', [ + 'error' => $e->getMessage(), + 'exception' => $e, + ]); + return redirect('/login')->with('error', 'Failed to authenticate with Google. Please try again.'); + } + } + + /** + * Logout user + */ + public function logout() + { + Log::info('User logging out', [ + 'user_id' => optional(Auth::user())->id, + 'email' => optional(Auth::user())->email, + ]); + Auth::logout(); + request()->session()->invalidate(); + request()->session()->regenerateToken(); + + return redirect('/'); + } +} diff --git a/app/Http/Controllers/CustomOrderController.php b/app/Http/Controllers/CustomOrderController.php new file mode 100644 index 0000000..3c01ef8 --- /dev/null +++ b/app/Http/Controllers/CustomOrderController.php @@ -0,0 +1,316 @@ +id()) + ->orderBy('created_at', 'desc') + ->get(); + + return view('custom-orders.index', [ + 'customOrders' => $customOrders, + ]); + } + + /** + * Show custom order creation form + */ + public function create(): View + { + $designFee = AppSetting::get('design_fee', 500); + + return view('custom-orders.create', [ + 'printStocks' => PrintStock::all(), + 'designFee' => $designFee, + ]); + } + + /** + * Store custom order and calculate quote + */ + public function store(Request $request) + { + error_log('=== CUSTOM ORDER STORE METHOD CALLED (error_log) ==='); + error_log('Request method: ' . $request->method()); + error_log('Request path: ' . $request->path()); + error_log('Request all data: ' . json_encode($request->all())); + $userId = auth()->id(); + error_log('User ID: ' . ($userId ?? 'NOT AUTHENTICATED')); + + Log::warning('=== CUSTOM ORDER STORE METHOD CALLED ==='); + Log::warning('Request all data', $request->all()); + Log::warning('User ID', ['user_id' => auth()->id()]); + + $validated = $request->validate([ + 'type' => 'required|in:wallpaper,mural,fabric', + 'length' => 'nullable|numeric|min:0.1', + 'width' => 'nullable|numeric|min:0.1', + 'height' => 'nullable|numeric|min:0.1', + 'print_stock_id' => 'required|exists:print_stocks,id', + 'quantity' => 'required|integer|min:1', + 'customer_brief' => 'required|string|min:50|max:5000', + 'special_instructions' => 'nullable|string|max:1000', + 'library_discount' => 'boolean', + 'reference_images.*' => 'nullable|file|mimes:jpeg,png,jpg,gif,webp|max:5120', + ]); + + Log::warning('Validation passed', $validated); + + // Get design fee from settings + $designFee = AppSetting::get('design_fee', 500); + $libraryDiscountApplied = $request->boolean('library_discount', false); + + // Deduct library discount if selected + $finalDesignFee = $libraryDiscountApplied ? $designFee * 0.8 : $designFee; + + // Get print stock for material cost calculation + $printStock = PrintStock::find($validated['print_stock_id']); + + // Calculate material cost based on type and dimensions + $materialCost = $this->calculateMaterialCost( + $validated['type'], + $validated['length'] ?? 0, + $validated['width'] ?? 0, + $validated['height'] ?? 0, + $validated['quantity'], + $printStock + ); + + // Total cost = material cost + design fee + $totalCost = $materialCost + $finalDesignFee; + + // Deposit is 20% of total, balance is 80% + $depositAmount = $totalCost * 0.2; + $balanceAmount = $totalCost * 0.8; + + // Create custom order + $customOrder = CustomOrder::create([ + 'user_id' => auth()->id(), + 'type' => $validated['type'], + 'design_fee' => $designFee, + 'library_discount_applied' => $libraryDiscountApplied, + 'material_cost' => $materialCost, + 'total_cost' => $totalCost, + 'deposit_amount' => $depositAmount, + 'balance_amount' => $balanceAmount, + 'customer_brief' => $validated['customer_brief'], + ]); + + // Create specifications + CustomOrderSpecification::create([ + 'custom_order_id' => $customOrder->id, + 'length' => $validated['length'] ?? null, + 'width' => $validated['width'] ?? null, + 'height' => $validated['height'] ?? null, + 'print_stock_id' => $validated['print_stock_id'], + 'quantity' => $validated['quantity'], + 'special_instructions' => $validated['special_instructions'] ?? null, + ]); + + // Handle file uploads + if ($request->hasFile('reference_images')) { + foreach ($request->file('reference_images') as $file) { + $path = $file->store('custom-orders/references', 'local'); + + CustomOrderFile::create([ + 'custom_order_id' => $customOrder->id, + 'file_type' => 'reference_image', + 'file_path' => $path, + 'original_filename' => $file->getClientOriginalName(), + 'file_size' => $file->getSize(), + 'mime_type' => $file->getMimeType(), + 'uploaded_by' => auth()->id(), + ]); + } + } + + return redirect()->route('custom-orders.show', $customOrder)->with('success', 'Custom order created successfully. Please review the quote and proceed with deposit payment.'); + } + + /** + * Show custom order detail with quote + */ + public function show(CustomOrder $customOrder): View + { + // Check authorization + if ($customOrder->user_id !== auth()->id()) { + abort(403); + } + + return view('custom-orders.show', [ + 'customOrder' => $customOrder, + ]); + } + + /** + * Process deposit payment + */ + public function depositPayment(Request $request) + { + $validated = $request->validate([ + 'custom_order_id' => 'required|exists:custom_orders,id', + ]); + + $customOrder = CustomOrder::findOrFail($validated['custom_order_id']); + + // Check authorization + if ($customOrder->user_id !== auth()->id()) { + abort(403); + } + + // Check if already paid + if ($customOrder->deposit_status === 'paid') { + return redirect()->route('custom-orders.show', $customOrder) + ->with('info', 'Deposit already paid for this order.'); + } + + // Initiate Yoco payment for deposit + $yocoResponse = $this->initiateYocoPayment( + amount: (int)($customOrder->deposit_amount * 100), // Convert to cents + orderId: $customOrder->uuid, + orderType: 'custom_deposit', + description: "Deposit for Custom {$customOrder->type} Order #{$customOrder->order_number}" + ); + + if (!$yocoResponse) { + return redirect()->route('custom-orders.show', $customOrder) + ->with('error', 'Failed to initiate payment. Please try again.'); + } + + return redirect($yocoResponse['checkout_url']); + } + + /** + * Handle successful deposit payment + */ + public function depositSuccess(CustomOrder $customOrder) + { + // Check authorization + if ($customOrder->user_id !== auth()->id()) { + abort(403); + } + + // Update order status + $customOrder->update([ + 'deposit_status' => 'paid', + 'status' => 'submitted', + ]); + + return view('custom-orders.deposit-success', [ + 'customOrder' => $customOrder, + ]); + } + + /** + * Calculate material cost based on dimensions and print stock + */ + private function calculateMaterialCost($type, $length, $width, $height, $quantity, $printStock) + { + $costPerUnit = $printStock->cost_per_meter ?? $printStock->cost_per_m2 ?? 0; + + if (!$costPerUnit) { + return 0; + } + + $cost = 0; + + if ($type === 'wallpaper' && $length > 0 && $width > 0) { + // Area-based: length x width in meters + $area = $length * $width; + $cost = $area * $costPerUnit * $quantity; + } elseif ($type === 'mural' && $width > 0 && $height > 0) { + // Area-based: width x height in meters + $area = $width * $height; + $cost = $area * $costPerUnit * $quantity; + } elseif ($type === 'fabric' && $length > 0) { + // Linear: length in meters + $cost = $length * $costPerUnit * $quantity; + } + + return round($cost, 2); + } + + /** + * Initiate Yoco payment + */ + private function initiateYocoPayment($amount, $orderId, $orderType, $description) + { + $yocoSecret = config('services.yoco.secret_key'); + + if (!$yocoSecret) { + Log::error('Yoco secret key not configured'); + return null; + } + + $payload = [ + 'amount' => $amount, + 'currency' => 'ZAR', + 'successUrl' => route('yoco-custom-deposit-success', ['customOrder' => $orderId]), + 'failureUrl' => route('custom-orders.show', ['customOrder' => $orderId]), + 'cancelUrl' => route('custom-orders.show', ['customOrder' => $orderId]), + 'metadata' => [ + 'order_uuid' => $orderId, + 'order_type' => $orderType, + ], + 'description' => $description, + ]; + + try { + Log::info('Initiating Yoco payment', [ + 'amount' => $amount, + 'orderId' => $orderId, + 'description' => $description + ]); + + $response = Http::withHeaders([ + 'Authorization' => 'Bearer ' . $yocoSecret, + 'Content-Type' => 'application/json', + ])->post('https://payments.yoco.com/api/checkouts', $payload); + + Log::info('Yoco API response', [ + 'status' => $response->status(), + 'body' => $response->body() + ]); + + if ($response->successful()) { + $data = $response->json(); + Log::info('Yoco payment success', [ + 'checkout_url' => $data['redirectUrl'] ?? 'N/A', + 'checkout_id' => $data['id'] ?? 'N/A' + ]); + return [ + 'checkout_url' => $data['redirectUrl'], + 'checkout_id' => $data['id'], + ]; + } else { + Log::error('Yoco payment API error', [ + 'status' => $response->status(), + 'body' => $response->body() + ]); + } + } catch (\Exception $e) { + Log::error('Yoco payment exception: ' . $e->getMessage(), [ + 'trace' => $e->getTraceAsString() + ]); + } + + return null; + } +} diff --git a/app/Http/Controllers/OrderController.php b/app/Http/Controllers/OrderController.php index 0242f99..2f8cd66 100644 --- a/app/Http/Controllers/OrderController.php +++ b/app/Http/Controllers/OrderController.php @@ -267,6 +267,7 @@ class OrderController extends Controller 'metadata' => [ 'order_uuid' => $order->uuid, 'order_number' => $order->order_number, + 'site' => 'additional_design', ], ]; @@ -278,7 +279,55 @@ class OrderController extends Controller if ($response->successful()) { $checkout = $response->json(); - return redirect($checkout['redirectUrl']); + + $checkoutId = $checkout['id'] ?? null; + $redirectUrl = $checkout['redirectUrl'] ?? null; + \Log::info('Yoco checkout created', [ + 'order_uuid' => $order->uuid, + 'checkout_id' => $checkoutId, + 'redirect_url' => $redirectUrl, + ]); + if (!$checkoutId || !$redirectUrl) { + throw new \Exception('Invalid Yoco checkout response: missing id or redirectUrl'); + } + + // Persist checkout info to database + try { + $order->update([ + 'yoco_checkout_id' => $checkoutId, + 'yoco_redirect_url' => $redirectUrl, + 'yoco_checkout_response' => json_encode($checkout), + ]); + + // Reload the model to verify update + $order->refresh(); + + if ($order->yoco_checkout_id) { + //clear cart + session()->forget('cart'); + + \Log::info('Yoco checkout info saved successfully', [ + 'order_uuid' => $order->uuid, + 'yoco_checkout_id' => $order->yoco_checkout_id, + ]); + } else { + \Log::warning('Yoco checkout ID not saved after update', [ + 'order_uuid' => $order->uuid, + 'order_data' => $order->toArray(), + ]); + } + } catch (\Exception $dbException) { + \Log::error('Database error while saving Yoco checkout info', [ + 'order_uuid' => $order->uuid, + 'error_message' => $dbException->getMessage(), + 'error_code' => $dbException->getCode(), + 'checkout_id' => $checkoutId, + 'redirect_url' => $redirectUrl, + ]); + throw $dbException; + } + + return redirect($redirectUrl); } else { \Log::error('Yoco API Error', [ 'status' => $response->status(), @@ -300,18 +349,18 @@ class OrderController extends Controller ->with('success', 'Payment was already processed for this order.'); } - // Update order status - $order->update([ - 'payment_status' => 'paid', - 'status' => 'processing', - ]); + // // Update order status + // $order->update([ + // 'payment_status' => 'paid', + // 'status' => 'processing', + // ]); - // Reduce stock - foreach ($order->items as $item) { - $product = $item->product; - $product->stock -= $item->quantity; - $product->save(); - } + // // Reduce stock + // foreach ($order->items as $item) { + // $product = $item->product; + // $product->stock -= $item->quantity; + // $product->save(); + // } // Clear pending order from session session()->forget('pending_order_uuid'); @@ -339,35 +388,174 @@ class OrderController extends Controller public function yocoWebhook(Request $request) { - // Verify webhook signature - $payload = $request->getContent(); - $signature = $request->header('X-Yoco-Signature'); + // 1. Get Raw Body and Headers + \Log::info('Yoco Webhook: Received webhook'); - // Process webhook event - $event = $request->all(); + $rawBody = $request->getContent(); + $trimmedBody = trim($rawBody); - if (isset($event['type']) && $event['type'] === 'checkout.succeeded') { - $metadata = $event['payload']['metadata'] ?? []; - $orderId = $metadata['order_id'] ?? null; - - if ($orderId) { - $order = Order::find($orderId); - if ($order && $order->payment_status !== 'paid') { - $order->update([ - 'payment_status' => 'paid', - 'status' => 'processing', - ]); - - // Reduce stock - foreach ($order->items as $item) { - $product = $item->product; - $product->stock -= $item->quantity; - $product->save(); - } - } - } + $webhookId = $_SERVER['HTTP_WEBHOOK_ID'] ?? null; + $webhookTimestamp = $_SERVER['HTTP_WEBHOOK_TIMESTAMP'] ?? null; + $webhookSignatureHeader = $_SERVER['HTTP_WEBHOOK_SIGNATURE'] ?? null; + + // Validate headers exist + if (!$webhookId || !$webhookTimestamp || !$webhookSignatureHeader) { + \Log::warning('Yoco Webhook: Missing headers', [ + 'has_id' => !empty($webhookId), + 'has_timestamp' => !empty($webhookTimestamp), + 'has_signature' => !empty($webhookSignatureHeader), + ]); + return response()->json(['error' => 'Missing headers'], 400); } + // 2. Parse the Secret Safely + $envSecret = trim(config('services.yoco.webhook_secret')); + + if (empty($envSecret)) { + \Log::error('Yoco Webhook: Missing webhook secret configuration'); + return response()->json(['error' => 'Webhook secret not configured'], 500); + } + + $secretKeyString = strpos($envSecret, 'whsec_') === 0 + ? substr($envSecret, 6) + : $envSecret; + + $secretBytes = base64_decode($secretKeyString); + + // 3. Parse Incoming Signature (Standardize) + $incomingSignature = ''; + if (preg_match('/(?:v1=|v1,)([^,\s]+)/', $webhookSignatureHeader, $matches)) { + $incomingSignature = $matches[1]; + } else { + $incomingSignature = trim($webhookSignatureHeader); + } + + // 4. Verification Function + $verifySignature = function($id, $timestamp, $body, $secretBytes, $expectedSig) { + $signedContent = $id . '.' . $timestamp . '.' . $body; + $calculatedHmac = hash_hmac('sha256', $signedContent, $secretBytes, true); + $calculatedSig = base64_encode($calculatedHmac); + return hash_equals($expectedSig, $calculatedSig); + }; + + // 5. Try Verification (Attempt both Trimmed and Raw) + $isValid = false; + $methodUsed = ''; + + // Attempt 1: Trimmed Body (Most likely correct for JSON) + if ($verifySignature($webhookId, $webhookTimestamp, trim($rawBody), $secretBytes, $incomingSignature)) { + $isValid = true; + $methodUsed = 'trimmed'; + } + // Attempt 2: Raw Body (Fallback if Yoco signed the whitespace) + elseif ($verifySignature($webhookId, $webhookTimestamp, $rawBody, $secretBytes, $incomingSignature)) { + $isValid = true; + $methodUsed = 'raw'; + } + + if (!$isValid) { + \Log::warning('Yoco Webhook: Signature verification failed', [ + 'webhook_id' => $webhookId, + 'timestamp' => $webhookTimestamp, + 'received_signature' => $incomingSignature, + ]); + return response()->json(['error' => 'Invalid signature'], 403); + } + + \Log::info('Yoco Webhook: Signature verified successfully', ['method' => $methodUsed]); + + // 6. Parse Event + $event = json_decode($rawBody, true); + + if (!$event) { + \Log::warning('Yoco Webhook: Failed to parse JSON payload'); + return response()->json(['error' => 'Invalid JSON'], 400); + } + + $type = $event['type'] ?? null; + $payload = $event['payload'] ?? []; + + $metadata = $payload['metadata'] ?? []; + $orderUuid = $metadata['order_uuid'] ?? null; + $site = $metadata['site'] ?? null; + $paymentId = $payload['id'] ?? null; + $status = $payload['status'] ?? null; + + \Log::info('Yoco Webhook: Payload extracted', [ + 'type' => $type, + 'site' => $site, + 'order_uuid' => $orderUuid, + 'payment_id' => $paymentId, + 'status' => $status, + ]); + + if ($site !== 'additional_design') { + \Log::warning('Yoco Webhook: Ignored event for different site', [ + 'expected_site' => 'additional_design', + 'received_site' => $site, + ]); + return response()->json(['status' => 'ignored'], 200); + } + + if (!$orderUuid || !$status) { + \Log::warning('Yoco Webhook: Validation failed', [ + 'order_uuid' => $orderUuid, + 'status' => $status, + 'type' => $type, + ]); + return response()->json(['error' => 'Invalid payload'], 400); + } + + // 7. Update Payment State + $order = Order::where('uuid', $orderUuid)->first(); + + if (!$order) { + \Log::warning('Yoco Webhook: Order not found', ['order_uuid' => $orderUuid]); + return response()->json(['error' => 'Order not found'], 404); + } + + if ($status === 'succeeded') { + \Log::info('Yoco Webhook: Processing successful payment', [ + 'order_uuid' => $orderUuid, + 'payment_id' => $paymentId, + ]); + + if ($order->payment_status !== 'paid') { + $order->update([ + 'payment_status' => 'paid', + 'status' => 'processing', + 'yoco_checkout_response' => json_encode($payload), + ]); + + // Reduce stock + foreach ($order->items as $item) { + $product = $item->product; + $product->stock -= $item->quantity; + $product->save(); + } + + \Log::info('Yoco Webhook: Order updated for successful payment', [ + 'order_uuid' => $orderUuid, + 'order_id' => $order->id, + ]); + } + } elseif ($status === 'failed' || $status === 'cancelled') { + \Log::info('Yoco Webhook: Processing failed/cancelled payment', [ + 'order_uuid' => $orderUuid, + 'payment_id' => $paymentId, + 'status' => $status, + ]); + + $order->update([ + 'payment_status' => 'failed', + ]); + } + + \Log::info('Yoco Webhook: Processed successfully', [ + 'order_uuid' => $orderUuid, + 'status' => $status, + ]); + return response()->json(['status' => 'success']); } } diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php new file mode 100644 index 0000000..eb8a84e --- /dev/null +++ b/app/Http/Middleware/VerifyCsrfToken.php @@ -0,0 +1,17 @@ + + */ + protected $except = [ + 'api/webhook', + ]; +} diff --git a/app/Models/AppSetting.php b/app/Models/AppSetting.php new file mode 100644 index 0000000..693b3c7 --- /dev/null +++ b/app/Models/AppSetting.php @@ -0,0 +1,40 @@ +first(); + + if (!$setting) { + return $default; + } + + return match ($setting->type) { + 'integer' => (int) $setting->value, + 'boolean' => (bool) $setting->value, + 'json' => json_decode($setting->value, true), + default => $setting->value, + }; + } + + /** + * Set a setting + */ + public static function set(string $key, mixed $value, string $type = 'string'): void + { + self::updateOrCreate( + ['key' => $key], + ['value' => is_array($value) ? json_encode($value) : (string) $value, 'type' => $type] + ); + } +} diff --git a/app/Models/CustomOrder.php b/app/Models/CustomOrder.php new file mode 100644 index 0000000..c70372c --- /dev/null +++ b/app/Models/CustomOrder.php @@ -0,0 +1,100 @@ + 'boolean', + 'design_fee' => 'decimal:2', + 'material_cost' => 'decimal:2', + 'total_cost' => 'decimal:2', + 'deposit_amount' => 'decimal:2', + 'balance_amount' => 'decimal:2', + 'submitted_at' => 'datetime', + 'approved_at' => 'datetime', + 'rejected_at' => 'datetime', + 'completed_at' => 'datetime', + ]; + + /** + * Boot method for model + */ + protected static function boot() + { + parent::boot(); + + static::creating(function ($model) { + $model->uuid = \Illuminate\Support\Str::uuid(); + $model->order_number = 'CUSTOM-' . now()->format('Ymd') . '-' . strtoupper(uniqid()); + $model->submitted_at = now(); + }); + } + + /** + * Get the user that owns this custom order + */ + public function user(): BelongsTo + { + return $this->belongsTo(User::class); + } + + /** + * Get the specifications for this custom order + */ + public function specifications(): HasOne + { + return $this->hasOne(CustomOrderSpecification::class); + } + + /** + * Get the files uploaded for this custom order + */ + public function files(): HasMany + { + return $this->hasMany(CustomOrderFile::class); + } + + /** + * Get the proofs uploaded for this custom order + */ + public function proofs(): HasMany + { + return $this->hasMany(CustomOrderProof::class); + } + + /** + * Get route key name for implicit route binding + */ + public function getRouteKeyName() + { + return 'uuid'; + } +} diff --git a/app/Models/CustomOrderFile.php b/app/Models/CustomOrderFile.php new file mode 100644 index 0000000..048f023 --- /dev/null +++ b/app/Models/CustomOrderFile.php @@ -0,0 +1,35 @@ +belongsTo(CustomOrder::class); + } + + /** + * Get the user who uploaded this file + */ + public function uploadedByUser(): BelongsTo + { + return $this->belongsTo(User::class, 'uploaded_by'); + } +} diff --git a/app/Models/CustomOrderProof.php b/app/Models/CustomOrderProof.php new file mode 100644 index 0000000..ef3fbbe --- /dev/null +++ b/app/Models/CustomOrderProof.php @@ -0,0 +1,44 @@ + 'datetime', + 'rejected_at' => 'datetime', + ]; + + /** + * Get the custom order that owns this proof + */ + public function customOrder(): BelongsTo + { + return $this->belongsTo(CustomOrder::class); + } + + /** + * Get the admin who uploaded this proof + */ + public function uploadedByUser(): BelongsTo + { + return $this->belongsTo(User::class, 'uploaded_by'); + } +} diff --git a/app/Models/CustomOrderSpecification.php b/app/Models/CustomOrderSpecification.php new file mode 100644 index 0000000..dd49f0b --- /dev/null +++ b/app/Models/CustomOrderSpecification.php @@ -0,0 +1,42 @@ + 'decimal:2', + 'width' => 'decimal:2', + 'height' => 'decimal:2', + 'quantity' => 'integer', + ]; + + /** + * Get the custom order that owns this specification + */ + public function customOrder(): BelongsTo + { + return $this->belongsTo(CustomOrder::class); + } + + /** + * Get the print stock + */ + public function printStock(): BelongsTo + { + return $this->belongsTo(PrintStock::class); + } +} diff --git a/app/Models/Order.php b/app/Models/Order.php index 5575137..bf82e09 100644 --- a/app/Models/Order.php +++ b/app/Models/Order.php @@ -24,7 +24,11 @@ class Order extends Model 'customer_email', 'customer_phone', 'shipping_address', - 'notes' + 'notes', + 'yoco_checkout_id', + 'yoco_redirect_url', + 'yoco_checkout_response', + 'yoco_payment_id', ]; public function user() diff --git a/app/Models/User.php b/app/Models/User.php index eacc991..37beb0d 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -22,6 +22,8 @@ class User extends Authenticatable 'email', 'password', 'is_admin', + 'google_id', + 'email_verified_at', ]; /** diff --git a/bootstrap/app.php b/bootstrap/app.php index 6f869d9..771b8de 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -7,6 +7,7 @@ use Illuminate\Foundation\Configuration\Middleware; return Application::configure(basePath: dirname(__DIR__)) ->withRouting( web: __DIR__.'/../routes/web.php', + api: __DIR__.'/../routes/api.php', commands: __DIR__.'/../routes/console.php', health: '/up', ) diff --git a/check_products.php b/check_products.php new file mode 100644 index 0000000..848e1fc --- /dev/null +++ b/check_products.php @@ -0,0 +1,12 @@ +make(\Illuminate\Contracts\Console\Kernel::class)->bootstrap(); + +$products = \App\Models\Product::with('printStocks')->limit(5)->get(); +foreach ($products as $p) { + echo "\n{$p->name} ({$p->type}):\n"; + foreach ($p->printStocks as $s) { + echo " - {$s->name}: width={$s->width}m, cost_per_meter={$s->cost_per_meter}, cost_per_m2={$s->cost_per_m2}\n"; + } +} diff --git a/composer.json b/composer.json index ea4bcc2..110ad2d 100644 --- a/composer.json +++ b/composer.json @@ -26,7 +26,10 @@ "App\\": "app/", "Database\\Factories\\": "database/factories/", "Database\\Seeders\\": "database/seeders/" - } + }, + "files": [ + "app/Helpers/Logger.php" + ] }, "autoload-dev": { "psr-4": { diff --git a/config/services.php b/config/services.php index f4c2b8c..5686590 100644 --- a/config/services.php +++ b/config/services.php @@ -1,5 +1,16 @@ [ 'mode' => env('YOCO_MODE', 'test'), - 'secret_key' => env('YOCO_SECRET_KEY'), - 'public_key' => env('YOCO_PUBLIC_KEY'), + 'secret_key' => $yoco_secret_key, + 'public_key' => $yoco_public_key, + 'webhook_secret' => env('YOCO_WEBHOOK_SECRET'), + ], + + 'google' => [ + 'client_id' => env('GOOGLE_CLIENT_ID'), + 'client_secret' => env('GOOGLE_CLIENT_SECRET'), + 'redirect' => env('GOOGLE_REDIRECT_URI', '/auth/google/callback'), ], ]; diff --git a/database/migrations/2025_12_09_add_google_id_to_users_table.php b/database/migrations/2025_12_09_add_google_id_to_users_table.php new file mode 100644 index 0000000..fb80f4b --- /dev/null +++ b/database/migrations/2025_12_09_add_google_id_to_users_table.php @@ -0,0 +1,28 @@ +string('google_id')->nullable()->unique()->after('id'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + $table->dropColumn('google_id'); + }); + } +}; diff --git a/database/migrations/2025_12_09_create_app_settings_table.php b/database/migrations/2025_12_09_create_app_settings_table.php new file mode 100644 index 0000000..3c02111 --- /dev/null +++ b/database/migrations/2025_12_09_create_app_settings_table.php @@ -0,0 +1,31 @@ +id(); + $table->string('key')->unique(); + $table->text('value')->nullable(); + $table->string('type')->default('string'); // string, integer, boolean, json + $table->text('description')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('app_settings'); + } +}; diff --git a/database/migrations/2025_12_09_create_custom_orders_tables.php b/database/migrations/2025_12_09_create_custom_orders_tables.php new file mode 100644 index 0000000..04cdd92 --- /dev/null +++ b/database/migrations/2025_12_09_create_custom_orders_tables.php @@ -0,0 +1,93 @@ +id(); + $table->uuid()->unique()->index(); + $table->foreignId('user_id')->nullable()->constrained()->onDelete('set null'); + $table->string('order_number')->unique(); + $table->enum('type', ['wallpaper', 'mural', 'fabric']); + $table->enum('status', ['submitted', 'approved', 'rejected', 'in_production', 'proof_ready', 'completed'])->default('submitted'); + $table->decimal('design_fee', 10, 2); + $table->boolean('library_discount_applied')->default(false); + $table->decimal('material_cost', 10, 2)->default(0); + $table->decimal('total_cost', 10, 2); + $table->decimal('deposit_amount', 10, 2); + $table->decimal('balance_amount', 10, 2); + $table->enum('deposit_status', ['pending', 'paid', 'failed'])->default('pending'); + $table->enum('balance_status', ['pending', 'paid', 'failed'])->default('pending'); + $table->text('customer_brief'); + $table->text('admin_notes')->nullable(); + $table->timestamp('submitted_at')->nullable(); + $table->timestamp('approved_at')->nullable(); + $table->timestamp('rejected_at')->nullable(); + $table->timestamp('completed_at')->nullable(); + $table->timestamps(); + }); + + // Custom Order Specifications table + Schema::create('custom_order_specifications', function (Blueprint $table) { + $table->id(); + $table->foreignId('custom_order_id')->constrained('custom_orders')->onDelete('cascade'); + $table->decimal('length', 10, 2)->nullable(); // wallpaper length in meters + $table->decimal('width', 10, 2)->nullable(); // mural/wallpaper width in meters + $table->decimal('height', 10, 2)->nullable(); // mural height in meters + $table->foreignId('print_stock_id')->nullable()->constrained('print_stocks')->onDelete('set null'); + $table->integer('quantity')->default(1); + $table->text('special_instructions')->nullable(); + $table->timestamps(); + }); + + // Custom Order Files table (reference images, design files) + Schema::create('custom_order_files', function (Blueprint $table) { + $table->id(); + $table->foreignId('custom_order_id')->constrained('custom_orders')->onDelete('cascade'); + $table->enum('file_type', ['reference_image', 'design_file', 'specification']); + $table->string('file_path'); + $table->string('original_filename'); + $table->integer('file_size'); + $table->string('mime_type'); + $table->foreignId('uploaded_by')->nullable()->constrained('users')->onDelete('set null'); + $table->timestamps(); + }); + + // Custom Order Proofs table (admin-uploaded proofs) + Schema::create('custom_order_proofs', function (Blueprint $table) { + $table->id(); + $table->foreignId('custom_order_id')->constrained('custom_orders')->onDelete('cascade'); + $table->string('file_path'); + $table->string('original_filename'); + $table->integer('file_size'); + $table->string('mime_type'); + $table->text('notes')->nullable(); + $table->foreignId('uploaded_by')->constrained('users')->onDelete('restrict'); + $table->enum('status', ['pending', 'approved', 'rejected'])->default('pending'); + $table->text('rejection_reason')->nullable(); + $table->timestamp('approved_at')->nullable(); + $table->timestamp('rejected_at')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('custom_order_proofs'); + Schema::dropIfExists('custom_order_files'); + Schema::dropIfExists('custom_order_specifications'); + Schema::dropIfExists('custom_orders'); + } +}; diff --git a/public/css/styles.css b/public/css/styles.css index ebcc6f7..4b20791 100644 --- a/public/css/styles.css +++ b/public/css/styles.css @@ -86,7 +86,7 @@ a:hover { /* ===== CONTAINER & LAYOUT ===== */ .container { max-width: var(--max-width); - margin: 0 auto; + margin: 20px auto; padding: 0 var(--spacing-md); } @@ -385,14 +385,14 @@ nav a:hover { /* ===== BADGE / CERTIFICATION ===== */ .badge { - display: flex; - align-items: center; - gap: var(--spacing-md); - background-color: white; - padding: var(--spacing-lg); - border: 2px solid var(--accent-dark); - border-radius: 2px; - margin-bottom: var(--spacing-lg); + display: inline-block; + font-weight: 900; + background-color: var(--bg-secondary); + color: var(--text-secondary); + padding: 4px 8px; + font-size: 0.8rem; + margin-bottom: var(--spacing-sm); + border-radius: 20px; } .badge-icon { @@ -674,3 +674,172 @@ footer { padding: 6px 12px; font-size: 0.85rem; } + +/* ===== STATUS BADGES ===== */ +.status-badge { + display: inline-flex; + align-items: center; + justify-content: center; + font-weight: 900; + background-color: var(--bg-secondary); + color: var(--text-secondary); + padding: 4px 8px; + font-size: 0.8rem; + margin-bottom: var(--spacing-sm); + border-radius: 20px; +} + +/* Status badge variants */ +.status-badge.pending, +.status-badge.submitted { + background-color: var(--accent-light); + color: var(--text-primary); +} + +.status-badge.approved, +.status-badge.completed, +.status-badge.paid { + background-color: var(--accent-pink); + color: white; +} + +.status-badge.processing, +.status-badge.in_production, +.status-badge.proof_ready { + background-color: var(--bg-secondary); + color: var(--text-secondary); +} + +.status-badge.rejected, +.status-badge.cancelled { + background-color: #f8d7da; + color: var(--text-primary); +} + +.status-badge.unpaid { + background-color: var(--accent-light); + color: var(--text-primary); +} + +/* ===== CUSTOM ORDER COMPONENTS ===== */ +.alert { + padding: var(--spacing-md); + border-radius: 20px; + margin-bottom: var(--spacing-lg); + border: 1px solid; +} + +.alert-success { + background-color: #e8f5e9; + border-color: #c8e6c9; + color: #2e7d32; +} + +.alert-info { + background-color: var(--accent-light); + border-color: var(--border-color); + color: var(--text-primary); +} + +.content-grid { + display: grid; + grid-template-columns: 2fr 1fr; + gap: var(--spacing-lg); +} + +.card-section { + margin-bottom: var(--spacing-lg); +} + +.card-section:last-child { + margin-bottom: 0; +} + +.spec-group { + margin-bottom: var(--spacing-md); +} + +.spec-group dt { + font-weight: 600; + color: var(--text-primary); +} + +.spec-group dd { + margin: 0; + color: var(--text-secondary); +} + +.image-gallery { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); + gap: var(--spacing-md); +} + +.image-gallery img { + width: 100%; + height: 150px; + object-fit: cover; + border-radius: 20px; + cursor: pointer; + transition: transform 0.2s; +} + +.image-gallery img:hover { + transform: scale(1.05); +} + +.proof-item { + padding: var(--spacing-md); + border: 1px solid var(--border-color); + border-radius: 20px; + margin-bottom: var(--spacing-md); + transition: var(--transition); +} + +.proof-item:hover { + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); +} + +.proof-item.approved { + background-color: #f0f9ff; + border-color: #7dd3fc; +} + +.payment-section { + background-color: var(--bg-secondary); + padding: var(--spacing-md); + border-radius: 20px; + margin-bottom: var(--spacing-md); +} + +.payment-row { + display: flex; + justify-content: space-between; + padding: var(--spacing-sm) 0; + border-bottom: 1px solid var(--border-color); +} + +.payment-row.total { + font-weight: 600; + font-size: 1.1rem; + border-bottom: none; + padding-top: var(--spacing-md); +} + +.terms-box { + background-color: var(--accent-light); + padding: var(--spacing-md); + border-radius: 20px; + font-size: 0.9rem; + color: var(--text-secondary); +} + +.terms-box ul { + margin: 0; + padding-left: 1.25rem; +} + +.terms-box li { + margin-bottom: 0.5rem; +} + diff --git a/public/js/script.js b/public/js/script.js index 5066798..38c7085 100644 --- a/public/js/script.js +++ b/public/js/script.js @@ -190,8 +190,12 @@ document.head.appendChild(style); // ===== FORM HANDLING ===== document.querySelectorAll('form').forEach(form => { - // Skip cart-related forms (add to cart, update quantity, remove, etc) - if (form.action.includes('/cart/') || form.action.includes('/orders/')) { + // Skip cart-related, order, custom order, payment, and logout forms (they handle submission themselves) + if (form.action.includes('/cart/') || + form.action.includes('/orders/') || + form.action.includes('/custom-orders') || + form.action.includes('/payment/') || + form.action.includes('/logout')) { return; } @@ -204,20 +208,7 @@ document.querySelectorAll('form').forEach(form => { // Here you would typically send to backend console.log('Form submitted:', data); - // Show success message - const message = document.createElement('div'); - message.textContent = 'Thank you! We\'ll be in touch soon.'; - message.style.cssText = ` - padding: 12px 20px; - background-color: #4caf50; - color: white; - border-radius: 4px; - margin-top: 10px; - `; - - this.appendChild(message); + // Form submission handled - no popup message this.reset(); - - setTimeout(() => message.remove(), 3000); }); }); diff --git a/resources/views/account/order-detail.blade.php b/resources/views/account/order-detail.blade.php new file mode 100644 index 0000000..e3d7fe3 --- /dev/null +++ b/resources/views/account/order-detail.blade.php @@ -0,0 +1,420 @@ +@extends('layouts.app') + +@section('title', 'Order #' . $order->order_number . ' - Order Details') + +@section('styles') + +@endsection + +@section('content') +
+
+

Order Details

+

Order #{{ $order->order_number }}

+
+ +
+ +
+ +
+

Order Status

+
+ + {{ str_replace('_', ' ', ucfirst($order->status)) }} + +

+ Ordered on {{ $order->created_at->format('d M Y \a\t H:i') }} +

+
+
+ + +
+

Order Items

+ @foreach($order->items as $item) +
+
+
+
{{ $item->product->name }}
+
{{ $item->type }}
+ @if($item->length) +
Length: {{ $item->length }}m
+ @endif + @if($item->width && $item->height) +
Dimensions: {{ $item->width }}m × {{ $item->height }}m
+ @endif +
+
+
R {{ number_format($item->price, 2) }}
+
Qty: {{ $item->quantity }}
+
+
+
+ @endforeach +
+ + +
+

Delivery Details

+ +
+

Customer Information

+
+
+
Name:
+
{{ $order->customer_name }}
+
+
+
Email:
+
{{ $order->customer_email }}
+
+
+
Phone:
+
{{ $order->customer_phone }}
+
+
+
+ +
+

Shipping Address

+

{{ $order->shipping_address }}

+
+ + @if($order->notes) +
+

Order Notes

+

{{ $order->notes }}

+
+ @endif +
+
+ + +
+ +
+

Order Summary

+ +
+
+ Subtotal: + R {{ number_format($order->total, 2) }} +
+
+ Total: + R {{ number_format($order->total, 2) }} +
+
+ +

Payment Status

+ +
+
+ Payment + {{ ucfirst($order->payment_status) }} +
+
+ + + @if($order->payment_status === 'pending' && $order->yoco_redirect_url) +
+
+

Payment Required

+

Click below to complete your payment.

+ + Pay Now + +
+
+
Amount Due
+
R {{ number_format($order->total, 2) }}
+
+
+ @elseif($order->payment_status === 'failed' && $order->yoco_redirect_url) +
+
+

Payment Failed

+

Please try your payment again.

+ + Retry Payment + +
+
+
Amount Due
+
R {{ number_format($order->total, 2) }}
+
+
+ @elseif($order->payment_status === 'paid') +
+
+
+
+

Payment Received

+

Thank you! Your order is being processed.

+
+
+
+ @endif +
+ + +
+ + ← Back to Orders + +
+
+
+
+@endsection diff --git a/resources/views/account/orders.blade.php b/resources/views/account/orders.blade.php new file mode 100644 index 0000000..ea856d9 --- /dev/null +++ b/resources/views/account/orders.blade.php @@ -0,0 +1,277 @@ +@extends('layouts.app') + +@section('title', 'My Orders - Additional Design') + +@section('styles') + +@endsection + +@section('content') +
+
+

My Orders

+

View your standard and custom orders

+
+ + +
+

Standard Orders

+ + @if ($standardOrders->count() > 0) +
+ + + + + + + + + + + + @foreach ($standardOrders as $order) + + + + + + + + @endforeach + +
Order #DateTotalStatusAction
{{ $order->order_number }}{{ $order->created_at->format('d M Y') }}R{{ number_format($order->total, 2) }} + + {{ ucfirst(str_replace('_', ' ', $order->status)) }} + + + View Details +
+
+ @else +
+

You haven't placed any standard orders yet.

+ Browse Products +
+ @endif +
+ + +
+
+

Custom Orders

+ + New Custom Order +
+ + @if ($customOrders->count() > 0) +
+ + + + + + + + + + + + + @foreach ($customOrders as $order) + + + + + + + + + @endforeach + +
Order #TypeTotalStatusDepositAction
{{ $order->order_number }}{{ ucfirst($order->type) }}R{{ number_format($order->total_cost, 2) }} + + {{ str_replace('_', ' ', ucfirst($order->status)) }} + + + + {{ ucfirst($order->deposit_status) }} + + + View Details +
+
+ @else +
+

You haven't created any custom orders yet.

+ Create Custom Order +
+ @endif +
+
+@endsection diff --git a/resources/views/account/pending-payments.blade.php b/resources/views/account/pending-payments.blade.php new file mode 100644 index 0000000..97a60cc --- /dev/null +++ b/resources/views/account/pending-payments.blade.php @@ -0,0 +1,94 @@ +@extends('layouts.app') + +@section('content') +
+
+

Pending Payments

+ + @if($orders->isEmpty()) +
+

You have no pending payments. All your orders are either paid or cancelled.

+ + ← Back to Order History + +
+ @else +
+ @foreach($orders as $order) +
+
+
+

{{ $order->order_number }}

+

+ Ordered: {{ $order->created_at->format('M d, Y @ H:i') }} +

+
+
+

R {{ number_format($order->total, 2) }}

+ + @if($order->payment_status === 'pending') + Payment Pending + @elseif($order->payment_status === 'failed') + Payment Failed + @else + {{ ucfirst($order->payment_status) }} + @endif + +
+
+ +
+

Order Items

+
+ @foreach($order->items as $item) +
+ {{ $item->product->name }} + {{ $item->quantity }} x R {{ number_format($item->price, 2) }} +
+ @endforeach +
+
+ +
+
+

Customer Name

+

{{ $order->customer_name }}

+
+
+

Shipping Address

+

{{ $order->shipping_address }}

+
+
+ + @if($order->yoco_redirect_url) + + @else +
+

+ Note: Payment link is not available for this order. Please contact support. +

+
+ @endif +
+ @endforeach +
+ + + @endif +
+
+@endsection diff --git a/resources/views/account/profile.blade.php b/resources/views/account/profile.blade.php new file mode 100644 index 0000000..e6cd022 --- /dev/null +++ b/resources/views/account/profile.blade.php @@ -0,0 +1,275 @@ +@extends('layouts.app') + +@section('title', 'My Account - Additional Design') + +@section('styles') + +@endsection + +@section('content') +
+
+

My Account

+

Manage your profile and view your orders

+
+ + @if (session('success')) +
+ {{ session('success') }} +
+ @endif + +
+ +
+
+

Profile Information

+ +
+ @csrf + +
+ + + @error('name') +

{{ $message }}

+ @enderror +
+ +
+ + + @error('email') +

{{ $message }}

+ @enderror +
+ + + + +
+
+
+ + +
+ + +
+

Need Help?

+

Contact us for assistance with your account or orders.

+ support@example.com +
+
+
+ +
+
+ @csrf + +
+
+
+@endsection diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php new file mode 100644 index 0000000..4e6b6a8 --- /dev/null +++ b/resources/views/auth/login.blade.php @@ -0,0 +1,187 @@ +@extends('layouts.app') + +@section('title', 'Sign In - Additional Design') + +@section('styles') + +@endsection + +@section('content') +
+
+

Sign In

+

Create an account or continue as guest to access your orders and custom designs

+ + @if (session('error')) +
+ {{ session('error') }} +
+ @endif + + @if ($errors->any()) +
+ {{ $errors->first() }} +
+ @endif + + + + + + + + + Sign in with Google + + +
+
+ or +
+
+ + + Continue as Guest + + +
+ By signing in, you agree to our Terms of Service and Privacy Policy +
+
+
+@endsection diff --git a/resources/views/components/header.blade.php b/resources/views/components/header.blade.php index 564fee6..78fa365 100644 --- a/resources/views/components/header.blade.php +++ b/resources/views/components/header.blade.php @@ -6,27 +6,82 @@ Wallpaper Murals - Fabrics - Portfolio + + Projects Contact - - - - - - - Cart - @if($cartCount > 0) - {{ $cartCount }} - @endif - - - - - +
+ + @auth + Custom Order +
+ + +
+ @else + Sign In + @endauth + + + + + + + + + Cart + @if($cartCount > 0) + {{ $cartCount }} + @endif + +
+ + + diff --git a/resources/views/custom-orders/create.blade.php b/resources/views/custom-orders/create.blade.php new file mode 100644 index 0000000..742c8da --- /dev/null +++ b/resources/views/custom-orders/create.blade.php @@ -0,0 +1,749 @@ +@extends('layouts.app') + +@section('title', 'Request Custom Design - Additional Design') + +@section('styles') + +@endsection + +@section('content') +
+
+

Request Custom Design

+

Create a custom wallpaper, mural, or fabric design tailored to your needs

+
+ + @if ($errors->any()) +
+

Please correct the following errors:

+ +
+ @endif + + @if (session('success')) +
+ ✓ {{ session('success') }} +
+ @endif + + +
+

How It Works

+ +
+ + +
+
+ @csrf + + +
+

Order Details

+ +
+ + + @error('type') +

{{ $message }}

+ @enderror +
+ +
+
+ + + @error('width') +

{{ $message }}

+ @enderror +
+
+ + + @error('height') +

{{ $message }}

+ @enderror +
+
+ +
+
+ + + @error('quantity') +

{{ $message }}

+ @enderror +
+
+ + + @error('print_stock_id') +

{{ $message }}

+ @enderror +
+
+
+ + +
+

Design Brief

+ +
+ +

Tell us about your design concept, colors, style, and any specific requirements

+ + @error('customer_brief') +

{{ $message }}

+ @enderror +
+ +
+ + + @error('special_instructions') +

{{ $message }}

+ @enderror +
+
+ + +
+

Reference Images

+ +
+ +

Upload inspiration images, mood boards, or reference materials for your design

+
+ + + + +

Click to upload or drag and drop

+

PNG, JPG, GIF, WebP up to 5MB

+
+
+ @error('reference_images.*') +

{{ $message }}

+ @enderror +
+
+ + +
+

Design Library

+ +
+ +
+
+ + +
+ + Cancel +
+
+ + +
+
+

Cost Summary

+ +
+ Material Cost + - +
+ +
+ Design Fee + - +
+ + + +
+ Deposit Required (20%) + R0.00 +
+ +
+ Note: 20% non-refundable deposit covers design work. Pay the remaining 80% after proof approval. +
+
+ +
+

Estimated Total:

+
R0.00
+ incl. VAT +
+
+ + + + +
+
+ + + @endsection \ No newline at end of file diff --git a/resources/views/custom-orders/deposit-success.blade.php b/resources/views/custom-orders/deposit-success.blade.php new file mode 100644 index 0000000..93a7b62 --- /dev/null +++ b/resources/views/custom-orders/deposit-success.blade.php @@ -0,0 +1,150 @@ +@extends('layouts.app') + +@section('title', 'Deposit Payment Successful') + +@section('styles') + +@endsection + +@section('content') +
+
+
+

Payment Successful!

+

+ Your deposit payment has been received and processed successfully. +

+ +
+
+ Order Number: + {{ $customOrder->order_number }} +
+
+ Order Type: + {{ ucfirst($customOrder->type) }} +
+
+ Deposit Amount: + R{{ number_format($customOrder->deposit_amount, 2) }} +
+
+ Remaining Balance: + R{{ number_format($customOrder->balance_amount, 2) }} +
+
+ Payment Status: + +
+
+ +
+

What Happens Next?

+
    +
  1. Your design requirements have been received
  2. +
  3. Our design team will review your specifications
  4. +
  5. You'll receive proof designs for your approval within 3-5 business days
  6. +
  7. Once you approve the proofs, we'll prepare for printing
  8. +
  9. The remaining balance (80%) will be due before printing begins
  10. +
+
+ + +
+
+@endsection diff --git a/resources/views/custom-orders/index.blade.php b/resources/views/custom-orders/index.blade.php new file mode 100644 index 0000000..d9ed71e --- /dev/null +++ b/resources/views/custom-orders/index.blade.php @@ -0,0 +1,355 @@ +@extends('layouts.app') + +@section('title', 'My Custom Orders') + +@section('styles') + +@endsection + +@section('content') +
+ @if (session('success')) +
+ {{ session('success') }} +
+ @endif + + + + @if ($customOrders->isEmpty()) +
+
📋
+

No Custom Orders Yet

+

You haven't created any custom orders yet. Start by designing your unique print today!

+ Create Your First Order +
+ @else +
+ @foreach ($customOrders as $order) +
+
+
+
Order #{{ $order->order_number }}
+
{{ $order->created_at->format('d M Y') }}
+
+ + {{ str_replace('_', ' ', ucfirst($order->status)) }} + +
+ +
+ +
+ @php + $statuses = ['submitted', 'approved', 'in_production', 'proof_ready', 'completed']; + $currentIndex = array_search($order->status, $statuses); + @endphp + @foreach ($statuses as $index => $status) +
+ @endforeach +
+ + +
+
+
Type
+
{{ ucfirst($order->type) }}
+
+ +
+
Status
+
+ {{ str_replace('_', ' ', ucfirst($order->status)) }} +
+
+ + @if ($order->specifications) +
+
Quantity
+
{{ $order->specifications->quantity }}
+
+ +
+
Stock
+
+ {{ $order->specifications->printStock ? $order->specifications->printStock->name : 'N/A' }} +
+
+ @endif +
+ + + @if ($order->total_cost) +
+
Total Cost
+
+ R{{ number_format($order->total_cost, 2) }} +
+
+ @endif + + +
+
+ {{ $order->deposit_status === 'paid' ? '✓' : '○' }} + Deposit +
+
+
+ {{ $order->status === 'approved' ? '✓' : '○' }} + Approved +
+
+
+ {{ in_array($order->status, ['in_production', 'proof_ready', 'completed']) ? '✓' : '○' }} + Production +
+
+
+ + +
+ @endforeach +
+ @endif +
+@endsection diff --git a/resources/views/custom-orders/show.blade.php b/resources/views/custom-orders/show.blade.php new file mode 100644 index 0000000..005f84c --- /dev/null +++ b/resources/views/custom-orders/show.blade.php @@ -0,0 +1,431 @@ +@extends('layouts.app') + +@section('title', 'Order #' . $customOrder->order_number . ' - Custom Order Details') + +@section('styles') + +@endsection + +@section('content') +
+
+

Custom Order Details

+

Order #{{ $customOrder->order_number }}

+
+ + @if (session('success')) +
+ {{ session('success') }} +
+ @endif + + @if (session('info')) +
+ {{ session('info') }} +
+ @endif + + +
+

Order Progress

+
+ @php + $timelineSteps = [ + ['status' => 'submitted', 'label' => 'Order\nSubmitted', 'completed' => $customOrder->status !== null], + ['status' => 'deposit_paid', 'label' => 'Deposit\nPaid', 'completed' => $customOrder->deposit_status === 'paid'], + ['status' => 'proof_sent', 'label' => 'Proofs\nSent', 'completed' => $customOrder->proofs()->exists()], + ['status' => 'proof_approved', 'label' => 'Proofs\nApproved', 'completed' => $customOrder->proofs()->where('status', 'approved')->exists()], + ['status' => 'processing', 'label' => 'Processing', 'completed' => $customOrder->status === 'processing'], + ['status' => 'shipped', 'label' => 'Order\nShipped', 'completed' => $customOrder->status === 'completed'], + ]; + + // Determine current step + $currentStep = 0; + if ($customOrder->status === 'completed') $currentStep = 5; + elseif ($customOrder->status === 'processing') $currentStep = 4; + elseif ($customOrder->proofs()->where('status', 'approved')->exists()) $currentStep = 3; + elseif ($customOrder->proofs()->exists()) $currentStep = 2; + elseif ($customOrder->deposit_status === 'paid') $currentStep = 1; + @endphp + + @foreach ($timelineSteps as $index => $step) +
+
+ @if ($index < $currentStep) + ✓ + @else + {{ $index + 1 }} + @endif +
+
{{ $step['label'] }}
+
+ @endforeach +
+
+
+ +
+ +
+

Order Status

+
+ + {{ str_replace('_', ' ', ucfirst($customOrder->status)) }} + +

+ Submitted on {{ $customOrder->created_at->format('d M Y \a\t H:i') }} +

+
+
+ + +
+

Design Requirements

+ +
+

Order Type

+

{{ $customOrder->type }}

+
+ +
+

Dimensions

+ @if ($customOrder->specifications) +
+ @if ($customOrder->specifications->length) +
+
Length:
+
{{ $customOrder->specifications->length }}m
+
+ @endif + @if ($customOrder->specifications->width) +
+
Width:
+
{{ $customOrder->specifications->width }}m
+
+ @endif + @if ($customOrder->specifications->height) +
+
Height:
+
{{ $customOrder->specifications->height }}m
+
+ @endif +
+
Quantity:
+
{{ $customOrder->specifications->quantity }}
+
+
+ @endif +
+ +
+

Print Material

+ @if ($customOrder->specifications->printStock) +

{{ $customOrder->specifications->printStock->name }}

+ @endif +
+ +
+

Design Brief

+

{{ $customOrder->customer_brief }}

+
+ + @if ($customOrder->specifications->special_instructions) +
+

Special Instructions

+

{{ $customOrder->specifications->special_instructions }}

+
+ @endif +
+ + + @if ($customOrder->files->count() > 0) +
+

Reference Images

+ +
+ @endif + + + @if ($customOrder->proofs->count() > 0) +
+

Design Proofs

+ @foreach ($customOrder->proofs as $proof) +
+
+

Proof {{ $loop->iteration }}

+ + {{ ucfirst($proof->status) }} + +
+ @if ($proof->file_path) + + View Proof File + + @endif + @if ($proof->feedback) +
+ Feedback: +

{{ $proof->feedback }}

+
+ @endif +
+ @endforeach +
+ @endif +
+ + +
+ +
+

Order Summary

+ + +
+
+ Design Fee: + R{{ number_format($customOrder->design_fee, 2) }} +
+ @if ($customOrder->material_cost > 0) +
+ Material Cost: + R{{ number_format($customOrder->material_cost, 2) }} +
+ @endif +
+ Total: + R{{ number_format($customOrder->total_cost, 2) }} +
+
+ + +

Payment Status

+ +
+
+ Deposit (20%) + {{ ucfirst($customOrder->deposit_status) }} +
+

R{{ number_format($customOrder->deposit_amount, 2) }}

+
+ +
+
+ Balance (80%) + {{ ucfirst($customOrder->balance_status) }} +
+

R{{ number_format($customOrder->balance_amount, 2) }}

+
+ + + @if ($customOrder->deposit_status !== 'paid') +
+ @csrf + + +
+ @elseif ($customOrder->deposit_status === 'paid' && $customOrder->proofs->where('status', 'approved')->count() > 0 && $customOrder->balance_status !== 'paid') + + @endif +
+ + +
+

Payment Terms

+
    +
  • The 20% deposit is non-refundable
  • +
  • Balance of 80% must be paid before printing begins
  • + @if ($customOrder->library_discount_applied) +
  • Design may be added to our library
  • + @else +
  • Bespoke, exclusive design
  • + @endif +
+
+
+
+
+ + +@endsection diff --git a/resources/views/order-history.blade.php b/resources/views/order-history.blade.php index 6e0eb66..8fd7874 100644 --- a/resources/views/order-history.blade.php +++ b/resources/views/order-history.blade.php @@ -68,29 +68,6 @@ gap: 0.5rem; } - .status-badge { - display: inline-block; - padding: 0.4rem 1rem; - border-radius: 20px; - font-size: 0.9rem; - font-weight: 600; - } - - .status-pending { - background-color: #fff3cd; - color: #856404; - } - - .status-processing { - background-color: #cfe2ff; - color: #084298; - } - - .status-completed { - background-color: #d1e7dd; - color: #0f5132; - } - .order-total { text-align: right; } @@ -196,7 +173,7 @@
- + {{ ucfirst($order->status) }}
diff --git a/resources/views/product-detail.blade.php b/resources/views/product-detail.blade.php index 3e16a01..737361f 100644 --- a/resources/views/product-detail.blade.php +++ b/resources/views/product-detail.blade.php @@ -428,7 +428,7 @@
- @foreach($product->printStocks as $stock)
@elseif($product->type === 'mural') @@ -540,12 +540,12 @@
- +
- +
diff --git a/routes/api.php b/routes/api.php new file mode 100644 index 0000000..ca95825 --- /dev/null +++ b/routes/api.php @@ -0,0 +1,7 @@ +name('yoco-webhook'); diff --git a/routes/web.php b/routes/web.php index 4defbe7..f3b3005 100644 --- a/routes/web.php +++ b/routes/web.php @@ -8,6 +8,7 @@ use App\Http\Controllers\FabricsController; use App\Http\Controllers\ProductController; use App\Http\Controllers\CartController; use App\Http\Controllers\OrderController; +use App\Http\Controllers\Auth\GoogleAuthController; Route::get('/', [HomeController::class, 'index'])->name('home'); Route::get('/wallpapers', [WallpapersController::class, 'index'])->name('wallpapers'); @@ -17,6 +18,12 @@ Route::get('/fabrics', [FabricsController::class, 'index'])->name('fabrics'); // Product routes Route::get('/products/{product}', [ProductController::class, 'show'])->name('product-detail'); +// Authentication routes +Route::get('/login', function () { return view('auth.login'); })->name('auth.login'); +Route::get('/auth/google', [GoogleAuthController::class, 'redirect'])->name('auth.google'); +Route::get('/auth/google/callback', [GoogleAuthController::class, 'callback'])->name('auth.google.callback'); +Route::post('/logout', [GoogleAuthController::class, 'logout'])->name('logout'); + // Cart routes Route::get('/cart', [CartController::class, 'index'])->name('cart'); Route::post('/cart/add/{product}', [CartController::class, 'add'])->name('cart-add'); @@ -35,4 +42,17 @@ Route::get('/payment/yoco/{order:uuid}', [OrderController::class, 'yocoPayment'] Route::get('/payment/yoco/success/{order:uuid}', [OrderController::class, 'yocoSuccess'])->name('yoco-success'); Route::get('/payment/yoco/cancel/{order:uuid}', [OrderController::class, 'yocoCancel'])->name('yoco-cancel'); Route::get('/payment/yoco/failure/{order:uuid}', [OrderController::class, 'yocoFailure'])->name('yoco-failure'); -Route::post('/webhooks/yoco', [OrderController::class, 'yocoWebhook'])->name('yoco-webhook'); + +// Protected routes - authenticated users only +Route::middleware('auth')->group(function () { + Route::get('/my-account', 'App\Http\Controllers\AccountController@show')->name('my-account'); + Route::post('/my-account', 'App\Http\Controllers\AccountController@update')->name('my-account.update'); + Route::get('/my-orders', 'App\Http\Controllers\AccountController@orders')->name('my-orders'); + Route::get('/my-orders/{order:uuid}', 'App\Http\Controllers\AccountController@orderDetail')->name('my-orders.detail'); + Route::get('/custom-orders/create', 'App\Http\Controllers\CustomOrderController@create')->name('custom-orders.create'); + Route::post('/custom-orders', 'App\Http\Controllers\CustomOrderController@store')->name('custom-orders.store'); + Route::get('/custom-orders/{customOrder:uuid}', 'App\Http\Controllers\CustomOrderController@show')->name('custom-orders.show'); + Route::post('/payment/yoco/custom/deposit', 'App\Http\Controllers\CustomOrderController@depositPayment')->name('yoco-custom-deposit'); + Route::get('/payment/yoco/custom/deposit/success/{customOrder:uuid}', 'App\Http\Controllers\CustomOrderController@depositSuccess')->name('yoco-custom-deposit-success'); +}); + diff --git a/storage/framework/views/07f69d5795cff36023392bba5118d65e.php b/storage/framework/views/07f69d5795cff36023392bba5118d65e.php deleted file mode 100644 index f4c009b..0000000 --- a/storage/framework/views/07f69d5795cff36023392bba5118d65e.php +++ /dev/null @@ -1,91 +0,0 @@ -merge([ - 'aria-checked' => 'false', - 'autofocus' => $isAutofocused(), - 'disabled' => $isDisabled(), - 'id' => $getId(), - 'offColor' => $getOffColor() ?? 'gray', - 'offIcon' => $getOffIcon(), - 'onColor' => $getOnColor() ?? 'primary', - 'onIcon' => $getOnIcon(), - 'state' => '$wire.' . $applyStateBindingModifiers('$entangle(\'' . $statePath . '\')'), - 'wire:loading.attr' => 'disabled', - 'wire:target' => $statePath, - ], escape: false) - ->merge($getExtraAttributes(), escape: false) - ->merge($getExtraAlpineAttributes(), escape: false) - ->class(['fi-fo-toggle']); -?> - - - - $fieldWrapperView] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('dynamic-component'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\DynamicComponent::ignoredParameterNames()); ?> - -withAttributes(['field' => $field,'inline-label-vertical-alignment' => \Filament\Support\Enums\VerticalAlignment::Center]); ?> - - slot('labelPrefix', null, []); ?> - - - 'filament::components.toggle','data' => ['attributes' => \Filament\Support\prepare_inherited_attributes($attributes)]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::toggle'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['attributes' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(\Filament\Support\prepare_inherited_attributes($attributes))]); ?> -renderComponent(); ?> - - - - - - - - - - endSlot(); ?> - - - - 'filament::components.toggle','data' => ['attributes' => \Filament\Support\prepare_inherited_attributes($attributes)]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::toggle'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['attributes' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(\Filament\Support\prepare_inherited_attributes($attributes))]); ?> -renderComponent(); ?> - - - - - - - - - - - renderComponent(); ?> - - - - - - - - - - \ No newline at end of file diff --git a/storage/framework/views/0aa47c2ab87a57533b80c2bb4b3930a5.php b/storage/framework/views/0aa47c2ab87a57533b80c2bb4b3930a5.php deleted file mode 100644 index 18ca8d1..0000000 --- a/storage/framework/views/0aa47c2ab87a57533b80c2bb4b3930a5.php +++ /dev/null @@ -1,74 +0,0 @@ -getModalAlignment(); - $actionIsModalAutofocused = $action->isModalAutofocused(); - $actionHasModalCloseButton = $action->hasModalCloseButton(); - $actionIsModalClosedByClickingAway = $action->isModalClosedByClickingAway(); - $actionIsModalClosedByEscaping = $action->isModalClosedByEscaping(); - $actionModalDescription = $action->getModalDescription(); - $actionExtraModalWindowAttributeBag = $action->getExtraModalWindowAttributeBag(); - $actionModalFooterActions = $action->getVisibleModalFooterActions(); - $actionModalFooterActionsAlignment = $action->getModalFooterActionsAlignment(); - $actionModalHeading = $action->getModalHeading(); - $actionModalIcon = $action->getModalIcon(); - $actionModalIconColor = $action->getModalIconColor(); - $actionModalId = "fi-{$this->getId()}-action-{$action->getNestingIndex()}"; - $actionIsModalSlideOver = $action->isModalSlideOver(); - $actionIsModalFooterSticky = $action->isModalFooterSticky(); - $actionIsModalHeaderSticky = $action->isModalHeaderSticky(); - $actionModalWidth = $action->getModalWidth(); - $actionLivewireCallMountedActionName = $action->hasFormWrapper() ? $action->getLivewireCallMountedActionName() : null; - $actionModalWireKey = "{$this->getId()}.actions.{$action->getName()}.modal"; -?> - - - - 'filament::components.modal.index','data' => ['alignment' => $actionModalAlignment,'autofocus' => $actionIsModalAutofocused,'closeButton' => $actionHasModalCloseButton,'closeByClickingAway' => $actionIsModalClosedByClickingAway,'closeByEscaping' => $actionIsModalClosedByEscaping,'description' => $actionModalDescription,'extraModalWindowAttributeBag' => $actionExtraModalWindowAttributeBag,'footerActions' => $actionModalFooterActions,'footerActionsAlignment' => $actionModalFooterActionsAlignment,'heading' => $actionModalHeading,'icon' => $actionModalIcon,'iconColor' => $actionModalIconColor,'id' => $actionModalId,'slideOver' => $actionIsModalSlideOver,'stickyFooter' => $actionIsModalFooterSticky,'stickyHeader' => $actionIsModalHeaderSticky,'width' => $actionModalWidth,'wire:key' => $actionModalWireKey,'wire:submit.prevent' => $actionLivewireCallMountedActionName,'xOn:modalClosed' => 'if ($event.detail.id === ' . \Illuminate\Support\Js::from($actionModalId) . ') $wire.unmountAction(false)']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::modal'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['alignment' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($actionModalAlignment),'autofocus' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($actionIsModalAutofocused),'close-button' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($actionHasModalCloseButton),'close-by-clicking-away' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($actionIsModalClosedByClickingAway),'close-by-escaping' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($actionIsModalClosedByEscaping),'description' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($actionModalDescription),'extra-modal-window-attribute-bag' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($actionExtraModalWindowAttributeBag),'footer-actions' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($actionModalFooterActions),'footer-actions-alignment' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($actionModalFooterActionsAlignment),'heading' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($actionModalHeading),'icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($actionModalIcon),'icon-color' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($actionModalIconColor),'id' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($actionModalId),'slide-over' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($actionIsModalSlideOver),'sticky-footer' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($actionIsModalFooterSticky),'sticky-header' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($actionIsModalHeaderSticky),'width' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($actionModalWidth),'wire:key' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($actionModalWireKey),'wire:submit.prevent' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($actionLivewireCallMountedActionName),'x-on:modal-closed' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute('if ($event.detail.id === ' . \Illuminate\Support\Js::from($actionModalId) . ') $wire.unmountAction(false)')]); ?> - $action])); ?> - - - getModalContent()); ?> - - - $action])); ?> - - - mountedActionHasSchema(mountedAction: $action)): ?> - $action])); ?> - - - getMountedActionSchema(mountedAction: $action)); ?> - - - $action])); ?> - - - - $action])); ?> - - - getModalContentFooter()); ?> - - - $action])); ?> - - renderComponent(); ?> - - - - - - - - - - \ No newline at end of file diff --git a/storage/framework/views/0b43769f58139770b64ab9dccb89db6a.blade.php b/storage/framework/views/0b43769f58139770b64ab9dccb89db6a.blade.php deleted file mode 100644 index 0f29d46..0000000 --- a/storage/framework/views/0b43769f58139770b64ab9dccb89db6a.blade.php +++ /dev/null @@ -1,6 +0,0 @@ -getAttributes()))->mapWithKeys(function ($value, $key) { return [Illuminate\Support\Str::camel(str_replace([':', '.'], ' ', $key)) => $value]; })->all(), EXTR_SKIP); ?> -@props(['field','inlineLabelVerticalAlignment']) - -{{ $labelPrefix }} -{{ $slot ?? "" }} - \ No newline at end of file diff --git a/storage/framework/views/0bcfbbb024ca890265d0c94b4bc8e9c5.php b/storage/framework/views/0bcfbbb024ca890265d0c94b4bc8e9c5.php deleted file mode 100644 index 4594361..0000000 --- a/storage/framework/views/0bcfbbb024ca890265d0c94b4bc8e9c5.php +++ /dev/null @@ -1,23 +0,0 @@ -
merge([ - 'id' => $getId(), - 'wire:submit' => $getLivewireSubmitHandler(), - ], escape: false) - ->merge($getExtraAttributes(), escape: false) - ->class([ - 'fi-sc-form', - 'fi-dense' => $isDense(), - ])); ?> - -> - - - - - - - - -
- \ No newline at end of file diff --git a/storage/framework/views/0bd5f576a924b89ab17a30cf16e6ad08.php b/storage/framework/views/0bd5f576a924b89ab17a30cf16e6ad08.php deleted file mode 100644 index 8806f75..0000000 --- a/storage/framework/views/0bd5f576a924b89ab17a30cf16e6ad08.php +++ /dev/null @@ -1,79 +0,0 @@ -getComponents(); - $alignment = $getAlignment(); - $isFullWidth = $isFullWidth(); - $isSticky = $isSticky(); - $verticalAlignment = $getVerticalAlignment(); - - if (! $verticalAlignment instanceof VerticalAlignment) { - $verticalAlignment = filled($verticalAlignment) ? (VerticalAlignment::tryFrom($verticalAlignment) ?? $verticalAlignment) : null; - } -?> - -
- x-data="filamentActionsSchemaComponent()" - x-intersect:enter.half="disableSticky" - x-intersect:leave="enableSticky" - x-bind:class="{ 'fi-sticky': isSticky }" - - merge([ - 'id' => $getId(), - ], escape: false) - ->merge($getExtraAttributes(), escape: false) - ->class([ - 'fi-sc-actions', - ($verticalAlignment instanceof VerticalAlignment) ? "fi-vertical-align-{$verticalAlignment->value}" : $verticalAlignment, - ])); ?> - -> - -
- - - -
- - -
- - - -
- - - toHtmlString()): ?> - - - - - - - 'filament::components.actions','data' => ['actions' => $actions,'alignment' => $alignment,'fullWidth' => $isFullWidth,'xBind:style' => $isSticky ? 'isSticky ? `width: ${width}px;` : \'\'' : null]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::actions'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['actions' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($actions),'alignment' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($alignment),'full-width' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isFullWidth),'x-bind:style' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isSticky ? 'isSticky ? `width: ${width}px;` : \'\'' : null)]); ?> -renderComponent(); ?> - - - - - - - - - - - toHtmlString()): ?> - - - -
- \ No newline at end of file diff --git a/storage/framework/views/0ced4ab8b623c6535cabe6077207c3f3.php b/storage/framework/views/0ced4ab8b623c6535cabe6077207c3f3.php deleted file mode 100644 index dfad156..0000000 --- a/storage/framework/views/0ced4ab8b623c6535cabe6077207c3f3.php +++ /dev/null @@ -1,49 +0,0 @@ - true, - 'size' => 'md', -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'circular' => true, - 'size' => 'md', -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - -class([ - 'fi-avatar', - 'fi-circular' => $circular, - match ($size) { - 'sm', 'md', 'lg' => "fi-size-{$size}", - default => $size, - }, - ])); ?> - -/> - \ No newline at end of file diff --git a/storage/framework/views/0d11b7694f7a419aa9ed2bbbdf2dda56.php b/storage/framework/views/0d11b7694f7a419aa9ed2bbbdf2dda56.php deleted file mode 100644 index f10bc9a..0000000 --- a/storage/framework/views/0d11b7694f7a419aa9ed2bbbdf2dda56.php +++ /dev/null @@ -1,354 +0,0 @@ - - - Alignment::Start, - 'ariaLabelledby' => null, - 'autofocus' => \Filament\Support\View\Components\ModalComponent::$isAutofocused, - 'closeButton' => \Filament\Support\View\Components\ModalComponent::$hasCloseButton, - 'closeByClickingAway' => \Filament\Support\View\Components\ModalComponent::$isClosedByClickingAway, - 'closeByEscaping' => \Filament\Support\View\Components\ModalComponent::$isClosedByEscaping, - 'closeEventName' => 'close-modal', - 'closeQuietlyEventName' => 'close-modal-quietly', - 'description' => null, - 'extraModalWindowAttributeBag' => null, - 'footer' => null, - 'footerActions' => [], - 'footerActionsAlignment' => Alignment::Start, - 'header' => null, - 'heading' => null, - 'icon' => null, - 'iconAlias' => null, - 'iconColor' => 'primary', - 'id' => null, - 'openEventName' => 'open-modal', - 'slideOver' => false, - 'stickyFooter' => false, - 'stickyHeader' => false, - 'teleport' => null, - 'trigger' => null, - 'visible' => true, - 'width' => 'sm', -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'alignment' => Alignment::Start, - 'ariaLabelledby' => null, - 'autofocus' => \Filament\Support\View\Components\ModalComponent::$isAutofocused, - 'closeButton' => \Filament\Support\View\Components\ModalComponent::$hasCloseButton, - 'closeByClickingAway' => \Filament\Support\View\Components\ModalComponent::$isClosedByClickingAway, - 'closeByEscaping' => \Filament\Support\View\Components\ModalComponent::$isClosedByEscaping, - 'closeEventName' => 'close-modal', - 'closeQuietlyEventName' => 'close-modal-quietly', - 'description' => null, - 'extraModalWindowAttributeBag' => null, - 'footer' => null, - 'footerActions' => [], - 'footerActionsAlignment' => Alignment::Start, - 'header' => null, - 'heading' => null, - 'icon' => null, - 'iconAlias' => null, - 'iconColor' => 'primary', - 'id' => null, - 'openEventName' => 'open-modal', - 'slideOver' => false, - 'stickyFooter' => false, - 'stickyHeader' => false, - 'teleport' => null, - 'trigger' => null, - 'visible' => true, - 'width' => 'sm', -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - -get('wire:submit.prevent'); - $attributes = $attributes->except(['wire:submit.prevent']); -?> - - - '; ?> - - - -
attributes->get('disabled')): ?> - - x-on:click="$dispatch(toHtml() ?>, { id: toHtml() ?> })" - - x-on:click="$el.nextElementSibling.dispatchEvent(new CustomEvent(toHtml() ?>))" - - - attributes->except(['disabled'])->class(['fi-modal-trigger'])); ?> - - > - - -
- - - - "; ?> - - - - -
- aria-labelledby="" - - aria-labelledby="" - - aria-modal="true" - id="" - role="dialog" - x-data="filamentModal({ - id: toHtml() ?>, - })" - - data-fi-modal-id="" - x-on:.window="if (($event.detail.id === toHtml() ?>) && isOpen) close()" - x-on:.window="if (($event.detail.id === toHtml() ?>) && isOpen) closeQuietly()" - x-on:.window="if (($event.detail.id === toHtml() ?>) && (! isOpen)) open()" - - x-on:.stop="if (isOpen) close()" - x-on:.stop="if (isOpen) closeQuietly()" - x-on:.stop="if (! isOpen) open()" - - x-bind:class="{ - 'fi-modal-open': isOpen, - }" - x-cloak - x-show="isOpen" - x-trap.noscroll="isOpen" - class([ - 'fi-modal', - 'fi-absolute-positioning-context', - 'fi-modal-slide-over' => $slideOver, - 'fi-width-screen' => $width === Width::Screen, - ])); ?> - -> - - -
- x-on:click.self="" - - class=" $closeByClickingAway, - ]); ?>" - > - < - - - x-on:keydown.window.escape="" - - x-show="isWindowVisible" - x-transition:enter="fi-transition-enter" - x-transition:leave="fi-transition-leave" - - x-transition:enter-start="fi-transition-enter-start" - x-transition:enter-end="fi-transition-enter-end" - x-transition:leave-start="fi-transition-leave-start" - x-transition:leave-end="fi-transition-leave-end" - - - wire:submit.prevent="" - - - wire:key="getId()}." : ''); ?>modal..window" - - class([ - 'fi-modal-window', - 'fi-modal-window-has-close-btn' => $closeButton, - 'fi-modal-window-has-content' => $hasContent, - 'fi-modal-window-has-footer' => $hasFooter, - 'fi-modal-window-has-icon' => $hasIcon, - 'fi-modal-window-has-sticky-header' => $stickyHeader, - 'fi-hidden' => ! $visible, - ($alignment instanceof Alignment) ? "fi-align-{$alignment->value}" : null, - ($width instanceof Width) ? "fi-width-{$width->value}" : (is_string($width) ? $width : null), - ])); ?> - - > - -
- wire:key="getId()}." : ''); ?>modal..header" - - class=" $stickyHeader, - 'fi-vertical-align-center' => $hasIcon && $hasHeading && (! $hasDescription) && in_array($alignment, [Alignment::Start, Alignment::Left]), - ]); ?>" - > - - - - 'filament::components.icon-button','data' => ['color' => 'gray','icon' => \Filament\Support\Icons\Heroicon::OutlinedXMark,'iconAlias' => \Filament\Support\View\SupportIconAlias::MODAL_CLOSE_BUTTON,'iconSize' => 'lg','label' => __('filament::components/modal.actions.close.label'),'tabindex' => '-1','xOn:click' => $closeEventHandler,'class' => 'fi-modal-close-btn']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::icon-button'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['color' => 'gray','icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(\Filament\Support\Icons\Heroicon::OutlinedXMark),'icon-alias' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(\Filament\Support\View\SupportIconAlias::MODAL_CLOSE_BUTTON),'icon-size' => 'lg','label' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('filament::components/modal.actions.close.label')),'tabindex' => '-1','x-on:click' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($closeEventHandler),'class' => 'fi-modal-close-btn']); ?> -renderComponent(); ?> - - - - - - - - - - - - - - - - -
-
color(IconComponent::class, $iconColor)->class(['fi-modal-icon-bg'])); ?> - - > - - -
-
- - -
-

- - -

- - -

- - -

- -
- -
- - - -
- wire:key="getId()}." : ''); ?>modal..content" - - class="fi-modal-content" - > - - -
- - - -
- wire:key="getId()}." : ''); ?>modal..footer" - - class=" $stickyFooter, - ($footerActionsAlignment instanceof Alignment) ? "fi-align-{$footerActionsAlignment->value}" : null, - ]); ?>" - > - - - - - - -
- - > -
-
- - - '; ?> - - - - - - '; ?> - - - - \ No newline at end of file diff --git a/storage/framework/views/0ff4c44d6c7a7dc85eddb6c22b81e0f3.php b/storage/framework/views/0ff4c44d6c7a7dc85eddb6c22b81e0f3.php new file mode 100644 index 0000000..7882680 --- /dev/null +++ b/storage/framework/views/0ff4c44d6c7a7dc85eddb6c22b81e0f3.php @@ -0,0 +1,424 @@ + + +startSection('title', 'Order #' . $order->order_number . ' - Order Details'); ?> + +startSection('styles'); ?> + +stopSection(); ?> + +startSection('content'); ?> +
+
+

Order Details

+

Order #order_number); ?>

+
+ +
+ +
+ +
+

Order Status

+
+ + status))); ?> + + +

+ Ordered on created_at->format('d M Y \a\t H:i')); ?> + +

+
+
+ + +
+

Order Items

+ items; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $item): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> +
+
+
+
product->name); ?>
+
type); ?>
+ length): ?> +
Length: length); ?>m
+ + width && $item->height): ?> +
Dimensions: width); ?>m × height); ?>m
+ +
+
+
R price, 2)); ?>
+
Qty: quantity); ?>
+
+
+
+ popLoop(); $loop = $__env->getLastLoop(); ?> +
+ + +
+

Delivery Details

+ +
+

Customer Information

+
+
+
Name:
+
customer_name); ?>
+
+
+
Email:
+
customer_email); ?>
+
+
+
Phone:
+
customer_phone); ?>
+
+
+
+ +
+

Shipping Address

+

shipping_address); ?>

+
+ + notes): ?> +
+

Order Notes

+

notes); ?>

+
+ +
+
+ + +
+ +
+

Order Summary

+ +
+
+ Subtotal: + R total, 2)); ?> +
+
+ Total: + R total, 2)); ?> +
+
+ +

Payment Status

+ +
+
+ Payment + payment_status)); ?> +
+
+ + + payment_status === 'pending' && $order->yoco_redirect_url): ?> +
+
+

Payment Required

+

Click below to complete your payment.

+ + Pay Now + +
+
+
Amount Due
+
R total, 2)); ?>
+
+
+ payment_status === 'failed' && $order->yoco_redirect_url): ?> +
+
+

Payment Failed

+

Please try your payment again.

+ + Retry Payment + +
+
+
Amount Due
+
R total, 2)); ?>
+
+
+ payment_status === 'paid'): ?> +
+
+
+
+

Payment Received

+

Thank you! Your order is being processed.

+
+
+
+ +
+ + +
+ + ← Back to Orders + +
+
+
+
+stopSection(); ?> + +make('layouts.app', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?> \ No newline at end of file diff --git a/storage/framework/views/1110161c070d609557c8a6c1fcc48147.php b/storage/framework/views/1110161c070d609557c8a6c1fcc48147.php deleted file mode 100644 index d1f3f43..0000000 --- a/storage/framework/views/1110161c070d609557c8a6c1fcc48147.php +++ /dev/null @@ -1,46 +0,0 @@ - [], - 'columnStart' => [], - 'height' => null, -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'columnSpan' => [], - 'columnStart' => [], - 'height' => null, -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - -
gridColumn($columnSpan, $columnStart) - ->class(['fi-section fi-loading-section']) - ->style(['height: ' . ($height ?? '8rem')])); ?> - ->
- \ No newline at end of file diff --git a/storage/framework/views/1130d2b8cd83a5966be7850e2d899795.php b/storage/framework/views/1130d2b8cd83a5966be7850e2d899795.php deleted file mode 100644 index efb409a..0000000 --- a/storage/framework/views/1130d2b8cd83a5966be7850e2d899795.php +++ /dev/null @@ -1,147 +0,0 @@ -getRenderHookScopes(); - $maxContentWidth ??= (filament()->getSimplePageMaxContentWidth() ?? Width::Large); - - if (is_string($maxContentWidth)) { - $maxContentWidth = Width::tryFrom($maxContentWidth) ?? $maxContentWidth; - } -?> - - - - 'filament-panels::components.layout.base','data' => ['livewire' => $livewire]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-panels::layout.base'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['livewire' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($livewire)]); ?> - null, - 'heading' => null, - 'subheading' => null, - ])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'after' => null, - 'heading' => null, - 'subheading' => null, - ]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - -
- - - - auth()->check()): ?> -
- hasDatabaseNotifications()): ?> - filament()->hasLazyLoadedDatabaseNotifications(), - 'position' => \Filament\Enums\DatabaseNotificationsPosition::Topbar, - ]); - -$key = null; - -$key ??= \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::generateKey('lw-3844726845-0', null); - -$__html = app('livewire')->mount($__name, $__params, $key); - -echo $__html; - -unset($__html); -unset($__name); -unset($__params); -unset($__split); -if (isset($__slots)) unset($__slots); -?> - - - hasUserMenu()): ?> - mount($__name, $__params, $key); - -echo $__html; - -unset($__html); -unset($__name); -unset($__params); -unset($__split); -if (isset($__slots)) unset($__slots); -?> - -
- - -
-
value}" : $maxContentWidth, - ]); ?>" - > - - -
-
- - - - - - -
- renderComponent(); ?> - - - - - - - - - - \ No newline at end of file diff --git a/storage/framework/views/12dd7925def29d9b0f42cd5bfa646f44.php b/storage/framework/views/12dd7925def29d9b0f42cd5bfa646f44.php deleted file mode 100644 index 2216392..0000000 --- a/storage/framework/views/12dd7925def29d9b0f42cd5bfa646f44.php +++ /dev/null @@ -1,53 +0,0 @@ -getAttributes()))->mapWithKeys(function ($value, $key) { return [Illuminate\Support\Str::camel(str_replace([':', '.'], ' ', $key)) => $value]; })->all(), EXTR_SKIP); ?> -all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter((['field','labelTag']), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - - - 'filament-forms::components.field-wrapper','data' => ['field' => $field,'labelTag' => $labelTag]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-forms::field-wrapper'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['field' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($field),'label-tag' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($labelTag)]); ?> - - - - renderComponent(); ?> - - - - - - - - - \ No newline at end of file diff --git a/storage/framework/views/1575aae6437543bfaf50d3515c944142.php b/storage/framework/views/1575aae6437543bfaf50d3515c944142.php deleted file mode 100644 index c51e9e7..0000000 --- a/storage/framework/views/1575aae6437543bfaf50d3515c944142.php +++ /dev/null @@ -1,5 +0,0 @@ -
class(['fi-dropdown-list'])); ?>> - - -
- \ No newline at end of file diff --git a/storage/framework/views/188f70ecf2f26b3a12d26b9291ea91c9.php b/storage/framework/views/188f70ecf2f26b3a12d26b9291ea91c9.php deleted file mode 100644 index eefa3fb..0000000 --- a/storage/framework/views/188f70ecf2f26b3a12d26b9291ea91c9.php +++ /dev/null @@ -1,17 +0,0 @@ - viewContext->mergeIntoNewEnvironment($__env); ?> - - startComponent($layout->view, $layout->params); ?> - slot($layout->slotOrSection); ?> - - - endSlot(); ?> - - viewContext->slots[-1] ?? [] as $name => $slot) { - $__env->slot($name, attributes: $slot->attributes->getAttributes()); - echo $slot->toHtml(); - $__env->endSlot(); - } - ?> - renderComponent(); ?> \ No newline at end of file diff --git a/storage/framework/views/19b3c4acfafb733d6a4d95652d5529f8.php b/storage/framework/views/19b3c4acfafb733d6a4d95652d5529f8.php deleted file mode 100644 index 6edcb3e..0000000 --- a/storage/framework/views/19b3c4acfafb733d6a4d95652d5529f8.php +++ /dev/null @@ -1,135 +0,0 @@ -merge($extraAlpineAttributes, escape: false) - ->merge([ - 'autocapitalize' => $getAutocapitalize(), - 'autocomplete' => $getAutocomplete(), - 'autofocus' => $isAutofocused(), - 'disabled' => $isDisabled, - 'id' => $id, - 'inlinePrefix' => $isPrefixInline && (count($prefixActions) || $prefixIcon || filled($prefixLabel)), - 'inlineSuffix' => $isSuffixInline && (count($suffixActions) || $suffixIcon || filled($suffixLabel)), - 'inputmode' => $getInputMode(), - 'list' => $datalistOptions ? $id . '-list' : null, - 'max' => (! $isConcealed) ? $getMaxValue() : null, - 'maxlength' => (! $isConcealed) ? $getMaxLength() : null, - 'min' => (! $isConcealed) ? $getMinValue() : null, - 'minlength' => (! $isConcealed) ? $getMinLength() : null, - 'placeholder' => filled($placeholder) ? e($placeholder) : null, - 'readonly' => $isReadOnly(), - 'required' => $isRequired() && (! $isConcealed), - 'step' => $getStep(), - 'type' => $type, - $applyStateBindingModifiers('wire:model') => $statePath, - 'x-bind:type' => $isPasswordRevealable ? 'isPasswordRevealed ? \'text\' : \'password\'' : null, - 'x-mask' . ($mask instanceof \Filament\Support\RawJs ? ':dynamic' : '') => filled($mask) ? $mask : null, - ], escape: false) - ->class([ - 'fi-revealable' => $isPasswordRevealable, - ]); -?> - - - - $fieldWrapperView] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('dynamic-component'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\DynamicComponent::ignoredParameterNames()); ?> - -withAttributes(['field' => $field,'inline-label-vertical-alignment' => \Filament\Support\Enums\VerticalAlignment::Center]); ?> - - - 'filament::components.input.wrapper','data' => ['disabled' => $isDisabled,'inlinePrefix' => $isPrefixInline,'inlineSuffix' => $isSuffixInline,'prefix' => $prefixLabel,'prefixActions' => $prefixActions,'prefixIcon' => $prefixIcon,'prefixIconColor' => $prefixIconColor,'suffix' => $suffixLabel,'suffixActions' => $suffixActions,'suffixIcon' => $suffixIcon,'suffixIconColor' => $suffixIconColor,'valid' => ! $errors->has($statePath),'xData' => $xData,'attributes' => - \Filament\Support\prepare_inherited_attributes($extraAttributeBag) - ->class(['fi-fo-text-input']) - ]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::input.wrapper'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['disabled' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isDisabled),'inline-prefix' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isPrefixInline),'inline-suffix' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isSuffixInline),'prefix' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($prefixLabel),'prefix-actions' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($prefixActions),'prefix-icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($prefixIcon),'prefix-icon-color' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($prefixIconColor),'suffix' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($suffixLabel),'suffix-actions' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($suffixActions),'suffix-icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($suffixIcon),'suffix-icon-color' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($suffixIconColor),'valid' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(! $errors->has($statePath)),'x-data' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($xData),'attributes' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute( - \Filament\Support\prepare_inherited_attributes($extraAttributeBag) - ->class(['fi-fo-text-input']) - )]); ?> - class([ - 'fi-input', - 'fi-input-has-inline-prefix' => $isPrefixInline && (count($prefixActions) || $prefixIcon || filled($prefixLabel)), - 'fi-input-has-inline-suffix' => $isSuffixInline && (count($suffixActions) || $suffixIcon || filled($suffixLabel)), - ])); ?> - - /> - renderComponent(); ?> - - - - - - - - - - - - - addLoop($__currentLoopData); foreach($__currentLoopData as $option): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - - popLoop(); $loop = $__env->getLastLoop(); ?> - - - renderComponent(); ?> - - - - - - - - - - \ No newline at end of file diff --git a/storage/framework/views/1c1a588d1c9b277d3ae21decb63dcf81.php b/storage/framework/views/1c1a588d1c9b277d3ae21decb63dcf81.php deleted file mode 100644 index 14cf490..0000000 --- a/storage/framework/views/1c1a588d1c9b277d3ae21decb63dcf81.php +++ /dev/null @@ -1,124 +0,0 @@ - - - '500ms', - 'onBlur' => false, - 'placeholder' => __('filament-tables::table.fields.search.placeholder'), - 'wireModel' => 'tableSearch', -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'debounce' => '500ms', - 'onBlur' => false, - 'placeholder' => __('filament-tables::table.fields.search.placeholder'), - 'wireModel' => 'tableSearch', -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - - - -
class(['fi-ta-search-field'])); ?> - -> - - - - - 'filament::components.input.wrapper','data' => ['inlinePrefix' => true,'prefixIcon' => \Filament\Support\Icons\Heroicon::MagnifyingGlass,'prefixIconAlias' => \Filament\Tables\View\TablesIconAlias::SEARCH_FIELD,'wire:target' => $wireModel]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::input.wrapper'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['inline-prefix' => true,'prefix-icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(\Filament\Support\Icons\Heroicon::MagnifyingGlass),'prefix-icon-alias' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(\Filament\Tables\View\TablesIconAlias::SEARCH_FIELD),'wire:target' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($wireModel)]); ?> - - - 'filament::components.input.index','data' => ['attributes' => - (new ComponentAttributeBag)->merge([ - 'autocomplete' => 'off', - 'inlinePrefix' => true, - 'maxlength' => 1000, - 'placeholder' => $placeholder, - 'type' => 'search', - 'wire:key' => $this->getId() . '.table.' . $wireModel . '.field.input', - $wireModelAttribute => $wireModel, - 'x-bind:id' => '$id(\'input\')', - 'x-on:keyup' => 'if ($event.key === \'Enter\') { $wire.$refresh() }', - ], escape: false) - ]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::input'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['attributes' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute( - (new ComponentAttributeBag)->merge([ - 'autocomplete' => 'off', - 'inlinePrefix' => true, - 'maxlength' => 1000, - 'placeholder' => $placeholder, - 'type' => 'search', - 'wire:key' => $this->getId() . '.table.' . $wireModel . '.field.input', - $wireModelAttribute => $wireModel, - 'x-bind:id' => '$id(\'input\')', - 'x-on:keyup' => 'if ($event.key === \'Enter\') { $wire.$refresh() }', - ], escape: false) - )]); ?> -renderComponent(); ?> - - - - - - - - - - renderComponent(); ?> - - - - - - - - - -
- \ No newline at end of file diff --git a/storage/framework/views/27dcc0c718a54e1b25f82047ae88c072.php b/storage/framework/views/27dcc0c718a54e1b25f82047ae88c072.php deleted file mode 100644 index b429d51..0000000 --- a/storage/framework/views/27dcc0c718a54e1b25f82047ae88c072.php +++ /dev/null @@ -1,76 +0,0 @@ - - - [], -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'breadcrumbs' => [], -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - - - \ No newline at end of file diff --git a/storage/framework/views/2b58ef18ac3a69be239b865277695457.php b/storage/framework/views/2b58ef18ac3a69be239b865277695457.php deleted file mode 100644 index f4eb09b..0000000 --- a/storage/framework/views/2b58ef18ac3a69be239b865277695457.php +++ /dev/null @@ -1,53 +0,0 @@ -getAttributes()))->mapWithKeys(function ($value, $key) { return [Illuminate\Support\Str::camel(str_replace([':', '.'], ' ', $key)) => $value]; })->all(), EXTR_SKIP); ?> -all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter((['field','inlineLabelVerticalAlignment']), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - - - 'filament-forms::components.field-wrapper','data' => ['field' => $field,'inlineLabelVerticalAlignment' => $inlineLabelVerticalAlignment]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-forms::field-wrapper'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['field' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($field),'inline-label-vertical-alignment' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($inlineLabelVerticalAlignment)]); ?> - slot('labelPrefix', null, []); ?> endSlot(); ?> - - - renderComponent(); ?> - - - - - - - - - \ No newline at end of file diff --git a/storage/framework/views/2b5f4cc9a13273a6143a686c2fa1d3b4.php b/storage/framework/views/2b5f4cc9a13273a6143a686c2fa1d3b4.php deleted file mode 100644 index 608483f..0000000 --- a/storage/framework/views/2b5f4cc9a13273a6143a686c2fa1d3b4.php +++ /dev/null @@ -1,23 +0,0 @@ - - - 'filament-panels::components.page.simple','data' => []] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-panels::page.simple'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes([]); ?> - content); ?> - - renderComponent(); ?> - - - - - - - - - - \ No newline at end of file diff --git a/storage/framework/views/2b91b9a791ff7f292edb8c55adaa6117.php b/storage/framework/views/2b91b9a791ff7f292edb8c55adaa6117.php deleted file mode 100644 index e23cedf..0000000 --- a/storage/framework/views/2b91b9a791ff7f292edb8c55adaa6117.php +++ /dev/null @@ -1,2821 +0,0 @@ -getAllTableSummaryQuery()); - $header = $getHeader(); - $headerActions = array_filter( - $getHeaderActions(), - fn (\Filament\Actions\Action | \Filament\Actions\ActionGroup $action): bool => $action->isVisible(), - ); - $headerActionsPosition = $getHeaderActionsPosition(); - $heading = $getHeading(); - $group = $getGrouping(); - $toolbarActions = array_filter( - $getToolbarActions(), - fn (\Filament\Actions\Action | \Filament\Actions\ActionGroup $action): bool => $action->isVisible(), - ); - - $hasNonBulkToolbarAction = false; - - foreach ($toolbarActions as $toolbarAction) { - if ($toolbarAction instanceof \Filament\Actions\BulkActionGroup) { - continue; - } - - if ($toolbarAction instanceof \Filament\Actions\ActionGroup) { - if ($toolbarAction->hasNonBulkAction()) { - $hasNonBulkToolbarAction = true; - - break; - } - - continue; - } - - if (! $toolbarAction->isBulk()) { - $hasNonBulkToolbarAction = true; - - break; - } - } - - $groups = $getGroups(); - $description = $getDescription(); - $isGroupsOnly = $isGroupsOnly() && $group; - $isReorderable = $isReorderable(); - $isReordering = $isReordering(); - $areGroupingSettingsVisible = (! $isReordering) && count($groups) && (! $areGroupingSettingsHidden()); - $isGroupingDirectionSettingHidden = $isGroupingDirectionSettingHidden(); - $areGroupsCollapsedByDefault = $areGroupsCollapsedByDefault(); - $areGroupingSettingsInDropdownOnDesktop = $areGroupingSettingsInDropdownOnDesktop(); - $isColumnSearchVisible = $isSearchableByColumn(); - $isGlobalSearchVisible = $isSearchable(); - $isSearchOnBlur = $isSearchOnBlur(); - $isSelectionEnabled = $isSelectionEnabled() && (! $isGroupsOnly); - $selectsCurrentPageOnly = $selectsCurrentPageOnly(); - $selectsGroupsOnly = $selectsGroupsOnly(); - $recordCheckboxPosition = $getRecordCheckboxPosition(); - $isStriped = $isStriped(); - $isLoaded = $isLoaded(); - $hasFilters = $isFilterable(); - $filtersLayout = $getFiltersLayout(); - $filtersTriggerAction = $getFiltersTriggerAction(); - $hasFiltersDialog = $hasFilters && in_array($filtersLayout, [FiltersLayout::Dropdown, FiltersLayout::Modal]); - $hasFiltersAboveContent = $hasFilters && in_array($filtersLayout, [FiltersLayout::AboveContent, FiltersLayout::AboveContentCollapsible]); - $hasFiltersBelowContent = $hasFilters && ($filtersLayout === FiltersLayout::BelowContent); - $hasFiltersBeforeContent = $hasFilters && in_array($filtersLayout, [FiltersLayout::BeforeContent, FiltersLayout::BeforeContentCollapsible]); - $hasFiltersAfterContent = $hasFilters && in_array($filtersLayout, [FiltersLayout::AfterContent, FiltersLayout::AfterContentCollapsible]); - $hasCollapsibleFilters = $hasFilters && in_array($filtersLayout, [FiltersLayout::AboveContentCollapsible, FiltersLayout::BeforeContentCollapsible, FiltersLayout::AfterContentCollapsible]); - $hasFiltersTrigger = $hasFilters && ($hasFiltersDialog || $hasFiltersBeforeContent || $hasFiltersAfterContent); - $filtersFormMaxHeight = $getFiltersFormMaxHeight(); - $hasColumnManagerDropdown = $hasColumnManager(); - $hasReorderableColumns = $hasReorderableColumns(); - $hasToggleableColumns = $hasToggleableColumns(); - $columnManagerApplyAction = $getColumnManagerApplyAction(); - $columnManagerTriggerAction = $getColumnManagerTriggerAction(); - $hasHeader = $header || $heading || $description || ($headerActions && (! $isReordering)) || $isReorderable || $areGroupingSettingsVisible || $isGlobalSearchVisible || $hasFilters || count($filterIndicators) || $hasColumnManagerDropdown; - $hasHeaderToolbar = $isReorderable || $areGroupingSettingsVisible || $isGlobalSearchVisible || $hasFiltersTrigger || $hasColumnManagerDropdown; - $headingTag = $getHeadingTag(); - $secondLevelHeadingTag = $heading ? $getHeadingTag(1) : $headingTag; - $pluralModelLabel = $getPluralModelLabel(); - $records = $isLoaded ? $getRecords() : null; - $hasPagination = (($records instanceof \Illuminate\Contracts\Pagination\Paginator) || ($records instanceof \Illuminate\Contracts\Pagination\CursorPaginator)) && ((! ($records instanceof \Illuminate\Contracts\Pagination\LengthAwarePaginator)) || $records->total()); - $hasEmptyState = ($records !== null) && ! count($records); - $hasContentLayout = $content || $hasColumnsLayout; - $searchDebounce = $getSearchDebounce(); - $allSelectableRecordsCount = ($isSelectionEnabled && $isLoaded) ? $getAllSelectableRecordsCount() : null; - $columnsCount = count($columns); - $reorderRecordsTriggerAction = $getReorderRecordsTriggerAction($isReordering); - $page = $this->getTablePage(); - $defaultSortOptionLabel = $getDefaultSortOptionLabel(); - $sortDirection = $getSortDirection(); - - if (count($defaultRecordActions) && (! $isReordering)) { - $columnsCount++; - } - - if ($isSelectionEnabled || $isReordering) { - $columnsCount++; - } - - if ($group) { - $groupedSummarySelectedState = $this->getTableSummarySelectedState($this->getAllTableSummaryQuery(), modifyQueryUsing: fn (\Illuminate\Database\Query\Builder $query) => $group->groupQuery($query, model: $getQuery()->getModel())); - } - - if (is_string($filtersFormWidth)) { - $filtersFormWidth = Width::tryFrom($filtersFormWidth) ?? $filtersFormWidth; - } -?> - -
- wire:init="loadTable" - - x-data="filamentTable({ - areGroupsCollapsedByDefault: toHtml() ?>, - canTrackDeselectedRecords: toHtml() ?>, - currentSelectionLivewireProperty: toHtml() ?>, - maxSelectableRecords: toHtml() ?>, - selectsCurrentPageOnly: toHtml() ?>, - $wire, - })" - class([ - 'fi-ta', - 'fi-loading' => $records === null, - ])); ?> - -> - - -
- -
value}" : (is_string($filtersFormWidth) ? $filtersFormWidth : null), - ]); ?>" - > - - - 'filament-tables::components.filters','data' => ['applyAction' => $filtersApplyAction,'form' => $filtersForm,'headingTag' => $secondLevelHeadingTag,'class' => 'fi-ta-filters-before-content','resetActionPosition' => $filtersResetActionPosition]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-tables::filters'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['apply-action' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersApplyAction),'form' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersForm),'heading-tag' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($secondLevelHeadingTag),'class' => 'fi-ta-filters-before-content','reset-action-position' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersResetActionPosition)]); ?> -renderComponent(); ?> - - - - - - - - - -
- - -
-
x-cloak - x-show="toHtml() ?> || toHtml() ?> || (getSelectedRecordsCount() && toHtml() ?>)" - class="fi-ta-header-ctn" - > - - - - - - - -
- -
- - < - - class="fi-ta-header-heading" - > - - - > - - - -

- - -

- -
- - - -
- addLoop($__currentLoopData); foreach($__currentLoopData as $action): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - - - popLoop(); $loop = $__env->getLastLoop(); ?> -
- -
- - - - - - -
- x-bind:class="{ 'fi-open': areFiltersOpen }" - - class="" - > - - - 'filament-tables::components.filters','data' => ['applyAction' => $filtersApplyAction,'form' => $filtersForm,'headingTag' => $secondLevelHeadingTag,'xCloak' => true,'xShow' => $hasCollapsibleFilters ? 'areFiltersOpen' : null,'resetActionPosition' => $filtersResetActionPosition]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-tables::filters'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['apply-action' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersApplyAction),'form' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersForm),'heading-tag' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($secondLevelHeadingTag),'x-cloak' => true,'x-show' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($hasCollapsibleFilters ? 'areFiltersOpen' : null),'reset-action-position' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersResetActionPosition)]); ?> -renderComponent(); ?> - - - - - - - - - - - - - badge($activeFiltersCount)); ?> - - - -
- - - - - -
x-cloak - x-show="toHtml() ?> || toHtml() ?> || (getSelectedRecordsCount() && toHtml() ?>)" - class="fi-ta-header-toolbar" - > - - - -
- - - - - - - - - - - - - addLoop($__currentLoopData); foreach($__currentLoopData as $action): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - - - popLoop(); $loop = $__env->getLastLoop(); ?> - - - - - - -
- - - 'filament::components.dropdown.index','data' => ['placement' => 'bottom-start','shift' => true,'width' => 'xs','wire:key' => ''.e($this->getId()).'.table.grouping','class' => \Illuminate\Support\Arr::toCssClasses([ - 'sm:fi-hidden' => ! $areGroupingSettingsInDropdownOnDesktop, - ])]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::dropdown'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['placement' => 'bottom-start','shift' => true,'width' => 'xs','wire:key' => ''.e($this->getId()).'.table.grouping','class' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(\Illuminate\Support\Arr::toCssClasses([ - 'sm:fi-hidden' => ! $areGroupingSettingsInDropdownOnDesktop, - ]))]); ?> - slot('trigger', null, []); ?> - - - endSlot(); ?> - -
- - - - - -
- renderComponent(); ?> - - - - - - - - - - - -
- - - - - -
- -
- - - - -
- - -
- - - - - - - - - 'filament-tables::components.search-field','data' => ['debounce' => $searchDebounce,'onBlur' => $isSearchOnBlur,'placeholder' => $searchPlaceholder]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-tables::search-field'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['debounce' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($searchDebounce),'on-blur' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isSearchOnBlur),'placeholder' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($searchPlaceholder)]); ?> -renderComponent(); ?> - - - - - - - - - - - - - - - - - isModalSlideOver()): ?> - getModalAlignment(); - $filtersTriggerActionIsModalAutofocused = $filtersTriggerAction->isModalAutofocused(); - $filtersTriggerActionHasModalCloseButton = $filtersTriggerAction->hasModalCloseButton(); - $filtersTriggerActionIsModalClosedByClickingAway = $filtersTriggerAction->isModalClosedByClickingAway(); - $filtersTriggerActionIsModalClosedByEscaping = $filtersTriggerAction->isModalClosedByEscaping(); - $filtersTriggerActionModalDescription = $filtersTriggerAction->getModalDescription(); - $filtersTriggerActionVisibleModalFooterActions = $filtersTriggerAction->getVisibleModalFooterActions(); - $filtersTriggerActionModalFooterActionsAlignment = $filtersTriggerAction->getModalFooterActionsAlignment(); - $filtersTriggerActionModalHeading = $filtersTriggerAction->getCustomModalHeading() ?? __('filament-tables::table.filters.heading'); - $filtersTriggerActionModalIcon = $filtersTriggerAction->getModalIcon(); - $filtersTriggerActionModalIconColor = $filtersTriggerAction->getModalIconColor(); - $filtersTriggerActionIsModalSlideOver = $filtersTriggerAction->isModalSlideOver(); - $filtersTriggerActionIsModalFooterSticky = $filtersTriggerAction->isModalFooterSticky(); - $filtersTriggerActionIsModalHeaderSticky = $filtersTriggerAction->isModalHeaderSticky(); - ?> - - - - 'filament::components.modal.index','data' => ['alignment' => $filtersTriggerActionModalAlignment,'autofocus' => $filtersTriggerActionIsModalAutofocused,'closeButton' => $filtersTriggerActionHasModalCloseButton,'closeByClickingAway' => $filtersTriggerActionIsModalClosedByClickingAway,'closeByEscaping' => $filtersTriggerActionIsModalClosedByEscaping,'description' => $filtersTriggerActionModalDescription,'footerActions' => $filtersTriggerActionVisibleModalFooterActions,'footerActionsAlignment' => $filtersTriggerActionModalFooterActionsAlignment,'heading' => $filtersTriggerActionModalHeading,'icon' => $filtersTriggerActionModalIcon,'iconColor' => $filtersTriggerActionModalIconColor,'slideOver' => $filtersTriggerActionIsModalSlideOver,'stickyFooter' => $filtersTriggerActionIsModalFooterSticky,'stickyHeader' => $filtersTriggerActionIsModalHeaderSticky,'width' => $filtersFormWidth,'wire:key' => $this->getId() . '.table.filters','class' => 'fi-ta-filters-modal']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::modal'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['alignment' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersTriggerActionModalAlignment),'autofocus' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersTriggerActionIsModalAutofocused),'close-button' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersTriggerActionHasModalCloseButton),'close-by-clicking-away' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersTriggerActionIsModalClosedByClickingAway),'close-by-escaping' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersTriggerActionIsModalClosedByEscaping),'description' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersTriggerActionModalDescription),'footer-actions' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersTriggerActionVisibleModalFooterActions),'footer-actions-alignment' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersTriggerActionModalFooterActionsAlignment),'heading' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersTriggerActionModalHeading),'icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersTriggerActionModalIcon),'icon-color' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersTriggerActionModalIconColor),'slide-over' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersTriggerActionIsModalSlideOver),'sticky-footer' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersTriggerActionIsModalFooterSticky),'sticky-header' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersTriggerActionIsModalHeaderSticky),'width' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersFormWidth),'wire:key' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($this->getId() . '.table.filters'),'class' => 'fi-ta-filters-modal']); ?> - slot('trigger', null, []); ?> - badge($activeFiltersCount)); ?> - - endSlot(); ?> - - getModalContent()); ?> - - - - - - getModalContentFooter()); ?> - - renderComponent(); ?> - - - - - - - - - - - - - 'filament::components.dropdown.index','data' => ['maxHeight' => $filtersFormMaxHeight,'placement' => 'bottom-end','shift' => true,'flip' => false,'width' => $filtersFormWidth ?? Width::ExtraSmall,'wire:key' => $this->getId() . '.table.filters','class' => 'fi-ta-filters-dropdown']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::dropdown'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['max-height' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersFormMaxHeight),'placement' => 'bottom-end','shift' => true,'flip' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(false),'width' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersFormWidth ?? Width::ExtraSmall),'wire:key' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($this->getId() . '.table.filters'),'class' => 'fi-ta-filters-dropdown']); ?> - slot('trigger', null, []); ?> - badge($activeFiltersCount)); ?> - - endSlot(); ?> - - - - 'filament-tables::components.filters','data' => ['applyAction' => $filtersApplyAction,'form' => $filtersForm,'headingTag' => $secondLevelHeadingTag,'resetActionPosition' => $filtersResetActionPosition]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-tables::filters'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['apply-action' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersApplyAction),'form' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersForm),'heading-tag' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($secondLevelHeadingTag),'reset-action-position' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersResetActionPosition)]); ?> -renderComponent(); ?> - - - - - - - - - - renderComponent(); ?> - - - - - - - - - - - - - badge($activeFiltersCount)); ?> - - - - - - - - - - - - - 'filament::components.dropdown.index','data' => ['maxHeight' => $columnManagerMaxHeight,'placement' => 'bottom-end','shift' => true,'flip' => false,'width' => $columnManagerWidth,'wire:key' => $this->getId() . '.table.column-manager','class' => 'fi-ta-col-manager-dropdown']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::dropdown'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['max-height' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($columnManagerMaxHeight),'placement' => 'bottom-end','shift' => true,'flip' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(false),'width' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($columnManagerWidth),'wire:key' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($this->getId() . '.table.column-manager'),'class' => 'fi-ta-col-manager-dropdown']); ?> - slot('trigger', null, []); ?> - - - endSlot(); ?> - - - - 'filament-tables::components.column-manager','data' => ['applyAction' => $columnManagerApplyAction,'columns' => $columnManagerColumns,'resetActionPosition' => $columnManagerResetActionPosition,'hasReorderableColumns' => $hasReorderableColumns,'hasToggleableColumns' => $hasToggleableColumns,'headingTag' => $secondLevelHeadingTag,'reorderAnimationDuration' => $getReorderAnimationDuration()]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-tables::column-manager'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['apply-action' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($columnManagerApplyAction),'columns' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($columnManagerColumns),'reset-action-position' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($columnManagerResetActionPosition),'has-reorderable-columns' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($hasReorderableColumns),'has-toggleable-columns' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($hasToggleableColumns),'heading-tag' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($secondLevelHeadingTag),'reorder-animation-duration' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($getReorderAnimationDuration())]); ?> -renderComponent(); ?> - - - - - - - - - - renderComponent(); ?> - - - - - - - - - - - - - - -
- - - - -
- - - -
- - -
- '', - 'wire:target' => 'reorderTable', - ]))); ?> - - - - -
- -
-
- 'isLoading', - ]))); ?> - - - -
- - -
- - - -
- - - - 'filament::components.link','data' => ['color' => 'primary','tag' => 'button','xOn:click' => 'selectAllRecords','xShow' => 'canSelectAllRecords()','wire:key' => $this->getId() . 'table.selection.indicator.actions.select-all.' . $allSelectableRecordsCount . '.' . $page]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::link'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['color' => 'primary','tag' => 'button','x-on:click' => 'selectAllRecords','x-show' => 'canSelectAllRecords()','wire:key' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($this->getId() . 'table.selection.indicator.actions.select-all.' . $allSelectableRecordsCount . '.' . $page)]); ?> - \Illuminate\Support\Number::format($allSelectableRecordsCount, locale: app()->getLocale())])); ?> - - renderComponent(); ?> - - - - - - - - - - - - - - 'filament::components.link','data' => ['color' => 'danger','tag' => 'button','xOn:click' => 'deselectAllRecords']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::link'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['color' => 'danger','tag' => 'button','x-on:click' => 'deselectAllRecords']); ?> - - - renderComponent(); ?> - - - - - - - - - -
- - - -
- -
- - - - $filterIndicators]))): ?> - - - -
-
- - - - - -
- addLoop($__currentLoopData); foreach($__currentLoopData as $indicator): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - getColor(); - ?> - - - - 'filament::components.badge','data' => ['color' => $indicatorColor]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::badge'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['color' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($indicatorColor)]); ?> - getLabel()); ?> - - - isRemovable()): ?> - getRemoveLivewireClickHandler(); - ?> - - slot('deleteButton', null, ['label' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('filament-tables::table.filters.actions.remove.label')),'wire:click' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($indicatorRemoveLivewireClickHandler),'wire:loading.attr' => 'disabled','wire:target' => 'removeTableFilter']); ?> endSlot(); ?> - - renderComponent(); ?> - - - - - - - - - - popLoop(); $loop = $__env->getLastLoop(); ?> -
-
- - contains(fn (\Filament\Tables\Filters\Indicator $indicator): bool => $indicator->isRemovable())): ?> - - -
- - - - -
- wire:poll. - - - class="fi-ta-content-ctn fi-fixed-positioning-context" - > - - - $column->isSortable(), - ); - ?> - - -
- - - disabled - - x-bind:disabled=" - const recordsOnPage = getRecordsOnPage() - - return recordsOnPage.length && ! areRecordsToggleable(recordsOnPage) - " - - x-bind:checked=" - const recordsOnPage = getRecordsOnPage() - - if (recordsOnPage.length && areRecordsSelected(recordsOnPage)) { - $el.checked = true - - return 'checked' - } - - $el.checked = false - - return null - " - x-on:click="toggleSelectRecordsOnPage" - - wire:key="getId()); ?>.table.bulk-select-page.checkbox." - wire:loading.attr="disabled" - wire:target="" - class="fi-ta-page-checkbox fi-checkbox-input" - /> - - - -
- - - -
- -
- - - - - with(['records' => $records])); ?> - - -
- x-on:end.stop=" - $wire.reorderTable( - $event.target.sortable.toArray(), - $event.item.getAttribute('x-sortable-item'), - ) - " - x-sortable - data-sortable-animation-duration="" - - when($contentGrid, fn (ComponentAttributeBag $attributes) => $attributes->grid($contentGrid)) - ->class([ - 'fi-ta-content', - 'fi-ta-content-grid' => $contentGrid, - 'fi-ta-content-grouped' => $this->getTableGrouping(), - ])); ?> - - > - - - addLoop($__currentLoopData); foreach($__currentLoopData as $record): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - getStringKey($record); - $recordGroupTitle = $group?->getTitle($record); - $isRecordGroupCollapsible = $group?->isCollapsible(); - - $collapsibleColumnsLayout?->record($record)->recordKey($recordKey); - $hasCollapsibleColumnsLayout = (bool) $collapsibleColumnsLayout?->isVisible(); - - $recordActions = array_reduce( - $defaultRecordActions, - function (array $carry, $action) use ($record): array { - $action = $action->getClone(); - - if (! $action instanceof \Filament\Actions\BulkAction) { - $action->record($record); - } - - if ($action->isHidden()) { - return $carry; - } - - $carry[] = $action; - - return $carry; - }, - initial: [], - ); - ?> - - - - - - scopeQuery($this->getAllTableSummaryQuery(), $previousRecord); - ?> - - - - 'filament-tables::components.summary.row','data' => ['columns' => $columns,'extraHeadingColumn' => true,'heading' => - __('filament-tables::table.summary.subheadings.group', [ - 'group' => $previousRecordGroupTitle, - 'label' => $pluralModelLabel, - ]) - ,'placeholderColumns' => false,'query' => $groupScopedAllTableSummaryQuery,'selectedState' => $groupedSummarySelectedState[$previousRecordGroupKey] ?? []]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-tables::summary.row'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['columns' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($columns),'extra-heading-column' => true,'heading' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute( - __('filament-tables::table.summary.subheadings.group', [ - 'group' => $previousRecordGroupTitle, - 'label' => $pluralModelLabel, - ]) - ),'placeholder-columns' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(false),'query' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($groupScopedAllTableSummaryQuery),'selected-state' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($groupedSummarySelectedState[$previousRecordGroupKey] ?? [])]); ?> -renderComponent(); ?> - - - - - - - - - - -
- - -
isCollapsible()): ?> - x-on:click="toggleCollapseGroup(toHtml() ?>)" - - x-bind:class="{ 'fi-collapsed': isGroupCollapsed(toHtml() ?>) }" - - - class=" $isRecordGroupCollapsible, - ]); ?>" - > - - - disabled - - x-on:click="toggleSelectRecords(JSON.parse($el.dataset.groupSelectableRecordKeys))" - - x-bind:disabled=" - const recordsInGroup = JSON.parse($el.dataset.groupSelectableRecordKeys) - - return recordsInGroup.length && ! areRecordsToggleable(recordsInGroup) - " - - - x-bind:checked=" - const recordsInGroup = JSON.parse($el.dataset.groupSelectableRecordKeys) - - if (recordsInGroup.length && areRecordsSelected(recordsInGroup)) { - $el.checked = true - - return 'checked' - } - - $el.checked = false - - return null - " - wire:key="getId()); ?>.table.bulk_select_group.checkbox." - wire:loading.attr="disabled" - wire:target="" - class="fi-ta-group-checkbox fi-checkbox-input" - /> - - -
- < - - class="fi-ta-group-heading" - > - isTitlePrefixedWithLabel() ? $group->getLabel() : null))): ?> - : - - - - - > - - getDescription($record, $recordGroupTitle))): ?> -

- - -

- -
- - - - -
- - -
- x-data="{ isCollapsed: isCollapsed())->toHtml() ?> }" - x-init="$dispatch('collapsible-table-row-initialized')" - x-on:collapse-all-table-rows.window="isCollapsed = true" - x-on:expand-all-table-rows.window="isCollapsed = false" - x-bind:class="isCollapsed && 'fi-ta-record-collapsed'" - - wire:key="getId()); ?>.table.records." - - x-sortable-item="" - x-sortable-handle - - class=" $recordUrl || $recordAction, - 'fi-ta-record-with-content-prefix' => $isReordering || ($isSelectionEnabled && $isRecordSelectable($record)), - 'fi-ta-record-with-content-suffix' => $hasCollapsibleColumnsLayout && (! $isReordering), - ...$getRecordClasses($record), - ]); ?>" - x-bind:class="{ - isCollapsible() ? '\'fi-collapsed\': isGroupCollapsed(' . \Illuminate\Support\Js::from($recordGroupTitle) . '),' : ''); ?> - - 'fi-selected': isRecordSelected(toHtml() ?>), - }" - > - - - - - - - disabled - - x-bind:disabled="! areRecordsToggleable([toHtml() ?>])" - - value="" - x-on:click="toggleSelectedRecord(toHtml() ?>)" - x-bind:checked="isRecordSelected(toHtml() ?>) ? 'checked' : null" - data-group="" - wire:loading.attr="disabled" - wire:target="" - class="fi-ta-record-checkbox fi-checkbox-input" - /> - - -
-
- - - - class(['fi-ta-record-content'])); ?> - - > - addLoop($__currentLoopData); foreach($__currentLoopData as $columnsLayoutComponent): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - record($record) - ->recordKey($recordKey) - ->rowLoop($loop) - ->renderInLayout()); ?> - - popLoop(); $loop = $__env->getLastLoop(); ?> - - - - - - -
- addLoop($__currentLoopData); foreach($__currentLoopData as $columnsLayoutComponent): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - record($record) - ->recordKey($recordKey) - ->rowLoop($loop) - ->renderInLayout()); ?> - - popLoop(); $loop = $__env->getLastLoop(); ?> -
- - - -
- - -
- -
- - -
- addLoop($__currentLoopData); foreach($__currentLoopData as $action): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - - - popLoop(); $loop = $__env->getLastLoop(); ?> -
- -
- - - - -
- - - popLoop(); $loop = $__env->getLastLoop(); ?> - - hasMorePages()))): ?> - - - scopeQuery($this->getAllTableSummaryQuery(), $previousRecord); - ?> - - - - 'filament-tables::components.summary.row','data' => ['columns' => $columns,'extraHeadingColumn' => true,'heading' => __('filament-tables::table.summary.subheadings.group', ['group' => $previousRecordGroupTitle, 'label' => $pluralModelLabel]),'placeholderColumns' => false,'query' => $groupScopedAllTableSummaryQuery,'selectedState' => $groupedSummarySelectedState[$previousRecordGroupKey] ?? []]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-tables::summary.row'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['columns' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($columns),'extra-heading-column' => true,'heading' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('filament-tables::table.summary.subheadings.group', ['group' => $previousRecordGroupTitle, 'label' => $pluralModelLabel])),'placeholder-columns' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(false),'query' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($groupScopedAllTableSummaryQuery),'selected-state' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($groupedSummarySelectedState[$previousRecordGroupKey] ?? [])]); ?> -renderComponent(); ?> - - - - - - - - - - -
- -
- - - - with([ - 'columns' => $columns, - 'records' => $records, - ])); ?> - - - - - - - - - 'filament-tables::components.summary.index','data' => ['columns' => $columns,'extraHeadingColumn' => true,'placeholderColumns' => false,'pluralModelLabel' => $pluralModelLabel,'records' => $records]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-tables::summary'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['columns' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($columns),'extra-heading-column' => true,'placeholder-columns' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(false),'plural-model-label' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($pluralModelLabel),'records' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($records)]); ?> -renderComponent(); ?> - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - addLoop($__currentLoopData); foreach($__currentLoopData as $columnGroup): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - - isVisible() && (! $columnGroup->isToggledHidden())): ?> - - - - getVisibleColumns()); - ?> - - - - - - popLoop(); $loop = $__env->getLastLoop(); ?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - addLoop($__currentLoopData); foreach($__currentLoopData as $column): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - $column, - 'isReordering' => $isReordering, - ]))): ?> - - - - getName(); - $columnLabel = $column->getLabel(); - $columnAlignment = $column->getAlignment(); - $columnWidth = $column->getWidth(); - $isColumnActivelySorted = $getSortColumn() === $column->getName(); - $isColumnSortable = $column->isSortable() && (! $isReordering); - $columnHeaderTooltip = $column->getHeaderTooltip(); - ?> - - - - popLoop(); $loop = $__env->getLastLoop(); ?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - x-on:end.stop=" - $wire.reorderTable( - $event.target.sortable.toArray(), - $event.item.getAttribute('x-sortable-item'), - ) - " - x-sortable - data-sortable-animation-duration="" - - > - - - - - - - - - - - - - - - - - addLoop($__currentLoopData); foreach($__currentLoopData as $column): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - getName(); - ?> - - - popLoop(); $loop = $__env->getLastLoop(); ?> - - - - - - - - - - - - - - - - - addLoop($__currentLoopData); foreach($__currentLoopData as $record): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - getStringKey($record); - $recordGroupTitle = $group?->getTitle($record); - - $recordActions = array_reduce( - $defaultRecordActions, - function (array $carry, $action) use ($record): array { - $action = $action->getClone(); - - if (! $action instanceof \Filament\Actions\BulkAction) { - $action->record($record); - } - - if ($action->isHidden()) { - return $carry; - } - - $carry[] = $action; - - return $carry; - }, - initial: [], - ); - ?> - - - - getColumn(); - $groupScopedAllTableSummaryQuery = $group->scopeQuery($this->getAllTableSummaryQuery(), $previousRecord); - ?> - - - - 'filament-tables::components.summary.row','data' => ['actions' => count($defaultRecordActions),'actionsPosition' => $recordActionsPosition,'columns' => $columns,'groupColumn' => $groupColumn,'groupsOnly' => $isGroupsOnly,'heading' => $isGroupsOnly ? $previousRecordGroupTitle : __('filament-tables::table.summary.subheadings.group', ['group' => $previousRecordGroupTitle, 'label' => $pluralModelLabel]),'query' => $groupScopedAllTableSummaryQuery,'recordCheckboxPosition' => $recordCheckboxPosition,'selectedState' => $groupedSummarySelectedState[$previousRecordGroupKey] ?? [],'selectionEnabled' => $isSelectionEnabled]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-tables::summary.row'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['actions' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(count($defaultRecordActions)),'actions-position' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($recordActionsPosition),'columns' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($columns),'group-column' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($groupColumn),'groups-only' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isGroupsOnly),'heading' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isGroupsOnly ? $previousRecordGroupTitle : __('filament-tables::table.summary.subheadings.group', ['group' => $previousRecordGroupTitle, 'label' => $pluralModelLabel])),'query' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($groupScopedAllTableSummaryQuery),'record-checkbox-position' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($recordCheckboxPosition),'selected-state' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($groupedSummarySelectedState[$previousRecordGroupKey] ?? []),'selection-enabled' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isSelectionEnabled)]); ?> -renderComponent(); ?> - - - - - - - - - - - - - - isCollapsible(); - $groupHeaderColspan = $columnsCount; - - if ($isSelectionEnabled) { - $groupHeaderColspan--; - - if ( - ($recordCheckboxPosition === RecordCheckboxPosition::BeforeCells) && - count($defaultRecordActions) && - ($recordActionsPosition === RecordActionsPosition::BeforeCells) - ) { - $groupHeaderColspan--; - } - } - ?> - - - - - - - - - - - - - - - - - - - - - - - - - - x-bind:class="{ - isCollapsible() ? '\'fi-collapsed\': isGroupCollapsed(' . \Illuminate\Support\Js::from($recordGroupTitle) . '),' : ''); ?> - - 'fi-selected': isRecordSelected(toHtml() ?>), - }" - class=" $recordAction || $recordUrl, - 'fi-striped' => $isStriped && $isRecordRowStriped, - ...$getRecordClasses($record), - ]); ?>" - > - - - - - - - - - - - - - - - - - addLoop($__currentLoopData); foreach($__currentLoopData as $column): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - record($record); - $column->rowLoop($loop->parent); - $column->recordKey($recordKey); - - $columnAction = $column->getAction(); - $columnUrl = $column->getUrl(); - $columnHasStateBasedUrls = $column->hasStateBasedUrls(); - $isColumnClickDisabled = $column->isClickDisabled() || $isReordering; - - $columnWrapperTag = match (true) { - ($columnUrl || ($recordUrl && $columnAction === null)) && (! $columnHasStateBasedUrls) && (! $isColumnClickDisabled) => 'a', - ($columnAction || $recordAction) && (! $columnHasStateBasedUrls) && (! $isColumnClickDisabled) => 'button', - default => 'div', - }; - - if ($columnWrapperTag === 'button') { - if ($columnAction instanceof \Filament\Actions\Action) { - $columnWireClickAction = "mountTableAction('{$columnAction->getName()}', '{$recordKey}')"; - } elseif ($columnAction) { - $columnWireClickAction = "callTableColumnAction('{$column->getName()}', '{$recordKey}')"; - } else { - if ($this->getTable()->getAction($recordAction)) { - $columnWireClickAction = "mountTableAction('{$recordAction}', '{$recordKey}')"; - } else { - $columnWireClickAction = "{$recordAction}('{$recordKey}')"; - } - } - } - ?> - - - popLoop(); $loop = $__env->getLastLoop(); ?> - - - - - - - - - - - - - - - - - popLoop(); $loop = $__env->getLastLoop(); ?> - - hasMorePages()))): ?> - getColumn(); - $groupScopedAllTableSummaryQuery = $group->scopeQuery($this->getAllTableSummaryQuery(), $previousRecord); - ?> - - - - 'filament-tables::components.summary.row','data' => ['actions' => count($defaultRecordActions),'actionsPosition' => $recordActionsPosition,'columns' => $columns,'groupColumn' => $groupColumn,'groupsOnly' => $isGroupsOnly,'heading' => $isGroupsOnly ? $previousRecordGroupTitle : __('filament-tables::table.summary.subheadings.group', ['group' => $previousRecordGroupTitle, 'label' => $pluralModelLabel]),'query' => $groupScopedAllTableSummaryQuery,'recordCheckboxPosition' => $recordCheckboxPosition,'selectedState' => $groupedSummarySelectedState[$previousRecordGroupKey] ?? [],'selectionEnabled' => $isSelectionEnabled]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-tables::summary.row'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['actions' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(count($defaultRecordActions)),'actions-position' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($recordActionsPosition),'columns' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($columns),'group-column' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($groupColumn),'groups-only' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isGroupsOnly),'heading' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isGroupsOnly ? $previousRecordGroupTitle : __('filament-tables::table.summary.subheadings.group', ['group' => $previousRecordGroupTitle, 'label' => $pluralModelLabel])),'query' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($groupScopedAllTableSummaryQuery),'record-checkbox-position' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($recordCheckboxPosition),'selected-state' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($groupedSummarySelectedState[$previousRecordGroupKey] ?? []),'selection-enabled' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isSelectionEnabled)]); ?> -renderComponent(); ?> - - - - - - - - - - - - - getColumn(); - ?> - - - - 'filament-tables::components.summary.index','data' => ['actions' => count($defaultRecordActions),'actionsPosition' => $recordActionsPosition,'columns' => $columns,'groupColumn' => $groupColumn,'groupsOnly' => $isGroupsOnly,'pluralModelLabel' => $pluralModelLabel,'recordCheckboxPosition' => $recordCheckboxPosition,'records' => $records,'selectionEnabled' => $isSelectionEnabled]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-tables::summary'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['actions' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(count($defaultRecordActions)),'actions-position' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($recordActionsPosition),'columns' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($columns),'group-column' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($groupColumn),'groups-only' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isGroupsOnly),'plural-model-label' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($pluralModelLabel),'record-checkbox-position' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($recordCheckboxPosition),'records' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($records),'selection-enabled' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isSelectionEnabled)]); ?> -renderComponent(); ?> - - - - - - - - - - - - - - - - - - with([ - 'columns' => $columns, - 'records' => $records, - ])); ?> - - - - -
getExtraHeaderAttributeBag()->class([ - 'fi-ta-header-group-cell', - 'fi-wrapped' => $columnGroup->canHeaderWrap(), - ((($columnGroupAlignment = $columnGroup->getAlignment()) instanceof \Filament\Support\Enums\Alignment) ? "fi-align-{$columnGroupAlignment->value}" : (is_string($columnGroupAlignment) ? $columnGroupAlignment : '')), - (filled($columnGroupHiddenFrom = $columnGroup->getHiddenFrom()) ? "{$columnGroupHiddenFrom}:fi-hidden" : ''), - (filled($columnGroupVisibleFrom = $columnGroup->getVisibleFrom()) ? "{$columnGroupVisibleFrom}:fi-visible" : ''), - ])); ?> - - > - getLabel()); ?> - -
- - - - - - disabled - - x-bind:disabled=" - const recordsOnPage = getRecordsOnPage() - - return recordsOnPage.length && ! areRecordsToggleable(recordsOnPage) - " - - x-bind:checked=" - const recordsOnPage = getRecordsOnPage() - - if (recordsOnPage.length && areRecordsSelected(recordsOnPage)) { - $el.checked = true - - return 'checked' - } - - $el.checked = false - - return null - " - x-on:click="toggleSelectRecordsOnPage" - - wire:key="getId()); ?>.table.bulk-select-page.checkbox." - wire:loading.attr="disabled" - wire:target="" - class="fi-ta-page-checkbox fi-checkbox-input" - /> - - - - - - aria-sort="" - - getExtraHeaderAttributeBag() - ->class([ - 'fi-ta-header-cell', - 'fi-ta-header-cell-' . str($columnName)->camel()->kebab(), - 'fi-growable' => blank($columnWidth) && $column->canGrow(default: false), - 'fi-grouped' => $column->getGroup(), - 'fi-wrapped' => $column->canHeaderWrap(), - 'fi-ta-header-cell-sorted' => $isColumnActivelySorted, - ((($columnAlignment = $column->getAlignment()) instanceof \Filament\Support\Enums\Alignment) ? "fi-align-{$columnAlignment->value}" : (is_string($columnAlignment) ? $columnAlignment : '')), - (filled($columnHiddenFrom = $column->getHiddenFrom()) ? "{$columnHiddenFrom}:fi-hidden" : ''), - (filled($columnVisibleFrom = $column->getVisibleFrom()) ? "{$columnVisibleFrom}:fi-visible" : ''), - ]) - ->style([ - ('width: ' . $columnWidth) => filled($columnWidth), - ])); ?> - - > - - - - - - - - - - - - - \Filament\Tables\View\TablesIconAlias::HEADER_CELL_SORT_ASC_BUTTON, - $isColumnActivelySorted && ($sortDirection === 'desc') => \Filament\Tables\View\TablesIconAlias::HEADER_CELL_SORT_DESC_BUTTON, - default => \Filament\Tables\View\TablesIconAlias::HEADER_CELL_SORT_BUTTON, - })); ?> - - - - - - - - - - - - - - - - - - - - disabled - - x-bind:disabled=" - const recordsOnPage = getRecordsOnPage() - - return recordsOnPage.length && ! areRecordsToggleable(recordsOnPage) - " - - x-bind:checked=" - const recordsOnPage = getRecordsOnPage() - - if (recordsOnPage.length && areRecordsSelected(recordsOnPage)) { - $el.checked = true - - return 'checked' - } - - $el.checked = false - - return null - " - x-on:click="toggleSelectRecordsOnPage" - - wire:key="getId()); ?>.table.bulk-select-page.checkbox." - wire:loading.attr="disabled" - wire:target="" - class="fi-ta-page-checkbox fi-checkbox-input" - /> - - - - -
- - - - 'filament-tables::components.search-field','data' => ['debounce' => $searchDebounce,'onBlur' => $isSearchOnBlur,'wireModel' => 'tableColumnSearches.' . $columnName]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-tables::search-field'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['debounce' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($searchDebounce),'on-blur' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isSearchOnBlur),'wire-model' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute('tableColumnSearches.' . $columnName)]); ?> -renderComponent(); ?> - - - - - - - - - - -
- - - disabled - - x-on:click="toggleSelectRecords(JSON.parse($el.dataset.groupSelectableRecordKeys))" - - x-bind:disabled=" - const recordsInGroup = JSON.parse($el.dataset.groupSelectableRecordKeys) - - return recordsInGroup.length && ! areRecordsToggleable(recordsInGroup) - " - - - x-bind:checked=" - const recordsInGroup = JSON.parse($el.dataset.groupSelectableRecordKeys) - - if (recordsInGroup.length && areRecordsSelected(recordsInGroup)) { - $el.checked = true - - return 'checked' - } - - $el.checked = false - - return null - " - wire:key="getId()); ?>.table.bulk_select_group.checkbox." - wire:loading.attr="disabled" - wire:target="" - class="fi-ta-group-checkbox fi-checkbox-input" - /> - - -
- x-on:click="toggleCollapseGroup(toHtml() ?>)" - x-bind:class="isGroupCollapsed(toHtml() ?>) ? 'fi-collapsed' : null" - - class=" $isRecordGroupCollapsible, - ]); ?>" - > -
- < - - class="fi-ta-group-heading" - > - isTitlePrefixedWithLabel() ? $group->getLabel() : null))): ?> - : - - - - - > - - getDescription($record, $recordGroupTitle))): ?> -

- - -

- -
- - - - -
-
- - - disabled - - x-on:click="toggleSelectRecords(JSON.parse($el.dataset.groupSelectableRecordKeys))" - - x-bind:disabled=" - const recordsInGroup = JSON.parse($el.dataset.groupSelectableRecordKeys) - - return recordsInGroup.length && ! areRecordsToggleable(recordsInGroup) - " - - - x-bind:checked=" - const recordsInGroup = JSON.parse($el.dataset.groupSelectableRecordKeys) - - if (recordsInGroup.length && areRecordsSelected(recordsInGroup)) { - $el.checked = true - - return 'checked' - } - - $el.checked = false - - return null - " - wire:key="getId()); ?>.table.bulk_select_group.checkbox." - wire:loading.attr="disabled" - wire:target="" - class="fi-ta-group-checkbox fi-checkbox-input" - /> - -
- - -
- addLoop($__currentLoopData); foreach($__currentLoopData as $action): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - - - popLoop(); $loop = $__env->getLastLoop(); ?> -
-
- - - disabled - - x-bind:disabled="! areRecordsToggleable([toHtml() ?>])" - - value="" - x-on:click="toggleSelectedRecord(toHtml() ?>)" - x-bind:checked="isRecordSelected(toHtml() ?>) ? 'checked' : null" - data-group="" - wire:loading.attr="disabled" - wire:target="" - class="fi-ta-record-checkbox fi-checkbox-input" - /> - - -
- addLoop($__currentLoopData); foreach($__currentLoopData as $action): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - - - popLoop(); $loop = $__env->getLastLoop(); ?> -
-
getExtraCellAttributeBag()->class([ - 'fi-ta-cell', - 'fi-ta-cell-' . str($column->getName())->camel()->kebab(), - ((($columnAlignment = $column->getAlignment()) instanceof \Filament\Support\Enums\Alignment) ? "fi-align-{$columnAlignment->value}" : (is_string($columnAlignment) ? $columnAlignment : '')), - ((($columnVerticalAlignment = $column->getVerticalAlignment()) instanceof \Filament\Support\Enums\VerticalAlignment) ? "fi-vertical-align-{$columnVerticalAlignment->value}" : (is_string($columnVerticalAlignment) ? $columnVerticalAlignment : '')), - (filled($columnHiddenFrom = $column->getHiddenFrom()) ? "{$columnHiddenFrom}:fi-hidden" : ''), - (filled($columnVisibleFrom = $column->getVisibleFrom()) ? "{$columnVisibleFrom}:fi-visible" : ''), - ])); ?> - - > - < - - - shouldOpenUrlInNewTab() : $openRecordUrlInNewTab, hasNestedClickEventHandler: true)); ?> - - - - - - - type="button" - wire:click.prevent.stop="" - wire:loading.attr="disabled" - wire:target="" - - class=" ($columnWrapperTag === 'a') && filled($columnUrl), - ]); ?>" - > - - - > - -
- addLoop($__currentLoopData); foreach($__currentLoopData as $action): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - - - popLoop(); $loop = $__env->getLastLoop(); ?> -
-
- - - disabled - - x-bind:disabled="! areRecordsToggleable([toHtml() ?>])" - - value="" - x-on:click="toggleSelectedRecord(toHtml() ?>)" - x-bind:checked="isRecordSelected(toHtml() ?>) ? 'checked' : null" - data-group="" - wire:loading.attr="disabled" - wire:target="" - class="fi-ta-record-checkbox fi-checkbox-input" - /> - - -
- addLoop($__currentLoopData); foreach($__currentLoopData as $action): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - - - popLoop(); $loop = $__env->getLastLoop(); ?> -
-
- -
- - -
- -
- - - - - - - -
-
-
- - -
- - < - - class="fi-ta-empty-state-heading" - > - - - > - - -

- - -

- - - $action->isVisible(), - )): ?> -
- addLoop($__currentLoopData); foreach($__currentLoopData as $action): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - - - popLoop(); $loop = $__env->getLastLoop(); ?> -
- -
-
- - - - - - - - - 'filament::components.pagination.index','data' => ['extremeLinks' => $hasExtremePaginationLinks,'pageOptions' => $paginationPageOptions,'paginator' => $records]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::pagination'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['extreme-links' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($hasExtremePaginationLinks),'page-options' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($paginationPageOptions),'paginator' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($records)]); ?> -renderComponent(); ?> - - - - - - - - - - - - - - - 'filament-tables::components.filters','data' => ['applyAction' => $filtersApplyAction,'form' => $filtersForm,'headingTag' => $secondLevelHeadingTag,'class' => 'fi-ta-filters-below-content','resetActionPosition' => $filtersResetActionPosition]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-tables::filters'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['apply-action' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersApplyAction),'form' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersForm),'heading-tag' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($secondLevelHeadingTag),'class' => 'fi-ta-filters-below-content','reset-action-position' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersResetActionPosition)]); ?> -renderComponent(); ?> - - - - - - - - - - -
- - -
value}" : (is_string($filtersFormWidth) ? $filtersFormWidth : null), - ]); ?>" - > - - - 'filament-tables::components.filters','data' => ['applyAction' => $filtersApplyAction,'form' => $filtersForm,'headingTag' => $secondLevelHeadingTag,'class' => 'fi-ta-filters-after-content','resetActionPosition' => $filtersResetActionPosition]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-tables::filters'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['apply-action' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersApplyAction),'form' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersForm),'heading-tag' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($secondLevelHeadingTag),'class' => 'fi-ta-filters-after-content','reset-action-position' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($filtersResetActionPosition)]); ?> -renderComponent(); ?> - - - - - - - - - -
- -
- - - - 'filament-actions::components.modals','data' => []] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-actions::modals'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes([]); ?> -renderComponent(); ?> - - - - - - - - - -
- \ No newline at end of file diff --git a/storage/framework/views/2cbdabaff7adb77281bce3493d2e0c33.php b/storage/framework/views/2cbdabaff7adb77281bce3493d2e0c33.php deleted file mode 100644 index d45a24e..0000000 --- a/storage/framework/views/2cbdabaff7adb77281bce3493d2e0c33.php +++ /dev/null @@ -1,137 +0,0 @@ - - - 'h3', - 'resetActionPosition' => FiltersResetActionPosition::Header, -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'applyAction', - 'form', - 'headingTag' => 'h3', - 'resetActionPosition' => FiltersResetActionPosition::Header, -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - -
class(['fi-ta-filters'])); ?>> -
- < class="fi-ta-filters-heading"> - - - > - - -
- - - 'filament::components.link','data' => ['attributes' => - \Filament\Support\prepare_inherited_attributes( - new \Illuminate\View\ComponentAttributeBag([ - 'color' => 'danger', - 'tag' => 'button', - 'wire:click' => 'resetTableFiltersForm', - 'wire:loading.remove.delay.' . config('filament.livewire_loading_delay', 'default') => '', - 'wire:target' => 'resetTableFiltersForm', - ]) - ) - ]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::link'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['attributes' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute( - \Filament\Support\prepare_inherited_attributes( - new \Illuminate\View\ComponentAttributeBag([ - 'color' => 'danger', - 'tag' => 'button', - 'wire:click' => 'resetTableFiltersForm', - 'wire:loading.remove.delay.' . config('filament.livewire_loading_delay', 'default') => '', - 'wire:target' => 'resetTableFiltersForm', - ]) - ) - )]); ?> - - - renderComponent(); ?> - - - - - - - - - -
- -
- - - - - isVisible() || $resetActionPosition === FiltersResetActionPosition::Footer): ?> -
- isVisible()): ?> - - - - - - - - 'filament::components.button.index','data' => ['color' => 'danger','wire:click' => 'resetTableFiltersForm']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::button'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['color' => 'danger','wire:click' => 'resetTableFiltersForm']); ?> - - - renderComponent(); ?> - - - - - - - - - - -
- -
- \ No newline at end of file diff --git a/storage/framework/views/2d870470bd6fffdcf1b9facb07d1049b.php b/storage/framework/views/2d870470bd6fffdcf1b9facb07d1049b.php deleted file mode 100644 index 5e7919f..0000000 --- a/storage/framework/views/2d870470bd6fffdcf1b9facb07d1049b.php +++ /dev/null @@ -1,221 +0,0 @@ - null, -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'livewire' => null, -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - -getRenderHookScopes(); -?> - - - - - - - - - - - - getFavicon()): ?> - - - - getTitle() ?? '')); - $brandName = trim(strip_tags(filament()->getBrandName())); - ?> - - - <?php echo e(filled($title) ? "{$title} - " : null); ?> <?php echo e($brandName); ?> - - - - - - - - - - - getTheme()->getHtml()); ?> - - getFontHtml()); ?> - - getMonoFontHtml()); ?> - - getSerifFontHtml()); ?> - - - - - yieldPushContent('styles'); ?> - - - - - hasDarkMode()): ?> - - hasDarkModeForced()): ?> - - - - - - - - - - merge($livewire?->getExtraBodyAttributes() ?? [], escape: false) - ->class([ - 'fi-body', - 'fi-panel-' . filament()->getId(), - ])); ?> - - > - - - - - - - mount($__name, $__params, $key); - -echo $__html; - -unset($__html); -unset($__name); -unset($__params); -unset($__split); -if (isset($__slots)) unset($__slots); -?> - - - - - - - hasBroadcasting() && config('filament.broadcasting.echo')): ?> - - - - hasDarkMode() && (! filament()->hasDarkModeForced())): ?> - - - - yieldPushContent('scripts'); ?> - - - - - - - - - \ No newline at end of file diff --git a/storage/framework/views/317ab1fc8ab0d9c5e22a5c4737c540b9.php b/storage/framework/views/317ab1fc8ab0d9c5e22a5c4737c540b9.php deleted file mode 100644 index f0dde27..0000000 --- a/storage/framework/views/317ab1fc8ab0d9c5e22a5c4737c540b9.php +++ /dev/null @@ -1,104 +0,0 @@ - - - 'gray', - 'offIcon' => null, - 'onColor' => 'primary', - 'onIcon' => null, -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'state', - 'offColor' => 'gray', - 'offIcon' => null, - 'onColor' => 'primary', - 'onIcon' => null, -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - - - - -
-
- - - -
-
- - \ No newline at end of file diff --git a/storage/framework/views/34ae340ff479643953f86c68f04ac61d.php b/storage/framework/views/34ae340ff479643953f86c68f04ac61d.php new file mode 100644 index 0000000..5790763 --- /dev/null +++ b/storage/framework/views/34ae340ff479643953f86c68f04ac61d.php @@ -0,0 +1,191 @@ + + +startSection('title', 'Sign In - Additional Design'); ?> + +startSection('styles'); ?> + +stopSection(); ?> + +startSection('content'); ?> +
+ +
+stopSection(); ?> + +make('layouts.app', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?> \ No newline at end of file diff --git a/storage/framework/views/35148eb10cca4a42fac641d4131e91d7.php b/storage/framework/views/35148eb10cca4a42fac641d4131e91d7.php deleted file mode 100644 index d3d9f2b..0000000 --- a/storage/framework/views/35148eb10cca4a42fac641d4131e91d7.php +++ /dev/null @@ -1,96 +0,0 @@ - - -< - - - - - - class([ - 'fi-wi-stats-overview-stat', - ])); ?> - -> -
-
- - - - - - - -
- -
- - -
- - -
color(DescriptionComponent::class, $descriptionColor)->class(['fi-wi-stats-overview-stat-description'])); ?> - - > - - - - - - - - - - - - - - -
- -
- - - -
-
color(StatsOverviewWidgetStatChartComponent::class, $chartColor)->class(['fi-wi-stats-overview-stat-chart'])); ?> - - > - - - - - -
-
- -> - \ No newline at end of file diff --git a/storage/framework/views/3763665363475be06cdc81b77877ae07.php b/storage/framework/views/3763665363475be06cdc81b77877ae07.php new file mode 100644 index 0000000..68d7da3 --- /dev/null +++ b/storage/framework/views/3763665363475be06cdc81b77877ae07.php @@ -0,0 +1,439 @@ + + +startSection('title', 'Order #' . $customOrder->order_number . ' - Custom Order Details'); ?> + +startSection('styles'); ?> + +stopSection(); ?> + +startSection('content'); ?> +
+
+

Custom Order Details

+

Order #order_number); ?>

+
+ + +
+ + +
+ + + +
+ + +
+ + + +
+

Order Progress

+
+ 'submitted', 'label' => 'Order\nSubmitted', 'completed' => $customOrder->status !== null], + ['status' => 'deposit_paid', 'label' => 'Deposit\nPaid', 'completed' => $customOrder->deposit_status === 'paid'], + ['status' => 'proof_sent', 'label' => 'Proofs\nSent', 'completed' => $customOrder->proofs()->exists()], + ['status' => 'proof_approved', 'label' => 'Proofs\nApproved', 'completed' => $customOrder->proofs()->where('status', 'approved')->exists()], + ['status' => 'processing', 'label' => 'Processing', 'completed' => $customOrder->status === 'processing'], + ['status' => 'shipped', 'label' => 'Order\nShipped', 'completed' => $customOrder->status === 'completed'], + ]; + + // Determine current step + $currentStep = 0; + if ($customOrder->status === 'completed') $currentStep = 5; + elseif ($customOrder->status === 'processing') $currentStep = 4; + elseif ($customOrder->proofs()->where('status', 'approved')->exists()) $currentStep = 3; + elseif ($customOrder->proofs()->exists()) $currentStep = 2; + elseif ($customOrder->deposit_status === 'paid') $currentStep = 1; + ?> + + addLoop($__currentLoopData); foreach($__currentLoopData as $index => $step): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> +
+
+ + ✓ + + + + +
+
+
+ popLoop(); $loop = $__env->getLastLoop(); ?> +
+
+
+ +
+ +
+

Order Status

+
+ + status))); ?> + + +

+ Submitted on created_at->format('d M Y \a\t H:i')); ?> + +

+
+
+ + +
+

Design Requirements

+ +
+

Order Type

+

type); ?>

+
+ +
+

Dimensions

+ specifications): ?> +
+ specifications->length): ?> +
+
Length:
+
specifications->length); ?>m
+
+ + specifications->width): ?> +
+
Width:
+
specifications->width); ?>m
+
+ + specifications->height): ?> +
+
Height:
+
specifications->height); ?>m
+
+ +
+
Quantity:
+
specifications->quantity); ?>
+
+
+ +
+ +
+

Print Material

+ specifications->printStock): ?> +

specifications->printStock->name); ?>

+ +
+ +
+

Design Brief

+

customer_brief); ?>

+
+ + specifications->special_instructions): ?> +
+

Special Instructions

+

specifications->special_instructions); ?>

+
+ +
+ + + files->count() > 0): ?> +
+

Reference Images

+ +
+ + + + proofs->count() > 0): ?> +
+

Design Proofs

+ proofs; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $proof): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> +
+
+

Proof iteration); ?>

+ + status)); ?> + + +
+ file_path): ?> + + View Proof File + + + feedback): ?> +
+ Feedback: +

feedback); ?>

+
+ +
+ popLoop(); $loop = $__env->getLastLoop(); ?> +
+ +
+ + +
+ +
+

Order Summary

+ + +
+
+ Design Fee: + Rdesign_fee, 2)); ?> +
+ material_cost > 0): ?> +
+ Material Cost: + Rmaterial_cost, 2)); ?> +
+ +
+ Total: + Rtotal_cost, 2)); ?> +
+
+ + +

Payment Status

+ +
+
+ Deposit (20%) + deposit_status)); ?> +
+

Rdeposit_amount, 2)); ?>

+
+ +
+
+ Balance (80%) + balance_status)); ?> +
+

Rbalance_amount, 2)); ?>

+
+ + + deposit_status !== 'paid'): ?> +
+ + + +
+ deposit_status === 'paid' && $customOrder->proofs->where('status', 'approved')->count() > 0 && $customOrder->balance_status !== 'paid'): ?> + + +
+ + +
+

Payment Terms

+
    +
  • The 20% deposit is non-refundable
  • +
  • Balance of 80% must be paid before printing begins
  • + library_discount_applied): ?> +
  • Design may be added to our library
  • + +
  • Bespoke, exclusive design
  • + +
+
+
+
+
+ + +stopSection(); ?> + +make('layouts.app', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?> \ No newline at end of file diff --git a/storage/framework/views/3764fdc9fc3bd11621707db2096f5ed3.php b/storage/framework/views/3764fdc9fc3bd11621707db2096f5ed3.php deleted file mode 100644 index 414efe3..0000000 --- a/storage/framework/views/3764fdc9fc3bd11621707db2096f5ed3.php +++ /dev/null @@ -1,106 +0,0 @@ - - - - - $fieldWrapperView] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('dynamic-component'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\DynamicComponent::ignoredParameterNames()); ?> - -withAttributes(['field' => $field,'class' => 'fi-fo-textarea-wrp']); ?> - - - 'filament::components.input.wrapper','data' => ['disabled' => $isDisabled,'valid' => ! $errors->has($statePath),'attributes' => - \Filament\Support\prepare_inherited_attributes($extraAttributeBag) - ->class([ - 'fi-fo-textarea', - 'fi-autosizable' => $shouldAutosize, - ]) - ]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::input.wrapper'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['disabled' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isDisabled),'valid' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(! $errors->has($statePath)),'attributes' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute( - \Filament\Support\prepare_inherited_attributes($extraAttributeBag) - ->class([ - 'fi-fo-textarea', - 'fi-autosizable' => $shouldAutosize, - ]) - )]); ?> -
- -
- renderComponent(); ?> - - - - - - - - - - renderComponent(); ?> - - - - - - - - - - \ No newline at end of file diff --git a/storage/framework/views/39345582fc2db52dbc7f0f200cead333.php b/storage/framework/views/39345582fc2db52dbc7f0f200cead333.php deleted file mode 100644 index 6e2293c..0000000 --- a/storage/framework/views/39345582fc2db52dbc7f0f200cead333.php +++ /dev/null @@ -1,229 +0,0 @@ - - - - - $fieldWrapperView] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('dynamic-component'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\DynamicComponent::ignoredParameterNames()); ?> - -withAttributes(['field' => $field,'class' => 'fi-fo-select-wrp']); ?> - - - 'filament::components.input.wrapper','data' => ['disabled' => $isDisabled,'inlinePrefix' => $isPrefixInline,'inlineSuffix' => $isSuffixInline,'prefix' => $prefixLabel,'prefixActions' => $prefixActions,'prefixIcon' => $prefixIcon,'prefixIconColor' => $prefixIconColor,'suffix' => $suffixLabel,'suffixActions' => $suffixActions,'suffixIcon' => $suffixIcon,'suffixIconColor' => $suffixIconColor,'valid' => ! $errors->has($statePath),'attributes' => - \Filament\Support\prepare_inherited_attributes($getExtraAttributeBag()) - ->class([ - 'fi-fo-select', - 'fi-fo-select-has-inline-prefix' => $isPrefixInline && (count($prefixActions) || $prefixIcon || filled($prefixLabel)), - 'fi-fo-select-native' => $isNative, - ]) - ]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::input.wrapper'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['disabled' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isDisabled),'inline-prefix' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isPrefixInline),'inline-suffix' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isSuffixInline),'prefix' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($prefixLabel),'prefix-actions' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($prefixActions),'prefix-icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($prefixIcon),'prefix-icon-color' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($prefixIconColor),'suffix' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($suffixLabel),'suffix-actions' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($suffixActions),'suffix-icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($suffixIcon),'suffix-icon-color' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($suffixIconColor),'valid' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(! $errors->has($statePath)),'attributes' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute( - \Filament\Support\prepare_inherited_attributes($getExtraAttributeBag()) - ->class([ - 'fi-fo-select', - 'fi-fo-select-has-inline-prefix' => $isPrefixInline && (count($prefixActions) || $prefixIcon || filled($prefixLabel)), - 'fi-fo-select-native' => $isNative, - ]) - )]); ?> - - - -
-
, - statePath: toHtml() ?>, - })" - wire:ignore - wire:key="." - x-on:keydown.esc="select.dropdown.isActive && $event.stopPropagation()" - x-on:set-select-property="$event.detail.isDisabled ? select.disable() : select.enable()" - merge($getExtraAlpineAttributes(), escape: false) - ->class(['fi-select-input'])); ?> - - > -
-
- - renderComponent(); ?> - - - - - - - - - - renderComponent(); ?> - - - - - - - - - - \ No newline at end of file diff --git a/storage/framework/views/3a2cb9666b458ecc4f2fa2c2fec9d575.php b/storage/framework/views/3a2cb9666b458ecc4f2fa2c2fec9d575.php new file mode 100644 index 0000000..80d972e --- /dev/null +++ b/storage/framework/views/3a2cb9666b458ecc4f2fa2c2fec9d575.php @@ -0,0 +1,292 @@ + + +startSection('title', 'My Account - Additional Design'); ?> + +startSection('styles'); ?> + +stopSection(); ?> + +startSection('content'); ?> +
+
+

My Account

+

Manage your profile and view your orders

+
+ + +
+ + +
+ + + + +
+
+ + +
+
+
+stopSection(); ?> + +make('layouts.app', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?> \ No newline at end of file diff --git a/storage/framework/views/4354f4286f5df87d0ec1b7f2a28b22ae.php b/storage/framework/views/4354f4286f5df87d0ec1b7f2a28b22ae.php deleted file mode 100644 index d7d4802..0000000 --- a/storage/framework/views/4354f4286f5df87d0ec1b7f2a28b22ae.php +++ /dev/null @@ -1,198 +0,0 @@ -hasTopbar(); - $isSidebarCollapsibleOnDesktop = filament()->isSidebarCollapsibleOnDesktop(); - $isSidebarFullyCollapsibleOnDesktop = filament()->isSidebarFullyCollapsibleOnDesktop(); - $hasTopNavigation = filament()->hasTopNavigation(); - $hasNavigation = filament()->hasNavigation(); - $renderHookScopes = $livewire?->getRenderHookScopes(); - $maxContentWidth ??= (filament()->getMaxContentWidth() ?? Width::SevenExtraLarge); - - if (is_string($maxContentWidth)) { - $maxContentWidth = Width::tryFrom($maxContentWidth) ?? $maxContentWidth; - } -?> - - - - 'filament-panels::components.layout.base','data' => ['livewire' => $livewire,'class' => \Illuminate\Support\Arr::toCssClasses([ - 'fi-body-has-navigation' => $hasNavigation, - 'fi-body-has-sidebar-collapsible-on-desktop' => $isSidebarCollapsibleOnDesktop, - 'fi-body-has-sidebar-fully-collapsible-on-desktop' => $isSidebarFullyCollapsibleOnDesktop, - 'fi-body-has-topbar' => $hasTopbar, - 'fi-body-has-top-navigation' => $hasTopNavigation, - ])]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-panels::layout.base'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['livewire' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($livewire),'class' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(\Illuminate\Support\Arr::toCssClasses([ - 'fi-body-has-navigation' => $hasNavigation, - 'fi-body-has-sidebar-collapsible-on-desktop' => $isSidebarCollapsibleOnDesktop, - 'fi-body-has-sidebar-fully-collapsible-on-desktop' => $isSidebarFullyCollapsibleOnDesktop, - 'fi-body-has-topbar' => $hasTopbar, - 'fi-body-has-top-navigation' => $hasTopNavigation, - ]))]); ?> - - - - - getTopbarLivewireComponent()); - -$key = null; - -$key ??= \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::generateKey('lw-1155085427-0', null); - -$__html = app('livewire')->mount($__name, $__params, $key); - -echo $__html; - -unset($__html); -unset($__name); -unset($__params); -unset($__split); -if (isset($__slots)) unset($__slots); -?> - - - - -
- x-data="{}" - x-bind:class="{ 'lg:fi-hidden': $store.sidebar.isOpen }" - - class=" ! $isSidebarFullyCollapsibleOnDesktop, - ]); ?>" - > - - - 'filament::components.icon-button','data' => ['color' => 'gray','icon' => \Filament\Support\Icons\Heroicon::OutlinedBars3,'iconAlias' => \Filament\View\PanelsIconAlias::SIDEBAR_EXPAND_BUTTON,'iconSize' => 'lg','label' => __('filament-panels::layout.actions.sidebar.expand.label'),'xCloak' => true,'xData' => '{}','xOn:click' => '$store.sidebar.open()','class' => 'fi-layout-sidebar-toggle-btn']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::icon-button'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['color' => 'gray','icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(\Filament\Support\Icons\Heroicon::OutlinedBars3),'icon-alias' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(\Filament\View\PanelsIconAlias::SIDEBAR_EXPAND_BUTTON),'icon-size' => 'lg','label' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('filament-panels::layout.actions.sidebar.expand.label')),'x-cloak' => true,'x-data' => '{}','x-on:click' => '$store.sidebar.open()','class' => 'fi-layout-sidebar-toggle-btn']); ?> -renderComponent(); ?> - - - - - - - - - -
- - -
- - - - -
- - getSidebarLivewireComponent()); - -$key = null; - -$key ??= \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::generateKey('lw-1155085427-1', null); - -$__html = app('livewire')->mount($__name, $__params, $key); - -echo $__html; - -unset($__html); -unset($__name); -unset($__params); -unset($__split); -if (isset($__slots)) unset($__slots); -?> - - -
- x-data="{}" - x-bind:class="{ - 'fi-main-ctn-sidebar-open': $store.sidebar.isOpen, - }" - x-bind:style="'display: flex; opacity:1;'" - - - x-data="{}" - x-bind:class="{ - 'fi-main-ctn-sidebar-open': $store.sidebar.isOpen, - }" - x-bind:style="'display: flex; opacity:1;'" - - - x-data="{}" - x-bind:style="'display: flex; opacity:1;'" - - class="fi-main-ctn" - > - - - -
value}" : $maxContentWidth, - ]); ?>" - > - - - - - - - - -
- - - - - - -
- - - -
- renderComponent(); ?> - - - - - - - - - - \ No newline at end of file diff --git a/storage/framework/views/455ff850486ccce453ce0236dc39aa1c.php b/storage/framework/views/455ff850486ccce453ce0236dc39aa1c.php deleted file mode 100644 index 72c87c8..0000000 --- a/storage/framework/views/455ff850486ccce453ce0236dc39aa1c.php +++ /dev/null @@ -1,65 +0,0 @@ -getBrandName(); - $brandLogo = filament()->getBrandLogo(); - $brandLogoHeight = filament()->getBrandLogoHeight() ?? '1.5rem'; - $darkModeBrandLogo = filament()->getDarkModeBrandLogo(); - $hasDarkModeBrandLogo = filled($darkModeBrandLogo); - - $getLogoClasses = fn (bool $isDarkMode): string => \Illuminate\Support\Arr::toCssClasses([ - 'fi-logo', - 'fi-logo-light' => $hasDarkModeBrandLogo && (! $isDarkMode), - 'fi-logo-dark' => $isDarkMode, - ]); - - $logoStyles = "height: {$brandLogoHeight}"; -?> - - - - - -
class([$getLogoClasses($isDarkMode)]) - ->style([$logoStyles])); ?> - - > - - -
- - <?php echo e(__('filament-panels::layout.logo.alt', ['name' => $brandName])); ?>class([$getLogoClasses($isDarkMode)]) - ->style([$logoStyles])); ?> - - /> - -
class([ - $getLogoClasses($isDarkMode), - ])); ?> - - > - - -
- - - - - - - - - - - - - \ No newline at end of file diff --git a/storage/framework/views/4d849bad84da6cde90ae52b9d9f50dec.php b/storage/framework/views/4d849bad84da6cde90ae52b9d9f50dec.php deleted file mode 100644 index d37c2fe..0000000 --- a/storage/framework/views/4d849bad84da6cde90ae52b9d9f50dec.php +++ /dev/null @@ -1,286 +0,0 @@ - - - null, - 'badgeColor' => 'primary', - 'badgeSize' => Size::ExtraSmall, - 'color' => 'primary', - 'disabled' => false, - 'form' => null, - 'formId' => null, - 'href' => null, - 'icon' => null, - 'iconAlias' => null, - 'iconPosition' => IconPosition::Before, - 'iconSize' => null, - 'keyBindings' => null, - 'labeledFrom' => null, - 'labelSrOnly' => false, - 'loadingIndicator' => true, - 'outlined' => false, - 'size' => Size::Medium, - 'spaMode' => null, - 'tag' => 'button', - 'target' => null, - 'tooltip' => null, - 'type' => 'button', -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'badge' => null, - 'badgeColor' => 'primary', - 'badgeSize' => Size::ExtraSmall, - 'color' => 'primary', - 'disabled' => false, - 'form' => null, - 'formId' => null, - 'href' => null, - 'icon' => null, - 'iconAlias' => null, - 'iconPosition' => IconPosition::Before, - 'iconSize' => null, - 'keyBindings' => null, - 'labeledFrom' => null, - 'labelSrOnly' => false, - 'loadingIndicator' => true, - 'outlined' => false, - 'size' => Size::Medium, - 'spaMode' => null, - 'tag' => 'button', - 'target' => null, - 'tooltip' => null, - 'type' => 'button', -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - - IconSize::Small, - default => null, - }; - - $wireTarget = $loadingIndicator ? $attributes->whereStartsWith(['wire:target', 'wire:click'])->filter(fn ($value): bool => filled($value))->first() : null; - - $hasFormProcessingLoadingIndicator = $type === 'submit' && filled($form); - $hasLoadingIndicator = filled($wireTarget) || $hasFormProcessingLoadingIndicator; - - if ($hasLoadingIndicator) { - $loadingIndicatorTarget = html_entity_decode($wireTarget ?: $form, ENT_QUOTES); - } - - $hasTooltip = filled($tooltip); -?> - - - - - 'filament::components.icon-button','data' => ['badge' => $badge,'badgeColor' => $badgeColor,'badgeSize' => $badgeSize,'color' => $color,'disabled' => $disabled,'form' => $form,'formId' => $formId,'href' => $href,'icon' => $icon,'iconAlias' => $iconAlias,'iconSize' => $iconSize,'keyBindings' => $keyBindings,'label' => $slot,'loadingIndicator' => $loadingIndicator,'size' => $size,'spaMode' => $spaMode,'tag' => $tag,'target' => $target,'tooltip' => $tooltip,'type' => $type,'attributes' => \Filament\Support\prepare_inherited_attributes($attributes)]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::icon-button'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['badge' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($badge),'badge-color' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($badgeColor),'badge-size' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($badgeSize),'color' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($color),'disabled' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($disabled),'form' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($form),'form-id' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($formId),'href' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($href),'icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($icon),'icon-alias' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($iconAlias),'icon-size' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($iconSize),'key-bindings' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($keyBindings),'label' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($slot),'loading-indicator' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($loadingIndicator),'size' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($size),'spa-mode' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($spaMode),'tag' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($tag),'target' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($target),'tooltip' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($tooltip),'type' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($type),'attributes' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(\Filament\Support\prepare_inherited_attributes($attributes))]); ?> -renderComponent(); ?> - - - - - - - - - - - -< - - - - - - - x-bind:id="$id('key-bindings')" - x-mousetrap.global.map(fn (string $keyBinding): string => str_replace('+', '-', $keyBinding))->implode('.')); ?>="document.getElementById($el.id)?.click()" - - - x-tooltip="{ - content: toHtml() ?>, - theme: $store.theme, - allowHTML: toHtml() ?>, - }" - - - x-data="filamentFormButton" - x-bind:class="{ 'fi-processing': isProcessing }" - - merge([ - 'aria-disabled' => $disabled ? 'true' : null, - 'aria-label' => $labelSrOnly ? trim(strip_tags($slot->toHtml())) : null, - 'disabled' => $disabled && blank($tooltip), - 'form' => $formId, - 'type' => $tag === 'button' ? $type : null, - 'wire:loading.attr' => $tag === 'button' ? 'disabled' : null, - 'wire:target' => ($hasLoadingIndicator && $loadingIndicatorTarget) ? $loadingIndicatorTarget : null, - 'x-bind:disabled' => $hasFormProcessingLoadingIndicator ? 'isProcessing' : null, - 'x-bind:aria-label' => ($labelSrOnly && $hasFormProcessingLoadingIndicator) ? ('isProcessing ? processingMessage : ' . \Illuminate\Support\Js::from(trim(strip_tags($slot->toHtml())))) : null, - ], escape: false) - ->when( - $disabled && $hasTooltip, - fn (ComponentAttributeBag $attributes) => $attributes->filter( - fn (mixed $value, string $key): bool => ! str($key)->startsWith(['href', 'x-on:', 'wire:click']), - ), - ) - ->class([ - 'fi-btn', - 'fi-disabled' => $disabled, - 'fi-outlined' => $outlined, - ($size instanceof Size) ? "fi-size-{$size->value}" : (is_string($size) ? $size : ''), - is_string($labeledFrom) ? "fi-labeled-from-{$labeledFrom}" : null, - ]) - ->color(app(ButtonComponent::class, ['isOutlined' => $outlined]), $color)); ?> - -> - - - $hasLoadingIndicator, - 'wire:target' => $hasLoadingIndicator ? $loadingIndicatorTarget : false, - ])), size: $iconSize)); ?> - - - - - '', - 'wire:target' => $loadingIndicatorTarget, - ])), size: $iconSize)); ?> - - - - - 'x-cloak', - 'x-show' => 'isProcessing', - ])), size: $iconSize)); ?> - - - - - - - - - - - - - - - - - - - - - - - $hasLoadingIndicator, - 'wire:target' => $hasLoadingIndicator ? $loadingIndicatorTarget : false, - ])), size: $iconSize)); ?> - - - - - '', - 'wire:target' => $loadingIndicatorTarget, - ])), size: $iconSize)); ?> - - - - - 'x-cloak', - 'x-show' => 'isProcessing', - ])), size: $iconSize)); ?> - - - - - -
- - - - - color(BadgeComponent::class, $badgeColor)->class([ - 'fi-badge', - ($badgeSize instanceof Size) ? "fi-size-{$badgeSize->value}" : (is_string($badgeSize) ? $badgeSize : ''), - ])); ?> - - > - - - - -
- -> - \ No newline at end of file diff --git a/storage/framework/views/54c3d5356cdbbbf74cb08435146375fb.php b/storage/framework/views/54c3d5356cdbbbf74cb08435146375fb.php new file mode 100644 index 0000000..b3edd15 --- /dev/null +++ b/storage/framework/views/54c3d5356cdbbbf74cb08435146375fb.php @@ -0,0 +1,7 @@ + + +startSection('title', __('Page Expired')); ?> +startSection('code', '419'); ?> +startSection('message', __('Page Expired')); ?> + +make('errors::minimal', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?> \ No newline at end of file diff --git a/storage/framework/views/56fb2027097802fe9887c535d9dde9ce.php b/storage/framework/views/56fb2027097802fe9887c535d9dde9ce.php deleted file mode 100644 index 550abce..0000000 --- a/storage/framework/views/56fb2027097802fe9887c535d9dde9ce.php +++ /dev/null @@ -1,101 +0,0 @@ - null, - 'subheading' => null, -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'heading' => null, - 'subheading' => null, -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - -getHeading(); - $subheading ??= $this->getSubHeading(); - $hasLogo = $this->hasLogo(); -?> - -
class(['fi-simple-page'])); ?>> - getRenderHookScopes())); ?> - - -
- - - - 'filament-panels::components.header.simple','data' => ['heading' => $heading,'logo' => $hasLogo,'subheading' => $subheading]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-panels::header.simple'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['heading' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($heading),'logo' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($hasLogo),'subheading' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($subheading)]); ?> -renderComponent(); ?> - - - - - - - - - - - - - -
- - - - - 'filament-actions::components.modals','data' => []] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-actions::modals'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes([]); ?> -renderComponent(); ?> - - - - - - - - - - - - getRenderHookScopes())); ?> - -
- \ No newline at end of file diff --git a/storage/framework/views/5f17ddd0ec9f99758a0ca6c6c13e21d7.php b/storage/framework/views/5f17ddd0ec9f99758a0ca6c6c13e21d7.php deleted file mode 100644 index 4d91ae5..0000000 --- a/storage/framework/views/5f17ddd0ec9f99758a0ca6c6c13e21d7.php +++ /dev/null @@ -1,23 +0,0 @@ - - - 'filament-panels::components.page.index','data' => []] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-panels::page'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes([]); ?> - content); ?> - - renderComponent(); ?> - - - - - - - - - - \ No newline at end of file diff --git a/storage/framework/views/61c62dff15b13791a69c395cb00e09c8.php b/storage/framework/views/61c62dff15b13791a69c395cb00e09c8.php deleted file mode 100644 index ce6e6ac..0000000 --- a/storage/framework/views/61c62dff15b13791a69c395cb00e09c8.php +++ /dev/null @@ -1,59 +0,0 @@ -all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'icon', - 'theme', -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - - - - - \ No newline at end of file diff --git a/storage/framework/views/66ae2094a35369fe66cfe9d08e5483c4.php b/storage/framework/views/66ae2094a35369fe66cfe9d08e5483c4.php deleted file mode 100644 index 83b82e0..0000000 --- a/storage/framework/views/66ae2094a35369fe66cfe9d08e5483c4.php +++ /dev/null @@ -1,70 +0,0 @@ - - - 'gray', - 'icon' => null, - 'iconSize' => null, - 'tag' => 'div', -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'color' => 'gray', - 'icon' => null, - 'iconSize' => null, - 'tag' => 'div', -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - - - -< - - class([ - 'fi-dropdown-header', - ]) - ->color(HeaderComponent::class, $color)); ?> - -> - - - - - - - -> - \ No newline at end of file diff --git a/storage/framework/views/67a7f07200c3d8fa00ba4fe72a50cf46.php b/storage/framework/views/67a7f07200c3d8fa00ba4fe72a50cf46.php deleted file mode 100644 index cd3e390..0000000 --- a/storage/framework/views/67a7f07200c3d8fa00ba4fe72a50cf46.php +++ /dev/null @@ -1,52 +0,0 @@ - - -
-
- addLoop($__currentLoopData); foreach($__currentLoopData as $notification): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - - - popLoop(); $loop = $__env->getLastLoop(); ?> -
- - getBroadcastChannel()): ?> - - - push('scripts', $__output, $__scriptKey) - ?> - -
- \ No newline at end of file diff --git a/storage/framework/views/690e9b8d1239f81f482e37c384703b0e.php b/storage/framework/views/690e9b8d1239f81f482e37c384703b0e.php index 05ea29f..ac02973 100644 --- a/storage/framework/views/690e9b8d1239f81f482e37c384703b0e.php +++ b/storage/framework/views/690e9b8d1239f81f482e37c384703b0e.php @@ -429,7 +429,7 @@
- printStocks; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $stock): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
type === 'mural'): ?> @@ -542,12 +542,12 @@
- +
- +
diff --git a/storage/framework/views/6e51499aeff83c919e16b854057abefc.php b/storage/framework/views/6e51499aeff83c919e16b854057abefc.php deleted file mode 100644 index f265b16..0000000 --- a/storage/framework/views/6e51499aeff83c919e16b854057abefc.php +++ /dev/null @@ -1,342 +0,0 @@ - false, - 'collapsible' => true, - 'icon' => null, - 'items' => [], - 'label' => null, - 'sidebarCollapsible' => true, - 'subNavigation' => false, -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'active' => false, - 'collapsible' => true, - 'icon' => null, - 'items' => [], - 'label' => null, - 'sidebarCollapsible' => true, - 'subNavigation' => false, -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - -isSidebarCollapsibleOnDesktop(); - $hasDropdown = filled($label) && filled($icon) && $sidebarCollapsible; -?> - -
  • toHtml() ?> }" - data-group-label="" - x-bind:class="{ 'fi-collapsed': $store.sidebar.groupIsCollapsed(label) }" - class([ - 'fi-sidebar-group', - 'fi-active' => $active, - 'fi-collapsible' => $collapsible, - ])); ?> - -> - -
    - x-on:click="$store.sidebar.toggleCollapsedGroup(label)" - role="button" - - - x-show="$store.sidebar.isOpen" - x-transition:enter="fi-transition-enter" - x-transition:enter-start="fi-transition-enter-start" - x-transition:enter-end="fi-transition-enter-end" - - class="fi-sidebar-group-btn" - > - - - - - - - - - - - - - - 'filament::components.icon-button','data' => ['color' => 'gray','icon' => \Filament\Support\Icons\Heroicon::ChevronUp,'iconAlias' => \Filament\View\PanelsIconAlias::SIDEBAR_GROUP_COLLAPSE_BUTTON,'label' => $label,'xBind:ariaExpanded' => '! $store.sidebar.groupIsCollapsed(label)','xOn:click.stop' => '$store.sidebar.toggleCollapsedGroup(label)','class' => 'fi-sidebar-group-collapse-btn']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::icon-button'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['color' => 'gray','icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(\Filament\Support\Icons\Heroicon::ChevronUp),'icon-alias' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(\Filament\View\PanelsIconAlias::SIDEBAR_GROUP_COLLAPSE_BUTTON),'label' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($label),'x-bind:aria-expanded' => '! $store.sidebar.groupIsCollapsed(label)','x-on:click.stop' => '$store.sidebar.toggleCollapsedGroup(label)','class' => 'fi-sidebar-group-collapse-btn']); ?> -renderComponent(); ?> - - - - - - - - - - -
    - - - - - - 'filament::components.dropdown.index','data' => ['placement' => (__('filament-panels::layout.direction') === 'rtl') ? 'left-start' : 'right-start','xShow' => '! $store.sidebar.isOpen']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::dropdown'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['placement' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute((__('filament-panels::layout.direction') === 'rtl') ? 'left-start' : 'right-start'),'x-show' => '! $store.sidebar.isOpen']); ?> - slot('trigger', null, []); ?> - - endSlot(); ?> - - getChildItems()) { - $lists[] = [ - $item, - ...$childItems, - ]; - $lists[] = []; - - continue; - } - - if (empty($lists)) { - $lists[] = [$item]; - - continue; - } - - $lists[count($lists) - 1][] = $item; - } - - if (empty($lists[count($lists) - 1])) { - array_pop($lists); - } - ?> - - - - - 'filament::components.dropdown.header','data' => []] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::dropdown.header'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes([]); ?> - - - renderComponent(); ?> - - - - - - - - - - - - addLoop($__currentLoopData); foreach($__currentLoopData as $list): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - - - 'filament::components.dropdown.list.index','data' => []] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::dropdown.list'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes([]); ?> - addLoop($__currentLoopData); foreach($__currentLoopData as $item): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - isActive(); - $itemBadge = $item->getBadge(); - $itemBadgeColor = $item->getBadgeColor(); - $itemBadgeTooltip = $item->getBadgeTooltip(); - $itemUrl = $item->getUrl(); - $itemIcon = $itemIsActive ? ($item->getActiveIcon() ?? $item->getIcon()) : $item->getIcon(); - $shouldItemOpenUrlInNewTab = $item->shouldOpenUrlInNewTab(); - ?> - - - - 'filament::components.dropdown.list.item','data' => ['badge' => $itemBadge,'badgeColor' => $itemBadgeColor,'badgeTooltip' => $itemBadgeTooltip,'color' => $itemIsActive ? 'primary' : 'gray','href' => $itemUrl,'icon' => $itemIcon,'tag' => 'a','target' => $shouldItemOpenUrlInNewTab ? '_blank' : null]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::dropdown.list.item'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['badge' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($itemBadge),'badge-color' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($itemBadgeColor),'badge-tooltip' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($itemBadgeTooltip),'color' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($itemIsActive ? 'primary' : 'gray'),'href' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($itemUrl),'icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($itemIcon),'tag' => 'a','target' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($shouldItemOpenUrlInNewTab ? '_blank' : null)]); ?> - getLabel()); ?> - - renderComponent(); ?> - - - - - - - - - - popLoop(); $loop = $__env->getLastLoop(); ?> - renderComponent(); ?> - - - - - - - - - - popLoop(); $loop = $__env->getLastLoop(); ?> - renderComponent(); ?> - - - - - - - - - - - -
      - - x-show="$store.sidebar.isOpen ? ! $store.sidebar.groupIsCollapsed(label) : ! toHtml() ?>" - - x-show="! $store.sidebar.groupIsCollapsed(label)" - - x-collapse.duration.200ms - - - x-transition:enter="fi-transition-enter" - x-transition:enter-start="fi-transition-enter-start" - x-transition:enter-end="fi-transition-enter-end" - - class="fi-sidebar-group-items" - > - addLoop($__currentLoopData); foreach($__currentLoopData as $item): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - isChildItemsActive(); - $isItemActive = (! $isItemChildItemsActive) && $item->isActive(); - $itemActiveIcon = $item->getActiveIcon(); - $itemBadge = $item->getBadge(); - $itemBadgeColor = $item->getBadgeColor(); - $itemBadgeTooltip = $item->getBadgeTooltip(); - $itemChildItems = $item->getChildItems(); - $itemIcon = $item->getIcon(); - $shouldItemOpenUrlInNewTab = $item->shouldOpenUrlInNewTab(); - $itemUrl = $item->getUrl(); - - if ($icon) { - if ($hasDropdown || (blank($itemIcon) && blank($itemActiveIcon))) { - $itemIcon = null; - $itemActiveIcon = null; - } else { - throw new \Exception('Navigation group [' . $label . '] has an icon but one or more of its items also have icons. Either the group or its items can have icons, but not both. This is to ensure a proper user experience.'); - } - } - ?> - - - - 'filament-panels::components.sidebar.item','data' => ['active' => $isItemActive,'activeChildItems' => $isItemChildItemsActive,'activeIcon' => $itemActiveIcon,'badge' => $itemBadge,'badgeColor' => $itemBadgeColor,'badgeTooltip' => $itemBadgeTooltip,'childItems' => $itemChildItems,'first' => $loop->first,'grouped' => filled($label),'icon' => $itemIcon,'last' => $loop->last,'shouldOpenUrlInNewTab' => $shouldItemOpenUrlInNewTab,'sidebarCollapsible' => $sidebarCollapsible,'subNavigation' => $subNavigation,'url' => $itemUrl]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-panels::sidebar.item'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['active' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isItemActive),'active-child-items' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isItemChildItemsActive),'active-icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($itemActiveIcon),'badge' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($itemBadge),'badge-color' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($itemBadgeColor),'badge-tooltip' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($itemBadgeTooltip),'child-items' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($itemChildItems),'first' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($loop->first),'grouped' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(filled($label)),'icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($itemIcon),'last' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($loop->last),'should-open-url-in-new-tab' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($shouldItemOpenUrlInNewTab),'sidebar-collapsible' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($sidebarCollapsible),'sub-navigation' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($subNavigation),'url' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($itemUrl)]); ?> - getLabel()); ?> - - - - slot('icon', null, []); ?> - - - endSlot(); ?> - - - - slot('activeIcon', null, []); ?> - - - endSlot(); ?> - - renderComponent(); ?> - - - - - - - - - - popLoop(); $loop = $__env->getLastLoop(); ?> -
    -
  • - \ No newline at end of file diff --git a/storage/framework/views/6e571b420efa227e90ca35c72263dced.php b/storage/framework/views/6e571b420efa227e90ca35c72263dced.php deleted file mode 100644 index 82073a8..0000000 --- a/storage/framework/views/6e571b420efa227e90ca35c72263dced.php +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - merge([ - 'id' => $id, - ], escape: false) - ->merge($extraAttributes, escape: false)); ?> - - > - - - - mount($__name, $__params, $key); - -echo $__html; - -unset($__html); -unset($__name); -unset($__params); -unset($__split); -if (isset($__slots)) unset($__slots); -?> - - mount($__name, $__params, $key); - -echo $__html; - -unset($__html); -unset($__name); -unset($__params); -unset($__split); -if (isset($__slots)) unset($__slots); -?> - - - '; ?> - - - - \ No newline at end of file diff --git a/storage/framework/views/723528cd4a5a6edc2403dddc15fad8ce.blade.php b/storage/framework/views/723528cd4a5a6edc2403dddc15fad8ce.blade.php deleted file mode 100644 index d8e74fd..0000000 --- a/storage/framework/views/723528cd4a5a6edc2403dddc15fad8ce.blade.php +++ /dev/null @@ -1,6 +0,0 @@ -getAttributes()))->mapWithKeys(function ($value, $key) { return [Illuminate\Support\Str::camel(str_replace([':', '.'], ' ', $key)) => $value]; })->all(), EXTR_SKIP); ?> -@props(['field','labelTag']) - - -{{ $slot ?? "" }} - \ No newline at end of file diff --git a/storage/framework/views/77a9bf0e867fdca3a11ef51783d0e448.php b/storage/framework/views/77a9bf0e867fdca3a11ef51783d0e448.php deleted file mode 100644 index e0d777d..0000000 --- a/storage/framework/views/77a9bf0e867fdca3a11ef51783d0e448.php +++ /dev/null @@ -1,12 +0,0 @@ -
    merge([ - 'id' => $getId(), - ], escape: false) - ->merge($getExtraAttributes(), escape: false)); ?> - -> - - -
    - \ No newline at end of file diff --git a/storage/framework/views/793878bac7f49084851c6a750de7b680.php b/storage/framework/views/793878bac7f49084851c6a750de7b680.php deleted file mode 100644 index 295acd3..0000000 --- a/storage/framework/views/793878bac7f49084851c6a750de7b680.php +++ /dev/null @@ -1,206 +0,0 @@ - - - null, - 'aside' => false, - 'collapsed' => false, - 'collapseId' => null, - 'collapsible' => false, - 'compact' => false, - 'contained' => true, - 'contentBefore' => false, - 'description' => null, - 'divided' => false, - 'footer' => null, - 'hasContentEl' => true, - 'heading' => null, - 'headingTag' => 'h2', - 'icon' => null, - 'iconColor' => 'gray', - 'iconSize' => null, - 'persistCollapsed' => false, - 'secondary' => false, -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'afterHeader' => null, - 'aside' => false, - 'collapsed' => false, - 'collapseId' => null, - 'collapsible' => false, - 'compact' => false, - 'contained' => true, - 'contentBefore' => false, - 'description' => null, - 'divided' => false, - 'footer' => null, - 'hasContentEl' => true, - 'heading' => null, - 'headingTag' => 'h2', - 'icon' => null, - 'iconColor' => 'gray', - 'iconSize' => null, - 'persistCollapsed' => false, - 'secondary' => false, -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - - - -
    - x-on:collapse-section.window="if ($event.detail.id == toHtml() ?> ?? $el.id) isCollapsed = true" - x-on:expand="isCollapsed = false" - x-on:expand-section.window="if ($event.detail.id == toHtml() ?> ?? $el.id) isCollapsed = false" - x-on:open-section.window="if ($event.detail.id == toHtml() ?> ?? $el.id) isCollapsed = false" - x-on:toggle-section.window="if ($event.detail.id == toHtml() ?> ?? $el.id) isCollapsed = ! isCollapsed" - x-bind:class="isCollapsed && 'fi-collapsed'" - - class([ - 'fi-section', - 'fi-section-not-contained' => ! $contained, - 'fi-section-has-content-before' => $contentBefore, - 'fi-section-has-header' => $hasHeader, - 'fi-aside' => $aside, - 'fi-compact' => $compact, - 'fi-collapsible' => $collapsible, - 'fi-divided' => $divided, - 'fi-secondary' => $secondary, - ])); ?> - -> - -
    - x-on:click="isCollapsed = ! isCollapsed" - - class="fi-section-header" - > - color(IconComponent::class, $iconColor), size: $iconSize ?? IconSize::Large)); ?> - - - -
    - - < class="fi-section-header-heading"> - - - > - - - -

    - - -

    - -
    - - - -
    - - -
    - - - - - - 'filament::components.icon-button','data' => ['color' => 'gray','icon' => \Filament\Support\Icons\Heroicon::ChevronUp,'iconAlias' => \Filament\Support\View\SupportIconAlias::SECTION_COLLAPSE_BUTTON,'xOn:click.stop' => 'isCollapsed = ! isCollapsed','class' => 'fi-section-collapse-btn']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::icon-button'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['color' => 'gray','icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(\Filament\Support\Icons\Heroicon::ChevronUp),'icon-alias' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(\Filament\Support\View\SupportIconAlias::SECTION_COLLAPSE_BUTTON),'x-on:click.stop' => 'isCollapsed = ! isCollapsed','class' => 'fi-section-collapse-btn']); ?> -renderComponent(); ?> - - - - - - - - - - -
    - - - -
    - x-bind:aria-expanded="(! isCollapsed).toString()" - - x-cloak - - - class="fi-section-content-ctn" - > - -
    - - -
    - - - - - - -
    - - -
    - -
    - -
    - \ No newline at end of file diff --git a/storage/framework/views/80c9a0a6308b17fbb7bf93fb62efe7a3.php b/storage/framework/views/80c9a0a6308b17fbb7bf93fb62efe7a3.php deleted file mode 100644 index d1f2526..0000000 --- a/storage/framework/views/80c9a0a6308b17fbb7bf93fb62efe7a3.php +++ /dev/null @@ -1,18 +0,0 @@ -hasUnsavedChangesAlerts()): ?> - - - push('scripts', $__output, $__scriptKey) - ?> - - \ No newline at end of file diff --git a/storage/framework/views/81d5610fd0a2b1fb1ea0942d4e877062.php b/storage/framework/views/81d5610fd0a2b1fb1ea0942d4e877062.php deleted file mode 100644 index 7e0e64f..0000000 --- a/storage/framework/views/81d5610fd0a2b1fb1ea0942d4e877062.php +++ /dev/null @@ -1,378 +0,0 @@ -
    - getNavigation(); - $isRtl = __('filament-panels::layout.direction') === 'rtl'; - $isSidebarCollapsibleOnDesktop = filament()->isSidebarCollapsibleOnDesktop(); - $isSidebarFullyCollapsibleOnDesktop = filament()->isSidebarFullyCollapsibleOnDesktop(); - $hasNavigation = filament()->hasNavigation(); - $hasTopbar = filament()->hasTopbar(); - ?> - - - - - - - - 'filament-actions::components.modals','data' => []] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-actions::modals'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes([]); ?> -renderComponent(); ?> - - - - - - - - - -
    - \ No newline at end of file diff --git a/storage/framework/views/8225b4ab5e177c6ce756bf6bd43eb60c.php b/storage/framework/views/8225b4ab5e177c6ce756bf6bd43eb60c.php deleted file mode 100644 index c65fd1a..0000000 --- a/storage/framework/views/8225b4ab5e177c6ce756bf6bd43eb60c.php +++ /dev/null @@ -1,45 +0,0 @@ - false, - 'inlineSuffix' => false, -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'inlinePrefix' => false, - 'inlineSuffix' => false, -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - -class([ - 'fi-input', - 'fi-input-has-inline-prefix' => $inlinePrefix, - 'fi-input-has-inline-suffix' => $inlineSuffix, - ])); ?> - -/> - \ No newline at end of file diff --git a/storage/framework/views/8848a11e123e6274892c44c05c02e2c0.php b/storage/framework/views/8848a11e123e6274892c44c05c02e2c0.php deleted file mode 100644 index cb93c1f..0000000 --- a/storage/framework/views/8848a11e123e6274892c44c05c02e2c0.php +++ /dev/null @@ -1,21 +0,0 @@ -hasActionsModalRendered)): ?> -
    - getMountedActions(); $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $action): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - last) || $this->mountedActionShouldOpenModal()): ?> - toModalHtmlable()); ?> - - - popLoop(); $loop = $__env->getLastLoop(); ?> -
    - - hasActionsModalRendered = true; - ?> - - \ No newline at end of file diff --git a/storage/framework/views/89e20d28937b735b6c73bd70fec38023.php b/storage/framework/views/89e20d28937b735b6c73bd70fec38023.php deleted file mode 100644 index 881f47b..0000000 --- a/storage/framework/views/89e20d28937b735b6c73bd70fec38023.php +++ /dev/null @@ -1,265 +0,0 @@ - - - null, - 'errorMessage' => null, - 'errorMessages' => null, - 'field' => null, - 'hasErrors' => true, - 'hasInlineLabel' => null, - 'hasNestedRecursiveValidationRules' => null, - 'id' => null, - 'inlineLabelVerticalAlignment' => VerticalAlignment::Start, - 'isDisabled' => null, - 'label' => null, - 'labelPrefix' => null, - 'labelSrOnly' => null, - 'labelSuffix' => null, - 'labelTag' => 'label', - 'required' => null, - 'shouldShowAllValidationMessages' => null, - 'statePath' => null, -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'areHtmlErrorMessagesAllowed' => null, - 'errorMessage' => null, - 'errorMessages' => null, - 'field' => null, - 'hasErrors' => true, - 'hasInlineLabel' => null, - 'hasNestedRecursiveValidationRules' => null, - 'id' => null, - 'inlineLabelVerticalAlignment' => VerticalAlignment::Start, - 'isDisabled' => null, - 'label' => null, - 'labelPrefix' => null, - 'labelSrOnly' => null, - 'labelSuffix' => null, - 'labelTag' => 'label', - 'required' => null, - 'shouldShowAllValidationMessages' => null, - 'statePath' => null, -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - -hasInlineLabel(); - $hasNestedRecursiveValidationRules ??= $field instanceof \Filament\Forms\Components\Contracts\HasNestedRecursiveValidationRules; - $id ??= $field->getId(); - $isDisabled ??= $field->isDisabled(); - $label ??= $field->getLabel(); - $labelSrOnly ??= $field->isLabelHidden(); - $required ??= $field->isMarkedAsRequired(); - $statePath ??= $field->getStatePath(); - $areHtmlErrorMessagesAllowed ??= $field->areHtmlValidationMessagesAllowed(); - $shouldShowAllValidationMessages ??= $field->shouldShowAllValidationMessages(); - } - - $aboveLabelSchema = $field?->getChildSchema($field::ABOVE_LABEL_SCHEMA_KEY)?->toHtmlString(); - $belowLabelSchema = $field?->getChildSchema($field::BELOW_LABEL_SCHEMA_KEY)?->toHtmlString(); - $beforeLabelSchema = $field?->getChildSchema($field::BEFORE_LABEL_SCHEMA_KEY)?->toHtmlString(); - $afterLabelSchema = $field?->getChildSchema($field::AFTER_LABEL_SCHEMA_KEY)?->toHtmlString(); - $aboveContentSchema = $field?->getChildSchema($field::ABOVE_CONTENT_SCHEMA_KEY)?->toHtmlString(); - $belowContentSchema = $field?->getChildSchema($field::BELOW_CONTENT_SCHEMA_KEY)?->toHtmlString(); - $beforeContentSchema = $field?->getChildSchema($field::BEFORE_CONTENT_SCHEMA_KEY)?->toHtmlString(); - $afterContentSchema = $field?->getChildSchema($field::AFTER_CONTENT_SCHEMA_KEY)?->toHtmlString(); - $aboveErrorMessageSchema = $field?->getChildSchema($field::ABOVE_ERROR_MESSAGE_SCHEMA_KEY)?->toHtmlString(); - $belowErrorMessageSchema = $field?->getChildSchema($field::BELOW_ERROR_MESSAGE_SCHEMA_KEY)?->toHtmlString(); - - $hasError = $hasErrors && (filled($errorMessage) || filled($errorMessages) || (filled($statePath) && ($errors->has($statePath) || ($hasNestedRecursiveValidationRules && $errors->has("{$statePath}.*"))))); - - if ($hasError && filled($statePath) && blank($errorMessage) && blank($errorMessages)) { - if ($shouldShowAllValidationMessages) { - $errorMessages = $errors->has($statePath) ? $errors->get($statePath) : ($hasNestedRecursiveValidationRules ? $errors->get("{$statePath}.*") : []); - - if (count($errorMessages) === 1) { - $errorMessage = Arr::first($errorMessages); - $errorMessages = []; - } - } else { - $errorMessage = $errors->has($statePath) ? $errors->first($statePath) : ($hasNestedRecursiveValidationRules ? $errors->first("{$statePath}.*") : null); - } - } -?> - -
    merge($field?->getExtraFieldWrapperAttributes() ?? [], escape: false) - ->class([ - 'fi-fo-field', - 'fi-fo-field-has-inline-label' => $hasInlineLabel, - ])); ?> - -> - - < - - - for="" - - id="-label" - - class="fi-fo-field-label fi-sr-only" - > - - - > - - - -
    value}" => $hasInlineLabel, - ]); ?>" - > - - - -
    - - - - - < - - - for="" - - id="-label" - - class="fi-fo-field-label" - > - - - - - - * - - - - - - - > - - - - -
    - - - -
    - - - -
    - - - - -
    - - - -
    - - -
    - - - -
    - - - - - - - - - - - - - -
      - addLoop($__currentLoopData); foreach($__currentLoopData as $errorMessage): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> -
    • - - - - - - - -
    • - popLoop(); $loop = $__env->getLastLoop(); ?> -
    - -
    - - -
    - -

    - - -

    - - - - - -
    - -
    - \ No newline at end of file diff --git a/storage/framework/views/8dd2c79bd081de46821e5a4c16e0218a.php b/storage/framework/views/8dd2c79bd081de46821e5a4c16e0218a.php new file mode 100644 index 0000000..6967134 --- /dev/null +++ b/storage/framework/views/8dd2c79bd081de46821e5a4c16e0218a.php @@ -0,0 +1,282 @@ + + +startSection('title', 'My Orders - Additional Design'); ?> + +startSection('styles'); ?> + +stopSection(); ?> + +startSection('content'); ?> +
    +
    +

    My Orders

    +

    View your standard and custom orders

    +
    + + +
    +

    Standard Orders

    + + count() > 0): ?> +
    + + + + + + + + + + + + addLoop($__currentLoopData); foreach($__currentLoopData as $order): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> + + + + + + + + popLoop(); $loop = $__env->getLastLoop(); ?> + +
    Order #DateTotalStatusAction
    order_number); ?>created_at->format('d M Y')); ?>Rtotal, 2)); ?> + + status))); ?> + + + + View Details +
    +
    + +
    +

    You haven't placed any standard orders yet.

    + Browse Products +
    + +
    + + +
    +
    +

    Custom Orders

    + + New Custom Order +
    + + count() > 0): ?> +
    + + + + + + + + + + + + + addLoop($__currentLoopData); foreach($__currentLoopData as $order): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> + + + + + + + + + popLoop(); $loop = $__env->getLastLoop(); ?> + +
    Order #TypeTotalStatusDepositAction
    order_number); ?>type)); ?>Rtotal_cost, 2)); ?> + + status))); ?> + + + + + deposit_status)); ?> + + + + View Details +
    +
    + +
    +

    You haven't created any custom orders yet.

    + Create Custom Order +
    + +
    +
    +stopSection(); ?> + +make('layouts.app', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?> \ No newline at end of file diff --git a/storage/framework/views/8e965d04afbd3d125b04967406aafa03.php b/storage/framework/views/8e965d04afbd3d125b04967406aafa03.php deleted file mode 100644 index 52df10d..0000000 --- a/storage/framework/views/8e965d04afbd3d125b04967406aafa03.php +++ /dev/null @@ -1,189 +0,0 @@ - - - null, - 'badgeColor' => 'primary', - 'badgeSize' => Size::ExtraSmall, - 'color' => 'primary', - 'disabled' => false, - 'form' => null, - 'formId' => null, - 'href' => null, - 'icon' => null, - 'iconAlias' => null, - 'iconSize' => null, - 'keyBindings' => null, - 'label' => null, - 'loadingIndicator' => true, - 'size' => Size::Medium, - 'spaMode' => null, - 'tag' => 'button', - 'target' => null, - 'tooltip' => null, - 'type' => 'button', -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'badge' => null, - 'badgeColor' => 'primary', - 'badgeSize' => Size::ExtraSmall, - 'color' => 'primary', - 'disabled' => false, - 'form' => null, - 'formId' => null, - 'href' => null, - 'icon' => null, - 'iconAlias' => null, - 'iconSize' => null, - 'keyBindings' => null, - 'label' => null, - 'loadingIndicator' => true, - 'size' => Size::Medium, - 'spaMode' => null, - 'tag' => 'button', - 'target' => null, - 'tooltip' => null, - 'type' => 'button', -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - - IconSize::Small, - Size::Large, Size::ExtraLarge => IconSize::Large, - default => null, - }; - - $wireTarget = $loadingIndicator ? $attributes->whereStartsWith(['wire:target', 'wire:click'])->filter(fn ($value): bool => filled($value))->first() : null; - - $hasLoadingIndicator = filled($wireTarget) || ($type === 'submit' && filled($form)); - - if ($hasLoadingIndicator) { - $loadingIndicatorTarget = html_entity_decode($wireTarget ?: $form, ENT_QUOTES); - } - - $hasTooltip = $hasTooltip = filled($tooltip); -?> - -< - - - - - - - x-bind:id="$id('key-bindings')" - x-mousetrap.global.map(fn (string $keyBinding): string => str_replace('+', '-', $keyBinding))->implode('.')); ?>="document.getElementById($el.id)?.click()" - - - x-tooltip="{ - content: toHtml() ?>, - theme: $store.theme, - allowHTML: toHtml() ?>, - }" - - merge([ - 'aria-disabled' => $disabled ? 'true' : null, - 'aria-label' => $label, - 'disabled' => $disabled && blank($tooltip), - 'form' => $formId, - 'type' => $tag === 'button' ? $type : null, - 'wire:loading.attr' => $tag === 'button' ? 'disabled' : null, - 'wire:target' => ($hasLoadingIndicator && $loadingIndicatorTarget) ? $loadingIndicatorTarget : null, - ], escape: false) - ->merge([ - 'title' => $hasTooltip ? null : $label, - ], escape: true) - ->when( - $disabled && $hasTooltip, - fn (ComponentAttributeBag $attributes) => $attributes->filter( - fn (mixed $value, string $key): bool => ! str($key)->startsWith(['href', 'x-on:', 'wire:click']), - ), - ) - ->class([ - 'fi-icon-btn', - 'fi-disabled' => $disabled, - ($size instanceof Size) ? "fi-size-{$size->value}" : (is_string($size) ? $size : ''), - ]) - ->color(IconButtonComponent::class, $color)); ?> - -> - $hasLoadingIndicator, - 'wire:target' => $hasLoadingIndicator ? $loadingIndicatorTarget : false, - ])), size: $iconSize)); ?> - - - - '', - 'wire:target' => $loadingIndicatorTarget, - ])), size: $iconSize)); ?> - - - - -
    - - - - - color(BadgeComponent::class, $badgeColor)->class([ - 'fi-badge', - ($badgeSize instanceof Size) ? "fi-size-{$badgeSize->value}" : (is_string($badgeSize) ? $badgeSize : ''), - ])); ?> - - > - - - - -
    - -> - \ No newline at end of file diff --git a/storage/framework/views/8f77655fced827f2335dc0fd5b0b86c6.php b/storage/framework/views/8f77655fced827f2335dc0fd5b0b86c6.php deleted file mode 100644 index 2a7e0be..0000000 --- a/storage/framework/views/8f77655fced827f2335dc0fd5b0b86c6.php +++ /dev/null @@ -1,112 +0,0 @@ - null, - 'availableWidth' => null, - 'flip' => true, - 'maxHeight' => null, - 'offset' => 8, - 'placement' => null, - 'shift' => false, - 'size' => false, - 'sizePadding' => 16, - 'teleport' => false, - 'trigger' => null, - 'width' => null, -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'availableHeight' => null, - 'availableWidth' => null, - 'flip' => true, - 'maxHeight' => null, - 'offset' => 8, - 'placement' => null, - 'shift' => false, - 'size' => false, - 'sizePadding' => 16, - 'teleport' => false, - 'trigger' => null, - 'width' => null, -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - - $availableHeight, - 'availableWidth' => $availableWidth, - 'padding' => $sizePadding, - ])->filter()->toJson(); - - if (is_string($width)) { - $width = Width::tryFrom($width) ?? $width; - } -?> - -
    class(['fi-dropdown'])); ?> - -> -
    attributes->class(['fi-dropdown-trigger'])); ?> - - > - - -
    - - -
    ="{ offset: , }" - x-ref="panel" - x-transition:enter-start="fi-opacity-0" - x-transition:leave-end="fi-opacity-0" - has('wire:key')): ?> - wire:ignore.self - wire:key="get('wire:key')); ?>.panel" - - class="value}" : (is_string($width) ? $width : ''), - 'fi-scrollable' => $maxHeight || $size, - ]); ?>" - style=" $maxHeight, - ]) ?>" - > - - -
    - -
    - \ No newline at end of file diff --git a/storage/framework/views/90551f17a50a15ab24b4377ee8ae47dd.php b/storage/framework/views/90551f17a50a15ab24b4377ee8ae47dd.php deleted file mode 100644 index f8a02df..0000000 --- a/storage/framework/views/90551f17a50a15ab24b4377ee8ae47dd.php +++ /dev/null @@ -1,292 +0,0 @@ - - - null, - 'hasReorderableColumns', - 'hasToggleableColumns', - 'headingTag' => 'h3', - 'reorderAnimationDuration' => 300, - 'resetActionPosition' => ColumnManagerResetActionPosition::Header, -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'applyAction', - 'columns' => null, - 'hasReorderableColumns', - 'hasToggleableColumns', - 'headingTag' => 'h3', - 'reorderAnimationDuration' => 300, - 'resetActionPosition' => ColumnManagerResetActionPosition::Header, -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - -
    -
    -
    - < class="fi-ta-col-manager-heading"> - - - > - - -
    - - - 'filament::components.link','data' => ['attributes' => - \Filament\Support\prepare_inherited_attributes( - new ComponentAttributeBag([ - 'color' => 'danger', - 'tag' => 'button', - 'wire:click' => 'resetTableColumnManager', - 'wire:loading.remove.delay.' . config('filament.livewire_loading_delay', 'default') => '', - 'wire:target' => 'resetTableColumnManager', - ]) - ) - ]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::link'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['attributes' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute( - \Filament\Support\prepare_inherited_attributes( - new ComponentAttributeBag([ - 'color' => 'danger', - 'tag' => 'button', - 'wire:click' => 'resetTableColumnManager', - 'wire:loading.remove.delay.' . config('filament.livewire_loading_delay', 'default') => '', - 'wire:target' => 'resetTableColumnManager', - ]) - ) - )]); ?> - - - renderComponent(); ?> - - - - - - - - - -
    - -
    - -
    - x-sortable - x-on:end.stop="reorderColumns($event.target.sortable.toArray())" - data-sortable-animation-duration="" - - grid($columns, GridDirection::Column) - ->class(['fi-ta-col-manager-items'])); ?> - - > - -
    - - isVisible() || $resetActionPosition === ColumnManagerResetActionPosition::Footer): ?> -
    - isVisible()): ?> - - - - - - - - 'filament::components.button.index','data' => ['color' => 'danger','wire:click' => 'resetTableColumnManager']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::button'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['color' => 'danger','wire:click' => 'resetTableColumnManager']); ?> - - - renderComponent(); ?> - - - - - - - - - - -
    - -
    -
    - \ No newline at end of file diff --git a/storage/framework/views/92893849a26fcfa0273e3d6dabd17540.php b/storage/framework/views/92893849a26fcfa0273e3d6dabd17540.php deleted file mode 100644 index beef6b2..0000000 --- a/storage/framework/views/92893849a26fcfa0273e3d6dabd17540.php +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - 'filament::components.badge','data' => ['color' => $color,'icon' => $icon,'iconPosition' => $iconPosition,'iconSize' => $iconSize,'size' => $size instanceof \Filament\Support\Enums\TextSize ? $size->value : $size,'xOn:click' => - $isCopyable ? ' - window.navigator.clipboard.writeText(' . \Illuminate\Support\Js::from($copyableState) . ') - $tooltip(' . \Illuminate\Support\Js::from($copyMessage) . ', { - theme: $store.theme, - timeout: ' . \Illuminate\Support\Js::from($copyMessageDuration) . ', - }) - ' : null - ,'tag' => $isCopyable ? 'button' : 'span','tooltip' => $tooltip,'attributes' => \Filament\Support\prepare_inherited_attributes($getExtraAttributeBag()->class(['fi-sc-text']))]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::badge'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['color' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($color),'icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($icon),'icon-position' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($iconPosition),'icon-size' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($iconSize),'size' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($size instanceof \Filament\Support\Enums\TextSize ? $size->value : $size),'x-on:click' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute( - $isCopyable ? ' - window.navigator.clipboard.writeText(' . \Illuminate\Support\Js::from($copyableState) . ') - $tooltip(' . \Illuminate\Support\Js::from($copyMessage) . ', { - theme: $store.theme, - timeout: ' . \Illuminate\Support\Js::from($copyMessageDuration) . ', - }) - ' : null - ),'tag' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isCopyable ? 'button' : 'span'),'tooltip' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($tooltip),'attributes' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(\Filament\Support\prepare_inherited_attributes($getExtraAttributeBag()->class(['fi-sc-text'])))]); ?> - - - renderComponent(); ?> - - - - - - - - - - - - x-on:click=" - window.navigator.clipboard.writeText(toHtml() ?>) - $tooltip(toHtml() ?>, { - theme: $store.theme, - timeout: toHtml() ?>, - }) - " - - - x-tooltip="{ - content: toHtml() ?>, - theme: $store.theme, - allowHTML: toHtml() ?>, - }" - - color(TextComponent::class, $color) - ->class([ - 'fi-sc-text', - 'fi-copyable' => $isCopyable, - ($size instanceof \BackedEnum) ? "fi-size-{$size->value}" : $size, - ($weight instanceof FontWeight) ? "fi-font-{$weight->value}" : $weight, - ($fontFamily instanceof FontFamily) ? "fi-font-{$fontFamily->value}" : $fontFamily, - ]) - ->merge($getExtraAttributes(), escape: false)); ?> - - > - - - - - \ No newline at end of file diff --git a/storage/framework/views/963fa7931519a2bda4d512a9065cf86a.php b/storage/framework/views/963fa7931519a2bda4d512a9065cf86a.php deleted file mode 100644 index 1794c56..0000000 --- a/storage/framework/views/963fa7931519a2bda4d512a9065cf86a.php +++ /dev/null @@ -1,21 +0,0 @@ - - - - -addLoop($__currentLoopData); foreach($__currentLoopData as $asset): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - isLoadedOnRequest()): ?> - getHtml()); ?> - - -popLoop(); $loop = $__env->getLastLoop(); ?> - - - \ No newline at end of file diff --git a/storage/framework/views/97867fde05c61ffbb4be32bd2ec46ec7.php b/storage/framework/views/97867fde05c61ffbb4be32bd2ec46ec7.php deleted file mode 100644 index 3035094..0000000 --- a/storage/framework/views/97867fde05c61ffbb4be32bd2ec46ec7.php +++ /dev/null @@ -1,127 +0,0 @@ - [], - 'actionsAlignment' => null, - 'breadcrumbs' => [], - 'heading' => null, - 'subheading' => null, -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'actions' => [], - 'actionsAlignment' => null, - 'breadcrumbs' => [], - 'heading' => null, - 'subheading' => null, -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - -
    class([ - 'fi-header', - 'fi-header-has-breadcrumbs' => $breadcrumbs, - ])); ?> - -> -
    - - - - 'filament::components.breadcrumbs','data' => ['breadcrumbs' => $breadcrumbs]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::breadcrumbs'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['breadcrumbs' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($breadcrumbs)]); ?> -renderComponent(); ?> - - - - - - - - - - - - -

    - - -

    - - - -

    - - -

    - -
    - - getRenderHookScopes()); - $afterActions = \Filament\Support\Facades\FilamentView::renderHook(\Filament\View\PanelsRenderHook::PAGE_HEADER_ACTIONS_AFTER, scopes: $this->getRenderHookScopes()); - ?> - - -
    - - - - - - - 'filament::components.actions','data' => ['actions' => $actions,'alignment' => $actionsAlignment]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::actions'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['actions' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($actions),'alignment' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($actionsAlignment)]); ?> -renderComponent(); ?> - - - - - - - - - - - - - -
    - -
    - \ No newline at end of file diff --git a/storage/framework/views/9d691895ebd68604830197fe0ba20c4e.php b/storage/framework/views/9d691895ebd68604830197fe0ba20c4e.php deleted file mode 100644 index b0b74bb..0000000 --- a/storage/framework/views/9d691895ebd68604830197fe0ba20c4e.php +++ /dev/null @@ -1,227 +0,0 @@ - - - 'primary', - 'deleteButton' => null, - 'disabled' => false, - 'form' => null, - 'formId' => null, - 'href' => null, - 'icon' => null, - 'iconAlias' => null, - 'iconPosition' => IconPosition::Before, - 'iconSize' => null, - 'keyBindings' => null, - 'loadingIndicator' => true, - 'size' => Size::Medium, - 'spaMode' => null, - 'tag' => 'span', - 'target' => null, - 'tooltip' => null, - 'type' => 'button', -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'color' => 'primary', - 'deleteButton' => null, - 'disabled' => false, - 'form' => null, - 'formId' => null, - 'href' => null, - 'icon' => null, - 'iconAlias' => null, - 'iconPosition' => IconPosition::Before, - 'iconSize' => null, - 'keyBindings' => null, - 'loadingIndicator' => true, - 'size' => Size::Medium, - 'spaMode' => null, - 'tag' => 'span', - 'target' => null, - 'tooltip' => null, - 'type' => 'button', -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - -attributes->getAttributes() ?? []) > 0; - - $wireTarget = $loadingIndicator ? $attributes->whereStartsWith(['wire:target', 'wire:click'])->filter(fn ($value): bool => filled($value))->first() : null; - - $hasLoadingIndicator = filled($wireTarget) || ($type === 'submit' && filled($form)); - - if ($hasLoadingIndicator) { - $loadingIndicatorTarget = html_entity_decode($wireTarget ?: $form, ENT_QUOTES); - } - - $hasTooltip = filled($tooltip); -?> - -< - - - - - - - x-bind:id="$id('key-bindings')" - x-mousetrap.global.map(fn (string $keyBinding): string => str_replace('+', '-', $keyBinding))->implode('.')); ?>="document.getElementById($el.id)?.click()" - - - x-tooltip="{ - content: toHtml() ?>, - theme: $store.theme, - allowHTML: toHtml() ?>, - }" - - merge([ - 'aria-disabled' => $disabled ? 'true' : null, - 'disabled' => $disabled && blank($tooltip), - 'form' => $tag === 'button' ? $formId : null, - 'type' => $tag === 'button' ? $type : null, - 'wire:loading.attr' => $tag === 'button' ? 'disabled' : null, - 'wire:target' => ($hasLoadingIndicator && $loadingIndicatorTarget) ? $loadingIndicatorTarget : null, - ], escape: false) - ->when( - $disabled && $hasTooltip, - fn (ComponentAttributeBag $attributes) => $attributes->filter( - fn (mixed $value, string $key): bool => ! str($key)->startsWith(['href', 'x-on:', 'wire:click']), - ), - ) - ->class([ - 'fi-badge', - 'fi-disabled' => $disabled, - ($size instanceof Size) ? "fi-size-{$size->value}" : (is_string($size) ? $size : ''), - ]) - ->color(BadgeComponent::class, $color)); ?> - -> - - - $hasLoadingIndicator, - 'wire:target' => $hasLoadingIndicator ? $loadingIndicatorTarget : false, - ])), size: $iconSize ?? \Filament\Support\Enums\IconSize::Small)); ?> - - - - - '', - 'wire:target' => $loadingIndicatorTarget, - ])), size: $iconSize ?? \Filament\Support\Enums\IconSize::Small)); ?> - - - - - - - - - - - - - attributes->whereStartsWith(['wire:target', 'wire:click'])->filter(fn ($value): bool => filled($value))->first(); - - $deleteButtonHasLoadingIndicator = filled($deleteButtonWireTarget); - - if ($deleteButtonHasLoadingIndicator) { - $deleteButtonLoadingIndicatorTarget = html_entity_decode($deleteButtonWireTarget, ENT_QUOTES); - } - ?> - - - - - $hasLoadingIndicator, - 'wire:target' => $hasLoadingIndicator ? $loadingIndicatorTarget : false, - ])), size: $iconSize ?? \Filament\Support\Enums\IconSize::Small)); ?> - - - - - '', - 'wire:target' => $loadingIndicatorTarget, - ])), size: $iconSize ?? \Filament\Support\Enums\IconSize::Small)); ?> - - - -> - \ No newline at end of file diff --git a/storage/framework/views/9ef0dfd29e0ee94f00e7cbd0892f433c.php b/storage/framework/views/9ef0dfd29e0ee94f00e7cbd0892f433c.php deleted file mode 100644 index ab482c7..0000000 --- a/storage/framework/views/9ef0dfd29e0ee94f00e7cbd0892f433c.php +++ /dev/null @@ -1,75 +0,0 @@ -
    - - - 'filament-panels::components.theme-switcher.button','data' => ['icon' => \Filament\Support\Icons\Heroicon::Sun,'theme' => 'light']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-panels::theme-switcher.button'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(\Filament\Support\Icons\Heroicon::Sun),'theme' => 'light']); ?> -renderComponent(); ?> - - - - - - - - - - - - - 'filament-panels::components.theme-switcher.button','data' => ['icon' => \Filament\Support\Icons\Heroicon::Moon,'theme' => 'dark']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-panels::theme-switcher.button'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(\Filament\Support\Icons\Heroicon::Moon),'theme' => 'dark']); ?> -renderComponent(); ?> - - - - - - - - - - - - - 'filament-panels::components.theme-switcher.button','data' => ['icon' => \Filament\Support\Icons\Heroicon::ComputerDesktop,'theme' => 'system']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-panels::theme-switcher.button'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(\Filament\Support\Icons\Heroicon::ComputerDesktop),'theme' => 'system']); ?> -renderComponent(); ?> - - - - - - - - - -
    - \ No newline at end of file diff --git a/storage/framework/views/9f8ad04ac0e5cad2ba5cbdf9e6b839ac.php b/storage/framework/views/9f8ad04ac0e5cad2ba5cbdf9e6b839ac.php deleted file mode 100644 index f83ada1..0000000 --- a/storage/framework/views/9f8ad04ac0e5cad2ba5cbdf9e6b839ac.php +++ /dev/null @@ -1,325 +0,0 @@ - null, -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'position' => null, -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - -auth()->user(); - - $items = $this->getUserMenuItems(); - - $itemsBeforeAndAfterThemeSwitcher = collect($items) - ->groupBy(fn (Action $item): bool => $item->getSort() < 0, preserveKeys: true) - ->all(); - $itemsBeforeThemeSwitcher = $itemsBeforeAndAfterThemeSwitcher[true] ?? collect(); - $itemsAfterThemeSwitcher = $itemsBeforeAndAfterThemeSwitcher[false] ?? collect(); - - $hasProfileHeader = $itemsBeforeThemeSwitcher->has('profile') && - blank(($item = Arr::first($itemsBeforeThemeSwitcher))->getUrl()) && - (! $item->hasAction()); - - if ($itemsBeforeThemeSwitcher->has('profile')) { - $itemsBeforeThemeSwitcher = $itemsBeforeThemeSwitcher->prepend($itemsBeforeThemeSwitcher->pull('profile'), 'profile'); - } - - $position ??= filament()->getUserMenuPosition(); - - $isSidebarCollapsibleOnDesktop = filament()->isSidebarCollapsibleOnDesktop(); -?> - - - - - - - 'filament::components.dropdown.index','data' => ['placement' => ($position === UserMenuPosition::Topbar) ? 'bottom-end' : 'top-end','teleport' => $position === UserMenuPosition::Topbar,'attributes' => - \Filament\Support\prepare_inherited_attributes($attributes) - ->class(['fi-user-menu']) - ]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::dropdown'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['placement' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(($position === UserMenuPosition::Topbar) ? 'bottom-end' : 'top-end'),'teleport' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($position === UserMenuPosition::Topbar),'attributes' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute( - \Filament\Support\prepare_inherited_attributes($attributes) - ->class(['fi-user-menu']) - )]); ?> - slot('trigger', null, []); ?> - - - - - - endSlot(); ?> - - - getColor(); - $itemIcon = $item->getIcon(); - - unset($itemsBeforeThemeSwitcher['profile']); - ?> - - - - - - - 'filament::components.dropdown.header','data' => ['color' => $itemColor,'icon' => $itemIcon]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::dropdown.header'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['color' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($itemColor),'icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($itemIcon)]); ?> - getLabel()); ?> - - renderComponent(); ?> - - - - - - - - - - - - - - - isNotEmpty()): ?> - - - 'filament::components.dropdown.list.index','data' => []] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::dropdown.list'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes([]); ?> - addLoop($__currentLoopData); foreach($__currentLoopData as $key => $item): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - - - - - - - - - - - - - - popLoop(); $loop = $__env->getLastLoop(); ?> - renderComponent(); ?> - - - - - - - - - - - - hasDarkMode() && (! filament()->hasDarkModeForced())): ?> - - - 'filament::components.dropdown.list.index','data' => []] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::dropdown.list'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes([]); ?> - - - 'filament-panels::components.theme-switcher.index','data' => []] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-panels::theme-switcher'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes([]); ?> -renderComponent(); ?> - - - - - - - - - - renderComponent(); ?> - - - - - - - - - - - - isNotEmpty()): ?> - - - 'filament::components.dropdown.list.index','data' => []] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::dropdown.list'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes([]); ?> - addLoop($__currentLoopData); foreach($__currentLoopData as $key => $item): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - - - - - - - - - - - - - - popLoop(); $loop = $__env->getLastLoop(); ?> - renderComponent(); ?> - - - - - - - - - - - renderComponent(); ?> - - - - - - - - - - - - - \ No newline at end of file diff --git a/storage/framework/views/a01f2f0ad64ffb4bec6c224e0a32b065.php b/storage/framework/views/a01f2f0ad64ffb4bec6c224e0a32b065.php deleted file mode 100644 index 1b26742..0000000 --- a/storage/framework/views/a01f2f0ad64ffb4bec6c224e0a32b065.php +++ /dev/null @@ -1,29 +0,0 @@ - - - 'filament-widgets::components.widget','data' => ['class' => 'fi-wi-table']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-widgets::widget'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['class' => 'fi-wi-table']); ?> - - - - table); ?> - - - - - renderComponent(); ?> - - - - - - - - - - \ No newline at end of file diff --git a/storage/framework/views/adc4c4a369b2bee1705d8da3a6247c45.php b/storage/framework/views/adc4c4a369b2bee1705d8da3a6247c45.php new file mode 100644 index 0000000..3d6c084 --- /dev/null +++ b/storage/framework/views/adc4c4a369b2bee1705d8da3a6247c45.php @@ -0,0 +1,808 @@ + + +startSection('title', 'Request Custom Design - Additional Design'); ?> + +startSection('styles'); ?> + +stopSection(); ?> + +startSection('content'); ?> +
    +
    +

    Request Custom Design

    +

    Create a custom wallpaper, mural, or fabric design tailored to your needs

    +
    + + any()): ?> +
    +

    Please correct the following errors:

    +
      + all(); $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $error): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> +
    • + popLoop(); $loop = $__env->getLastLoop(); ?> +
    +
    + + + +
    + ✓ + +
    + + + +
    +

    How It Works

    +
      +
    • Submit your custom order with design specifications and reference images
    • +
    • Pay a 20% non-refundable deposit to commence design work
    • +
    • Our team creates your design and prepares proofs for review
    • +
    • Pay the remaining 80% balance to proceed with printing and shipping
    • +
    +
    + + +
    +
    + + + +
    +

    Order Details

    + +
    + + + getBag($__errorArgs[1] ?? 'default'); +if ($__bag->has($__errorArgs[0])) : +if (isset($message)) { $__messageOriginal = $message; } +$message = $__bag->first($__errorArgs[0]); ?> +

    + +
    + +
    +
    + + + getBag($__errorArgs[1] ?? 'default'); +if ($__bag->has($__errorArgs[0])) : +if (isset($message)) { $__messageOriginal = $message; } +$message = $__bag->first($__errorArgs[0]); ?> +

    + +
    +
    + + + getBag($__errorArgs[1] ?? 'default'); +if ($__bag->has($__errorArgs[0])) : +if (isset($message)) { $__messageOriginal = $message; } +$message = $__bag->first($__errorArgs[0]); ?> +

    + +
    +
    + +
    +
    + + + getBag($__errorArgs[1] ?? 'default'); +if ($__bag->has($__errorArgs[0])) : +if (isset($message)) { $__messageOriginal = $message; } +$message = $__bag->first($__errorArgs[0]); ?> +

    + +
    +
    + + + getBag($__errorArgs[1] ?? 'default'); +if ($__bag->has($__errorArgs[0])) : +if (isset($message)) { $__messageOriginal = $message; } +$message = $__bag->first($__errorArgs[0]); ?> +

    + +
    +
    +
    + + +
    +

    Design Brief

    + +
    + +

    Tell us about your design concept, colors, style, and any specific requirements

    + + getBag($__errorArgs[1] ?? 'default'); +if ($__bag->has($__errorArgs[0])) : +if (isset($message)) { $__messageOriginal = $message; } +$message = $__bag->first($__errorArgs[0]); ?> +

    + +
    + +
    + + + getBag($__errorArgs[1] ?? 'default'); +if ($__bag->has($__errorArgs[0])) : +if (isset($message)) { $__messageOriginal = $message; } +$message = $__bag->first($__errorArgs[0]); ?> +

    + +
    +
    + + +
    +

    Reference Images

    + +
    + +

    Upload inspiration images, mood boards, or reference materials for your design

    +
    + + + + +

    Click to upload or drag and drop

    +

    PNG, JPG, GIF, WebP up to 5MB

    +
    +
    + getBag($__errorArgs[1] ?? 'default'); +if ($__bag->has($__errorArgs[0])) : +if (isset($message)) { $__messageOriginal = $message; } +$message = $__bag->first($__errorArgs[0]); ?> +

    + +
    +
    + + +
    +

    Design Library

    + +
    + +
    +
    + + +
    + + Cancel +
    +
    + + +
    +
    +

    Cost Summary

    + +
    + Material Cost + - +
    + +
    + Design Fee + - +
    + + + +
    + Deposit Required (20%) + R0.00 +
    + +
    + Note: 20% non-refundable deposit covers design work. Pay the remaining 80% after proof approval. +
    +
    + +
    +

    Estimated Total:

    +
    R0.00
    + incl. VAT +
    +
    + + + + +
    +
    + + + stopSection(); ?> +make('layouts.app', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?> \ No newline at end of file diff --git a/storage/framework/views/af830d64c98ea537dd47cb4334f3a451.php b/storage/framework/views/af830d64c98ea537dd47cb4334f3a451.php deleted file mode 100644 index 83e2eb5..0000000 --- a/storage/framework/views/af830d64c98ea537dd47cb4334f3a451.php +++ /dev/null @@ -1,517 +0,0 @@ -
    - isSidebarCollapsibleOnDesktop(); - $isSidebarFullyCollapsibleOnDesktop = filament()->isSidebarFullyCollapsibleOnDesktop(); - $hasTopNavigation = filament()->hasTopNavigation(); - $hasNavigation = filament()->hasNavigation(); - $hasTenancy = filament()->hasTenancy(); - ?> - - - - - - 'filament-actions::components.modals','data' => []] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-actions::modals'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes([]); ?> -renderComponent(); ?> - - - - - - - - - -
    - \ No newline at end of file diff --git a/storage/framework/views/b050c707ba664a0ff93eb239317b5280.php b/storage/framework/views/b050c707ba664a0ff93eb239317b5280.php deleted file mode 100644 index 0438a90..0000000 --- a/storage/framework/views/b050c707ba664a0ff93eb239317b5280.php +++ /dev/null @@ -1,53 +0,0 @@ -getAttributes()))->mapWithKeys(function ($value, $key) { return [Illuminate\Support\Str::camel(str_replace([':', '.'], ' ', $key)) => $value]; })->all(), EXTR_SKIP); ?> -all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter((['field','class']), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - - - 'filament-forms::components.field-wrapper','data' => ['field' => $field,'class' => $class]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-forms::field-wrapper'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['field' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($field),'class' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($class)]); ?> - - - - renderComponent(); ?> - - - - - - - - - \ No newline at end of file diff --git a/storage/framework/views/b235d3c77d869dcdade57f7a1b61c8ff.php b/storage/framework/views/b235d3c77d869dcdade57f7a1b61c8ff.php deleted file mode 100644 index 2a7392a..0000000 --- a/storage/framework/views/b235d3c77d869dcdade57f7a1b61c8ff.php +++ /dev/null @@ -1,212 +0,0 @@ - null, - 'alpineValid' => null, - 'disabled' => false, - 'inlinePrefix' => false, - 'inlineSuffix' => false, - 'prefix' => null, - 'prefixActions' => [], - 'prefixIcon' => null, - 'prefixIconColor' => 'gray', - 'prefixIconAlias' => null, - 'suffix' => null, - 'suffixActions' => [], - 'suffixIcon' => null, - 'suffixIconColor' => 'gray', - 'suffixIconAlias' => null, - 'valid' => true, -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'alpineDisabled' => null, - 'alpineValid' => null, - 'disabled' => false, - 'inlinePrefix' => false, - 'inlineSuffix' => false, - 'prefix' => null, - 'prefixActions' => [], - 'prefixIcon' => null, - 'prefixIconColor' => 'gray', - 'prefixIconAlias' => null, - 'suffix' => null, - 'suffixActions' => [], - 'suffixIcon' => null, - 'suffixIconColor' => 'gray', - 'suffixIconAlias' => null, - 'valid' => true, -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - - $prefixAction->isVisible(), - ); - - $suffixActions = array_filter( - $suffixActions, - fn (\Filament\Actions\Action $suffixAction): bool => $suffixAction->isVisible(), - ); - - $hasPrefix = count($prefixActions) || $prefixIcon || filled($prefix); - $hasSuffix = count($suffixActions) || $suffixIcon || filled($suffix); - - $hasAlpineDisabledClasses = filled($alpineDisabled); - $hasAlpineValidClasses = filled($alpineValid); - $hasAlpineClasses = $hasAlpineDisabledClasses || $hasAlpineValidClasses; - - $wireTarget = $attributes->whereStartsWith(['wire:target'])->first(); - - $hasLoadingIndicator = filled($wireTarget); - - if ($hasLoadingIndicator) { - $loadingIndicatorTarget = html_entity_decode($wireTarget, ENT_QUOTES); - } -?> - -
    - x-bind:class="{ - - - - - }" - - except(['wire:target', 'tabindex']) - ->class([ - 'fi-input-wrp', - 'fi-disabled' => (! $hasAlpineClasses) && $disabled, - 'fi-invalid' => (! $hasAlpineClasses) && (! $valid), - ])); ?> - -> - -
    - wire:loading.delay..flex - wire:target="" - wire:key="" - - class=" $hasPrefix, - 'fi-inline' => $inlinePrefix, - 'fi-input-wrp-prefix-has-label' => filled($prefix), - ]); ?>" - > - -
    - addLoop($__currentLoopData); foreach($__currentLoopData as $prefixAction): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - - - popLoop(); $loop = $__env->getLastLoop(); ?> -
    - - - merge([ - 'wire:loading.remove.delay.' . config('filament.livewire_loading_delay', 'default') => $hasLoadingIndicator, - 'wire:target' => $hasLoadingIndicator ? $loadingIndicatorTarget : false, - ], escape: false) - ->color(IconComponent::class, $prefixIconColor))); ?> - - - - $hasPrefix, - 'wire:target' => $hasPrefix ? $loadingIndicatorTarget : null, - ]))->color(IconComponent::class, 'gray'))); ?> - - - - - - - - - -
    - - -
    - - wire:loading.delay..class.remove="ps-3" - - - wire:target="" - - class=" $hasLoadingIndicator && (! $hasPrefix) && $inlinePrefix, - ]); ?>" - > - - -
    - - -
    - - - - - - - - merge([ - 'wire:loading.remove.delay.' . config('filament.livewire_loading_delay', 'default') => $hasLoadingIndicator, - 'wire:target' => $hasLoadingIndicator ? $loadingIndicatorTarget : false, - ], escape: false) - ->color(IconComponent::class, $suffixIconColor))); ?> - - - -
    - addLoop($__currentLoopData); foreach($__currentLoopData as $suffixAction): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - - - popLoop(); $loop = $__env->getLastLoop(); ?> -
    - -
    - -
    - \ No newline at end of file diff --git a/storage/framework/views/b534ed8dcc766a521ddb9b5ab34526ff.php b/storage/framework/views/b534ed8dcc766a521ddb9b5ab34526ff.php deleted file mode 100644 index a924782..0000000 --- a/storage/framework/views/b534ed8dcc766a521ddb9b5ab34526ff.php +++ /dev/null @@ -1,74 +0,0 @@ - false, - 'ariaLabel' => null, - 'disabled' => false, - 'icon' => null, - 'iconAlias' => null, - 'label' => null, -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'active' => false, - 'ariaLabel' => null, - 'disabled' => false, - 'icon' => null, - 'iconAlias' => null, - 'label' => null, -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - -
  • class([ - 'fi-pagination-item', - 'fi-disabled' => $disabled, - 'fi-active' => $active, - ])); ?> - -> - -
  • - \ No newline at end of file diff --git a/storage/framework/views/be6715616843b225cf6deff982e77b14.php b/storage/framework/views/be6715616843b225cf6deff982e77b14.php deleted file mode 100644 index 672236a..0000000 --- a/storage/framework/views/be6715616843b225cf6deff982e77b14.php +++ /dev/null @@ -1,396 +0,0 @@ - false, -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'fullHeight' => false, -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - -getCachedSubNavigation(); - $subNavigationPosition = $this->getSubNavigationPosition(); - $widgetData = $this->getWidgetData(); -?> - -
    class([ - 'fi-page', - 'fi-height-full' => $fullHeight, - 'fi-page-has-sub-navigation' => $subNavigation, - "fi-page-has-sub-navigation-{$subNavigationPosition->value}" => $subNavigation, - ...$this->getPageClasses(), - ])); ?> - -> - getRenderHookScopes())); ?> - - -
    - -
    - getRenderHookScopes())); ?> - -
    - - - - 'filament-panels::components.page.sub-navigation.mobile-menu','data' => ['navigation' => $subNavigation]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-panels::page.sub-navigation.mobile-menu'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['navigation' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($subNavigation)]); ?> -renderComponent(); ?> - - - - - - - - - - -
    - getRenderHookScopes())); ?> - -
    - - - getHeader()): ?> - - - - getHeading(); - $headerActions = $this->getCachedHeaderActions(); - $headerActionsAlignment = $this->getHeaderActionsAlignment(); - $breadcrumbs = filament()->hasBreadcrumbs() ? $this->getBreadcrumbs() : []; - $subheading = $this->getSubheading(); - ?> - - - - - 'filament-panels::components.header.index','data' => ['actions' => $headerActions,'actionsAlignment' => $headerActionsAlignment,'breadcrumbs' => $breadcrumbs,'heading' => $heading,'subheading' => $subheading]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-panels::header'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['actions' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($headerActions),'actions-alignment' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($headerActionsAlignment),'breadcrumbs' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($breadcrumbs),'heading' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($heading),'subheading' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($subheading)]); ?> - - slot('heading', null, []); ?> - - - endSlot(); ?> - - - - slot('subheading', null, []); ?> - - - endSlot(); ?> - - renderComponent(); ?> - - - - - - - - - - - - -
    - - - getRenderHookScopes())); ?> - - - - - 'filament-panels::components.page.sub-navigation.sidebar','data' => ['navigation' => $subNavigation]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-panels::page.sub-navigation.sidebar'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['navigation' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($subNavigation)]); ?> -renderComponent(); ?> - - - - - - - - - - - getRenderHookScopes())); ?> - - - - - getRenderHookScopes())); ?> - - - - - 'filament-panels::components.page.sub-navigation.tabs','data' => ['navigation' => $subNavigation]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-panels::page.sub-navigation.tabs'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['navigation' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($subNavigation)]); ?> -renderComponent(); ?> - - - - - - - - - - - getRenderHookScopes())); ?> - - - - -
    - getRenderHookScopes())); ?> - - - headerWidgets); ?> - - - getRenderHookScopes())); ?> - - - - - - getRenderHookScopes())); ?> - - - footerWidgets); ?> - - - getRenderHookScopes())); ?> - -
    - - - getRenderHookScopes())); ?> - - - - - 'filament-panels::components.page.sub-navigation.sidebar','data' => ['navigation' => $subNavigation]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-panels::page.sub-navigation.sidebar'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['navigation' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($subNavigation)]); ?> -renderComponent(); ?> - - - - - - - - - - - getRenderHookScopes())); ?> - - -
    - - getFooter()): ?> - - - -
    - - - - - 'filament-actions::components.modals','data' => []] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-actions::modals'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes([]); ?> -renderComponent(); ?> - - - - - - - - - - isTableLoaded() && filled($this->defaultTableAction)): ?> -
    - - - defaultAction)): ?> -
    - - - getRenderHookScopes())); ?> - - - hasUnsavedDataChangesAlert()): ?> - - - - push('scripts', $__output, $__scriptKey) - ?> - - - - push('scripts', $__output, $__scriptKey) - ?> - - - - hasDebugModeEnabled()) && $this->hasErrorNotifications()): ?> - - - push('scripts', $__output, $__scriptKey) - ?> - - - - - 'filament-panels::components.unsaved-action-changes-alert','data' => []] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-panels::unsaved-action-changes-alert'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes([]); ?> -renderComponent(); ?> - - - - - - - - - -
    - \ No newline at end of file diff --git a/storage/framework/views/bfd832b53fad5948a8706f00a290c0cf.php b/storage/framework/views/bfd832b53fad5948a8706f00a290c0cf.php deleted file mode 100644 index 642f416..0000000 --- a/storage/framework/views/bfd832b53fad5948a8706f00a290c0cf.php +++ /dev/null @@ -1,217 +0,0 @@ - false, - 'activeChildItems' => false, - 'activeIcon' => null, - 'badge' => null, - 'badgeColor' => null, - 'badgeTooltip' => null, - 'childItems' => [], - 'first' => false, - 'grouped' => false, - 'icon' => null, - 'last' => false, - 'shouldOpenUrlInNewTab' => false, - 'sidebarCollapsible' => true, - 'subGrouped' => false, - 'subNavigation' => false, - 'url', -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'active' => false, - 'activeChildItems' => false, - 'activeIcon' => null, - 'badge' => null, - 'badgeColor' => null, - 'badgeTooltip' => null, - 'childItems' => [], - 'first' => false, - 'grouped' => false, - 'icon' => null, - 'last' => false, - 'shouldOpenUrlInNewTab' => false, - 'sidebarCollapsible' => true, - 'subGrouped' => false, - 'subNavigation' => false, - 'url', -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - -isSidebarCollapsibleOnDesktop(); -?> - -
  • class([ - 'fi-sidebar-item', - 'fi-active' => $active, - 'fi-sidebar-item-has-active-child-items' => $activeChildItems, - 'fi-sidebar-item-has-url' => filled($url), - ])); ?> - -> - - - x-on:click="window.matchMedia(`(max-width: 1024px)`).matches && $store.sidebar.close()" - - x-data="{ tooltip: false }" - x-effect=" - tooltip = $store.sidebar.isOpen - ? false - : { - content: toHtml())->toHtml() ?>, - placement: document.dir === 'rtl' ? 'left' : 'right', - theme: $store.theme, - } - " - x-tooltip.html="tooltip" - - class="fi-sidebar-item-btn" - > - - ($subGrouped && $sidebarCollapsible) ? '! $store.sidebar.isOpen' : false, - ]))->class(['fi-sidebar-item-icon']), size: \Filament\Support\Enums\IconSize::Large)); ?> - - - - -
    - x-show="$store.sidebar.isOpen" - - class="fi-sidebar-item-grouped-border" - > - -
    - - - -
    - - -
    -
    - - - - x-show="$store.sidebar.isOpen" - x-transition:enter="fi-transition-enter" - x-transition:enter-start="fi-transition-enter-start" - x-transition:enter-end="fi-transition-enter-end" - - class="fi-sidebar-item-label" - > - - - - - - - x-show="$store.sidebar.isOpen" - x-transition:enter="fi-transition-enter" - x-transition:enter-start="fi-transition-enter-start" - x-transition:enter-end="fi-transition-enter-end" - - class="fi-sidebar-item-badge-ctn" - > - - - 'filament::components.badge','data' => ['color' => $badgeColor,'tooltip' => $badgeTooltip]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::badge'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['color' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($badgeColor),'tooltip' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($badgeTooltip)]); ?> - - - renderComponent(); ?> - - - - - - - - - - - -
    - - -
      - addLoop($__currentLoopData); foreach($__currentLoopData as $childItem): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - isChildItemsActive(); - $isChildActive = (! $isChildItemChildItemsActive) && $childItem->isActive(); - $childItemActiveIcon = $childItem->getActiveIcon(); - $childItemBadge = $childItem->getBadge(); - $childItemBadgeColor = $childItem->getBadgeColor(); - $childItemBadgeTooltip = $childItem->getBadgeTooltip(); - $childItemIcon = $childItem->getIcon(); - $shouldChildItemOpenUrlInNewTab = $childItem->shouldOpenUrlInNewTab(); - $childItemUrl = $childItem->getUrl(); - ?> - - - - 'filament-panels::components.sidebar.item','data' => ['active' => $isChildActive,'activeChildItems' => $isChildItemChildItemsActive,'activeIcon' => $childItemActiveIcon,'badge' => $childItemBadge,'badgeColor' => $childItemBadgeColor,'badgeTooltip' => $childItemBadgeTooltip,'first' => $loop->first,'grouped' => true,'icon' => $childItemIcon,'last' => $loop->last,'shouldOpenUrlInNewTab' => $shouldChildItemOpenUrlInNewTab,'subGrouped' => true,'subNavigation' => $subNavigation,'url' => $childItemUrl]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-panels::sidebar.item'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['active' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isChildActive),'active-child-items' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isChildItemChildItemsActive),'active-icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($childItemActiveIcon),'badge' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($childItemBadge),'badge-color' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($childItemBadgeColor),'badge-tooltip' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($childItemBadgeTooltip),'first' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($loop->first),'grouped' => true,'icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($childItemIcon),'last' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($loop->last),'should-open-url-in-new-tab' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($shouldChildItemOpenUrlInNewTab),'sub-grouped' => true,'sub-navigation' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($subNavigation),'url' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($childItemUrl)]); ?> - getLabel()); ?> - - renderComponent(); ?> - - - - - - - - - - popLoop(); $loop = $__env->getLastLoop(); ?> -
    - -
  • - \ No newline at end of file diff --git a/storage/framework/views/c3da01bbeb1428090c4fa29e17c4a415.php b/storage/framework/views/c3da01bbeb1428090c4fa29e17c4a415.php deleted file mode 100644 index d7ef536..0000000 --- a/storage/framework/views/c3da01bbeb1428090c4fa29e17c4a415.php +++ /dev/null @@ -1,92 +0,0 @@ - - - [], - 'alignment' => Alignment::Start, - 'fullWidth' => false, -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'actions' => [], - 'alignment' => Alignment::Start, - 'fullWidth' => false, -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - - $action->isVisible(), - ); - } - - if (! $alignment instanceof Alignment) { - $alignment = filled($alignment) ? (Alignment::tryFrom($alignment) ?? $alignment) : null; - } - - $hasActions = false; - - $hasSlot = ! \Filament\Support\is_slot_empty($slot); - $actionsAreHtmlable = $actions instanceof \Illuminate\Contracts\Support\Htmlable; - - if ($hasSlot) { - $hasActions = true; - } elseif ($actionsAreHtmlable) { - $hasActions = ! \Filament\Support\is_slot_empty($actions); - } else { - $hasActions = filled($actions); - } -?> - - -
    class([ - 'fi-ac', - 'fi-width-full' => $fullWidth, - ($alignment instanceof Alignment) ? "fi-align-{$alignment->value}" : (is_string($alignment) ? $alignment : null) => ! $fullWidth, - ])); ?> - - > - - - - - - - - addLoop($__currentLoopData); foreach($__currentLoopData as $action): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - - - popLoop(); $loop = $__env->getLastLoop(); ?> - -
    - - \ No newline at end of file diff --git a/storage/framework/views/c6d1a975364ea77cf193b26f4d0c05e1.php b/storage/framework/views/c6d1a975364ea77cf193b26f4d0c05e1.php deleted file mode 100644 index 137b92c..0000000 --- a/storage/framework/views/c6d1a975364ea77cf193b26f4d0c05e1.php +++ /dev/null @@ -1,215 +0,0 @@ - - -startSection('title', 'Custom Printed Fabrics'); ?> - -startSection('content'); ?> - -
    -
    -
    -

    Custom Printed Fabrics

    -

    Extend your favorite wallpaper designs to premium fabrics. From upholstery to curtains, cushions to bedding, create a cohesive interior where your designs flow seamlessly across all textiles.

    -
    -
    -
    - - -
    -
    -

    Fabric Types & Applications

    -

    Choose from our range of premium fabrics, each optimized for different applications and uses.

    - -
    - -
    - Upholstery Fabrics -
    -
    Upholstery Fabrics
    -

    Durable, premium fabrics perfect for furniture upholstery. Available in various weights and finishes. Ideal for sofas, chairs, and ottomans.

    -
    - -
    -
    -
    - - -
    - Curtain Fabrics -
    -
    Curtain & Drape Fabrics
    -

    Elegant draping fabrics in various opacities. Perfect for creating custom curtains, drapes, and window treatments that complement your wallpaper.

    -
    - -
    -
    -
    - - -
    - Decorative Textiles -
    -
    Decorative Textiles
    -

    Versatile fabrics for cushions, pillows, throws, and home accents. Perfect for adding coordinated touches throughout your space.

    -
    - -
    -
    -
    -
    -
    -
    - - - - - -
    -
    -

    Fully Customizable

    -
    -
    -

    Create Your Own Custom Fabric

    -

    Love a wallpaper design? We can print it on any of our premium fabric bases. Upload your own design or choose from our wallpaper collections and we'll print it on your fabric of choice.

    -
      -
    • ✓ Any Wallpaper Design: Choose from our full wallpaper catalog
    • -
    • ✓ Custom Uploads: Print your own designs or artwork
    • -
    • ✓ Multiple Base Fabrics: Select from cotton, linen, silk blends, and more
    • -
    • ✓ Custom Sizing: Order exact yardage you need
    • -
    • ✓ Sample Swatches: Order fabric samples before committing
    • -
    - -
    -
    - Custom Fabrics -
    -
    -
    -
    - - -
    -
    -

    Fabric Specifications & Care

    -
    -
    -
    -

    Standard Widths

    -
      -
    • • 54" (Standard upholstery)
    • -
    • • 60" (Premium upholstery)
    • -
    • • 45" (Quilting & crafts)
    • -
    • • 118" (Curtain & drape)
    • -
    -
    -
    -

    Care Instructions

    -
      -
    • • Dry clean or gentle hand wash recommended
    • -
    • • Use cool water with mild detergent
    • -
    • • Air dry away from direct heat
    • -
    • • Professional upholstery cleaning safe
    • -
    -
    -
    -
    -
    -
    - - -
    -
    -

    Ready to Start Your Fabric Project?

    -

    - Contact our team to discuss your custom fabric needs. We'll provide samples, pricing, and personalized recommendations. -

    - -
    -
    -stopSection(); ?> - -make('layouts.app', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?> \ No newline at end of file diff --git a/storage/framework/views/c6faad983759e39bbadd89a10c0f74b3.php b/storage/framework/views/c6faad983759e39bbadd89a10c0f74b3.php deleted file mode 100644 index d4a5fd4..0000000 --- a/storage/framework/views/c6faad983759e39bbadd89a10c0f74b3.php +++ /dev/null @@ -1,380 +0,0 @@ - - - - - $fieldWrapperView] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('dynamic-component'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\DynamicComponent::ignoredParameterNames()); ?> - -withAttributes(['field' => $field,'label-tag' => 'div']); ?> -
    toHtml() ?>, - minSize: toHtml() ?>, - mimeTypeMap: toHtml() ?>, - maxParallelUploads: toHtml() ?>, - removeUploadedFileUsing: async (fileKey) => { - return await $wire.callSchemaComponentMethod( - toHtml() ?>, - 'removeUploadedFile', - { fileKey }, - ) - }, - removeUploadedFileButtonPosition: toHtml() ?>, - reorderUploadedFilesUsing: async (fileKeys) => { - return await $wire.callSchemaComponentMethod( - toHtml() ?>, - 'reorderUploadedFiles', - { fileKeys }, - ) - }, - shouldAppendFiles: toHtml() ?>, - shouldOrientImageFromExif: toHtml() ?>, - shouldTransformImage: toHtml() ?>, - state: $wire., - uploadButtonPosition: toHtml() ?>, - uploadingMessage: toHtml() ?>, - uploadProgressIndicatorPosition: toHtml() ?>, - uploadUsing: (fileKey, file, success, error, progress) => { - $wire.upload( - `.${fileKey}`, - file, - () => { - success(fileKey) - }, - error, - (progressEvent) => { - progress(true, progressEvent.detail.progress, 100) - }, - ) - }, - })" - wire:ignore - wire:key="." - merge([ - 'aria-labelledby' => "{$id}-label", - 'id' => $id, - 'role' => 'group', - ], escape: false) - ->merge($getExtraAttributes(), escape: false) - ->merge($getExtraAlpineAttributes(), escape: false) - ->class([ - 'fi-fo-file-upload', - 'fi-fo-file-upload-avatar' => $isAvatar, - ($alignment instanceof Alignment) ? "fi-align-{$alignment->value}" : $alignment, - ])); ?> - - > -
    - merge([ - 'aria-labelledby' => "{$id}-label", - 'disabled' => $isDisabled, - 'multiple' => $isMultiple, - 'type' => 'file', - ], escape: false)); ?> - - /> -
    - -
    - - -
    - - -
    -
    - -
    - -
    -
    -
    - __('filament-forms::components.file_upload.editor.fields.x_position.label'), - 'ref' => 'xPositionInput', - 'unit' => __('filament-forms::components.file_upload.editor.fields.x_position.unit'), - 'alpineSaveHandler' => 'editor.setData({...editor.getData(true), x: +$el.value})', - ], - [ - 'label' => __('filament-forms::components.file_upload.editor.fields.y_position.label'), - 'ref' => 'yPositionInput', - 'unit' => __('filament-forms::components.file_upload.editor.fields.y_position.unit'), - 'alpineSaveHandler' => 'editor.setData({...editor.getData(true), y: +$el.value})', - ], - [ - 'label' => __('filament-forms::components.file_upload.editor.fields.width.label'), - 'ref' => 'widthInput', - 'unit' => __('filament-forms::components.file_upload.editor.fields.width.unit'), - 'alpineSaveHandler' => 'editor.setData({...editor.getData(true), width: +$el.value})', - ], - [ - 'label' => __('filament-forms::components.file_upload.editor.fields.height.label'), - 'ref' => 'heightInput', - 'unit' => __('filament-forms::components.file_upload.editor.fields.height.unit'), - 'alpineSaveHandler' => 'editor.setData({...editor.getData(true), height: +$el.value})', - ], - [ - 'label' => __('filament-forms::components.file_upload.editor.fields.rotation.label'), - 'ref' => 'rotationInput', - 'unit' => __('filament-forms::components.file_upload.editor.fields.rotation.unit'), - 'alpineSaveHandler' => 'editor.rotateTo(+$el.value)', - ], - ]; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $input): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - - popLoop(); $loop = $__env->getLastLoop(); ?> -
    - -
    - addLoop($__currentLoopData); foreach($__currentLoopData as $groupedActions): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> -
    - addLoop($__currentLoopData); foreach($__currentLoopData as $action): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - - popLoop(); $loop = $__env->getLastLoop(); ?> -
    - popLoop(); $loop = $__env->getLastLoop(); ?> -
    - - -
    -
    - - -
    - - chunk(5); $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $ratiosChunk): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> -
    - addLoop($__currentLoopData); foreach($__currentLoopData as $label => $ratio): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - - popLoop(); $loop = $__env->getLastLoop(); ?> -
    - popLoop(); $loop = $__env->getLastLoop(); ?> -
    - -
    - - -
    -
    -
    - -
    - renderComponent(); ?> - - - - - - - - - - \ No newline at end of file diff --git a/storage/framework/views/cb60a36db4e92d8fcf5107fb500e9e22.php b/storage/framework/views/cb60a36db4e92d8fcf5107fb500e9e22.php deleted file mode 100644 index 3ea5179..0000000 --- a/storage/framework/views/cb60a36db4e92d8fcf5107fb500e9e22.php +++ /dev/null @@ -1,225 +0,0 @@ - - - null, - 'badgeColor' => 'primary', - 'badgeSize' => Size::ExtraSmall, - 'color' => 'primary', - 'disabled' => false, - 'form' => null, - 'formId' => null, - 'href' => null, - 'icon' => null, - 'iconAlias' => null, - 'iconPosition' => IconPosition::Before, - 'iconSize' => null, - 'keyBindings' => null, - 'labelSrOnly' => false, - 'loadingIndicator' => true, - 'size' => Size::Medium, - 'spaMode' => null, - 'tag' => 'a', - 'target' => null, - 'tooltip' => null, - 'type' => 'button', - 'weight' => null, -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'badge' => null, - 'badgeColor' => 'primary', - 'badgeSize' => Size::ExtraSmall, - 'color' => 'primary', - 'disabled' => false, - 'form' => null, - 'formId' => null, - 'href' => null, - 'icon' => null, - 'iconAlias' => null, - 'iconPosition' => IconPosition::Before, - 'iconSize' => null, - 'keyBindings' => null, - 'labelSrOnly' => false, - 'loadingIndicator' => true, - 'size' => Size::Medium, - 'spaMode' => null, - 'tag' => 'a', - 'target' => null, - 'tooltip' => null, - 'type' => 'button', - 'weight' => null, -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - - IconSize::Small, - default => null, - }; - - if (! $weight instanceof FontWeight) { - $weight = filled($weight) ? (FontWeight::tryFrom($weight) ?? $weight) : null; - } - - $wireTarget = $loadingIndicator ? $attributes->whereStartsWith(['wire:target', 'wire:click'])->filter(fn ($value): bool => filled($value))->first() : null; - - $hasLoadingIndicator = filled($wireTarget) || ($type === 'submit' && filled($form)); - - if ($hasLoadingIndicator) { - $loadingIndicatorTarget = html_entity_decode($wireTarget ?: $form, ENT_QUOTES); - } - - $hasTooltip = filled($tooltip); -?> - -< - - - - - - - x-bind:id="$id('key-bindings')" - x-mousetrap.global.map(fn (string $keyBinding): string => str_replace('+', '-', $keyBinding))->implode('.')); ?>="document.getElementById($el.id)?.click()" - - - x-tooltip="{ - content: toHtml() ?>, - theme: $store.theme, - allowHTML: toHtml() ?>, - }" - - merge([ - 'aria-disabled' => $disabled ? 'true' : null, - 'disabled' => $disabled && blank($tooltip), - 'form' => $formId, - 'type' => $tag === 'button' ? $type : null, - 'wire:loading.attr' => $tag === 'button' ? 'disabled' : null, - 'wire:target' => ($hasLoadingIndicator && $loadingIndicatorTarget) ? $loadingIndicatorTarget : null, - ], escape: false) - ->when( - $disabled && $hasTooltip, - fn (ComponentAttributeBag $attributes) => $attributes->filter( - fn (mixed $value, string $key): bool => ! str($key)->startsWith(['href', 'x-on:', 'wire:click']), - ), - ) - ->class([ - 'fi-link', - 'fi-disabled' => $disabled, - ($size instanceof Size) ? "fi-size-{$size->value}" : (is_string($size) ? $size : ''), - ($weight instanceof FontWeight) ? "fi-font-{$weight->value}" : (is_string($weight) ? $weight : ''), - ]) - ->color(LinkComponent::class, $color)); ?> - -> - - - $hasLoadingIndicator, - 'wire:target' => $hasLoadingIndicator ? $loadingIndicatorTarget : false, - ])), size: $iconSize)); ?> - - - - - '', - 'wire:target' => $loadingIndicatorTarget, - ])), size: $iconSize)); ?> - - - - - - - - - - - - $hasLoadingIndicator, - 'wire:target' => $hasLoadingIndicator ? $loadingIndicatorTarget : false, - ])), size: $iconSize)); ?> - - - - - '', - 'wire:target' => $loadingIndicatorTarget, - ])), size: $iconSize)); ?> - - - - - - - -> \ No newline at end of file diff --git a/storage/framework/views/cdba3960ec17faacee7b079add6c1ae2.php b/storage/framework/views/cdba3960ec17faacee7b079add6c1ae2.php deleted file mode 100644 index e6abfcd..0000000 --- a/storage/framework/views/cdba3960ec17faacee7b079add6c1ae2.php +++ /dev/null @@ -1,49 +0,0 @@ -merge([ - 'autofocus' => $isAutofocused(), - 'disabled' => $isDisabled(), - 'id' => $getId(), - 'required' => $isRequired() && (! $isConcealed()), - 'wire:loading.attr' => 'disabled', - $applyStateBindingModifiers('wire:model') => $statePath, - ], escape: false) - ->merge($getExtraAttributes(), escape: false) - ->merge($getExtraInputAttributes(), escape: false) - ->class([ - 'fi-checkbox-input', - 'fi-valid' => ! $errors->has($statePath), - 'fi-invalid' => $errors->has($statePath), - ]); -?> - - - - $fieldWrapperView] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('dynamic-component'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\DynamicComponent::ignoredParameterNames()); ?> - -withAttributes(['field' => $field,'inline-label-vertical-alignment' => \Filament\Support\Enums\VerticalAlignment::Center]); ?> - - slot('labelPrefix', null, []); ?> - /> - endSlot(); ?> - - /> - - renderComponent(); ?> - - - - - - - - - - \ No newline at end of file diff --git a/storage/framework/views/d136669968d8cce7e458e5d7777f6a32.php b/storage/framework/views/d136669968d8cce7e458e5d7777f6a32.php deleted file mode 100644 index 6e2a02b..0000000 --- a/storage/framework/views/d136669968d8cce7e458e5d7777f6a32.php +++ /dev/null @@ -1,49 +0,0 @@ -getColumns(); - $pollingInterval = $this->getPollingInterval(); - - $heading = $this->getHeading(); - $description = $this->getDescription(); - $hasHeading = filled($heading); - $hasDescription = filled($description); -?> - - - - 'filament-widgets::components.widget','data' => ['attributes' => - (new \Illuminate\View\ComponentAttributeBag) - ->merge([ - 'wire:poll.' . $pollingInterval => $pollingInterval ? true : null, - ], escape: false) - ->class([ - 'fi-wi-stats-overview', - ]) - ]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-widgets::widget'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['attributes' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute( - (new \Illuminate\View\ComponentAttributeBag) - ->merge([ - 'wire:poll.' . $pollingInterval => $pollingInterval ? true : null, - ], escape: false) - ->class([ - 'fi-wi-stats-overview', - ]) - )]); ?> - content); ?> - - renderComponent(); ?> - - - - - - - - - - \ No newline at end of file diff --git a/storage/framework/views/d399d1abe65e3f2cc73d217c76f9e0d5.php b/storage/framework/views/d399d1abe65e3f2cc73d217c76f9e0d5.php index 0db72cf..e03d750 100644 --- a/storage/framework/views/d399d1abe65e3f2cc73d217c76f9e0d5.php +++ b/storage/framework/views/d399d1abe65e3f2cc73d217c76f9e0d5.php @@ -6,28 +6,84 @@ Wallpaper Murals - Fabrics - Portfolio + + Projects Contact - - - - - - - Cart - 0): ?> - +
    + + guard()->check()): ?> + Custom Order +
    + + +
    + + Sign In - - - - - + + + + + + + + + Cart + 0): ?> + + + +
    +
    + + \ No newline at end of file diff --git a/storage/framework/views/e54a5d3be34ee3bfef9f87d7de2dda8f.blade.php b/storage/framework/views/e54a5d3be34ee3bfef9f87d7de2dda8f.blade.php deleted file mode 100644 index 4982b4c..0000000 --- a/storage/framework/views/e54a5d3be34ee3bfef9f87d7de2dda8f.blade.php +++ /dev/null @@ -1,6 +0,0 @@ -getAttributes()))->mapWithKeys(function ($value, $key) { return [Illuminate\Support\Str::camel(str_replace([':', '.'], ' ', $key)) => $value]; })->all(), EXTR_SKIP); ?> -@props(['field','inlineLabelVerticalAlignment']) - - -{{ $slot ?? "" }} - \ No newline at end of file diff --git a/storage/framework/views/e5d7be41700811dd965c7910cdd63b16.php b/storage/framework/views/e5d7be41700811dd965c7910cdd63b16.php deleted file mode 100644 index ebc812e..0000000 --- a/storage/framework/views/e5d7be41700811dd965c7910cdd63b16.php +++ /dev/null @@ -1,128 +0,0 @@ - - - 'filament-widgets::components.widget','data' => ['class' => 'fi-filament-info-widget']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-widgets::widget'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['class' => 'fi-filament-info-widget']); ?> - - - 'filament::components.section.index','data' => []] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::section'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes([]); ?> -
    - - - - -

    - - -

    -
    - - - renderComponent(); ?> - - - - - - - - - - renderComponent(); ?> - - - - - - - - - - \ No newline at end of file diff --git a/storage/framework/views/e5d92f0df5c965b06cb33f9117a8c00d.php b/storage/framework/views/e5d92f0df5c965b06cb33f9117a8c00d.php deleted file mode 100644 index 1aa4341..0000000 --- a/storage/framework/views/e5d92f0df5c965b06cb33f9117a8c00d.php +++ /dev/null @@ -1,8 +0,0 @@ -
    gridColumn($this->getColumnSpan(), $this->getColumnStart())->class(['fi-wi-widget'])); ?> - -> - - -
    - \ No newline at end of file diff --git a/storage/framework/views/e8622c5fb0c67bd1ec098292efc31e4f.php b/storage/framework/views/e8622c5fb0c67bd1ec098292efc31e4f.php deleted file mode 100644 index a553879..0000000 --- a/storage/framework/views/e8622c5fb0c67bd1ec098292efc31e4f.php +++ /dev/null @@ -1,53 +0,0 @@ -getAttributes()))->mapWithKeys(function ($value, $key) { return [Illuminate\Support\Str::camel(str_replace([':', '.'], ' ', $key)) => $value]; })->all(), EXTR_SKIP); ?> -all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter((['field','inlineLabelVerticalAlignment']), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - - - 'filament-forms::components.field-wrapper','data' => ['field' => $field,'inlineLabelVerticalAlignment' => $inlineLabelVerticalAlignment]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-forms::field-wrapper'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['field' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($field),'inline-label-vertical-alignment' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($inlineLabelVerticalAlignment)]); ?> - - - - renderComponent(); ?> - - - - - - - - - \ No newline at end of file diff --git a/storage/framework/views/e8d91e93ead2004545f050787ca085e3.php b/storage/framework/views/e8d91e93ead2004545f050787ca085e3.php deleted file mode 100644 index 2c737be..0000000 --- a/storage/framework/views/e8d91e93ead2004545f050787ca085e3.php +++ /dev/null @@ -1,77 +0,0 @@ - null, - 'logo' => true, - 'subheading' => null, -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'heading' => null, - 'logo' => true, - 'subheading' => null, -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - -
    - - - - 'filament-panels::components.logo','data' => []] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-panels::logo'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes([]); ?> -renderComponent(); ?> - - - - - - - - - - - - -

    - - -

    - - - -

    - - -

    - -
    - \ No newline at end of file diff --git a/storage/framework/views/ea5a1ff31204d266f5d19cf6324c898a.php b/storage/framework/views/ea5a1ff31204d266f5d19cf6324c898a.php deleted file mode 100644 index 26c2b96..0000000 --- a/storage/framework/views/ea5a1ff31204d266f5d19cf6324c898a.php +++ /dev/null @@ -1,435 +0,0 @@ - 'tableRecordsPerPage', - 'extremeLinks' => false, - 'paginator', - 'pageOptions' => [], -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'currentPageOptionProperty' => 'tableRecordsPerPage', - 'extremeLinks' => false, - 'paginator', - 'pageOptions' => [], -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - - - - - \ No newline at end of file diff --git a/storage/framework/views/ec6b175cafc2ad7bc060e67f10781d51.php b/storage/framework/views/ec6b175cafc2ad7bc060e67f10781d51.php deleted file mode 100644 index f283a4a..0000000 --- a/storage/framework/views/ec6b175cafc2ad7bc060e67f10781d51.php +++ /dev/null @@ -1,66 +0,0 @@ - filament()->auth()->user(), -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'user' => filament()->auth()->user(), -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - -getUserAvatarUrl($user); - $alt = __('filament-panels::layout.avatar.alt', ['name' => filament()->getUserName($user)]); -?> - - - - 'filament::components.avatar','data' => ['src' => $src,'alt' => $alt,'attributes' => - \Filament\Support\prepare_inherited_attributes($attributes) - ->class(['fi-user-avatar']) - ]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::avatar'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['src' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($src),'alt' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($alt),'attributes' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute( - \Filament\Support\prepare_inherited_attributes($attributes) - ->class(['fi-user-avatar']) - )]); ?> -renderComponent(); ?> - - - - - - - - - - \ No newline at end of file diff --git a/storage/framework/views/f08ad9fca67479dc124a5f64a7514f97.php b/storage/framework/views/f08ad9fca67479dc124a5f64a7514f97.php deleted file mode 100644 index d02e145..0000000 --- a/storage/framework/views/f08ad9fca67479dc124a5f64a7514f97.php +++ /dev/null @@ -1,108 +0,0 @@ -auth()->user(); -?> - - - - 'filament-widgets::components.widget','data' => ['class' => 'fi-account-widget']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-widgets::widget'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['class' => 'fi-account-widget']); ?> - - - 'filament::components.section.index','data' => []] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::section'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes([]); ?> - - - 'filament-panels::components.avatar.user','data' => ['size' => 'lg','user' => $user,'loading' => 'lazy']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-panels::avatar.user'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['size' => 'lg','user' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($user),'loading' => 'lazy']); ?> -renderComponent(); ?> - - - - - - - - - - -
    -

    - config('app.name')])); ?> - -

    - -

    - getUserName($user)); ?> - -

    -
    - -
    - - - - - 'filament::components.button.index','data' => ['color' => 'gray','icon' => \Filament\Support\Icons\Heroicon::ArrowLeftEndOnRectangle,'iconAlias' => \Filament\View\PanelsIconAlias::WIDGETS_ACCOUNT_LOGOUT_BUTTON,'labeledFrom' => 'sm','tag' => 'button','type' => 'submit']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::button'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['color' => 'gray','icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(\Filament\Support\Icons\Heroicon::ArrowLeftEndOnRectangle),'icon-alias' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(\Filament\View\PanelsIconAlias::WIDGETS_ACCOUNT_LOGOUT_BUTTON),'labeled-from' => 'sm','tag' => 'button','type' => 'submit']); ?> - - - renderComponent(); ?> - - - - - - - - - -
    - renderComponent(); ?> - - - - - - - - - - renderComponent(); ?> - - - - - - - - - - \ No newline at end of file diff --git a/storage/framework/views/f173681a20263f194334b1a3014b6285.blade.php b/storage/framework/views/f173681a20263f194334b1a3014b6285.blade.php deleted file mode 100644 index 7d097bd..0000000 --- a/storage/framework/views/f173681a20263f194334b1a3014b6285.blade.php +++ /dev/null @@ -1,6 +0,0 @@ -getAttributes()))->mapWithKeys(function ($value, $key) { return [Illuminate\Support\Str::camel(str_replace([':', '.'], ' ', $key)) => $value]; })->all(), EXTR_SKIP); ?> -@props(['field','class']) - - -{{ $slot ?? "" }} - \ No newline at end of file diff --git a/storage/framework/views/f51a8a3b702dbf521511d5f222940525.php b/storage/framework/views/f51a8a3b702dbf521511d5f222940525.php deleted file mode 100644 index 627de2e..0000000 --- a/storage/framework/views/f51a8a3b702dbf521511d5f222940525.php +++ /dev/null @@ -1,47 +0,0 @@ - false, - 'inlineSuffix' => false, -])); - -foreach ($attributes->all() as $__key => $__value) { - if (in_array($__key, $__propNames)) { - $$__key = $$__key ?? $__value; - } else { - $__newAttributes[$__key] = $__value; - } -} - -$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes); - -unset($__propNames); -unset($__newAttributes); - -foreach (array_filter(([ - 'inlinePrefix' => false, - 'inlineSuffix' => false, -]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) { - $$__key = $$__key ?? $__value; -} - -$__defined_vars = get_defined_vars(); - -foreach ($attributes->all() as $__key => $__value) { - if (array_key_exists($__key, $__defined_vars)) unset($$__key); -} - -unset($__defined_vars, $__key, $__value); ?> - - - \ No newline at end of file diff --git a/storage/framework/views/f7c29b22c1a51c7cd7168f60bd430f61.blade.php b/storage/framework/views/f7c29b22c1a51c7cd7168f60bd430f61.blade.php deleted file mode 100644 index 05aa909..0000000 --- a/storage/framework/views/f7c29b22c1a51c7cd7168f60bd430f61.blade.php +++ /dev/null @@ -1,16 +0,0 @@ - viewContext->mergeIntoNewEnvironment($__env); ?> - - @component($layout->view, $layout->params) - @slot($layout->slotOrSection) - {!! $content !!} - @endslot - - viewContext->slots[-1] ?? [] as $name => $slot) { - $__env->slot($name, attributes: $slot->attributes->getAttributes()); - echo $slot->toHtml(); - $__env->endSlot(); - } - ?> - @endcomponent \ No newline at end of file diff --git a/storage/framework/views/f909bcbbb630bac1bb471924797df459.php b/storage/framework/views/f909bcbbb630bac1bb471924797df459.php deleted file mode 100644 index 327b2f9..0000000 --- a/storage/framework/views/f909bcbbb630bac1bb471924797df459.php +++ /dev/null @@ -1,80 +0,0 @@ -toHtmlString(); - $isAside = $isAside(); - $isCollapsed = $isCollapsed(); - $isCollapsible = $isCollapsible(); - $isCompact = $isCompact(); - $isContained = $isContained(); - $isDivided = $isDivided(); - $isFormBefore = $isFormBefore(); - $description = $getDescription(); - $footer = $getChildSchema($schemaComponent::FOOTER_SCHEMA_KEY)?->toHtmlString(); - $heading = $getHeading(); - $headingTag = $getHeadingTag(); - $icon = $getIcon(); - $iconColor = $getIconColor(); - $iconSize = $getIconSize(); - $shouldPersistCollapsed = $shouldPersistCollapsed(); - $isSecondary = $isSecondary(); - $id = $getId(); -?> - -
    merge([ - 'id' => $id, - ], escape: false) - ->merge($getExtraAttributes(), escape: false) - ->merge($getExtraAlpineAttributes(), escape: false) - ->class(['fi-sc-section'])); ?> - -> - -
    - - - - - - - -
    - - - toHtmlString()): ?> - - - - - - - 'filament::components.section.index','data' => ['afterHeader' => $afterHeader,'aside' => $isAside,'collapsed' => $isCollapsed,'collapseId' => $id,'collapsible' => $isCollapsible && (! $isAside),'compact' => $isCompact,'contained' => $isContained,'contentBefore' => $isFormBefore,'description' => $description,'divided' => $isDivided,'footer' => $footer,'hasContentEl' => false,'heading' => $heading,'headingTag' => $headingTag,'icon' => $icon,'iconColor' => $iconColor,'iconSize' => $iconSize,'persistCollapsed' => $shouldPersistCollapsed,'secondary' => $isSecondary]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::section'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['after-header' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($afterHeader),'aside' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isAside),'collapsed' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isCollapsed),'collapse-id' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($id),'collapsible' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isCollapsible && (! $isAside)),'compact' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isCompact),'contained' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isContained),'content-before' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isFormBefore),'description' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($description),'divided' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isDivided),'footer' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($footer),'has-content-el' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(false),'heading' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($heading),'heading-tag' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($headingTag),'icon' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($icon),'icon-color' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($iconColor),'icon-size' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($iconSize),'persist-collapsed' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($shouldPersistCollapsed),'secondary' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isSecondary)]); ?> - gap(! $isDivided)->extraAttributes(['class' => 'fi-section-content'])); ?> - - renderComponent(); ?> - - - - - - - - - - - toHtmlString()): ?> - - - -
    - \ No newline at end of file diff --git a/storage/framework/views/f98c182f4ecf0c1b66c11b701478d8d6.php b/storage/framework/views/f98c182f4ecf0c1b66c11b701478d8d6.php deleted file mode 100644 index bd4c2f5..0000000 --- a/storage/framework/views/f98c182f4ecf0c1b66c11b701478d8d6.php +++ /dev/null @@ -1,187 +0,0 @@ -getColor(); - $heading = $this->getHeading(); - $description = $this->getDescription(); - $filters = $this->getFilters(); - $isCollapsible = $this->isCollapsible(); - $type = $this->getType(); -?> - - - - 'filament-widgets::components.widget','data' => ['class' => 'fi-wi-chart']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament-widgets::widget'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['class' => 'fi-wi-chart']); ?> - - - 'filament::components.section.index','data' => ['description' => $description,'heading' => $heading,'collapsible' => $isCollapsible]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::section'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['description' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($description),'heading' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($heading),'collapsible' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isCollapsible)]); ?> - - slot('afterHeader', null, []); ?> - - - - 'filament::components.input.wrapper','data' => ['inlinePrefix' => true,'wire:target' => 'filter','class' => 'fi-wi-chart-filter']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::input.wrapper'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['inline-prefix' => true,'wire:target' => 'filter','class' => 'fi-wi-chart-filter']); ?> - - - 'filament::components.input.select','data' => ['inlinePrefix' => true,'wire:model.live' => 'filter']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::input.select'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['inline-prefix' => true,'wire:model.live' => 'filter']); ?> - addLoop($__currentLoopData); foreach($__currentLoopData as $value => $label): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> - - popLoop(); $loop = $__env->getLastLoop(); ?> - renderComponent(); ?> - - - - - - - - - - renderComponent(); ?> - - - - - - - - - - - - - - - 'filament::components.dropdown.index','data' => ['placement' => 'bottom-end','shift' => true,'width' => 'xs','class' => 'fi-wi-chart-filter']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?> -withName('filament::dropdown'); ?> -shouldRender()): ?> -startComponent($component->resolveView(), $component->data()); ?> - -except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?> - -withAttributes(['placement' => 'bottom-end','shift' => true,'width' => 'xs','class' => 'fi-wi-chart-filter']); ?> - slot('trigger', null, []); ?> - getFiltersTriggerAction()); ?> - - endSlot(); ?> - -
    - getFiltersSchema()); ?> - -
    - renderComponent(); ?> - - - - - - - - - - - endSlot(); ?> - - -
    getPollingInterval()): ?> - wire:poll.="updateChartData" - - > -
    color(ChartWidgetComponent::class, $color) - ->class([ - 'fi-wi-chart-canvas-ctn', - 'fi-wi-chart-canvas-ctn-no-aspect-ratio' => filled($maxHeight = $this->getMaxHeight()), - ]) - ->style([ - 'max-height: ' . $maxHeight => filled($maxHeight), - ])); ?> - - > - - - - - - - - - -
    -
    - renderComponent(); ?> - - - - - - - - - - renderComponent(); ?> - - - - - - - - - - \ No newline at end of file