From f54aa47c72a535dc6810ea843ca0147a56bc1d21 Mon Sep 17 00:00:00 2001 From: Mehedi Jaman Date: Tue, 19 Aug 2025 22:52:40 +0600 Subject: [PATCH 1/5] feat(AppDataSearch): add customizable placeholder prop ### Summary This PR introduces a `placeholder` prop to the `AppDataSearch` component, allowing consumers to define custom placeholder text instead of using the hardcoded "Search". ### Changes - Added `placeholder` prop with default value `"Search"` - Updated template to use `:placeholder="placeholder"` instead of `__('Search')` - Maintains backward compatibility (defaults to `"Search"` if no prop is passed) ### Usage Example ```vue --- stubs/resources/js/Components/DataTable/AppDataSearch.vue | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/stubs/resources/js/Components/DataTable/AppDataSearch.vue b/stubs/resources/js/Components/DataTable/AppDataSearch.vue index 4ee9114..b3b3d3c 100644 --- a/stubs/resources/js/Components/DataTable/AppDataSearch.vue +++ b/stubs/resources/js/Components/DataTable/AppDataSearch.vue @@ -8,7 +8,7 @@ @@ -39,6 +39,10 @@ const props = defineProps({ additionalParams: { type: Object, default: () => {} + }, + placeholder: { + type: String, + default: 'Search' } }) From 6f25560444a6657f0f3511a2d33dd2227902aff8 Mon Sep 17 00:00:00 2001 From: Mehedi Jaman Date: Thu, 28 Aug 2025 12:43:25 +0600 Subject: [PATCH 2/5] feat: add AppMultiCombobox component for multi-select dropdown - Implemented a reusable multi-select combobox component (`AppMultiCombobox.vue`) - Supports search, tag-style selected items, and keyboard navigation - Emits `update:modelValue` with array of selected options - Styled consistently with existing `AppCombobox` component - Enables selecting multiple recipients in message compose form --- .../js/Components/Form/AppMultiCombobox.vue | 223 ++++++++++++++++++ 1 file changed, 223 insertions(+) create mode 100644 stubs/resources/js/Components/Form/AppMultiCombobox.vue diff --git a/stubs/resources/js/Components/Form/AppMultiCombobox.vue b/stubs/resources/js/Components/Form/AppMultiCombobox.vue new file mode 100644 index 0000000..60c0c2f --- /dev/null +++ b/stubs/resources/js/Components/Form/AppMultiCombobox.vue @@ -0,0 +1,223 @@ + + + + + From ddf2d31684571f35ce162daf8cbd17d3c2614ef7 Mon Sep 17 00:00:00 2001 From: Mehedi Jaman Date: Fri, 29 Aug 2025 11:52:07 +0600 Subject: [PATCH 3/5] Update Topbar: Add Fullscreen Toggle with Animation and Persisted Icon State Fullscreen Toggle Added a fullscreen button with smooth rotate + scale animation. Fullscreen state icon (maximize / minimize) persists in localStorage. Automatically updates icon when exiting fullscreen via Esc. Notes: Fullscreen cannot be automatically restored on page reload due to browser security restrictions; only the icon state persists. Logout and theme toggling functionality remain unaffected. --- .../js/Components/Misc/AppTopBar.vue | 66 +++++++++++++++++-- 1 file changed, 59 insertions(+), 7 deletions(-) diff --git a/stubs/resources/js/Components/Misc/AppTopBar.vue b/stubs/resources/js/Components/Misc/AppTopBar.vue index ca14d69..c8325bc 100644 --- a/stubs/resources/js/Components/Misc/AppTopBar.vue +++ b/stubs/resources/js/Components/Misc/AppTopBar.vue @@ -1,10 +1,10 @@ From 27a26d67235a73d5b35325597a07bebf2c4f3a37 Mon Sep 17 00:00:00 2001 From: Mehedi Jaman Date: Fri, 29 Aug 2025 12:10:59 +0600 Subject: [PATCH 4/5] Fix logout to redirect to login form route - Updated logout() to redirect to GET route 'adminAuth.loginForm' instead of POST login route. - Ensures a fresh CSRF token is generated and avoids 419 Page Expired errors on first login after logout. - Session is invalidated and CSRF token regenerated for security. --- .../Http/Controllers/AuthenticatedSessionController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/modules/AdminAuth/Http/Controllers/AuthenticatedSessionController.php b/stubs/modules/AdminAuth/Http/Controllers/AuthenticatedSessionController.php index 1ec7cec..549b625 100644 --- a/stubs/modules/AdminAuth/Http/Controllers/AuthenticatedSessionController.php +++ b/stubs/modules/AdminAuth/Http/Controllers/AuthenticatedSessionController.php @@ -48,6 +48,6 @@ public function logout(Request $request) $request->session()->regenerateToken(); - return Inertia::location(config('modular.login-url')); + return redirect()->route('adminAuth.loginForm'); } } From 3e07921917948c76b252dcbf418a47696e307798 Mon Sep 17 00:00:00 2001 From: Mehedi Jaman Date: Sat, 6 Sep 2025 22:37:38 +0600 Subject: [PATCH 5/5] Update AuthenticatedSessionController.php --- .../Http/Controllers/AuthenticatedSessionController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stubs/modules/AdminAuth/Http/Controllers/AuthenticatedSessionController.php b/stubs/modules/AdminAuth/Http/Controllers/AuthenticatedSessionController.php index 549b625..3b2d0a4 100644 --- a/stubs/modules/AdminAuth/Http/Controllers/AuthenticatedSessionController.php +++ b/stubs/modules/AdminAuth/Http/Controllers/AuthenticatedSessionController.php @@ -47,7 +47,7 @@ public function logout(Request $request) $request->session()->invalidate(); $request->session()->regenerateToken(); - - return redirect()->route('adminAuth.loginForm'); + + return Inertia::location(config('modular.login-url')); } }