diff --git a/src/pages/account/notification.astro b/src/pages/account/notification.astro
new file mode 100644
index 000000000000..2f3cc80c649f
--- /dev/null
+++ b/src/pages/account/notification.astro
@@ -0,0 +1,16 @@
+---
+import AccountSidebar from '../../components/AccountSidebar.astro';
+import { NotificationPage } from '../../components/Notification/NotificationPage';
+import AccountLayout from '../../layouts/AccountLayout.astro';
+---
+
+
+
+
+
+
diff --git a/src/pages/pages.json.ts b/src/pages/pages.json.ts
index 40e7f8a009bd..49146fb76bfc 100644
--- a/src/pages/pages.json.ts
+++ b/src/pages/pages.json.ts
@@ -12,21 +12,25 @@ export async function get() {
return {
body: JSON.stringify([
...roadmaps.map((roadmap) => ({
+ id: roadmap.id,
url: `/${roadmap.id}`,
title: roadmap.frontmatter.briefTitle,
group: 'Roadmaps',
})),
...bestPractices.map((bestPractice) => ({
+ id: bestPractice.id,
url: `/best-practices/${bestPractice.id}`,
title: bestPractice.frontmatter.briefTitle,
group: 'Best Practices',
})),
...guides.map((guide) => ({
+ id: guide.id,
url: `/guides/${guide.id}`,
title: guide.frontmatter.title,
group: 'Guides',
})),
...videos.map((guide) => ({
+ id: guide.id,
url: `/videos/${guide.id}`,
title: guide.frontmatter.title,
group: 'Videos',
diff --git a/src/pages/respond-invite.astro b/src/pages/respond-invite.astro
new file mode 100644
index 000000000000..3abff148418d
--- /dev/null
+++ b/src/pages/respond-invite.astro
@@ -0,0 +1,14 @@
+---
+import AccountLayout from '../layouts/AccountLayout.astro';
+import { RespondInviteForm } from '../components/RespondInviteForm';
+import LoginPopup from "../components/AuthenticationFlow/LoginPopup.astro";
+---
+
+
+
+
+
diff --git a/src/pages/team/index.astro b/src/pages/team/index.astro
new file mode 100644
index 000000000000..93b07c5031ae
--- /dev/null
+++ b/src/pages/team/index.astro
@@ -0,0 +1,16 @@
+---
+import AccountSidebar from '../../components/AccountSidebar.astro';
+import { TeamsList } from '../../components/TeamsList.tsx';
+import { ActivityPage } from '../../components/Activity/ActivityPage';
+import AccountLayout from '../../layouts/AccountLayout.astro';
+---
+
+
+
+
+
+
diff --git a/src/pages/team/members.astro b/src/pages/team/members.astro
new file mode 100644
index 000000000000..34dfc03c5de6
--- /dev/null
+++ b/src/pages/team/members.astro
@@ -0,0 +1,15 @@
+---
+import { TeamSidebar } from '../../components/TeamSidebar';
+import { TeamMembersPage } from '../../components/TeamMembers/TeamMembersPage';
+import AccountLayout from '../../layouts/AccountLayout.astro';
+---
+
+
+
+
+
+
diff --git a/src/pages/team/new.astro b/src/pages/team/new.astro
new file mode 100644
index 000000000000..fa28590cfd30
--- /dev/null
+++ b/src/pages/team/new.astro
@@ -0,0 +1,11 @@
+---
+import AccountSidebar from '../../components/AccountSidebar.astro';
+import AccountLayout from '../../layouts/AccountLayout.astro';
+import { CreateTeamForm } from '../../components/CreateTeam/CreateTeamForm';
+---
+
+
+
+
+
+
diff --git a/src/pages/team/progress.astro b/src/pages/team/progress.astro
new file mode 100644
index 000000000000..71c1b6699c05
--- /dev/null
+++ b/src/pages/team/progress.astro
@@ -0,0 +1,11 @@
+---
+import { TeamSidebar } from '../../components/TeamSidebar';
+import { TeamProgressPage } from '../../components/TeamProgress/TeamProgressPage';
+import AccountLayout from '../../layouts/AccountLayout.astro';
+---
+
+
+
+
+
+
diff --git a/src/pages/team/roadmaps.astro b/src/pages/team/roadmaps.astro
new file mode 100644
index 000000000000..dbb0b7b87a90
--- /dev/null
+++ b/src/pages/team/roadmaps.astro
@@ -0,0 +1,11 @@
+---
+import { TeamSidebar } from '../../components/TeamSidebar';
+import { TeamRoadmaps } from '../../components/TeamRoadmaps';
+import AccountLayout from '../../layouts/AccountLayout.astro';
+---
+
+
+
+
+
+
diff --git a/src/pages/team/settings.astro b/src/pages/team/settings.astro
new file mode 100644
index 000000000000..ff31c3debd34
--- /dev/null
+++ b/src/pages/team/settings.astro
@@ -0,0 +1,15 @@
+---
+import { TeamSidebar } from '../../components/TeamSidebar';
+import { UpdateTeamForm } from '../../components/TeamSettings/UpdateTeamForm';
+import AccountLayout from '../../layouts/AccountLayout.astro';
+---
+
+
+
+
+
+
diff --git a/src/stores/team.ts b/src/stores/team.ts
new file mode 100644
index 000000000000..1cf11aa7aad6
--- /dev/null
+++ b/src/stores/team.ts
@@ -0,0 +1,15 @@
+import { atom, computed } from 'nanostores';
+import type { UserTeamItem } from '../components/TeamDropdown/TeamDropdown';
+
+export const $teamList = atom
([]);
+export const $currentTeam = atom();
+
+export const $currentTeamRole = computed($currentTeam, (team) => team?.role);
+
+export const $isCurrentTeamAdmin = computed($currentTeamRole, (role) =>
+ ['admin'].includes(role!)
+);
+
+export const $canManageCurrentTeam = computed($currentTeamRole, (role) =>
+ ['admin', 'manager'].includes(role!)
+);
diff --git a/src/stores/toast.ts b/src/stores/toast.ts
new file mode 100644
index 000000000000..adb9fb9b0af5
--- /dev/null
+++ b/src/stores/toast.ts
@@ -0,0 +1,9 @@
+import { atom } from 'nanostores';
+
+export type ToastType = 'success' | 'error' | 'info' | 'warning' | 'loading';
+export type ToastMessage = {
+ type: ToastType;
+ message: string;
+};
+
+export const $toastMessage = atom(undefined);
diff --git a/tailwind.config.cjs b/tailwind.config.cjs
index 9e226c9fa6e7..97d265274bf0 100644
--- a/tailwind.config.cjs
+++ b/tailwind.config.cjs
@@ -11,6 +11,21 @@ module.exports = {
},
},
},
+ keyframes: {
+ 'fade-slide-up': {
+ '0%': {
+ opacity: '0',
+ transform: 'translateY(20px)',
+ },
+ '100%': {
+ opacity: '1',
+ transform: 'translateY(0)',
+ },
+ },
+ },
+ animation: {
+ 'fade-slide-up': 'fade-slide-up 0.2s cubic-bezier(0.4, 0, 0.2, 1) forwards',
+ },
},
container: {
center: true,