Commit d257c8f
feat: Teams support (#14)
* Data model changes for teams functionality
* Create personal team when creating a new user
* Update Team to use soft delete
* Refactor current/default team to align with Cloud approach
* Add events, notifications, policies and middleware for team feature
* Add actions and config for team feature
* Update structure for Teams files for Inertia kits
* Update build command, watch script, workflow and docs for Team feature
* Refactor Membership to remove polymorphic relationship and add user model config
* Add new layer for shared controllers for Inertia kits teams
* Add validation for team name to avoid reserved names
* Initial integration for Vue UI (Fortify)
* Refactor to deprecate teams actions and add default values for current team on URLs
* Refactor Team Switcher component
* Add feature test cases for Teams
* Improve Team deletion flow
* Small refactor to the watch script
* Update tests for changes in deletion
* Revert refactor for watch script
* Refactor team invitations
* Refactor team roles
* Add missing layout for WorkOS Teams
* Fix issues with dashboard route on WorkOS variant
* Refactor to use switchTeam from HasTeams
* Add isCurrentTeam helper method on HasTeams trait
* Remove not used method
* Fix issue with tests on WorkOS variant
* React teams feature implementation and team switcher added to header layout
* Livewire teams implementation
* Fix issue with tests for livewire team test
* Improvements to invites, permissions and team deletion
* General minor improvements
* Apply linter changes for Teams implementation
* Apply linter/formatter changes for Teams React implementation
* Update to Inertia globals and applied linter/formatter on Vue Teams implementation
* Apply linter/formatter changes for Teams Vue implementation
* Fix issue on removing needed changes
* Improve SKILL and create minimal guidelines files pointing to skill
* Updated watch script and components mapping for Svelte Teams
* Improve Skill and guidelines
* Organize GH actions
* Svelte Teams Feature implementation
* TeamSwitcher component refactor for React and Vue
* Update EnsureMembership.php
* Update SetTeamUrlDefaults.php
* formatting
* First batch of fixes for code review
* Improved Pint configuration for Maestro and applied it in both orchestrator and kits
* Update empty constructors
* Another batch of changes for code review
* Lint workflow improvement
* Improved import lint rules
* Child routes fix and UI improvements
* Update how to handle titles in Livewire starter kits to match Inertia ones
* team settings styling
* Update Edit.vue
* Update index.tsx
* wip
* Update Index.svelte
* Update global.d.ts
* wip
* wip
* Linter changes
* Create UserTeam DTO
* Add TeamPermissions DTO
* Refactor dialog/modal components
* Applied Linter changes
* Fix tooltip for icons in Teams edit page
* Update agents skill file to match claude one
* Add teams variants for tests workflow
* Update check kit script to add teams variants
* Apply linter changes
* Apply sentence case to all user-facing text in Teams kits and align sidebar icon/title with base kits
* Update global types for teams
* wip
* dto method consistency and reduce number of queries
* Update HasTeams.php
* Update HasTeams.php
* Update TeamRole.php
* Update TeamController.php
* Update TeamInvitationController.php
* Update TeamMemberController.php
* Update TeamMemberController.php
* Update TeamMemberController.php
* Update app-header.tsx
* Update welcome.tsx
* eslint
* do not allow the team owner to remove themselves
* rely on assignable for updating team member
* tests
* typo
* Update TeamController.php
* Update TeamInvitationController.php
* ensure no stale data on non-happy path
* processing indicators for destructive actions
* use wayfinder object with verb instead of verb
* copy update
* Update TeamRole.php
* toUserTeams
* Update edit.blade.php
* no single line curlies
* fix variant counts, variant label, and docs after rebase
* Add missing config
* Update Pint config and apply linter changes
* Fix issue with invite modal
* formatting
* Refactor migrations and remove MembershipFactory
* Rename team invitation rule
* Updated invitation code to 64 chars
* Update Delete team flow
* formatting (#45)
* formatting
* remove need for config file
* test formatting
* working on livewire
* update livewire
* formatting
* Linter fixes
---------
Co-authored-by: Wendell Adriel <wendelladriel.ti@gmail.com>
* changes for security page on teams variants
* Add --teams to variant filtering flags in orchestrator scripts
The teams variants in check-kits and lint-kits were missing the
`variant` property, so they couldn't be targeted with the selective
execution flags. This adds `--teams` to the recognized variant flags
and tags all teams entries so they can be filtered independently.
* adjust method order on policy
* update invitation
* update Teams welcome page SVG to Laravel 13 illustration
* use Fillable and Hidden attributes on teams models
* restore Current badge and Star icon on teams index page
Replace the CheckCircle/Circle icon approach with a green "Current"
badge next to the team name and a Star icon button for switching teams,
matching the Livewire variant's existing UX across React, Svelte, and
Vue Inertia kits.
* remove current team badge and switch button from teams index page
Team switching is already available in the sidebar, so the redundant
"Current" badge and star switch button are no longer needed on the
teams list page. The "Personal" badge and edit/view buttons are kept.
* Add teams variants to CI test matrix
* Remove stale pr_branch fields from push workflow teams entries
* Align teams kits with Inertia 3 layout pattern
Teams pages were manually wrapping with AppLayout/SettingsLayout
instead of using the createInertiaApp layout callback. This converts
all teams pages (React, Vue, Svelte) to the declarative layout
property pattern matching non-teams kits, adds bootstrap overrides
with teams/ route handling, removes unnecessary .url from wayfinder
route helpers, and fixes pre-existing Svelte 5 type issues ($page
store syntax, currentUrl import path, missing isCurrentOrParentUrl).
* Add teams browser test suite and expand matrix to 8 variants
Introduces a dedicated browser test suite for Teams covering
registration, team CRUD, switching, invitations, member management,
and permission-based UI visibility across all four stacks.
Browser tests are reorganized into three layers (bootstrap, common,
teams) so each variant runs exactly one suite. The runner script and
CI workflow are expanded from 4 to 8 jobs accordingly.
Adds data-test selectors to the Teams UI across Livewire, React,
Svelte, and Vue. Renames the Livewire team-switcher wire:model from
"name" to "teamName" to avoid input name collisions with other pages
sharing the sidebar layout.
---------
Co-authored-by: Joe Tannenbaum <joe.tannenbaum@laravel.com>
Co-authored-by: Taylor Otwell <taylor@laravel.com>1 parent 4796892 commit d257c8f
File tree
205 files changed
+15763
-180
lines changed- .agents/skills/maestro
- .claude/skills/maestro
- .github/workflows
- browser_tests
- bootstrap
- tests
- common/tests/Browser
- Auth
- Settings
- teams/tests/Browser/Teams
- kits
- Inertia
- Blank
- React
- Svelte
- Vue
- Fortify/Base/tests/Feature
- Auth
- Settings
- Svelte/resources/js
- components/ui/dialog
- lib
- Teams
- Base
- app
- Http
- Controllers/Teams
- Middleware
- Requests/Teams
- Rules
- bootstrap
- tests/Feature
- Teams
- Fortify
- Base
- app
- Models
- Providers
- routes
- tests/Feature/Auth
- React/resources/js
- layouts/settings
- pages
- Svelte/resources/js
- layouts/settings
- pages
- Vue/resources/js
- layouts/settings
- pages
- React/resources/js
- components
- pages
- teams
- types
- Svelte/resources/js
- components
- pages
- teams
- types
- Vue/resources/js
- components
- pages
- teams
- types
- WorkOS
- Base
- app/Models
- routes
- React/resources/js
- layouts/settings
- pages
- Svelte/resources/js
- layouts/settings
- pages
- Vue/resources/js
- layouts/settings
- pages
- Livewire
- Components/tests/Feature/Settings
- Fortify/tests/Feature
- Auth
- Settings
- Teams
- Base
- bootstrap
- resources/views
- components
- layouts/app
- pages/teams
- tests/Feature
- Teams
- Fortify
- app
- Models
- Providers
- resources/views/pages/settings
- routes
- tests/Feature/Auth
- WorkOS
- app/Models
- resources/views/pages/settings
- routes
- orchestrator
- app
- Console/Commands
- Models
- scripts
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
205 files changed
+15763
-180
lines changedLarge diffs are not rendered by default.
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| 23 | + | |
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
| 27 | + | |
26 | 28 | | |
27 | 29 | | |
28 | 30 | | |
| 31 | + | |
29 | 32 | | |
30 | 33 | | |
31 | 34 | | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
32 | 52 | | |
33 | 53 | | |
34 | 54 | | |
| |||
52 | 72 | | |
53 | 73 | | |
54 | 74 | | |
55 | | - | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
56 | 79 | | |
57 | | - | |
58 | | - | |
| 80 | + | |
| 81 | + | |
59 | 82 | | |
60 | 83 | | |
61 | 84 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
53 | 69 | | |
54 | 70 | | |
55 | 71 | | |
| |||
75 | 91 | | |
76 | 92 | | |
77 | 93 | | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
78 | 110 | | |
79 | 111 | | |
80 | 112 | | |
| |||
100 | 132 | | |
101 | 133 | | |
102 | 134 | | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
103 | 151 | | |
104 | 152 | | |
105 | 153 | | |
| |||
125 | 173 | | |
126 | 174 | | |
127 | 175 | | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
128 | 192 | | |
129 | 193 | | |
130 | 194 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| 26 | + | |
| 27 | + | |
26 | 28 | | |
27 | 29 | | |
28 | 30 | | |
| 31 | + | |
| 32 | + | |
29 | 33 | | |
30 | 34 | | |
31 | 35 | | |
| 36 | + | |
| 37 | + | |
32 | 38 | | |
33 | 39 | | |
34 | 40 | | |
| 41 | + | |
| 42 | + | |
35 | 43 | | |
36 | 44 | | |
37 | 45 | | |
| |||
58 | 66 | | |
59 | 67 | | |
60 | 68 | | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
61 | 81 | | |
62 | 82 | | |
63 | 83 | | |
| |||
77 | 97 | | |
78 | 98 | | |
79 | 99 | | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
80 | 112 | | |
81 | 113 | | |
82 | 114 | | |
| |||
96 | 128 | | |
97 | 129 | | |
98 | 130 | | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
99 | 143 | | |
100 | 144 | | |
101 | 145 | | |
| |||
115 | 159 | | |
116 | 160 | | |
117 | 161 | | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
118 | 174 | | |
119 | 175 | | |
120 | 176 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| |||
0 commit comments