@burdenoff/microfe-technospam 2026.720.1 → 2026.730.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/technospam/TechnoSpamRoot.d.ts.map +1 -1
- package/dist/technospam/TechnoSpamRoot.js +174 -212
- package/dist/technospam/TechnoSpamRoot.js.map +1 -1
- package/dist/technospam/TechnoSpamRoutes.d.ts.map +1 -1
- package/dist/technospam/TechnoSpamRoutes.js +31 -30
- package/dist/technospam/TechnoSpamRoutes.js.map +1 -1
- package/dist/technospam/api/technospamApi.d.ts +166 -0
- package/dist/technospam/api/technospamApi.d.ts.map +1 -1
- package/dist/technospam/api/technospamApi.js +336 -147
- package/dist/technospam/api/technospamApi.js.map +1 -1
- package/dist/technospam/components/UpgradeGate.d.ts +24 -0
- package/dist/technospam/components/UpgradeGate.d.ts.map +1 -0
- package/dist/technospam/components/UpgradeGate.js +47 -0
- package/dist/technospam/components/UpgradeGate.js.map +1 -0
- package/dist/technospam/components/index.d.ts +1 -0
- package/dist/technospam/components/index.d.ts.map +1 -1
- package/dist/technospam/components/index.js +1 -0
- package/dist/technospam/pages/ApplicationsPortfolioPagePage.d.ts +2 -0
- package/dist/technospam/pages/ApplicationsPortfolioPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/ApplicationsPortfolioPagePage.js +275 -0
- package/dist/technospam/pages/ApplicationsPortfolioPagePage.js.map +1 -0
- package/dist/technospam/pages/ApplicationsProblemDetailsPagePage.d.ts.map +1 -1
- package/dist/technospam/pages/ApplicationsProblemDetailsPagePage.js +380 -168
- package/dist/technospam/pages/ApplicationsProblemDetailsPagePage.js.map +1 -1
- package/dist/technospam/pages/ApplicationsProblemsPagePage.d.ts.map +1 -1
- package/dist/technospam/pages/ApplicationsProblemsPagePage.js +81 -77
- package/dist/technospam/pages/ApplicationsProblemsPagePage.js.map +1 -1
- package/dist/technospam/pages/CoursesCourseDetailsPagePage.d.ts.map +1 -1
- package/dist/technospam/pages/CoursesCourseDetailsPagePage.js +200 -178
- package/dist/technospam/pages/CoursesCourseDetailsPagePage.js.map +1 -1
- package/dist/technospam/pages/CoursesCoursesPagePage.d.ts.map +1 -1
- package/dist/technospam/pages/CoursesCoursesPagePage.js +66 -62
- package/dist/technospam/pages/CoursesCoursesPagePage.js.map +1 -1
- package/dist/technospam/pages/StudyPlannerStudyPlannerPagePage.d.ts +2 -0
- package/dist/technospam/pages/StudyPlannerStudyPlannerPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/StudyPlannerStudyPlannerPagePage.js +266 -0
- package/dist/technospam/pages/StudyPlannerStudyPlannerPagePage.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TechnoSpamRoot.js","names":[],"sources":["../../src/technospam/TechnoSpamRoot.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { useEffect } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport {\n LayoutDashboard,\n Home,\n ShieldCheck,\n BarChart3,\n Code,\n BookOpen,\n Trophy,\n Users,\n Bell,\n CalendarDays,\n HeadphonesIcon,\n Settings,\n LogIn,\n UserPlus,\n KeyRound,\n ScrollText,\n Shield,\n Cookie,\n TrendingUp,\n FileText,\n Target,\n Map,\n Pencil,\n Calendar,\n Star,\n ClipboardList,\n Briefcase,\n Award,\n User,\n BellRing,\n} from 'lucide-react';\nimport { TechnoSpamProvider } from './providers/TechnoSpamProvider';\nimport { FeatureFlagProvider } from '@burdenoff/fe-libs/shared/feature-flags';\nimport type { NavItem, TechnoSpamRootProps } from './types';\nimport { TechnoSpamRoutes } from './TechnoSpamRoutes';\nimport { tWithFallback } from './utils/i18n';\nimport { joinPath } from './utils/navigation';\n\nexport const TechnoSpamRoot: FC<TechnoSpamRootProps> = (props) => {\n const { registerNavItems, registerFooterItems, basePath = '/' } = props;\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => tWithFallback(t, key, fallback);\n\n useEffect(() => {\n if (!registerNavItems) return;\n\n const navItem: NavItem = {\n id: 'technospam',\n label: tr('technospam.nav.root', 'TechnoSpam'),\n path: basePath,\n icon: <Code size={20} />,\n order: 80,\n group: 'products',\n children: [\n {\n id: 'technospam-home',\n label: tr('technospam.nav.home', 'Home'),\n path: joinPath(basePath, 'home'),\n icon: <Home size={16} />,\n order: 0,\n },\n {\n id: 'technospam-dashboard-section',\n label: tr('technospam.nav.dashboard.section', 'Dashboard'),\n path: joinPath(basePath, 'dashboard'),\n icon: <LayoutDashboard size={16} />,\n order: 1,\n children: [\n {\n id: 'technospam-dashboard-dashboard-page',\n label: tr('technospam.nav.dashboard.overview', 'Dashboard'),\n path: joinPath(basePath, 'dashboard/dashboard-page'),\n icon: <LayoutDashboard size={16} />,\n },\n ],\n },\n {\n id: 'technospam-admin',\n label: tr('technospam.nav.admin.section', 'Admin'),\n path: joinPath(basePath, 'admin'),\n icon: <ShieldCheck size={16} />,\n order: 2,\n children: [\n {\n id: 'technospam-admin-admin-dashboard-page',\n label: tr('technospam.nav.admin.dashboard', 'Admin Dashboard'),\n path: joinPath(basePath, 'admin/admin-dashboard-page'),\n icon: <LayoutDashboard size={16} />,\n },\n {\n id: 'technospam-admin-audit-reports-page',\n label: tr('technospam.nav.admin.auditReports', 'Audit Reports'),\n path: joinPath(basePath, 'admin/audit-reports-page'),\n icon: <ClipboardList size={16} />,\n },\n ],\n },\n {\n id: 'technospam-analytics',\n label: tr('technospam.nav.analytics.section', 'Analytics'),\n path: joinPath(basePath, 'analytics'),\n icon: <BarChart3 size={16} />,\n order: 3,\n children: [\n {\n id: 'technospam-analytics-analytics-page',\n label: tr('technospam.nav.analytics.overview', 'Analytics'),\n path: joinPath(basePath, 'analytics/analytics-page'),\n icon: <TrendingUp size={16} />,\n },\n {\n id: 'technospam-analytics-progress-page',\n label: tr('technospam.nav.analytics.progress', 'Progress'),\n path: joinPath(basePath, 'analytics/progress-page'),\n icon: <Target size={16} />,\n },\n {\n id: 'technospam-analytics-achievements-page',\n label: tr('technospam.nav.analytics.achievements', 'Achievements'),\n path: joinPath(basePath, 'analytics/achievements-page'),\n icon: <Award size={16} />,\n },\n {\n id: 'technospam-analytics-reports-page',\n label: tr('technospam.nav.analytics.reports', 'Reports'),\n path: joinPath(basePath, 'analytics/reports-page'),\n icon: <FileText size={16} />,\n },\n ],\n },\n {\n id: 'technospam-applications',\n label: tr('technospam.nav.applications.section', 'Applications'),\n path: joinPath(basePath, 'applications'),\n icon: <Code size={16} />,\n order: 4,\n children: [\n {\n id: 'technospam-applications-problems-page',\n label: tr('technospam.nav.applications.problems', 'Problems'),\n path: joinPath(basePath, 'applications/problems-page'),\n icon: <Code size={16} />,\n },\n {\n id: 'technospam-applications-problem-details-page',\n label: tr('technospam.nav.applications.problemDetails', 'Problem Details'),\n path: joinPath(basePath, 'applications/problem-details-page'),\n icon: <FileText size={16} />,\n },\n {\n id: 'technospam-applications-solutions-page',\n label: tr('technospam.nav.applications.solutions', 'Solutions'),\n path: joinPath(basePath, 'applications/solutions-page'),\n icon: <ClipboardList size={16} />,\n },\n {\n id: 'technospam-applications-portfolio-page',\n label: tr('technospam.nav.applications.portfolio', 'Portfolio'),\n path: joinPath(basePath, 'applications/portfolio-page'),\n icon: <Briefcase size={16} />,\n },\n ],\n },\n {\n id: 'technospam-courses',\n label: tr('technospam.nav.courses.section', 'Courses'),\n path: joinPath(basePath, 'courses'),\n icon: <BookOpen size={16} />,\n order: 5,\n children: [\n {\n id: 'technospam-courses-courses-page',\n label: tr('technospam.nav.courses.browse', 'Browse Courses'),\n path: joinPath(basePath, 'courses/courses-page'),\n icon: <BookOpen size={16} />,\n },\n {\n id: 'technospam-courses-course-details-page',\n label: tr('technospam.nav.courses.courseDetails', 'Course Details'),\n path: joinPath(basePath, 'courses/course-details-page'),\n icon: <FileText size={16} />,\n },\n {\n id: 'technospam-courses-my-learning-page',\n label: tr('technospam.nav.courses.myLearning', 'My Learning'),\n path: joinPath(basePath, 'courses/my-learning-page'),\n icon: <Target size={16} />,\n },\n {\n id: 'technospam-courses-instructors-page',\n label: tr('technospam.nav.courses.instructors', 'Instructors'),\n path: joinPath(basePath, 'courses/instructors-page'),\n icon: <Users size={16} />,\n },\n {\n id: 'technospam-courses-instructor-profile-page',\n label: tr('technospam.nav.courses.instructorProfile', 'Instructor Profile'),\n path: joinPath(basePath, 'courses/instructor-profile-page'),\n icon: <User size={16} />,\n },\n ],\n },\n {\n id: 'technospam-hackathons',\n label: tr('technospam.nav.hackathons.section', 'Hackathons'),\n path: joinPath(basePath, 'hackathons'),\n icon: <Trophy size={16} />,\n order: 6,\n children: [\n {\n id: 'technospam-hackathons-hackathons-page',\n label: tr('technospam.nav.hackathons.overview', 'Hackathons'),\n path: joinPath(basePath, 'hackathons/hackathons-page'),\n icon: <Trophy size={16} />,\n },\n {\n id: 'technospam-hackathons-hackathon-details-page',\n label: tr('technospam.nav.hackathons.details', 'Hackathon Details'),\n path: joinPath(basePath, 'hackathons/hackathon-details-page'),\n icon: <FileText size={16} />,\n },\n {\n id: 'technospam-hackathons-events-page',\n label: tr('technospam.nav.hackathons.events', 'Events'),\n path: joinPath(basePath, 'hackathons/events-page'),\n icon: <Calendar size={16} />,\n },\n {\n id: 'technospam-hackathons-teams-page',\n label: tr('technospam.nav.hackathons.teams', 'Teams'),\n path: joinPath(basePath, 'hackathons/teams-page'),\n icon: <Users size={16} />,\n },\n ],\n },\n {\n id: 'technospam-mentorship',\n label: tr('technospam.nav.mentorship.section', 'Mentorship'),\n path: joinPath(basePath, 'mentorship'),\n icon: <Users size={16} />,\n order: 8,\n children: [\n {\n id: 'technospam-mentorship-mentorship-page',\n label: tr('technospam.nav.mentorship.overview', 'Mentorship'),\n path: joinPath(basePath, 'mentorship/mentorship-page'),\n icon: <Users size={16} />,\n },\n {\n id: 'technospam-mentorship-mentors-page',\n label: tr('technospam.nav.mentorship.mentors', 'Mentors'),\n path: joinPath(basePath, 'mentorship/mentors-page'),\n icon: <Star size={16} />,\n },\n {\n id: 'technospam-mentorship-mentor-profile-page',\n label: tr('technospam.nav.mentorship.mentorProfile', 'Mentor Profile'),\n path: joinPath(basePath, 'mentorship/mentor-profile-page'),\n icon: <User size={16} />,\n },\n {\n id: 'technospam-mentorship-sessions-page',\n label: tr('technospam.nav.mentorship.sessions', 'Sessions'),\n path: joinPath(basePath, 'mentorship/sessions-page'),\n icon: <CalendarDays size={16} />,\n },\n {\n id: 'technospam-mentorship-bookings-page',\n label: tr('technospam.nav.mentorship.bookings', 'Bookings'),\n path: joinPath(basePath, 'mentorship/bookings-page'),\n icon: <Calendar size={16} />,\n },\n ],\n },\n {\n id: 'technospam-notifications',\n label: tr('technospam.nav.notifications.section', 'Notifications'),\n path: joinPath(basePath, 'notifications'),\n icon: <Bell size={16} />,\n order: 9,\n children: [\n {\n id: 'technospam-notifications-notifications-page',\n label: tr('technospam.nav.notifications.overview', 'Notifications'),\n path: joinPath(basePath, 'notifications/notifications-page'),\n icon: <BellRing size={16} />,\n },\n ],\n },\n {\n id: 'technospam-study-planner',\n label: tr('technospam.nav.studyPlanner.section', 'Study Planner'),\n path: joinPath(basePath, 'study-planner'),\n icon: <CalendarDays size={16} />,\n order: 11,\n children: [\n {\n id: 'technospam-study-planner-study-planner-page',\n label: tr('technospam.nav.studyPlanner.overview', 'Study Planner'),\n path: joinPath(basePath, 'study-planner/study-planner-page'),\n icon: <CalendarDays size={16} />,\n },\n {\n id: 'technospam-study-planner-study-plans-page',\n label: tr('technospam.nav.studyPlanner.plans', 'Study Plans'),\n path: joinPath(basePath, 'study-planner/study-plans-page'),\n icon: <ClipboardList size={16} />,\n },\n {\n id: 'technospam-study-planner-study-plan-details-page',\n label: tr('technospam.nav.studyPlanner.planDetails', 'Plan Details'),\n path: joinPath(basePath, 'study-planner/study-plan-details-page'),\n icon: <FileText size={16} />,\n },\n {\n id: 'technospam-study-planner-study-plan-edit-page',\n label: tr('technospam.nav.studyPlanner.editPlan', 'Edit Plan'),\n path: joinPath(basePath, 'study-planner/study-plan-edit-page'),\n icon: <Pencil size={16} />,\n },\n {\n id: 'technospam-study-planner-learning-paths-page',\n label: tr('technospam.nav.studyPlanner.learningPaths', 'Learning Paths'),\n path: joinPath(basePath, 'study-planner/learning-paths-page'),\n icon: <Map size={16} />,\n },\n {\n id: 'technospam-study-planner-learning-path-details-page',\n label: tr('technospam.nav.studyPlanner.pathDetails', 'Path Details'),\n path: joinPath(basePath, 'study-planner/learning-path-details-page'),\n icon: <FileText size={16} />,\n },\n {\n id: 'technospam-study-planner-goals-page',\n label: tr('technospam.nav.studyPlanner.goals', 'Goals'),\n path: joinPath(basePath, 'study-planner/goals-page'),\n icon: <Target size={16} />,\n },\n ],\n },\n {\n id: 'technospam-support',\n label: tr('technospam.nav.support.section', 'Support'),\n path: joinPath(basePath, 'support'),\n icon: <HeadphonesIcon size={16} />,\n order: 12,\n children: [\n {\n id: 'technospam-support-support-page',\n label: tr('technospam.nav.support.overview', 'Support'),\n path: joinPath(basePath, 'support/support-page'),\n icon: <HeadphonesIcon size={16} />,\n },\n ],\n },\n {\n id: 'technospam-settings',\n label: tr('technospam.nav.settings.section', 'Settings'),\n path: joinPath(basePath, 'settings'),\n icon: <Settings size={16} />,\n order: 13,\n children: [\n {\n id: 'technospam-settings-settings-page',\n label: tr('technospam.nav.settings.general', 'General Settings'),\n path: joinPath(basePath, 'settings/settings-page'),\n icon: <Settings size={16} />,\n },\n {\n id: 'technospam-settings-profile-settings-page',\n label: tr('technospam.nav.settings.profile', 'Profile Settings'),\n path: joinPath(basePath, 'settings/profile-settings-page'),\n icon: <User size={16} />,\n },\n {\n id: 'technospam-settings-notification-settings-page',\n label: tr('technospam.nav.settings.notifications', 'Notification Settings'),\n path: joinPath(basePath, 'settings/notification-settings-page'),\n icon: <BellRing size={16} />,\n },\n ],\n },\n {\n id: 'technospam-auth',\n label: tr('technospam.nav.auth.section', 'Auth'),\n path: joinPath(basePath, 'auth'),\n icon: <LogIn size={16} />,\n order: 14,\n children: [\n {\n id: 'technospam-auth-login-page',\n label: tr('technospam.nav.auth.login', 'Login'),\n path: joinPath(basePath, 'auth/login-page'),\n icon: <LogIn size={16} />,\n },\n {\n id: 'technospam-auth-register-page',\n label: tr('technospam.nav.auth.register', 'Register'),\n path: joinPath(basePath, 'auth/register-page'),\n icon: <UserPlus size={16} />,\n },\n {\n id: 'technospam-auth-forgot-password-page',\n label: tr('technospam.nav.auth.forgotPassword', 'Forgot Password'),\n path: joinPath(basePath, 'auth/forgot-password-page'),\n icon: <KeyRound size={16} />,\n },\n ],\n },\n {\n id: 'technospam-legal',\n label: tr('technospam.nav.legal.section', 'Legal'),\n path: joinPath(basePath, 'legal'),\n icon: <ScrollText size={16} />,\n order: 15,\n children: [\n {\n id: 'technospam-legal-terms-page',\n label: tr('technospam.nav.legal.terms', 'Terms of Service'),\n path: joinPath(basePath, 'legal/terms-page'),\n icon: <ScrollText size={16} />,\n },\n {\n id: 'technospam-legal-privacy-policy-page',\n label: tr('technospam.nav.legal.privacy', 'Privacy Policy'),\n path: joinPath(basePath, 'legal/privacy-policy-page'),\n icon: <Shield size={16} />,\n },\n {\n id: 'technospam-legal-cookies-page',\n label: tr('technospam.nav.legal.cookies', 'Cookie Policy'),\n path: joinPath(basePath, 'legal/cookies-page'),\n icon: <Cookie size={16} />,\n },\n ],\n },\n ],\n };\n\n return registerNavItems(navItem);\n }, [registerNavItems, basePath, t]);\n\n useEffect(() => {\n if (!registerFooterItems) return;\n\n return registerFooterItems([\n {\n id: 'technospam-status',\n label: tr('technospam.footer.ready', 'TechnoSpam Ready'),\n type: 'status',\n section: 'left',\n order: 10,\n },\n ]);\n }, [registerFooterItems, t]);\n\n return (\n <FeatureFlagProvider workspaceId={null} gateway=\"global\" defaultEnabled={true}>\n <TechnoSpamProvider {...props}>\n <TechnoSpamRoutes />\n </TechnoSpamProvider>\n </FeatureFlagProvider>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TechnoSpamRoot.js","names":[],"sources":["../../src/technospam/TechnoSpamRoot.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { useEffect } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport {\n LayoutDashboard,\n Home,\n ShieldCheck,\n BarChart3,\n Code,\n BookOpen,\n Trophy,\n Users,\n Bell,\n CalendarDays,\n HeadphonesIcon,\n Settings,\n LogIn,\n UserPlus,\n KeyRound,\n ScrollText,\n Shield,\n Cookie,\n TrendingUp,\n FileText,\n Target,\n Calendar,\n Star,\n ClipboardList,\n Briefcase,\n Award,\n User,\n BellRing,\n} from 'lucide-react';\nimport { TechnoSpamProvider } from './providers/TechnoSpamProvider';\nimport { FeatureFlagProvider } from '@burdenoff/fe-libs/shared/feature-flags';\nimport type { NavItem, TechnoSpamRootProps } from './types';\nimport { TechnoSpamRoutes } from './TechnoSpamRoutes';\nimport { tWithFallback } from './utils/i18n';\nimport { joinPath } from './utils/navigation';\n\nexport const TechnoSpamRoot: FC<TechnoSpamRootProps> = (props) => {\n const { registerNavItems, registerFooterItems, basePath = '/' } = props;\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => tWithFallback(t, key, fallback);\n\n useEffect(() => {\n if (!registerNavItems) return;\n\n const navItem: NavItem = {\n id: 'technospam',\n label: tr('technospam.nav.root', 'TechnoSpam'),\n path: basePath,\n icon: <Code size={20} />,\n order: 80,\n group: 'products',\n children: [\n {\n id: 'technospam-home',\n label: tr('technospam.nav.home', 'Home'),\n path: joinPath(basePath, 'home'),\n icon: <Home size={16} />,\n order: 0,\n },\n {\n id: 'technospam-dashboard-section',\n label: tr('technospam.nav.dashboard.section', 'Dashboard'),\n path: joinPath(basePath, 'dashboard'),\n icon: <LayoutDashboard size={16} />,\n order: 1,\n children: [\n {\n id: 'technospam-dashboard-dashboard-page',\n label: tr('technospam.nav.dashboard.overview', 'Dashboard'),\n path: joinPath(basePath, 'dashboard/dashboard-page'),\n icon: <LayoutDashboard size={16} />,\n },\n ],\n },\n {\n id: 'technospam-admin',\n label: tr('technospam.nav.admin.section', 'Admin'),\n path: joinPath(basePath, 'admin'),\n icon: <ShieldCheck size={16} />,\n order: 2,\n children: [\n {\n id: 'technospam-admin-admin-dashboard-page',\n label: tr('technospam.nav.admin.dashboard', 'Admin Dashboard'),\n path: joinPath(basePath, 'admin/admin-dashboard-page'),\n icon: <LayoutDashboard size={16} />,\n },\n {\n id: 'technospam-admin-audit-reports-page',\n label: tr('technospam.nav.admin.auditReports', 'Audit Reports'),\n path: joinPath(basePath, 'admin/audit-reports-page'),\n icon: <ClipboardList size={16} />,\n },\n ],\n },\n {\n id: 'technospam-analytics',\n label: tr('technospam.nav.analytics.section', 'Analytics'),\n path: joinPath(basePath, 'analytics'),\n icon: <BarChart3 size={16} />,\n order: 3,\n children: [\n {\n id: 'technospam-analytics-analytics-page',\n label: tr('technospam.nav.analytics.overview', 'Analytics'),\n path: joinPath(basePath, 'analytics/analytics-page'),\n icon: <TrendingUp size={16} />,\n },\n {\n id: 'technospam-analytics-progress-page',\n label: tr('technospam.nav.analytics.progress', 'Progress'),\n path: joinPath(basePath, 'analytics/progress-page'),\n icon: <Target size={16} />,\n },\n {\n id: 'technospam-analytics-achievements-page',\n label: tr('technospam.nav.analytics.achievements', 'Achievements'),\n path: joinPath(basePath, 'analytics/achievements-page'),\n icon: <Award size={16} />,\n },\n {\n id: 'technospam-analytics-reports-page',\n label: tr('technospam.nav.analytics.reports', 'Reports'),\n path: joinPath(basePath, 'analytics/reports-page'),\n icon: <FileText size={16} />,\n },\n ],\n },\n {\n id: 'technospam-applications',\n label: tr('technospam.nav.applications.section', 'Applications'),\n path: joinPath(basePath, 'applications'),\n icon: <Code size={16} />,\n order: 4,\n children: [\n {\n id: 'technospam-applications-problems-page',\n label: tr('technospam.nav.applications.problems', 'Problems'),\n path: joinPath(basePath, 'applications/problems-page'),\n icon: <Code size={16} />,\n },\n {\n id: 'technospam-applications-problem-details-page',\n label: tr('technospam.nav.applications.problemDetails', 'Problem Details'),\n path: joinPath(basePath, 'applications/problem-details-page'),\n icon: <FileText size={16} />,\n },\n {\n id: 'technospam-applications-solutions-page',\n label: tr('technospam.nav.applications.solutions', 'Solutions'),\n path: joinPath(basePath, 'applications/solutions-page'),\n icon: <ClipboardList size={16} />,\n },\n {\n id: 'technospam-applications-portfolio-page',\n label: tr('technospam.nav.applications.portfolio', 'Portfolio'),\n path: joinPath(basePath, 'applications/portfolio-page'),\n icon: <Briefcase size={16} />,\n },\n ],\n },\n {\n id: 'technospam-courses',\n label: tr('technospam.nav.courses.section', 'Courses'),\n path: joinPath(basePath, 'courses'),\n icon: <BookOpen size={16} />,\n order: 5,\n children: [\n {\n id: 'technospam-courses-courses-page',\n label: tr('technospam.nav.courses.browse', 'Browse Courses'),\n path: joinPath(basePath, 'courses/courses-page'),\n icon: <BookOpen size={16} />,\n },\n {\n id: 'technospam-courses-course-details-page',\n label: tr('technospam.nav.courses.courseDetails', 'Course Details'),\n path: joinPath(basePath, 'courses/course-details-page'),\n icon: <FileText size={16} />,\n },\n {\n id: 'technospam-courses-my-learning-page',\n label: tr('technospam.nav.courses.myLearning', 'My Learning'),\n path: joinPath(basePath, 'courses/my-learning-page'),\n icon: <Target size={16} />,\n },\n {\n id: 'technospam-courses-instructors-page',\n label: tr('technospam.nav.courses.instructors', 'Instructors'),\n path: joinPath(basePath, 'courses/instructors-page'),\n icon: <Users size={16} />,\n },\n {\n id: 'technospam-courses-instructor-profile-page',\n label: tr('technospam.nav.courses.instructorProfile', 'Instructor Profile'),\n path: joinPath(basePath, 'courses/instructor-profile-page'),\n icon: <User size={16} />,\n },\n ],\n },\n {\n id: 'technospam-hackathons',\n label: tr('technospam.nav.hackathons.section', 'Hackathons'),\n path: joinPath(basePath, 'hackathons'),\n icon: <Trophy size={16} />,\n order: 6,\n children: [\n {\n id: 'technospam-hackathons-hackathons-page',\n label: tr('technospam.nav.hackathons.overview', 'Hackathons'),\n path: joinPath(basePath, 'hackathons/hackathons-page'),\n icon: <Trophy size={16} />,\n },\n {\n id: 'technospam-hackathons-hackathon-details-page',\n label: tr('technospam.nav.hackathons.details', 'Hackathon Details'),\n path: joinPath(basePath, 'hackathons/hackathon-details-page'),\n icon: <FileText size={16} />,\n },\n {\n id: 'technospam-hackathons-events-page',\n label: tr('technospam.nav.hackathons.events', 'Events'),\n path: joinPath(basePath, 'hackathons/events-page'),\n icon: <Calendar size={16} />,\n },\n {\n id: 'technospam-hackathons-teams-page',\n label: tr('technospam.nav.hackathons.teams', 'Teams'),\n path: joinPath(basePath, 'hackathons/teams-page'),\n icon: <Users size={16} />,\n },\n ],\n },\n {\n id: 'technospam-mentorship',\n label: tr('technospam.nav.mentorship.section', 'Mentorship'),\n path: joinPath(basePath, 'mentorship'),\n icon: <Users size={16} />,\n order: 8,\n children: [\n {\n id: 'technospam-mentorship-mentorship-page',\n label: tr('technospam.nav.mentorship.overview', 'Mentorship'),\n path: joinPath(basePath, 'mentorship/mentorship-page'),\n icon: <Users size={16} />,\n },\n {\n id: 'technospam-mentorship-mentors-page',\n label: tr('technospam.nav.mentorship.mentors', 'Mentors'),\n path: joinPath(basePath, 'mentorship/mentors-page'),\n icon: <Star size={16} />,\n },\n {\n id: 'technospam-mentorship-mentor-profile-page',\n label: tr('technospam.nav.mentorship.mentorProfile', 'Mentor Profile'),\n path: joinPath(basePath, 'mentorship/mentor-profile-page'),\n icon: <User size={16} />,\n },\n {\n id: 'technospam-mentorship-sessions-page',\n label: tr('technospam.nav.mentorship.sessions', 'Sessions'),\n path: joinPath(basePath, 'mentorship/sessions-page'),\n icon: <CalendarDays size={16} />,\n },\n {\n id: 'technospam-mentorship-bookings-page',\n label: tr('technospam.nav.mentorship.bookings', 'Bookings'),\n path: joinPath(basePath, 'mentorship/bookings-page'),\n icon: <Calendar size={16} />,\n },\n ],\n },\n {\n id: 'technospam-notifications',\n label: tr('technospam.nav.notifications.section', 'Notifications'),\n path: joinPath(basePath, 'notifications'),\n icon: <Bell size={16} />,\n order: 9,\n children: [\n {\n id: 'technospam-notifications-notifications-page',\n label: tr('technospam.nav.notifications.overview', 'Notifications'),\n path: joinPath(basePath, 'notifications/notifications-page'),\n icon: <BellRing size={16} />,\n },\n ],\n },\n /*\n * BOFF-4415: a real, deterministic (non-AI) plan generator now\n * lives at study-planner/study-planner-page — see\n * StudyPlannerStudyPlannerPagePage's honesty note. Only that one\n * child is registered; the richer standalone views the original\n * scaffolding anticipated (a separate plans list, plan details,\n * plan edit, learning paths, goals) are consolidated into that\n * single page for this pass and are not separately built, so no\n * nav item points at them.\n */\n {\n id: 'technospam-study-planner',\n label: tr('technospam.nav.studyPlanner.section', 'Study Planner'),\n path: joinPath(basePath, 'study-planner'),\n icon: <CalendarDays size={16} />,\n order: 11,\n children: [\n {\n id: 'technospam-study-planner-study-planner-page',\n label: tr('technospam.nav.studyPlanner.overview', 'Study Planner'),\n path: joinPath(basePath, 'study-planner/study-planner-page'),\n icon: <CalendarDays size={16} />,\n },\n ],\n },\n {\n id: 'technospam-support',\n label: tr('technospam.nav.support.section', 'Support'),\n path: joinPath(basePath, 'support'),\n icon: <HeadphonesIcon size={16} />,\n order: 12,\n children: [\n {\n id: 'technospam-support-support-page',\n label: tr('technospam.nav.support.overview', 'Support'),\n path: joinPath(basePath, 'support/support-page'),\n icon: <HeadphonesIcon size={16} />,\n },\n ],\n },\n {\n id: 'technospam-settings',\n label: tr('technospam.nav.settings.section', 'Settings'),\n path: joinPath(basePath, 'settings'),\n icon: <Settings size={16} />,\n order: 13,\n children: [\n {\n id: 'technospam-settings-settings-page',\n label: tr('technospam.nav.settings.general', 'General Settings'),\n path: joinPath(basePath, 'settings/settings-page'),\n icon: <Settings size={16} />,\n },\n {\n id: 'technospam-settings-profile-settings-page',\n label: tr('technospam.nav.settings.profile', 'Profile Settings'),\n path: joinPath(basePath, 'settings/profile-settings-page'),\n icon: <User size={16} />,\n },\n {\n id: 'technospam-settings-notification-settings-page',\n label: tr('technospam.nav.settings.notifications', 'Notification Settings'),\n path: joinPath(basePath, 'settings/notification-settings-page'),\n icon: <BellRing size={16} />,\n },\n ],\n },\n {\n id: 'technospam-auth',\n label: tr('technospam.nav.auth.section', 'Auth'),\n path: joinPath(basePath, 'auth'),\n icon: <LogIn size={16} />,\n order: 14,\n children: [\n {\n id: 'technospam-auth-login-page',\n label: tr('technospam.nav.auth.login', 'Login'),\n path: joinPath(basePath, 'auth/login-page'),\n icon: <LogIn size={16} />,\n },\n {\n id: 'technospam-auth-register-page',\n label: tr('technospam.nav.auth.register', 'Register'),\n path: joinPath(basePath, 'auth/register-page'),\n icon: <UserPlus size={16} />,\n },\n {\n id: 'technospam-auth-forgot-password-page',\n label: tr('technospam.nav.auth.forgotPassword', 'Forgot Password'),\n path: joinPath(basePath, 'auth/forgot-password-page'),\n icon: <KeyRound size={16} />,\n },\n ],\n },\n {\n id: 'technospam-legal',\n label: tr('technospam.nav.legal.section', 'Legal'),\n path: joinPath(basePath, 'legal'),\n icon: <ScrollText size={16} />,\n order: 15,\n children: [\n {\n id: 'technospam-legal-terms-page',\n label: tr('technospam.nav.legal.terms', 'Terms of Service'),\n path: joinPath(basePath, 'legal/terms-page'),\n icon: <ScrollText size={16} />,\n },\n {\n id: 'technospam-legal-privacy-policy-page',\n label: tr('technospam.nav.legal.privacy', 'Privacy Policy'),\n path: joinPath(basePath, 'legal/privacy-policy-page'),\n icon: <Shield size={16} />,\n },\n {\n id: 'technospam-legal-cookies-page',\n label: tr('technospam.nav.legal.cookies', 'Cookie Policy'),\n path: joinPath(basePath, 'legal/cookies-page'),\n icon: <Cookie size={16} />,\n },\n ],\n },\n ],\n };\n\n return registerNavItems(navItem);\n }, [registerNavItems, basePath, t]);\n\n useEffect(() => {\n if (!registerFooterItems) return;\n\n return registerFooterItems([\n {\n id: 'technospam-status',\n label: tr('technospam.footer.ready', 'TechnoSpam Ready'),\n type: 'status',\n section: 'left',\n order: 10,\n },\n ]);\n }, [registerFooterItems, t]);\n\n return (\n <FeatureFlagProvider workspaceId={null} gateway=\"global\" defaultEnabled={true}>\n <TechnoSpamProvider {...props}>\n <TechnoSpamRoutes />\n </TechnoSpamProvider>\n </FeatureFlagProvider>\n );\n};\n"],"mappings":";;;;;;;;;;AAwCA,IAAa,KAA2C,MAAU;CAChE,IAAM,EAAE,qBAAkB,wBAAqB,cAAW,QAAQ,GAC5D,EAAE,SAAM,GAAS,EACjB,KAAM,GAAa,MAA6B,EAAc,GAAG,GAAK,EAAS;AAqYrF,QAnYA,QAAgB;AACT,QAiXL,QAAO,EA/WkB;GACvB,IAAI;GACJ,OAAO,EAAG,uBAAuB,aAAa;GAC9C,MAAM;GACN,MAAM,kBAAC,GAAD,EAAM,MAAM,IAAM,CAAA;GACxB,OAAO;GACP,OAAO;GACP,UAAU;IACR;KACE,IAAI;KACJ,OAAO,EAAG,uBAAuB,OAAO;KACxC,MAAM,EAAS,GAAU,OAAO;KAChC,MAAM,kBAAC,GAAD,EAAM,MAAM,IAAM,CAAA;KACxB,OAAO;KACR;IACD;KACE,IAAI;KACJ,OAAO,EAAG,oCAAoC,YAAY;KAC1D,MAAM,EAAS,GAAU,YAAY;KACrC,MAAM,kBAAC,GAAD,EAAiB,MAAM,IAAM,CAAA;KACnC,OAAO;KACP,UAAU,CACR;MACE,IAAI;MACJ,OAAO,EAAG,qCAAqC,YAAY;MAC3D,MAAM,EAAS,GAAU,2BAA2B;MACpD,MAAM,kBAAC,GAAD,EAAiB,MAAM,IAAM,CAAA;MACpC,CACF;KACF;IACD;KACE,IAAI;KACJ,OAAO,EAAG,gCAAgC,QAAQ;KAClD,MAAM,EAAS,GAAU,QAAQ;KACjC,MAAM,kBAAC,GAAD,EAAa,MAAM,IAAM,CAAA;KAC/B,OAAO;KACP,UAAU,CACR;MACE,IAAI;MACJ,OAAO,EAAG,kCAAkC,kBAAkB;MAC9D,MAAM,EAAS,GAAU,6BAA6B;MACtD,MAAM,kBAAC,GAAD,EAAiB,MAAM,IAAM,CAAA;MACpC,EACD;MACE,IAAI;MACJ,OAAO,EAAG,qCAAqC,gBAAgB;MAC/D,MAAM,EAAS,GAAU,2BAA2B;MACpD,MAAM,kBAAC,GAAD,EAAe,MAAM,IAAM,CAAA;MAClC,CACF;KACF;IACD;KACE,IAAI;KACJ,OAAO,EAAG,oCAAoC,YAAY;KAC1D,MAAM,EAAS,GAAU,YAAY;KACrC,MAAM,kBAAC,GAAD,EAAW,MAAM,IAAM,CAAA;KAC7B,OAAO;KACP,UAAU;MACR;OACE,IAAI;OACJ,OAAO,EAAG,qCAAqC,YAAY;OAC3D,MAAM,EAAS,GAAU,2BAA2B;OACpD,MAAM,kBAAC,GAAD,EAAY,MAAM,IAAM,CAAA;OAC/B;MACD;OACE,IAAI;OACJ,OAAO,EAAG,qCAAqC,WAAW;OAC1D,MAAM,EAAS,GAAU,0BAA0B;OACnD,MAAM,kBAAC,GAAD,EAAQ,MAAM,IAAM,CAAA;OAC3B;MACD;OACE,IAAI;OACJ,OAAO,EAAG,yCAAyC,eAAe;OAClE,MAAM,EAAS,GAAU,8BAA8B;OACvD,MAAM,kBAAC,GAAD,EAAO,MAAM,IAAM,CAAA;OAC1B;MACD;OACE,IAAI;OACJ,OAAO,EAAG,oCAAoC,UAAU;OACxD,MAAM,EAAS,GAAU,yBAAyB;OAClD,MAAM,kBAAC,GAAD,EAAU,MAAM,IAAM,CAAA;OAC7B;MACF;KACF;IACD;KACE,IAAI;KACJ,OAAO,EAAG,uCAAuC,eAAe;KAChE,MAAM,EAAS,GAAU,eAAe;KACxC,MAAM,kBAAC,GAAD,EAAM,MAAM,IAAM,CAAA;KACxB,OAAO;KACP,UAAU;MACR;OACE,IAAI;OACJ,OAAO,EAAG,wCAAwC,WAAW;OAC7D,MAAM,EAAS,GAAU,6BAA6B;OACtD,MAAM,kBAAC,GAAD,EAAM,MAAM,IAAM,CAAA;OACzB;MACD;OACE,IAAI;OACJ,OAAO,EAAG,8CAA8C,kBAAkB;OAC1E,MAAM,EAAS,GAAU,oCAAoC;OAC7D,MAAM,kBAAC,GAAD,EAAU,MAAM,IAAM,CAAA;OAC7B;MACD;OACE,IAAI;OACJ,OAAO,EAAG,yCAAyC,YAAY;OAC/D,MAAM,EAAS,GAAU,8BAA8B;OACvD,MAAM,kBAAC,GAAD,EAAe,MAAM,IAAM,CAAA;OAClC;MACD;OACE,IAAI;OACJ,OAAO,EAAG,yCAAyC,YAAY;OAC/D,MAAM,EAAS,GAAU,8BAA8B;OACvD,MAAM,kBAAC,GAAD,EAAW,MAAM,IAAM,CAAA;OAC9B;MACF;KACF;IACD;KACE,IAAI;KACJ,OAAO,EAAG,kCAAkC,UAAU;KACtD,MAAM,EAAS,GAAU,UAAU;KACnC,MAAM,kBAAC,GAAD,EAAU,MAAM,IAAM,CAAA;KAC5B,OAAO;KACP,UAAU;MACR;OACE,IAAI;OACJ,OAAO,EAAG,iCAAiC,iBAAiB;OAC5D,MAAM,EAAS,GAAU,uBAAuB;OAChD,MAAM,kBAAC,GAAD,EAAU,MAAM,IAAM,CAAA;OAC7B;MACD;OACE,IAAI;OACJ,OAAO,EAAG,wCAAwC,iBAAiB;OACnE,MAAM,EAAS,GAAU,8BAA8B;OACvD,MAAM,kBAAC,GAAD,EAAU,MAAM,IAAM,CAAA;OAC7B;MACD;OACE,IAAI;OACJ,OAAO,EAAG,qCAAqC,cAAc;OAC7D,MAAM,EAAS,GAAU,2BAA2B;OACpD,MAAM,kBAAC,GAAD,EAAQ,MAAM,IAAM,CAAA;OAC3B;MACD;OACE,IAAI;OACJ,OAAO,EAAG,sCAAsC,cAAc;OAC9D,MAAM,EAAS,GAAU,2BAA2B;OACpD,MAAM,kBAAC,GAAD,EAAO,MAAM,IAAM,CAAA;OAC1B;MACD;OACE,IAAI;OACJ,OAAO,EAAG,4CAA4C,qBAAqB;OAC3E,MAAM,EAAS,GAAU,kCAAkC;OAC3D,MAAM,kBAAC,GAAD,EAAM,MAAM,IAAM,CAAA;OACzB;MACF;KACF;IACD;KACE,IAAI;KACJ,OAAO,EAAG,qCAAqC,aAAa;KAC5D,MAAM,EAAS,GAAU,aAAa;KACtC,MAAM,kBAAC,GAAD,EAAQ,MAAM,IAAM,CAAA;KAC1B,OAAO;KACP,UAAU;MACR;OACE,IAAI;OACJ,OAAO,EAAG,sCAAsC,aAAa;OAC7D,MAAM,EAAS,GAAU,6BAA6B;OACtD,MAAM,kBAAC,GAAD,EAAQ,MAAM,IAAM,CAAA;OAC3B;MACD;OACE,IAAI;OACJ,OAAO,EAAG,qCAAqC,oBAAoB;OACnE,MAAM,EAAS,GAAU,oCAAoC;OAC7D,MAAM,kBAAC,GAAD,EAAU,MAAM,IAAM,CAAA;OAC7B;MACD;OACE,IAAI;OACJ,OAAO,EAAG,oCAAoC,SAAS;OACvD,MAAM,EAAS,GAAU,yBAAyB;OAClD,MAAM,kBAAC,GAAD,EAAU,MAAM,IAAM,CAAA;OAC7B;MACD;OACE,IAAI;OACJ,OAAO,EAAG,mCAAmC,QAAQ;OACrD,MAAM,EAAS,GAAU,wBAAwB;OACjD,MAAM,kBAAC,GAAD,EAAO,MAAM,IAAM,CAAA;OAC1B;MACF;KACF;IACD;KACE,IAAI;KACJ,OAAO,EAAG,qCAAqC,aAAa;KAC5D,MAAM,EAAS,GAAU,aAAa;KACtC,MAAM,kBAAC,GAAD,EAAO,MAAM,IAAM,CAAA;KACzB,OAAO;KACP,UAAU;MACR;OACE,IAAI;OACJ,OAAO,EAAG,sCAAsC,aAAa;OAC7D,MAAM,EAAS,GAAU,6BAA6B;OACtD,MAAM,kBAAC,GAAD,EAAO,MAAM,IAAM,CAAA;OAC1B;MACD;OACE,IAAI;OACJ,OAAO,EAAG,qCAAqC,UAAU;OACzD,MAAM,EAAS,GAAU,0BAA0B;OACnD,MAAM,kBAAC,GAAD,EAAM,MAAM,IAAM,CAAA;OACzB;MACD;OACE,IAAI;OACJ,OAAO,EAAG,2CAA2C,iBAAiB;OACtE,MAAM,EAAS,GAAU,iCAAiC;OAC1D,MAAM,kBAAC,GAAD,EAAM,MAAM,IAAM,CAAA;OACzB;MACD;OACE,IAAI;OACJ,OAAO,EAAG,sCAAsC,WAAW;OAC3D,MAAM,EAAS,GAAU,2BAA2B;OACpD,MAAM,kBAAC,GAAD,EAAc,MAAM,IAAM,CAAA;OACjC;MACD;OACE,IAAI;OACJ,OAAO,EAAG,sCAAsC,WAAW;OAC3D,MAAM,EAAS,GAAU,2BAA2B;OACpD,MAAM,kBAAC,GAAD,EAAU,MAAM,IAAM,CAAA;OAC7B;MACF;KACF;IACD;KACE,IAAI;KACJ,OAAO,EAAG,wCAAwC,gBAAgB;KAClE,MAAM,EAAS,GAAU,gBAAgB;KACzC,MAAM,kBAAC,GAAD,EAAM,MAAM,IAAM,CAAA;KACxB,OAAO;KACP,UAAU,CACR;MACE,IAAI;MACJ,OAAO,EAAG,yCAAyC,gBAAgB;MACnE,MAAM,EAAS,GAAU,mCAAmC;MAC5D,MAAM,kBAAC,GAAD,EAAU,MAAM,IAAM,CAAA;MAC7B,CACF;KACF;IAWD;KACE,IAAI;KACJ,OAAO,EAAG,uCAAuC,gBAAgB;KACjE,MAAM,EAAS,GAAU,gBAAgB;KACzC,MAAM,kBAAC,GAAD,EAAc,MAAM,IAAM,CAAA;KAChC,OAAO;KACP,UAAU,CACR;MACE,IAAI;MACJ,OAAO,EAAG,wCAAwC,gBAAgB;MAClE,MAAM,EAAS,GAAU,mCAAmC;MAC5D,MAAM,kBAAC,GAAD,EAAc,MAAM,IAAM,CAAA;MACjC,CACF;KACF;IACD;KACE,IAAI;KACJ,OAAO,EAAG,kCAAkC,UAAU;KACtD,MAAM,EAAS,GAAU,UAAU;KACnC,MAAM,kBAAC,GAAD,EAAgB,MAAM,IAAM,CAAA;KAClC,OAAO;KACP,UAAU,CACR;MACE,IAAI;MACJ,OAAO,EAAG,mCAAmC,UAAU;MACvD,MAAM,EAAS,GAAU,uBAAuB;MAChD,MAAM,kBAAC,GAAD,EAAgB,MAAM,IAAM,CAAA;MACnC,CACF;KACF;IACD;KACE,IAAI;KACJ,OAAO,EAAG,mCAAmC,WAAW;KACxD,MAAM,EAAS,GAAU,WAAW;KACpC,MAAM,kBAAC,GAAD,EAAU,MAAM,IAAM,CAAA;KAC5B,OAAO;KACP,UAAU;MACR;OACE,IAAI;OACJ,OAAO,EAAG,mCAAmC,mBAAmB;OAChE,MAAM,EAAS,GAAU,yBAAyB;OAClD,MAAM,kBAAC,GAAD,EAAU,MAAM,IAAM,CAAA;OAC7B;MACD;OACE,IAAI;OACJ,OAAO,EAAG,mCAAmC,mBAAmB;OAChE,MAAM,EAAS,GAAU,iCAAiC;OAC1D,MAAM,kBAAC,GAAD,EAAM,MAAM,IAAM,CAAA;OACzB;MACD;OACE,IAAI;OACJ,OAAO,EAAG,yCAAyC,wBAAwB;OAC3E,MAAM,EAAS,GAAU,sCAAsC;OAC/D,MAAM,kBAAC,GAAD,EAAU,MAAM,IAAM,CAAA;OAC7B;MACF;KACF;IACD;KACE,IAAI;KACJ,OAAO,EAAG,+BAA+B,OAAO;KAChD,MAAM,EAAS,GAAU,OAAO;KAChC,MAAM,kBAAC,GAAD,EAAO,MAAM,IAAM,CAAA;KACzB,OAAO;KACP,UAAU;MACR;OACE,IAAI;OACJ,OAAO,EAAG,6BAA6B,QAAQ;OAC/C,MAAM,EAAS,GAAU,kBAAkB;OAC3C,MAAM,kBAAC,GAAD,EAAO,MAAM,IAAM,CAAA;OAC1B;MACD;OACE,IAAI;OACJ,OAAO,EAAG,gCAAgC,WAAW;OACrD,MAAM,EAAS,GAAU,qBAAqB;OAC9C,MAAM,kBAAC,GAAD,EAAU,MAAM,IAAM,CAAA;OAC7B;MACD;OACE,IAAI;OACJ,OAAO,EAAG,sCAAsC,kBAAkB;OAClE,MAAM,EAAS,GAAU,4BAA4B;OACrD,MAAM,kBAAC,GAAD,EAAU,MAAM,IAAM,CAAA;OAC7B;MACF;KACF;IACD;KACE,IAAI;KACJ,OAAO,EAAG,gCAAgC,QAAQ;KAClD,MAAM,EAAS,GAAU,QAAQ;KACjC,MAAM,kBAAC,GAAD,EAAY,MAAM,IAAM,CAAA;KAC9B,OAAO;KACP,UAAU;MACR;OACE,IAAI;OACJ,OAAO,EAAG,8BAA8B,mBAAmB;OAC3D,MAAM,EAAS,GAAU,mBAAmB;OAC5C,MAAM,kBAAC,GAAD,EAAY,MAAM,IAAM,CAAA;OAC/B;MACD;OACE,IAAI;OACJ,OAAO,EAAG,gCAAgC,iBAAiB;OAC3D,MAAM,EAAS,GAAU,4BAA4B;OACrD,MAAM,kBAAC,GAAD,EAAQ,MAAM,IAAM,CAAA;OAC3B;MACD;OACE,IAAI;OACJ,OAAO,EAAG,gCAAgC,gBAAgB;OAC1D,MAAM,EAAS,GAAU,qBAAqB;OAC9C,MAAM,kBAAC,GAAD,EAAQ,MAAM,IAAM,CAAA;OAC3B;MACF;KACF;IACF;GACF,CAE+B;IAC/B;EAAC;EAAkB;EAAU;EAAE,CAAC,EAEnC,QAAgB;AACT,QAEL,QAAO,EAAoB,CACzB;GACE,IAAI;GACJ,OAAO,EAAG,2BAA2B,mBAAmB;GACxD,MAAM;GACN,SAAS;GACT,OAAO;GACR,CACF,CAAC;IACD,CAAC,GAAqB,EAAE,CAAC,EAG1B,kBAAC,GAAD;EAAqB,aAAa;EAAM,SAAQ;EAAS,gBAAgB;YACvE,kBAAC,GAAD;GAAoB,GAAI;aACtB,kBAAC,GAAD,EAAoB,CAAA;GACD,CAAA;EACD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TechnoSpamRoutes.d.ts","sourceRoot":"","sources":["../../src/technospam/TechnoSpamRoutes.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TechnoSpamRoutes.d.ts","sourceRoot":"","sources":["../../src/technospam/TechnoSpamRoutes.tsx"],"names":[],"mappings":"AAiJA,wBAAgB,gBAAgB,gCA8J/B"}
|
|
@@ -8,8 +8,8 @@ import { Navigate as c, Route as l, Routes as u, useLocation as d } from "react-
|
|
|
8
8
|
import { jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
9
9
|
import { FeatureGate as m } from "@burdenoff/fe-libs/shared/feature-flags";
|
|
10
10
|
//#region src/technospam/TechnoSpamRoutes.tsx
|
|
11
|
-
var h = i(() => import("./pages/DashboardDashboardPagePage.js").then((e) => ({ default: e.DashboardDashboardPagePage }))), g = i(() => import("./pages/CoursesCoursesPagePage.js").then((e) => ({ default: e.CoursesCoursesPagePage }))), _ = i(() => import("./pages/CoursesCourseDetailsPagePage.js").then((e) => ({ default: e.CoursesCourseDetailsPagePage }))), v = i(() => import("./pages/CoursesMyLearningPagePage.js").then((e) => ({ default: e.CoursesMyLearningPagePage }))), y = i(() => import("./pages/ApplicationsProblemsPagePage.js").then((e) => ({ default: e.ApplicationsProblemsPagePage }))), b = i(() => import("./pages/ApplicationsProblemDetailsPagePage.js").then((e) => ({ default: e.ApplicationsProblemDetailsPagePage }))), x = i(() => import("./pages/MentorshipMentorsPagePage.js").then((e) => ({ default: e.MentorshipMentorsPagePage }))), S = i(() => import("./pages/MentorshipMentorProfilePagePage.js").then((e) => ({ default: e.MentorshipMentorProfilePagePage }))), C = i(() => import("./pages/MentorshipSessionsPagePage.js").then((e) => ({ default: e.MentorshipSessionsPagePage }))), w = i(() => import("./pages/HackathonsHackathonsPagePage.js").then((e) => ({ default: e.HackathonsHackathonsPagePage }))), T = i(() => import("./pages/HackathonsHackathonDetailsPagePage.js").then((e) => ({ default: e.HackathonsHackathonDetailsPagePage }))), E = i(() => import("./pages/AnalyticsAnalyticsPagePage.js").then((e) => ({ default: e.AnalyticsAnalyticsPagePage }))), D = i(() => import("./pages/AdminAdminDashboardPagePage.js").then((e) => ({ default: e.AdminAdminDashboardPagePage })));
|
|
12
|
-
function
|
|
11
|
+
var h = i(() => import("./pages/DashboardDashboardPagePage.js").then((e) => ({ default: e.DashboardDashboardPagePage }))), g = i(() => import("./pages/CoursesCoursesPagePage.js").then((e) => ({ default: e.CoursesCoursesPagePage }))), _ = i(() => import("./pages/CoursesCourseDetailsPagePage.js").then((e) => ({ default: e.CoursesCourseDetailsPagePage }))), v = i(() => import("./pages/CoursesMyLearningPagePage.js").then((e) => ({ default: e.CoursesMyLearningPagePage }))), y = i(() => import("./pages/ApplicationsProblemsPagePage.js").then((e) => ({ default: e.ApplicationsProblemsPagePage }))), b = i(() => import("./pages/ApplicationsProblemDetailsPagePage.js").then((e) => ({ default: e.ApplicationsProblemDetailsPagePage }))), x = i(() => import("./pages/MentorshipMentorsPagePage.js").then((e) => ({ default: e.MentorshipMentorsPagePage }))), S = i(() => import("./pages/MentorshipMentorProfilePagePage.js").then((e) => ({ default: e.MentorshipMentorProfilePagePage }))), C = i(() => import("./pages/MentorshipSessionsPagePage.js").then((e) => ({ default: e.MentorshipSessionsPagePage }))), w = i(() => import("./pages/HackathonsHackathonsPagePage.js").then((e) => ({ default: e.HackathonsHackathonsPagePage }))), T = i(() => import("./pages/HackathonsHackathonDetailsPagePage.js").then((e) => ({ default: e.HackathonsHackathonDetailsPagePage }))), E = i(() => import("./pages/AnalyticsAnalyticsPagePage.js").then((e) => ({ default: e.AnalyticsAnalyticsPagePage }))), D = i(() => import("./pages/AdminAdminDashboardPagePage.js").then((e) => ({ default: e.AdminAdminDashboardPagePage }))), O = i(() => import("./pages/StudyPlannerStudyPlannerPagePage.js").then((e) => ({ default: e.StudyPlannerStudyPlannerPagePage }))), k = i(() => import("./pages/ApplicationsPortfolioPagePage.js").then((e) => ({ default: e.ApplicationsPortfolioPagePage })));
|
|
12
|
+
function A() {
|
|
13
13
|
return /* @__PURE__ */ f("div", {
|
|
14
14
|
className: "flex h-full min-h-[40vh] items-center justify-center",
|
|
15
15
|
children: /* @__PURE__ */ f(o, {
|
|
@@ -18,7 +18,7 @@ function O() {
|
|
|
18
18
|
})
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
|
-
function
|
|
21
|
+
function j() {
|
|
22
22
|
return /* @__PURE__ */ f("div", {
|
|
23
23
|
className: "flex h-full min-h-[40vh] items-center justify-center p-6",
|
|
24
24
|
children: /* @__PURE__ */ f(t, {
|
|
@@ -28,41 +28,41 @@ function k() {
|
|
|
28
28
|
})
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
|
-
function
|
|
31
|
+
function M(e, t) {
|
|
32
32
|
return /* @__PURE__ */ f(m, {
|
|
33
33
|
flag: e,
|
|
34
34
|
defaultValue: !0,
|
|
35
|
-
fallback: /* @__PURE__ */ f(
|
|
35
|
+
fallback: /* @__PURE__ */ f(j, {}),
|
|
36
36
|
children: t
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
|
-
function
|
|
39
|
+
function N() {
|
|
40
40
|
let { pathname: t } = d();
|
|
41
|
-
e(a(() => t.includes("/courses/course-details") ? "course-details" : t.includes("/courses/my-learning") ? "my-learning" : t.includes("/courses") ? "courses" : t.includes("/applications/problem-details") ? "problem-details" : t.includes("/applications") ? "problems" : t.includes("/mentorship/mentor-profile") ? "mentor-profile" : t.includes("/mentorship/sessions") ? "sessions" : t.includes("/mentorship") ? "mentors" : t.includes("/hackathons/hackathon-details") ? "hackathon-details" : t.includes("/hackathons") ? "hackathons" : t.includes("/analytics") ? "analytics" : t.includes("/admin") ? "admin" : "dashboard", [t]));
|
|
41
|
+
e(a(() => t.includes("/courses/course-details") ? "course-details" : t.includes("/courses/my-learning") ? "my-learning" : t.includes("/courses") ? "courses" : t.includes("/applications/problem-details") ? "problem-details" : t.includes("/applications/portfolio") ? "portfolio" : t.includes("/applications") ? "problems" : t.includes("/study-planner") ? "study-planner" : t.includes("/mentorship/mentor-profile") ? "mentor-profile" : t.includes("/mentorship/sessions") ? "sessions" : t.includes("/mentorship") ? "mentors" : t.includes("/hackathons/hackathon-details") ? "hackathon-details" : t.includes("/hackathons") ? "hackathons" : t.includes("/analytics") ? "analytics" : t.includes("/admin") ? "admin" : "dashboard", [t]));
|
|
42
42
|
}
|
|
43
|
-
function
|
|
44
|
-
return
|
|
45
|
-
fallback: /* @__PURE__ */ f(
|
|
43
|
+
function P() {
|
|
44
|
+
return N(), /* @__PURE__ */ f(r, {
|
|
45
|
+
fallback: /* @__PURE__ */ f(A, {}),
|
|
46
46
|
children: /* @__PURE__ */ p(u, { children: [
|
|
47
47
|
/* @__PURE__ */ f(l, {
|
|
48
48
|
index: !0,
|
|
49
|
-
element:
|
|
49
|
+
element: M("technospam.dashboard", /* @__PURE__ */ f(n, {}))
|
|
50
50
|
}),
|
|
51
51
|
/* @__PURE__ */ f(l, {
|
|
52
52
|
path: "dashboard/dashboard-page",
|
|
53
|
-
element:
|
|
53
|
+
element: M("technospam.dashboard", /* @__PURE__ */ f(h, {}))
|
|
54
54
|
}),
|
|
55
55
|
/* @__PURE__ */ f(l, {
|
|
56
56
|
path: "courses/courses-page",
|
|
57
|
-
element:
|
|
57
|
+
element: M("technospam.courses", /* @__PURE__ */ f(g, {}))
|
|
58
58
|
}),
|
|
59
59
|
/* @__PURE__ */ f(l, {
|
|
60
60
|
path: "courses/course-details-page",
|
|
61
|
-
element:
|
|
61
|
+
element: M("technospam.courses", /* @__PURE__ */ f(_, {}))
|
|
62
62
|
}),
|
|
63
63
|
/* @__PURE__ */ f(l, {
|
|
64
64
|
path: "courses/my-learning-page",
|
|
65
|
-
element:
|
|
65
|
+
element: M("technospam.courses", /* @__PURE__ */ f(v, {}))
|
|
66
66
|
}),
|
|
67
67
|
/* @__PURE__ */ f(l, {
|
|
68
68
|
path: "courses/instructors-page",
|
|
@@ -80,11 +80,11 @@ function M() {
|
|
|
80
80
|
}),
|
|
81
81
|
/* @__PURE__ */ f(l, {
|
|
82
82
|
path: "applications/problems-page",
|
|
83
|
-
element:
|
|
83
|
+
element: M("technospam.problems", /* @__PURE__ */ f(y, {}))
|
|
84
84
|
}),
|
|
85
85
|
/* @__PURE__ */ f(l, {
|
|
86
86
|
path: "applications/problem-details-page",
|
|
87
|
-
element:
|
|
87
|
+
element: M("technospam.problems", /* @__PURE__ */ f(b, {}))
|
|
88
88
|
}),
|
|
89
89
|
/* @__PURE__ */ f(l, {
|
|
90
90
|
path: "applications/solutions-page",
|
|
@@ -95,22 +95,19 @@ function M() {
|
|
|
95
95
|
}),
|
|
96
96
|
/* @__PURE__ */ f(l, {
|
|
97
97
|
path: "applications/portfolio-page",
|
|
98
|
-
element: /* @__PURE__ */ f(
|
|
99
|
-
to: "../applications/problems-page",
|
|
100
|
-
replace: !0
|
|
101
|
-
})
|
|
98
|
+
element: M("technospam.portfolio", /* @__PURE__ */ f(k, {}))
|
|
102
99
|
}),
|
|
103
100
|
/* @__PURE__ */ f(l, {
|
|
104
101
|
path: "mentorship/mentors-page",
|
|
105
|
-
element:
|
|
102
|
+
element: M("technospam.mentorship", /* @__PURE__ */ f(x, {}))
|
|
106
103
|
}),
|
|
107
104
|
/* @__PURE__ */ f(l, {
|
|
108
105
|
path: "mentorship/mentor-profile-page",
|
|
109
|
-
element:
|
|
106
|
+
element: M("technospam.mentorship", /* @__PURE__ */ f(S, {}))
|
|
110
107
|
}),
|
|
111
108
|
/* @__PURE__ */ f(l, {
|
|
112
109
|
path: "mentorship/sessions-page",
|
|
113
|
-
element:
|
|
110
|
+
element: M("technospam.mentorship", /* @__PURE__ */ f(C, {}))
|
|
114
111
|
}),
|
|
115
112
|
/* @__PURE__ */ f(l, {
|
|
116
113
|
path: "mentorship/mentorship-page",
|
|
@@ -128,11 +125,11 @@ function M() {
|
|
|
128
125
|
}),
|
|
129
126
|
/* @__PURE__ */ f(l, {
|
|
130
127
|
path: "hackathons/hackathons-page",
|
|
131
|
-
element:
|
|
128
|
+
element: M("technospam.hackathons", /* @__PURE__ */ f(w, {}))
|
|
132
129
|
}),
|
|
133
130
|
/* @__PURE__ */ f(l, {
|
|
134
131
|
path: "hackathons/hackathon-details-page",
|
|
135
|
-
element:
|
|
132
|
+
element: M("technospam.hackathons", /* @__PURE__ */ f(T, {}))
|
|
136
133
|
}),
|
|
137
134
|
/* @__PURE__ */ f(l, {
|
|
138
135
|
path: "hackathons/events-page",
|
|
@@ -150,7 +147,7 @@ function M() {
|
|
|
150
147
|
}),
|
|
151
148
|
/* @__PURE__ */ f(l, {
|
|
152
149
|
path: "analytics/analytics-page",
|
|
153
|
-
element:
|
|
150
|
+
element: M("technospam.analytics", /* @__PURE__ */ f(E, {}))
|
|
154
151
|
}),
|
|
155
152
|
/* @__PURE__ */ f(l, {
|
|
156
153
|
path: "analytics/progress-page",
|
|
@@ -175,7 +172,7 @@ function M() {
|
|
|
175
172
|
}),
|
|
176
173
|
/* @__PURE__ */ f(l, {
|
|
177
174
|
path: "admin/admin-dashboard-page",
|
|
178
|
-
element:
|
|
175
|
+
element: M("technospam.admin", /* @__PURE__ */ f(D, {}))
|
|
179
176
|
}),
|
|
180
177
|
/* @__PURE__ */ f(l, {
|
|
181
178
|
path: "admin/audit-reports-page",
|
|
@@ -184,10 +181,14 @@ function M() {
|
|
|
184
181
|
replace: !0
|
|
185
182
|
})
|
|
186
183
|
}),
|
|
184
|
+
/* @__PURE__ */ f(l, {
|
|
185
|
+
path: "study-planner/study-planner-page",
|
|
186
|
+
element: M("technospam.studyPlanner", /* @__PURE__ */ f(O, {}))
|
|
187
|
+
}),
|
|
187
188
|
/* @__PURE__ */ f(l, {
|
|
188
189
|
path: "study-planner/*",
|
|
189
190
|
element: /* @__PURE__ */ f(c, {
|
|
190
|
-
to: "../
|
|
191
|
+
to: "../study-planner/study-planner-page",
|
|
191
192
|
replace: !0
|
|
192
193
|
})
|
|
193
194
|
}),
|
|
@@ -216,6 +217,6 @@ function M() {
|
|
|
216
217
|
});
|
|
217
218
|
}
|
|
218
219
|
//#endregion
|
|
219
|
-
export {
|
|
220
|
+
export { P as TechnoSpamRoutes };
|
|
220
221
|
|
|
221
222
|
//# sourceMappingURL=TechnoSpamRoutes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TechnoSpamRoutes.js","names":[],"sources":["../../src/technospam/TechnoSpamRoutes.tsx"],"sourcesContent":["import { lazy, Suspense, useMemo } from 'react';\nimport { Navigate, Route, Routes, useLocation } from 'react-router-dom';\nimport { Loader2, ShieldAlert } from 'lucide-react';\nimport { FeatureGate } from '@burdenoff/fe-libs/shared/feature-flags';\nimport { useTechnoSpamPageView } from './hooks/useTechnoSpamPageView';\nimport { EmptyView } from './components';\n\n/**\n * TechnoSpam routes — every page is backed by the real wspace-technospam-svc\n * (Tec* fields). Modules with no backend (study planner, open source, knowledge\n * base, portfolio, standalone instructors, extra analytics/admin sub-pages) were\n * removed during the backend-reconciliation rebuild; their old paths redirect to\n * the nearest live page so stale links never 404.\n */\n\nimport { DashboardDashboardPagePage as IndexPage } from './pages/DashboardDashboardPagePage';\n\nconst DashboardDashboardPagePage = lazy(() =>\n import('./pages/DashboardDashboardPagePage').then((m) => ({\n default: m.DashboardDashboardPagePage,\n }))\n);\nconst CoursesCoursesPagePage = lazy(() =>\n import('./pages/CoursesCoursesPagePage').then((m) => ({ default: m.CoursesCoursesPagePage }))\n);\nconst CoursesCourseDetailsPagePage = lazy(() =>\n import('./pages/CoursesCourseDetailsPagePage').then((m) => ({\n default: m.CoursesCourseDetailsPagePage,\n }))\n);\nconst CoursesMyLearningPagePage = lazy(() =>\n import('./pages/CoursesMyLearningPagePage').then((m) => ({\n default: m.CoursesMyLearningPagePage,\n }))\n);\nconst ApplicationsProblemsPagePage = lazy(() =>\n import('./pages/ApplicationsProblemsPagePage').then((m) => ({\n default: m.ApplicationsProblemsPagePage,\n }))\n);\nconst ApplicationsProblemDetailsPagePage = lazy(() =>\n import('./pages/ApplicationsProblemDetailsPagePage').then((m) => ({\n default: m.ApplicationsProblemDetailsPagePage,\n }))\n);\nconst MentorshipMentorsPagePage = lazy(() =>\n import('./pages/MentorshipMentorsPagePage').then((m) => ({\n default: m.MentorshipMentorsPagePage,\n }))\n);\nconst MentorshipMentorProfilePagePage = lazy(() =>\n import('./pages/MentorshipMentorProfilePagePage').then((m) => ({\n default: m.MentorshipMentorProfilePagePage,\n }))\n);\nconst MentorshipSessionsPagePage = lazy(() =>\n import('./pages/MentorshipSessionsPagePage').then((m) => ({\n default: m.MentorshipSessionsPagePage,\n }))\n);\nconst HackathonsHackathonsPagePage = lazy(() =>\n import('./pages/HackathonsHackathonsPagePage').then((m) => ({\n default: m.HackathonsHackathonsPagePage,\n }))\n);\nconst HackathonsHackathonDetailsPagePage = lazy(() =>\n import('./pages/HackathonsHackathonDetailsPagePage').then((m) => ({\n default: m.HackathonsHackathonDetailsPagePage,\n }))\n);\nconst AnalyticsAnalyticsPagePage = lazy(() =>\n import('./pages/AnalyticsAnalyticsPagePage').then((m) => ({\n default: m.AnalyticsAnalyticsPagePage,\n }))\n);\nconst AdminAdminDashboardPagePage = lazy(() =>\n import('./pages/AdminAdminDashboardPagePage').then((m) => ({\n default: m.AdminAdminDashboardPagePage,\n }))\n);\n\nfunction PageLoader() {\n return (\n <div className=\"flex h-full min-h-[40vh] items-center justify-center\">\n <Loader2 className=\"animate-spin text-text-muted\" size={28} />\n </div>\n );\n}\n\nfunction FeatureDisabledFallback() {\n return (\n <div className=\"flex h-full min-h-[40vh] items-center justify-center p-6\">\n <EmptyView\n icon={<ShieldAlert size={28} />}\n title=\"Feature not available\"\n description=\"This TechnoSpam feature is currently disabled for your workspace.\"\n />\n </div>\n );\n}\n\nfunction gated(flag: string, element: React.ReactNode): React.ReactElement {\n return (\n <FeatureGate flag={flag} defaultValue={true} fallback={<FeatureDisabledFallback />}>\n {element}\n </FeatureGate>\n );\n}\n\nfunction useTrackedPageView() {\n const { pathname } = useLocation();\n const page = useMemo(() => {\n if (pathname.includes('/courses/course-details')) return 'course-details';\n if (pathname.includes('/courses/my-learning')) return 'my-learning';\n if (pathname.includes('/courses')) return 'courses';\n if (pathname.includes('/applications/problem-details')) return 'problem-details';\n if (pathname.includes('/applications')) return 'problems';\n if (pathname.includes('/mentorship/mentor-profile')) return 'mentor-profile';\n if (pathname.includes('/mentorship/sessions')) return 'sessions';\n if (pathname.includes('/mentorship')) return 'mentors';\n if (pathname.includes('/hackathons/hackathon-details')) return 'hackathon-details';\n if (pathname.includes('/hackathons')) return 'hackathons';\n if (pathname.includes('/analytics')) return 'analytics';\n if (pathname.includes('/admin')) return 'admin';\n return 'dashboard';\n }, [pathname]);\n useTechnoSpamPageView(page);\n}\n\nexport function TechnoSpamRoutes() {\n useTrackedPageView();\n return (\n <Suspense fallback={<PageLoader />}>\n <Routes>\n <Route index element={gated('technospam.dashboard', <IndexPage />)} />\n <Route\n path=\"dashboard/dashboard-page\"\n element={gated('technospam.dashboard', <DashboardDashboardPagePage />)}\n />\n\n {/* Courses */}\n <Route\n path=\"courses/courses-page\"\n element={gated('technospam.courses', <CoursesCoursesPagePage />)}\n />\n <Route\n path=\"courses/course-details-page\"\n element={gated('technospam.courses', <CoursesCourseDetailsPagePage />)}\n />\n <Route\n path=\"courses/my-learning-page\"\n element={gated('technospam.courses', <CoursesMyLearningPagePage />)}\n />\n <Route\n path=\"courses/instructors-page\"\n element={<Navigate to=\"../courses/courses-page\" replace />}\n />\n <Route\n path=\"courses/instructor-profile-page\"\n element={<Navigate to=\"../courses/courses-page\" replace />}\n />\n\n {/* Practice (applications) */}\n <Route\n path=\"applications/problems-page\"\n element={gated('technospam.problems', <ApplicationsProblemsPagePage />)}\n />\n <Route\n path=\"applications/problem-details-page\"\n element={gated('technospam.problems', <ApplicationsProblemDetailsPagePage />)}\n />\n <Route\n path=\"applications/solutions-page\"\n element={<Navigate to=\"../applications/problems-page\" replace />}\n />\n <Route\n path=\"applications/portfolio-page\"\n element={<Navigate to=\"../applications/problems-page\" replace />}\n />\n\n {/* Mentorship */}\n <Route\n path=\"mentorship/mentors-page\"\n element={gated('technospam.mentorship', <MentorshipMentorsPagePage />)}\n />\n <Route\n path=\"mentorship/mentor-profile-page\"\n element={gated('technospam.mentorship', <MentorshipMentorProfilePagePage />)}\n />\n <Route\n path=\"mentorship/sessions-page\"\n element={gated('technospam.mentorship', <MentorshipSessionsPagePage />)}\n />\n <Route\n path=\"mentorship/mentorship-page\"\n element={<Navigate to=\"../mentorship/mentors-page\" replace />}\n />\n <Route\n path=\"mentorship/bookings-page\"\n element={<Navigate to=\"../mentorship/sessions-page\" replace />}\n />\n\n {/* Hackathons */}\n <Route\n path=\"hackathons/hackathons-page\"\n element={gated('technospam.hackathons', <HackathonsHackathonsPagePage />)}\n />\n <Route\n path=\"hackathons/hackathon-details-page\"\n element={gated('technospam.hackathons', <HackathonsHackathonDetailsPagePage />)}\n />\n <Route\n path=\"hackathons/events-page\"\n element={<Navigate to=\"../hackathons/hackathons-page\" replace />}\n />\n <Route\n path=\"hackathons/teams-page\"\n element={<Navigate to=\"../hackathons/hackathons-page\" replace />}\n />\n\n {/* Analytics */}\n <Route\n path=\"analytics/analytics-page\"\n element={gated('technospam.analytics', <AnalyticsAnalyticsPagePage />)}\n />\n <Route\n path=\"analytics/progress-page\"\n element={<Navigate to=\"../analytics/analytics-page\" replace />}\n />\n <Route\n path=\"analytics/achievements-page\"\n element={<Navigate to=\"../analytics/analytics-page\" replace />}\n />\n <Route\n path=\"analytics/reports-page\"\n element={<Navigate to=\"../analytics/analytics-page\" replace />}\n />\n\n {/* Admin */}\n <Route\n path=\"admin/admin-dashboard-page\"\n element={gated('technospam.admin', <AdminAdminDashboardPagePage />)}\n />\n <Route\n path=\"admin/audit-reports-page\"\n element={<Navigate to=\"../admin/admin-dashboard-page\" replace />}\n />\n\n {/*\n * Removed modules → dashboard.\n *\n * open-source and knowledge-base were never shipped and have no nav\n * entries anymore (BOFF-3086) — these redirects are a defensive\n * fallback for stale bookmarks/links only.\n *\n * study-planner intentionally KEEPS its nav entry (TechnoSpamRoot.tsx)\n * and this redirect: the TechnoSage AI planner epic (BOFF-3841/3874/\n * 3895) plans to land a real page at this route. Do not remove the\n * nav item until that page ships — see BOFF-3086 for the carve-out.\n */}\n <Route\n path=\"study-planner/*\"\n element={<Navigate to=\"../dashboard/dashboard-page\" replace />}\n />\n <Route\n path=\"open-source/*\"\n element={<Navigate to=\"../dashboard/dashboard-page\" replace />}\n />\n <Route\n path=\"knowledge-base/*\"\n element={<Navigate to=\"../dashboard/dashboard-page\" replace />}\n />\n\n <Route path=\"*\" element={<Navigate to=\"../dashboard/dashboard-page\" replace />} />\n </Routes>\n </Suspense>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TechnoSpamRoutes.js","names":[],"sources":["../../src/technospam/TechnoSpamRoutes.tsx"],"sourcesContent":["import { lazy, Suspense, useMemo } from 'react';\nimport { Navigate, Route, Routes, useLocation } from 'react-router-dom';\nimport { Loader2, ShieldAlert } from 'lucide-react';\nimport { FeatureGate } from '@burdenoff/fe-libs/shared/feature-flags';\nimport { useTechnoSpamPageView } from './hooks/useTechnoSpamPageView';\nimport { EmptyView } from './components';\n\n/**\n * TechnoSpam routes — every page is backed by the real wspace-technospam-svc\n * (Tec* fields). Modules with no backend (open source, knowledge base,\n * standalone instructors, extra analytics/admin sub-pages) were removed\n * during the backend-reconciliation rebuild; their old paths redirect to\n * the nearest live page so stale links never 404.\n *\n * study-planner (BOFF-4415) and applications/portfolio-page (BOFF-4432) are\n * real pages again as of this pass — see their page components' honesty\n * notes for exactly what is/isn't AI and what's deferred.\n */\n\nimport { DashboardDashboardPagePage as IndexPage } from './pages/DashboardDashboardPagePage';\n\nconst DashboardDashboardPagePage = lazy(() =>\n import('./pages/DashboardDashboardPagePage').then((m) => ({\n default: m.DashboardDashboardPagePage,\n }))\n);\nconst CoursesCoursesPagePage = lazy(() =>\n import('./pages/CoursesCoursesPagePage').then((m) => ({ default: m.CoursesCoursesPagePage }))\n);\nconst CoursesCourseDetailsPagePage = lazy(() =>\n import('./pages/CoursesCourseDetailsPagePage').then((m) => ({\n default: m.CoursesCourseDetailsPagePage,\n }))\n);\nconst CoursesMyLearningPagePage = lazy(() =>\n import('./pages/CoursesMyLearningPagePage').then((m) => ({\n default: m.CoursesMyLearningPagePage,\n }))\n);\nconst ApplicationsProblemsPagePage = lazy(() =>\n import('./pages/ApplicationsProblemsPagePage').then((m) => ({\n default: m.ApplicationsProblemsPagePage,\n }))\n);\nconst ApplicationsProblemDetailsPagePage = lazy(() =>\n import('./pages/ApplicationsProblemDetailsPagePage').then((m) => ({\n default: m.ApplicationsProblemDetailsPagePage,\n }))\n);\nconst MentorshipMentorsPagePage = lazy(() =>\n import('./pages/MentorshipMentorsPagePage').then((m) => ({\n default: m.MentorshipMentorsPagePage,\n }))\n);\nconst MentorshipMentorProfilePagePage = lazy(() =>\n import('./pages/MentorshipMentorProfilePagePage').then((m) => ({\n default: m.MentorshipMentorProfilePagePage,\n }))\n);\nconst MentorshipSessionsPagePage = lazy(() =>\n import('./pages/MentorshipSessionsPagePage').then((m) => ({\n default: m.MentorshipSessionsPagePage,\n }))\n);\nconst HackathonsHackathonsPagePage = lazy(() =>\n import('./pages/HackathonsHackathonsPagePage').then((m) => ({\n default: m.HackathonsHackathonsPagePage,\n }))\n);\nconst HackathonsHackathonDetailsPagePage = lazy(() =>\n import('./pages/HackathonsHackathonDetailsPagePage').then((m) => ({\n default: m.HackathonsHackathonDetailsPagePage,\n }))\n);\nconst AnalyticsAnalyticsPagePage = lazy(() =>\n import('./pages/AnalyticsAnalyticsPagePage').then((m) => ({\n default: m.AnalyticsAnalyticsPagePage,\n }))\n);\nconst AdminAdminDashboardPagePage = lazy(() =>\n import('./pages/AdminAdminDashboardPagePage').then((m) => ({\n default: m.AdminAdminDashboardPagePage,\n }))\n);\nconst StudyPlannerStudyPlannerPagePage = lazy(() =>\n import('./pages/StudyPlannerStudyPlannerPagePage').then((m) => ({\n default: m.StudyPlannerStudyPlannerPagePage,\n }))\n);\nconst ApplicationsPortfolioPagePage = lazy(() =>\n import('./pages/ApplicationsPortfolioPagePage').then((m) => ({\n default: m.ApplicationsPortfolioPagePage,\n }))\n);\n\nfunction PageLoader() {\n return (\n <div className=\"flex h-full min-h-[40vh] items-center justify-center\">\n <Loader2 className=\"animate-spin text-text-muted\" size={28} />\n </div>\n );\n}\n\nfunction FeatureDisabledFallback() {\n return (\n <div className=\"flex h-full min-h-[40vh] items-center justify-center p-6\">\n <EmptyView\n icon={<ShieldAlert size={28} />}\n title=\"Feature not available\"\n description=\"This TechnoSpam feature is currently disabled for your workspace.\"\n />\n </div>\n );\n}\n\nfunction gated(flag: string, element: React.ReactNode): React.ReactElement {\n return (\n <FeatureGate flag={flag} defaultValue={true} fallback={<FeatureDisabledFallback />}>\n {element}\n </FeatureGate>\n );\n}\n\nfunction useTrackedPageView() {\n const { pathname } = useLocation();\n const page = useMemo(() => {\n if (pathname.includes('/courses/course-details')) return 'course-details';\n if (pathname.includes('/courses/my-learning')) return 'my-learning';\n if (pathname.includes('/courses')) return 'courses';\n if (pathname.includes('/applications/problem-details')) return 'problem-details';\n if (pathname.includes('/applications/portfolio')) return 'portfolio';\n if (pathname.includes('/applications')) return 'problems';\n if (pathname.includes('/study-planner')) return 'study-planner';\n if (pathname.includes('/mentorship/mentor-profile')) return 'mentor-profile';\n if (pathname.includes('/mentorship/sessions')) return 'sessions';\n if (pathname.includes('/mentorship')) return 'mentors';\n if (pathname.includes('/hackathons/hackathon-details')) return 'hackathon-details';\n if (pathname.includes('/hackathons')) return 'hackathons';\n if (pathname.includes('/analytics')) return 'analytics';\n if (pathname.includes('/admin')) return 'admin';\n return 'dashboard';\n }, [pathname]);\n useTechnoSpamPageView(page);\n}\n\nexport function TechnoSpamRoutes() {\n useTrackedPageView();\n return (\n <Suspense fallback={<PageLoader />}>\n <Routes>\n <Route index element={gated('technospam.dashboard', <IndexPage />)} />\n <Route\n path=\"dashboard/dashboard-page\"\n element={gated('technospam.dashboard', <DashboardDashboardPagePage />)}\n />\n\n {/* Courses */}\n <Route\n path=\"courses/courses-page\"\n element={gated('technospam.courses', <CoursesCoursesPagePage />)}\n />\n <Route\n path=\"courses/course-details-page\"\n element={gated('technospam.courses', <CoursesCourseDetailsPagePage />)}\n />\n <Route\n path=\"courses/my-learning-page\"\n element={gated('technospam.courses', <CoursesMyLearningPagePage />)}\n />\n <Route\n path=\"courses/instructors-page\"\n element={<Navigate to=\"../courses/courses-page\" replace />}\n />\n <Route\n path=\"courses/instructor-profile-page\"\n element={<Navigate to=\"../courses/courses-page\" replace />}\n />\n\n {/* Practice (applications) */}\n <Route\n path=\"applications/problems-page\"\n element={gated('technospam.problems', <ApplicationsProblemsPagePage />)}\n />\n <Route\n path=\"applications/problem-details-page\"\n element={gated('technospam.problems', <ApplicationsProblemDetailsPagePage />)}\n />\n <Route\n path=\"applications/solutions-page\"\n element={<Navigate to=\"../applications/problems-page\" replace />}\n />\n <Route\n path=\"applications/portfolio-page\"\n element={gated('technospam.portfolio', <ApplicationsPortfolioPagePage />)}\n />\n\n {/* Mentorship */}\n <Route\n path=\"mentorship/mentors-page\"\n element={gated('technospam.mentorship', <MentorshipMentorsPagePage />)}\n />\n <Route\n path=\"mentorship/mentor-profile-page\"\n element={gated('technospam.mentorship', <MentorshipMentorProfilePagePage />)}\n />\n <Route\n path=\"mentorship/sessions-page\"\n element={gated('technospam.mentorship', <MentorshipSessionsPagePage />)}\n />\n <Route\n path=\"mentorship/mentorship-page\"\n element={<Navigate to=\"../mentorship/mentors-page\" replace />}\n />\n <Route\n path=\"mentorship/bookings-page\"\n element={<Navigate to=\"../mentorship/sessions-page\" replace />}\n />\n\n {/* Hackathons */}\n <Route\n path=\"hackathons/hackathons-page\"\n element={gated('technospam.hackathons', <HackathonsHackathonsPagePage />)}\n />\n <Route\n path=\"hackathons/hackathon-details-page\"\n element={gated('technospam.hackathons', <HackathonsHackathonDetailsPagePage />)}\n />\n <Route\n path=\"hackathons/events-page\"\n element={<Navigate to=\"../hackathons/hackathons-page\" replace />}\n />\n <Route\n path=\"hackathons/teams-page\"\n element={<Navigate to=\"../hackathons/hackathons-page\" replace />}\n />\n\n {/* Analytics */}\n <Route\n path=\"analytics/analytics-page\"\n element={gated('technospam.analytics', <AnalyticsAnalyticsPagePage />)}\n />\n <Route\n path=\"analytics/progress-page\"\n element={<Navigate to=\"../analytics/analytics-page\" replace />}\n />\n <Route\n path=\"analytics/achievements-page\"\n element={<Navigate to=\"../analytics/analytics-page\" replace />}\n />\n <Route\n path=\"analytics/reports-page\"\n element={<Navigate to=\"../analytics/analytics-page\" replace />}\n />\n\n {/* Admin */}\n <Route\n path=\"admin/admin-dashboard-page\"\n element={gated('technospam.admin', <AdminAdminDashboardPagePage />)}\n />\n <Route\n path=\"admin/audit-reports-page\"\n element={<Navigate to=\"../admin/admin-dashboard-page\" replace />}\n />\n\n {/*\n * Study Planner (BOFF-4415): a real, deterministic (non-AI)\n * scheduler now lives at study-planner/study-planner-page — see\n * StudyPlannerStudyPlannerPagePage's honesty note. This single page\n * intentionally consolidates what the nav scaffolding originally\n * anticipated as several separate pages (plans list, plan details,\n * edit, learning paths, goals) — those richer standalone views,\n * plus true AI/adaptive re-planning (BOFF-3874/3895), remain\n * deferred. Any other study-planner/* sub-path falls back here\n * rather than to the dashboard, since the real page now exists.\n */}\n <Route\n path=\"study-planner/study-planner-page\"\n element={gated('technospam.studyPlanner', <StudyPlannerStudyPlannerPagePage />)}\n />\n <Route\n path=\"study-planner/*\"\n element={<Navigate to=\"../study-planner/study-planner-page\" replace />}\n />\n {/*\n * Removed modules → dashboard.\n *\n * open-source and knowledge-base were never shipped and have no nav\n * entries anymore (BOFF-3086) — these redirects are a defensive\n * fallback for stale bookmarks/links only.\n */}\n <Route\n path=\"open-source/*\"\n element={<Navigate to=\"../dashboard/dashboard-page\" replace />}\n />\n <Route\n path=\"knowledge-base/*\"\n element={<Navigate to=\"../dashboard/dashboard-page\" replace />}\n />\n\n <Route path=\"*\" element={<Navigate to=\"../dashboard/dashboard-page\" replace />} />\n </Routes>\n </Suspense>\n );\n}\n"],"mappings":";;;;;;;;;;AAqBA,IAAM,IAA6B,QACjC,OAAO,yCAAsC,MAAM,OAAO,EACxD,SAAS,EAAE,4BACZ,EAAE,CACJ,EACK,IAAyB,QAC7B,OAAO,qCAAkC,MAAM,OAAO,EAAE,SAAS,EAAE,wBAAwB,EAAE,CAC9F,EACK,IAA+B,QACnC,OAAO,2CAAwC,MAAM,OAAO,EAC1D,SAAS,EAAE,8BACZ,EAAE,CACJ,EACK,IAA4B,QAChC,OAAO,wCAAqC,MAAM,OAAO,EACvD,SAAS,EAAE,2BACZ,EAAE,CACJ,EACK,IAA+B,QACnC,OAAO,2CAAwC,MAAM,OAAO,EAC1D,SAAS,EAAE,8BACZ,EAAE,CACJ,EACK,IAAqC,QACzC,OAAO,iDAA8C,MAAM,OAAO,EAChE,SAAS,EAAE,oCACZ,EAAE,CACJ,EACK,IAA4B,QAChC,OAAO,wCAAqC,MAAM,OAAO,EACvD,SAAS,EAAE,2BACZ,EAAE,CACJ,EACK,IAAkC,QACtC,OAAO,8CAA2C,MAAM,OAAO,EAC7D,SAAS,EAAE,iCACZ,EAAE,CACJ,EACK,IAA6B,QACjC,OAAO,yCAAsC,MAAM,OAAO,EACxD,SAAS,EAAE,4BACZ,EAAE,CACJ,EACK,IAA+B,QACnC,OAAO,2CAAwC,MAAM,OAAO,EAC1D,SAAS,EAAE,8BACZ,EAAE,CACJ,EACK,IAAqC,QACzC,OAAO,iDAA8C,MAAM,OAAO,EAChE,SAAS,EAAE,oCACZ,EAAE,CACJ,EACK,IAA6B,QACjC,OAAO,yCAAsC,MAAM,OAAO,EACxD,SAAS,EAAE,4BACZ,EAAE,CACJ,EACK,IAA8B,QAClC,OAAO,0CAAuC,MAAM,OAAO,EACzD,SAAS,EAAE,6BACZ,EAAE,CACJ,EACK,IAAmC,QACvC,OAAO,+CAA4C,MAAM,OAAO,EAC9D,SAAS,EAAE,kCACZ,EAAE,CACJ,EACK,IAAgC,QACpC,OAAO,4CAAyC,MAAM,OAAO,EAC3D,SAAS,EAAE,+BACZ,EAAE,CACJ;AAED,SAAS,IAAa;AACpB,QACE,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,GAAD;GAAS,WAAU;GAA+B,MAAM;GAAM,CAAA;EAC1D,CAAA;;AAIV,SAAS,IAA0B;AACjC,QACE,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,GAAD;GACE,MAAM,kBAAC,GAAD,EAAa,MAAM,IAAM,CAAA;GAC/B,OAAM;GACN,aAAY;GACZ,CAAA;EACE,CAAA;;AAIV,SAAS,EAAM,GAAc,GAA8C;AACzE,QACE,kBAAC,GAAD;EAAmB;EAAM,cAAc;EAAM,UAAU,kBAAC,GAAD,EAA2B,CAAA;YAC/E;EACW,CAAA;;AAIlB,SAAS,IAAqB;CAC5B,IAAM,EAAE,gBAAa,GAAa;AAkBlC,GAjBa,QACP,EAAS,SAAS,0BAA0B,GAAS,mBACrD,EAAS,SAAS,uBAAuB,GAAS,gBAClD,EAAS,SAAS,WAAW,GAAS,YACtC,EAAS,SAAS,gCAAgC,GAAS,oBAC3D,EAAS,SAAS,0BAA0B,GAAS,cACrD,EAAS,SAAS,gBAAgB,GAAS,aAC3C,EAAS,SAAS,iBAAiB,GAAS,kBAC5C,EAAS,SAAS,6BAA6B,GAAS,mBACxD,EAAS,SAAS,uBAAuB,GAAS,aAClD,EAAS,SAAS,cAAc,GAAS,YACzC,EAAS,SAAS,gCAAgC,GAAS,sBAC3D,EAAS,SAAS,cAAc,GAAS,eACzC,EAAS,SAAS,aAAa,GAAS,cACxC,EAAS,SAAS,SAAS,GAAS,UACjC,aACN,CAAC,EAAS,CAAC,CACa;;AAG7B,SAAgB,IAAmB;AAEjC,QADA,GAAoB,EAElB,kBAAC,GAAD;EAAU,UAAU,kBAAC,GAAD,EAAc,CAAA;YAChC,kBAAC,GAAD,EAAA,UAAA;GACE,kBAAC,GAAD;IAAO,OAAA;IAAM,SAAS,EAAM,wBAAwB,kBAAC,GAAD,EAAa,CAAA,CAAC;IAAI,CAAA;GACtE,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,EAAM,wBAAwB,kBAAC,GAAD,EAA8B,CAAA,CAAC;IACtE,CAAA;GAGF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,EAAM,sBAAsB,kBAAC,GAAD,EAA0B,CAAA,CAAC;IAChE,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,EAAM,sBAAsB,kBAAC,GAAD,EAAgC,CAAA,CAAC;IACtE,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,EAAM,sBAAsB,kBAAC,GAAD,EAA6B,CAAA,CAAC;IACnE,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD;KAAU,IAAG;KAA0B,SAAA;KAAU,CAAA;IAC1D,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD;KAAU,IAAG;KAA0B,SAAA;KAAU,CAAA;IAC1D,CAAA;GAGF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,EAAM,uBAAuB,kBAAC,GAAD,EAAgC,CAAA,CAAC;IACvE,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,EAAM,uBAAuB,kBAAC,GAAD,EAAsC,CAAA,CAAC;IAC7E,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD;KAAU,IAAG;KAAgC,SAAA;KAAU,CAAA;IAChE,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,EAAM,wBAAwB,kBAAC,GAAD,EAAiC,CAAA,CAAC;IACzE,CAAA;GAGF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,EAAM,yBAAyB,kBAAC,GAAD,EAA6B,CAAA,CAAC;IACtE,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,EAAM,yBAAyB,kBAAC,GAAD,EAAmC,CAAA,CAAC;IAC5E,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,EAAM,yBAAyB,kBAAC,GAAD,EAA8B,CAAA,CAAC;IACvE,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD;KAAU,IAAG;KAA6B,SAAA;KAAU,CAAA;IAC7D,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD;KAAU,IAAG;KAA8B,SAAA;KAAU,CAAA;IAC9D,CAAA;GAGF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,EAAM,yBAAyB,kBAAC,GAAD,EAAgC,CAAA,CAAC;IACzE,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,EAAM,yBAAyB,kBAAC,GAAD,EAAsC,CAAA,CAAC;IAC/E,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD;KAAU,IAAG;KAAgC,SAAA;KAAU,CAAA;IAChE,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD;KAAU,IAAG;KAAgC,SAAA;KAAU,CAAA;IAChE,CAAA;GAGF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,EAAM,wBAAwB,kBAAC,GAAD,EAA8B,CAAA,CAAC;IACtE,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD;KAAU,IAAG;KAA8B,SAAA;KAAU,CAAA;IAC9D,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD;KAAU,IAAG;KAA8B,SAAA;KAAU,CAAA;IAC9D,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD;KAAU,IAAG;KAA8B,SAAA;KAAU,CAAA;IAC9D,CAAA;GAGF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,EAAM,oBAAoB,kBAAC,GAAD,EAA+B,CAAA,CAAC;IACnE,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD;KAAU,IAAG;KAAgC,SAAA;KAAU,CAAA;IAChE,CAAA;GAaF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,EAAM,2BAA2B,kBAAC,GAAD,EAAoC,CAAA,CAAC;IAC/E,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD;KAAU,IAAG;KAAsC,SAAA;KAAU,CAAA;IACtE,CAAA;GAQF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD;KAAU,IAAG;KAA8B,SAAA;KAAU,CAAA;IAC9D,CAAA;GACF,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD;KAAU,IAAG;KAA8B,SAAA;KAAU,CAAA;IAC9D,CAAA;GAEF,kBAAC,GAAD;IAAO,MAAK;IAAI,SAAS,kBAAC,GAAD;KAAU,IAAG;KAA8B,SAAA;KAAU,CAAA;IAAI,CAAA;GAC3E,EAAA,CAAA;EACA,CAAA"}
|
|
@@ -24,6 +24,14 @@ export interface TecCourse {
|
|
|
24
24
|
tags: string[];
|
|
25
25
|
estimatedMinutes: number;
|
|
26
26
|
instructorId?: string | null;
|
|
27
|
+
/** BOFF-4416: true when this course requires a paid TechnoSpam plan. */
|
|
28
|
+
isPremiumOnly: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* BOFF-4416: computed for the calling workspace — true when this course
|
|
31
|
+
* is `isPremiumOnly` and the workspace has no paid plan. When true, every
|
|
32
|
+
* non-preview lesson's `content` is already null in the API response.
|
|
33
|
+
*/
|
|
34
|
+
isLocked: boolean;
|
|
27
35
|
publishedAt?: string | null;
|
|
28
36
|
createdAt: string;
|
|
29
37
|
updatedAt: string;
|
|
@@ -39,6 +47,12 @@ export interface TecLesson {
|
|
|
39
47
|
position: number;
|
|
40
48
|
estimatedMinutes: number;
|
|
41
49
|
isPreview: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* BOFF-4416: true when this lesson's `content` is gated behind a paid
|
|
52
|
+
* TechnoSpam plan (never true for `isPreview` lessons). `content` is
|
|
53
|
+
* already null in the API response whenever this is true.
|
|
54
|
+
*/
|
|
55
|
+
isLocked: boolean;
|
|
42
56
|
createdAt: string;
|
|
43
57
|
updatedAt: string;
|
|
44
58
|
}
|
|
@@ -84,10 +98,53 @@ export interface TecProblem {
|
|
|
84
98
|
interviewFrequency?: TecInterviewFrequency | null;
|
|
85
99
|
points: number;
|
|
86
100
|
starterCode?: string | null;
|
|
101
|
+
/** BOFF-4416: true when this problem requires a paid TechnoSpam plan. */
|
|
102
|
+
isPremiumOnly: boolean;
|
|
103
|
+
/**
|
|
104
|
+
* BOFF-4416: computed for the calling workspace — true when this problem
|
|
105
|
+
* is `isPremiumOnly` and the workspace has no paid plan. `statement` /
|
|
106
|
+
* `starterCode` are already null and `publicTestCases` already empty in
|
|
107
|
+
* the API response whenever this is true.
|
|
108
|
+
*/
|
|
109
|
+
isLocked: boolean;
|
|
87
110
|
publishedAt?: string | null;
|
|
88
111
|
createdAt: string;
|
|
89
112
|
updatedAt: string;
|
|
90
113
|
submissions?: TecSubmission[];
|
|
114
|
+
/** Worked-example fixtures the grader runs against; PUBLIC cases only. */
|
|
115
|
+
publicTestCases?: TecProblemTestCase[];
|
|
116
|
+
}
|
|
117
|
+
/** Visibility of a problem test case. Mirrors TecTestCaseVisibility. */
|
|
118
|
+
export type TecTestCaseVisibility = 'PUBLIC' | 'HIDDEN';
|
|
119
|
+
/** Per-test-case outcome of a graded submission. Mirrors TecTestCaseStatus. */
|
|
120
|
+
export type TecTestCaseStatus = 'PASSED' | 'WRONG_ANSWER' | 'RUNTIME_ERROR' | 'TIME_LIMIT_EXCEEDED' | 'COMPILE_ERROR' | 'SKIPPED';
|
|
121
|
+
/**
|
|
122
|
+
* A worked-example fixture shown on the problem page. Only PUBLIC cases are
|
|
123
|
+
* ever returned to a learner, so `input`/`expectedOutput` are always present
|
|
124
|
+
* in practice; they stay optional because the schema allows null for the
|
|
125
|
+
* author-facing redacted shape.
|
|
126
|
+
*/
|
|
127
|
+
export interface TecProblemTestCase {
|
|
128
|
+
id: string;
|
|
129
|
+
problemId: string;
|
|
130
|
+
name: string;
|
|
131
|
+
ordering: number;
|
|
132
|
+
visibility: TecTestCaseVisibility;
|
|
133
|
+
timeLimitMs: number;
|
|
134
|
+
input?: string | null;
|
|
135
|
+
expectedOutput?: string | null;
|
|
136
|
+
}
|
|
137
|
+
/** Grading detail for one test case of a submission. */
|
|
138
|
+
export interface TecTestCaseResult {
|
|
139
|
+
testCaseId: string;
|
|
140
|
+
name: string;
|
|
141
|
+
visibility: TecTestCaseVisibility;
|
|
142
|
+
status: TecTestCaseStatus;
|
|
143
|
+
passed: boolean;
|
|
144
|
+
durationMs: number;
|
|
145
|
+
input?: string | null;
|
|
146
|
+
expectedOutput?: string | null;
|
|
147
|
+
actualOutput?: string | null;
|
|
91
148
|
}
|
|
92
149
|
export interface TecSubmission {
|
|
93
150
|
id: string;
|
|
@@ -98,6 +155,10 @@ export interface TecSubmission {
|
|
|
98
155
|
verdict: TecSubmissionVerdict;
|
|
99
156
|
runtimeMs: number;
|
|
100
157
|
pointsAwarded: number;
|
|
158
|
+
passedCount: number;
|
|
159
|
+
totalCount: number;
|
|
160
|
+
stderr?: string | null;
|
|
161
|
+
testResults: TecTestCaseResult[];
|
|
101
162
|
judgedAt?: string | null;
|
|
102
163
|
createdAt: string;
|
|
103
164
|
updatedAt: string;
|
|
@@ -286,6 +347,16 @@ export declare const useSubmitSolution: () => useMutation.ResultTuple<{
|
|
|
286
347
|
}, {
|
|
287
348
|
[x: string]: any;
|
|
288
349
|
}, import('@apollo/client').ApolloCache, undefined>;
|
|
350
|
+
/**
|
|
351
|
+
* Re-run the grader for a submission. Used by the problem page when a verdict
|
|
352
|
+
* came back PENDING (grader unavailable at submit time) so a learner can retry
|
|
353
|
+
* without resubmitting identical code.
|
|
354
|
+
*/
|
|
355
|
+
export declare const useRegradeSubmission: () => useMutation.ResultTuple<{
|
|
356
|
+
tecRegradeSubmission: TecSubmission;
|
|
357
|
+
}, {
|
|
358
|
+
[x: string]: any;
|
|
359
|
+
}, import('@apollo/client').ApolloCache, undefined>;
|
|
289
360
|
export declare const useBookSession: () => useMutation.ResultTuple<{
|
|
290
361
|
tecBookSession: TecMentorSession;
|
|
291
362
|
}, {
|
|
@@ -401,6 +472,101 @@ export declare const useCompleteHackathon: () => useMutation.ResultTuple<{
|
|
|
401
472
|
}, {
|
|
402
473
|
[x: string]: any;
|
|
403
474
|
}, import('@apollo/client').ApolloCache, undefined>;
|
|
475
|
+
export type TecStudyPlanStatus = 'ACTIVE' | 'COMPLETED' | 'ARCHIVED';
|
|
476
|
+
export type TecStudyPlanStepKind = 'COURSE' | 'PROBLEM';
|
|
477
|
+
export type TecStudyPlanStepStatus = 'PENDING' | 'IN_PROGRESS' | 'COMPLETED' | 'SKIPPED';
|
|
478
|
+
export interface TecStudyPlanStep {
|
|
479
|
+
id: string;
|
|
480
|
+
order: number;
|
|
481
|
+
kind: TecStudyPlanStepKind;
|
|
482
|
+
targetId: string;
|
|
483
|
+
title: string;
|
|
484
|
+
scheduledWeek: number;
|
|
485
|
+
status: TecStudyPlanStepStatus;
|
|
486
|
+
rationale: string;
|
|
487
|
+
estimatedMinutes: number;
|
|
488
|
+
completedAt?: string | null;
|
|
489
|
+
}
|
|
490
|
+
export interface TecStudyPlan {
|
|
491
|
+
id: string;
|
|
492
|
+
goal: string;
|
|
493
|
+
topic?: string | null;
|
|
494
|
+
timeframeWeeks: number;
|
|
495
|
+
status: TecStudyPlanStatus;
|
|
496
|
+
targetCompletionDate?: string | null;
|
|
497
|
+
progressPct: number;
|
|
498
|
+
totalSteps: number;
|
|
499
|
+
completedSteps: number;
|
|
500
|
+
createdAt: string;
|
|
501
|
+
steps: TecStudyPlanStep[];
|
|
502
|
+
}
|
|
503
|
+
export declare const useMyStudyPlansQuery: () => useQuery.Result<{
|
|
504
|
+
tecMyStudyPlans: {
|
|
505
|
+
items: TecStudyPlan[];
|
|
506
|
+
pageInfo: TecPageInfo;
|
|
507
|
+
};
|
|
508
|
+
}, import('@apollo/client').OperationVariables, "empty" | "complete" | "streaming", import('@apollo/client').OperationVariables>;
|
|
509
|
+
export declare const useGenerateStudyPlan: () => useMutation.ResultTuple<{
|
|
510
|
+
tecGenerateStudyPlan: TecStudyPlan;
|
|
511
|
+
}, {
|
|
512
|
+
[x: string]: any;
|
|
513
|
+
}, import('@apollo/client').ApolloCache, undefined>;
|
|
514
|
+
export declare const useUpdateStudyPlanStepStatus: () => useMutation.ResultTuple<{
|
|
515
|
+
tecUpdateStudyPlanStepStatus: TecStudyPlanStep;
|
|
516
|
+
}, {
|
|
517
|
+
[x: string]: any;
|
|
518
|
+
}, import('@apollo/client').ApolloCache, undefined>;
|
|
519
|
+
export declare const useArchiveStudyPlan: () => useMutation.ResultTuple<{
|
|
520
|
+
tecArchiveStudyPlan: boolean;
|
|
521
|
+
}, {
|
|
522
|
+
[x: string]: any;
|
|
523
|
+
}, import('@apollo/client').ApolloCache, undefined>;
|
|
524
|
+
export type TecPortfolioItemKind = 'HACKATHON_PROJECT' | 'CERTIFICATE' | 'COURSE_COMPLETION';
|
|
525
|
+
export interface TecPortfolioItem {
|
|
526
|
+
id: string;
|
|
527
|
+
kind: TecPortfolioItemKind;
|
|
528
|
+
sourceId: string;
|
|
529
|
+
title: string;
|
|
530
|
+
description?: string | null;
|
|
531
|
+
link?: string | null;
|
|
532
|
+
completionDate: string;
|
|
533
|
+
order: number;
|
|
534
|
+
}
|
|
535
|
+
export interface TecPortfolio {
|
|
536
|
+
id: string;
|
|
537
|
+
isPublished: boolean;
|
|
538
|
+
publicSlug?: string | null;
|
|
539
|
+
publishedAt?: string | null;
|
|
540
|
+
items: TecPortfolioItem[];
|
|
541
|
+
}
|
|
542
|
+
export declare const useMyPortfolioQuery: () => useQuery.Result<{
|
|
543
|
+
tecMyPortfolio: TecPortfolio;
|
|
544
|
+
}, import('@apollo/client').OperationVariables, "empty" | "complete" | "streaming", import('@apollo/client').OperationVariables>;
|
|
545
|
+
export declare const useAddPortfolioItem: () => useMutation.ResultTuple<{
|
|
546
|
+
tecAddPortfolioItem: TecPortfolioItem;
|
|
547
|
+
}, {
|
|
548
|
+
[x: string]: any;
|
|
549
|
+
}, import('@apollo/client').ApolloCache, undefined>;
|
|
550
|
+
export declare const useReorderPortfolioItems: () => useMutation.ResultTuple<{
|
|
551
|
+
tecReorderPortfolioItems: TecPortfolio;
|
|
552
|
+
}, {
|
|
553
|
+
[x: string]: any;
|
|
554
|
+
}, import('@apollo/client').ApolloCache, undefined>;
|
|
555
|
+
export declare const useRemovePortfolioItem: () => useMutation.ResultTuple<{
|
|
556
|
+
tecRemovePortfolioItem: boolean;
|
|
557
|
+
}, {
|
|
558
|
+
[x: string]: any;
|
|
559
|
+
}, import('@apollo/client').ApolloCache, undefined>;
|
|
560
|
+
export declare const usePublishPortfolio: () => useMutation.ResultTuple<{
|
|
561
|
+
tecPublishPortfolio: TecPortfolio;
|
|
562
|
+
}, {
|
|
563
|
+
[x: string]: any;
|
|
564
|
+
}, import('@apollo/client').ApolloCache, undefined>;
|
|
565
|
+
export declare const useUnpublishPortfolio: () => useMutation.ResultTuple<{
|
|
566
|
+
tecUnpublishPortfolio: TecPortfolio;
|
|
567
|
+
}, {
|
|
568
|
+
[x: string]: any;
|
|
569
|
+
}, import('@apollo/client').ApolloCache, undefined>;
|
|
404
570
|
export interface PageLimit {
|
|
405
571
|
limit: number;
|
|
406
572
|
more: () => void;
|