@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobileTabs.js","names":[],"sources":["../../../src/technospam/utils/mobileTabs.ts"],"sourcesContent":["import { joinPath } from './navigation';\n\n/**\n * The four learner journeys the phone layouts are built around (BOFF-4108,\n * mockups technospam-18/19/22): Home, Courses, Practice and Mentors. Profile\n * is the shell's own \"More\" tab, which already carries settings and the\n * account menu, so it is not duplicated here.\n */\nexport type MobileTabId = 'home' | 'courses' | 'practice' | 'mentors';\n\nexport interface MobileTabDef {\n id: MobileTabId;\n labelKey: string;\n label: string;\n /** Module-relative section prefix; every page under it lights the tab up. */\n section: string;\n /** Module-relative page the tab opens. */\n home: string;\n}\n\nexport const MOBILE_TABS: readonly MobileTabDef[] = [\n {\n id: 'home',\n labelKey: 'technospam.mobile.tabs.home',\n label: 'Home',\n section: 'dashboard',\n home: 'dashboard/dashboard-page',\n },\n {\n id: 'courses',\n labelKey: 'technospam.mobile.tabs.courses',\n label: 'Courses',\n section: 'courses',\n home: 'courses/courses-page',\n },\n {\n id: 'practice',\n labelKey: 'technospam.mobile.tabs.practice',\n label: 'Practice',\n section: 'applications',\n home: 'applications/problems-page',\n },\n {\n id: 'mentors',\n labelKey: 'technospam.mobile.tabs.mentors',\n label: 'Mentors',\n section: 'mentorship',\n home: 'mentorship/mentors-page',\n },\n];\n\n/** Strip a trailing slash so `/technospam/` and `/technospam` compare equal. */\nfunction trimBase(basePath: string): string {\n return basePath.length > 1 && basePath.endsWith('/') ? basePath.slice(0, -1) : basePath;\n}\n\n/**\n * Which phone tab owns `pathname`. The module index (`/technospam`) renders the\n * dashboard, so it belongs to Home; anything outside the four sections\n * (hackathons, analytics, study planner, admin) belongs to no tab.\n */\nexport function activeMobileTab(pathname: string, basePath: string): MobileTabId | null {\n const base = trimBase(basePath);\n const rel =\n base && base !== '/' && (pathname === base || pathname.startsWith(`${base}/`))\n ? pathname.slice(base.length)\n : pathname;\n const clean = rel.replace(/^\\/+/, '').replace(/\\/+$/, '');\n if (clean === '') return 'home';\n for (const tab of MOBILE_TABS) {\n if (clean === tab.section || clean.startsWith(`${tab.section}/`)) return tab.id;\n }\n return null;\n}\n\n/** Absolute path a tab navigates to, under the MFE's basePath. */\nexport function mobileTabTarget(tab: MobileTabDef, basePath: string): string {\n return joinPath(basePath, tab.home);\n}\n\n/**\n * Child ids of the \"TechnoSpam\" sidebar item that the bottom tabs replace in\n * the installed app. Dropping them keeps the shell's \"More\" sheet from\n * listing (and lighting up for) the same pages the tabs already cover.\n */\nexport const NATIVE_TAB_COVERED_CHILD_IDS: ReadonlySet<string> = new Set([\n 'technospam-home',\n 'technospam-dashboard-section',\n 'technospam-courses',\n 'technospam-mentorship',\n]);\n\n/** Practice pages covered by the Practice tab; the rest of Applications stays in More. */\nexport const NATIVE_TAB_COVERED_GRANDCHILD_IDS: ReadonlySet<string> = new Set([\n 'technospam-applications-problems-page',\n 'technospam-applications-problem-details-page',\n 'technospam-applications-solutions-page',\n]);\n\ninterface TreeItem {\n id: string;\n children?: TreeItem[];\n}\n\n/**\n * Remove the tab-covered sections from the module's nav children. Sections\n * left with no children (Applications without its practice pages keeps\n * Portfolio, so it survives) are dropped too.\n */\nexport function withoutTabCoveredItems<T extends TreeItem>(children: readonly T[]): T[] {\n const out: T[] = [];\n for (const child of children) {\n if (NATIVE_TAB_COVERED_CHILD_IDS.has(child.id)) continue;\n if (!child.children) {\n out.push(child);\n continue;\n }\n const kept = child.children.filter((c) => !NATIVE_TAB_COVERED_GRANDCHILD_IDS.has(c.id));\n if (kept.length === 0) continue;\n out.push({ ...child, children: kept });\n }\n return out;\n}\n"],"mappings":";AAoBA,IAAa,IAAuC;CAClD;EACE,IAAI;EACJ,UAAU;EACV,OAAO;EACP,SAAS;EACT,MAAM;EACP;CACD;EACE,IAAI;EACJ,UAAU;EACV,OAAO;EACP,SAAS;EACT,MAAM;EACP;CACD;EACE,IAAI;EACJ,UAAU;EACV,OAAO;EACP,SAAS;EACT,MAAM;EACP;CACD;EACE,IAAI;EACJ,UAAU;EACV,OAAO;EACP,SAAS;EACT,MAAM;EACP;CACF;AAGD,SAAS,EAAS,GAA0B;AAC1C,QAAO,EAAS,SAAS,KAAK,EAAS,SAAS,IAAI,GAAG,EAAS,MAAM,GAAG,GAAG,GAAG;;AAQjF,SAAgB,EAAgB,GAAkB,GAAsC;CACtF,IAAM,IAAO,EAAS,EAAS,EAKzB,KAHJ,KAAQ,MAAS,QAAQ,MAAa,KAAQ,EAAS,WAAW,GAAG,EAAK,GAAG,IACzE,EAAS,MAAM,EAAK,OAAO,GAC3B,GACY,QAAQ,QAAQ,GAAG,CAAC,QAAQ,QAAQ,GAAG;AACzD,KAAI,MAAU,GAAI,QAAO;AACzB,MAAK,IAAM,KAAO,EAChB,KAAI,MAAU,EAAI,WAAW,EAAM,WAAW,GAAG,EAAI,QAAQ,GAAG,CAAE,QAAO,EAAI;AAE/E,QAAO;;AAaT,IAAa,IAAoD,IAAI,IAAI;CACvE;CACA;CACA;CACA;CACD,CAAC,EAGW,IAAyD,IAAI,IAAI;CAC5E;CACA;CACA;CACD,CAAC;AAYF,SAAgB,EAA2C,GAA6B;CACtF,IAAM,IAAW,EAAE;AACnB,MAAK,IAAM,KAAS,GAAU;AAC5B,MAAI,EAA6B,IAAI,EAAM,GAAG,CAAE;AAChD,MAAI,CAAC,EAAM,UAAU;AACnB,KAAI,KAAK,EAAM;AACf;;EAEF,IAAM,IAAO,EAAM,SAAS,QAAQ,MAAM,CAAC,EAAkC,IAAI,EAAE,GAAG,CAAC;AACnF,IAAK,WAAW,KACpB,EAAI,KAAK;GAAE,GAAG;GAAO,UAAU;GAAM,CAAC;;AAExC,QAAO"}
@@ -0,0 +1,6 @@
1
+ export declare function installMatchMedia(): void;
2
+ /** Set the width the next render's media queries are evaluated against. */
3
+ export declare function setTestViewportWidth(width: number): void;
4
+ /** Restore the default desktop width. */
5
+ export declare function resetTestViewport(): void;
6
+ //# sourceMappingURL=matchMedia.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matchMedia.d.ts","sourceRoot":"","sources":["../../src/test/matchMedia.ts"],"names":[],"mappings":"AAyBA,wBAAgB,iBAAiB,IAAI,IAAI,CAexC;AAED,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAExD;AAED,yCAAyC;AACzC,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/microfe-technospam",
3
- "version": "2026.1102.2",
3
+ "version": "2026.1102.3",
4
4
  "description": "Burdenoff TechnoSpam Microfrontend",
5
5
  "type": "module",
6
6
  "files": [
@@ -51,7 +51,7 @@
51
51
  },
52
52
  "dependencies": {
53
53
  "@apollo/client": "^4.0.11",
54
- "@burdenoff/fe-libs": "2026.801.1",
54
+ "@burdenoff/fe-libs": "2026.1029.2",
55
55
  "@codemirror/autocomplete": "6.20.3",
56
56
  "@codemirror/commands": "6.11.1",
57
57
  "@codemirror/lang-go": "6.0.1",
@@ -125,7 +125,7 @@
125
125
  "access": "public"
126
126
  },
127
127
  "overrides": {
128
- "@burdenoff/fe-libs": "2026.801.1",
128
+ "@burdenoff/fe-libs": "2026.1029.2",
129
129
  "lodash": ">=4.17.21",
130
130
  "lodash-es": ">=4.17.21",
131
131
  "dompurify": ">=3.3.4",