@burdenoff/microfe-technospam 2026.1102.2 → 2026.1102.3

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.
Files changed (53) hide show
  1. package/dist/technospam/TechnoSpamRoot.d.ts.map +1 -1
  2. package/dist/technospam/TechnoSpamRoot.js +187 -178
  3. package/dist/technospam/TechnoSpamRoot.js.map +1 -1
  4. package/dist/technospam/api/technospamApi.js +141 -141
  5. package/dist/technospam/api/technospamApi.js.map +1 -1
  6. package/dist/technospam/components/MediaCover.js +2 -2
  7. package/dist/technospam/components/MediaCover.js.map +1 -1
  8. package/dist/technospam/components/MobileSectionTabs.d.ts +9 -0
  9. package/dist/technospam/components/MobileSectionTabs.d.ts.map +1 -0
  10. package/dist/technospam/components/MobileSectionTabs.js +43 -0
  11. package/dist/technospam/components/MobileSectionTabs.js.map +1 -0
  12. package/dist/technospam/components/PageLayout.d.ts +7 -1
  13. package/dist/technospam/components/PageLayout.d.ts.map +1 -1
  14. package/dist/technospam/components/PageLayout.js +40 -28
  15. package/dist/technospam/components/PageLayout.js.map +1 -1
  16. package/dist/technospam/components/lesson/SaveCourseOffline.js +6 -6
  17. package/dist/technospam/hooks/usePhoneLayout.d.ts +18 -0
  18. package/dist/technospam/hooks/usePhoneLayout.d.ts.map +1 -0
  19. package/dist/technospam/hooks/usePhoneLayout.js +14 -0
  20. package/dist/technospam/hooks/usePhoneLayout.js.map +1 -0
  21. package/dist/technospam/pages/AdminAdminDashboardPagePage.js +1 -1
  22. package/dist/technospam/pages/AdminAdminDashboardPagePage.js.map +1 -1
  23. package/dist/technospam/pages/ApplicationsProblemsPagePage.d.ts.map +1 -1
  24. package/dist/technospam/pages/ApplicationsProblemsPagePage.js +89 -87
  25. package/dist/technospam/pages/ApplicationsProblemsPagePage.js.map +1 -1
  26. package/dist/technospam/pages/CoursesCourseDetailsPagePage.js +3 -3
  27. package/dist/technospam/pages/CoursesCourseDetailsPagePage.js.map +1 -1
  28. package/dist/technospam/pages/CoursesCoursesPagePage.d.ts.map +1 -1
  29. package/dist/technospam/pages/CoursesCoursesPagePage.js +117 -81
  30. package/dist/technospam/pages/CoursesCoursesPagePage.js.map +1 -1
  31. package/dist/technospam/pages/CoursesMyLearningPagePage.js +1 -1
  32. package/dist/technospam/pages/CoursesMyLearningPagePage.js.map +1 -1
  33. package/dist/technospam/pages/DashboardDashboardPagePage.d.ts.map +1 -1
  34. package/dist/technospam/pages/DashboardDashboardPagePage.js +21 -17
  35. package/dist/technospam/pages/DashboardDashboardPagePage.js.map +1 -1
  36. package/dist/technospam/pages/HackathonsHackathonDetailsPagePage.js +3 -3
  37. package/dist/technospam/pages/HackathonsHackathonDetailsPagePage.js.map +1 -1
  38. package/dist/technospam/pages/MentorshipMentorProfilePagePage.js +4 -4
  39. package/dist/technospam/pages/MentorshipMentorProfilePagePage.js.map +1 -1
  40. package/dist/technospam/pages/MentorshipMentorsPagePage.d.ts.map +1 -1
  41. package/dist/technospam/pages/MentorshipMentorsPagePage.js +6 -4
  42. package/dist/technospam/pages/MentorshipMentorsPagePage.js.map +1 -1
  43. package/dist/technospam/pages/MentorshipSessionsPagePage.js +1 -1
  44. package/dist/technospam/pages/MentorshipSessionsPagePage.js.map +1 -1
  45. package/dist/technospam/types/index.d.ts +7 -0
  46. package/dist/technospam/types/index.d.ts.map +1 -1
  47. package/dist/technospam/utils/mobileTabs.d.ts +45 -0
  48. package/dist/technospam/utils/mobileTabs.d.ts.map +1 -0
  49. package/dist/technospam/utils/mobileTabs.js +70 -0
  50. package/dist/technospam/utils/mobileTabs.js.map +1 -0
  51. package/dist/test/matchMedia.d.ts +6 -0
  52. package/dist/test/matchMedia.d.ts.map +1 -0
  53. package/package.json +3 -3
@@ -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 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":"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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 { useMobileTabBarVisible } from '@burdenoff/fe-libs/chrome/mobileTabBar/useMobileTabBarVisible';\nimport { tWithFallback } from './utils/i18n';\nimport { joinPath } from './utils/navigation';\nimport { withoutTabCoveredItems } from './utils/mobileTabs';\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 // True only in the installed app (Capacitor / standalone PWA) on a phone-width\n // viewport, where the shell swaps its sidebar for the bottom tab bar.\n const nativeChrome = useMobileTabBarVisible();\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 // In the installed app the host shell's bottom tab bar owns Dashboard,\n // Courses, Practice and Mentors (registered by technospam-app with\n // `mobilePriority`). Drop those sections from the module item (which lands\n // in the shell's \"More\" sheet) and match its own path exactly, so More\n // neither repeats them nor lights up while one of the tabs is active.\n const item: NavItem = nativeChrome\n ? { ...navItem, exact: true, children: withoutTabCoveredItems(navItem.children ?? []) }\n : navItem;\n\n return registerNavItems(item);\n }, [registerNavItems, basePath, t, nativeChrome]);\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":";;;;;;;;;;;;AA0CA,IAAa,KAA2C,MAAU;CAChE,IAAM,EAAE,qBAAkB,wBAAqB,cAAW,QAAQ,GAC5D,EAAE,SAAM,GAAS,EACjB,KAAM,GAAa,MAA6B,EAAc,GAAG,GAAK,EAAS,EAG/E,IAAe,GAAwB;AA8Y7C,QA5YA,QAAgB;AACd,MAAI,CAAC,EAAkB;EAEvB,IAAM,IAAmB;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;AAWD,SAAO,EAJe,IAClB;GAAE,GAAG;GAAS,OAAO;GAAM,UAAU,EAAuB,EAAQ,YAAY,EAAE,CAAC;GAAE,GACrF,EAEyB;IAC5B;EAAC;EAAkB;EAAU;EAAG;EAAa,CAAC,EAEjD,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"}