@iblai/mcp 1.2.3 → 1.3.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-info.d.ts","sourceRoot":"","sources":["../../src/tools/component-info.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAc7B,CAAC;
|
|
1
|
+
{"version":3,"file":"component-info.d.ts","sourceRoot":"","sources":["../../src/tools/component-info.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAc7B,CAAC;AAqiFF,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAgD9D"}
|
|
@@ -1790,6 +1790,684 @@ interface WorkflowSidebarProps {
|
|
|
1790
1790
|
\`\`\`
|
|
1791
1791
|
|
|
1792
1792
|
**File Location**: \`packages/web-containers/src/components/workflows/workflow-sidebar.tsx\``,
|
|
1793
|
+
// ============================================================================
|
|
1794
|
+
// SKILLS-PROFILE COMPONENTS (from Skills SPA)
|
|
1795
|
+
// ============================================================================
|
|
1796
|
+
SkeletonMultiplier: `# SkeletonMultiplier Component
|
|
1797
|
+
|
|
1798
|
+
Renders any Skeleton component N times. Useful for loading lists of cards/rows.
|
|
1799
|
+
|
|
1800
|
+
\`\`\`typescript
|
|
1801
|
+
import { SkeletonMultiplier } from '@iblai/iblai-js/web-containers';
|
|
1802
|
+
|
|
1803
|
+
interface SkeletonMultiplierProps {
|
|
1804
|
+
Skeleton: React.ElementType;
|
|
1805
|
+
multiplier: number;
|
|
1806
|
+
}
|
|
1807
|
+
|
|
1808
|
+
<SkeletonMultiplier Skeleton={CourseCardSkeleton} multiplier={6} />
|
|
1809
|
+
\`\`\`
|
|
1810
|
+
|
|
1811
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/skeleton-multiplier.tsx\``,
|
|
1812
|
+
SkeletonActivityStatBox: `# SkeletonActivityStatBox Component
|
|
1813
|
+
|
|
1814
|
+
Loading placeholder for a single activity stat tile (value + label) on the profile activity page.
|
|
1815
|
+
|
|
1816
|
+
\`\`\`typescript
|
|
1817
|
+
import { SkeletonActivityStatBox } from '@iblai/iblai-js/web-containers';
|
|
1818
|
+
|
|
1819
|
+
<SkeletonActivityStatBox />
|
|
1820
|
+
\`\`\`
|
|
1821
|
+
|
|
1822
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/skeleton-activity-stat-box.tsx\``,
|
|
1823
|
+
CourseCardSkeleton: `# CourseCardSkeleton Component
|
|
1824
|
+
|
|
1825
|
+
Loading placeholder for a course card with shimmer overlay, image block, title lines and action buttons.
|
|
1826
|
+
|
|
1827
|
+
\`\`\`typescript
|
|
1828
|
+
import { CourseCardSkeleton } from '@iblai/iblai-js/web-containers';
|
|
1829
|
+
|
|
1830
|
+
<CourseCardSkeleton />
|
|
1831
|
+
\`\`\`
|
|
1832
|
+
|
|
1833
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/course-card-skeleton.tsx\``,
|
|
1834
|
+
DefaultEmptyBox: `# DefaultEmptyBox Component
|
|
1835
|
+
|
|
1836
|
+
Reusable empty-state box with an icon and message. Framework-agnostic (uses a plain img tag).
|
|
1837
|
+
|
|
1838
|
+
\`\`\`typescript
|
|
1839
|
+
import { DefaultEmptyBox } from '@iblai/iblai-js/web-containers';
|
|
1840
|
+
|
|
1841
|
+
interface DefaultEmptyBoxProps {
|
|
1842
|
+
image?: string; // defaults to '/images/empty-data-icon.svg'
|
|
1843
|
+
message?: string; // defaults to 'No data available'
|
|
1844
|
+
imageSize?: number; // defaults to 40
|
|
1845
|
+
bordered?: boolean; // defaults to true
|
|
1846
|
+
className?: string;
|
|
1847
|
+
}
|
|
1848
|
+
|
|
1849
|
+
<DefaultEmptyBox message="No credentials yet" />
|
|
1850
|
+
<DefaultEmptyBox bordered={false} image="/icons/empty-skills.svg" />
|
|
1851
|
+
\`\`\`
|
|
1852
|
+
|
|
1853
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/default-empty-box.tsx\``,
|
|
1854
|
+
ProfileTabs: `# ProfileTabs Component
|
|
1855
|
+
|
|
1856
|
+
Horizontal scrollable tab bar for the profile section of the Skills SPA. Uses next/link and next/navigation — import from the \`/next\` entry point.
|
|
1857
|
+
|
|
1858
|
+
\`\`\`typescript
|
|
1859
|
+
import { ProfileTabs } from '@iblai/iblai-js/web-containers/next';
|
|
1860
|
+
|
|
1861
|
+
interface ProfileTabItem {
|
|
1862
|
+
name: string;
|
|
1863
|
+
href: string;
|
|
1864
|
+
}
|
|
1865
|
+
|
|
1866
|
+
interface ProfileTabsProps {
|
|
1867
|
+
tabs?: ProfileTabItem[]; // defaults to the skills SPA tab set
|
|
1868
|
+
basePath?: string; // defaults to '/profile'
|
|
1869
|
+
}
|
|
1870
|
+
|
|
1871
|
+
// Default skills profile tabs
|
|
1872
|
+
<ProfileTabs />
|
|
1873
|
+
|
|
1874
|
+
// Custom tabs
|
|
1875
|
+
<ProfileTabs
|
|
1876
|
+
basePath="/profile"
|
|
1877
|
+
tabs={[
|
|
1878
|
+
{ name: 'Activity', href: '/profile' },
|
|
1879
|
+
{ name: 'Skills', href: '/profile/skills' },
|
|
1880
|
+
]}
|
|
1881
|
+
/>
|
|
1882
|
+
\`\`\`
|
|
1883
|
+
|
|
1884
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/profile-tabs.tsx\``,
|
|
1885
|
+
CourseBox: `# CourseBox Component
|
|
1886
|
+
|
|
1887
|
+
Clickable course card (image + title pill) used across the Skills SPA profile/discover screens. Pure presentation — the caller resolves the image URL from their own config and passes it via props. Uses next/link + next/image, so import from the \`/next\` entry.
|
|
1888
|
+
|
|
1889
|
+
\`\`\`typescript
|
|
1890
|
+
import { CourseBox } from '@iblai/iblai-js/web-containers/next';
|
|
1891
|
+
|
|
1892
|
+
interface CourseBoxCourse {
|
|
1893
|
+
course_id: string;
|
|
1894
|
+
name: string;
|
|
1895
|
+
}
|
|
1896
|
+
|
|
1897
|
+
interface CourseBoxProps<TCourse extends CourseBoxCourse> {
|
|
1898
|
+
course: TCourse;
|
|
1899
|
+
imageSrc: string; // pre-resolved absolute URL
|
|
1900
|
+
fallbackImageSrc: string; // used on <img onError>
|
|
1901
|
+
href?: string; // defaults to \`/courses/{course_id}\`
|
|
1902
|
+
label?: string; // pill label, defaults to "course"
|
|
1903
|
+
}
|
|
1904
|
+
|
|
1905
|
+
<CourseBox
|
|
1906
|
+
course={course}
|
|
1907
|
+
imageSrc={resolveCourseImage(course)}
|
|
1908
|
+
fallbackImageSrc={getRandomCourseImage()}
|
|
1909
|
+
/>
|
|
1910
|
+
\`\`\`
|
|
1911
|
+
|
|
1912
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/course-box.tsx\``,
|
|
1913
|
+
CredentialMiniBox: `# CredentialMiniBox Component
|
|
1914
|
+
|
|
1915
|
+
Small credential tile (icon + name + course + issued date). Uses next/image so import from the \`/next\` entry.
|
|
1916
|
+
|
|
1917
|
+
\`\`\`typescript
|
|
1918
|
+
import { CredentialMiniBox } from '@iblai/iblai-js/web-containers/next';
|
|
1919
|
+
import type { Assertion } from '@iblai/iblai-api';
|
|
1920
|
+
|
|
1921
|
+
interface CredentialMiniBoxProps {
|
|
1922
|
+
credential: Assertion;
|
|
1923
|
+
onClick?: () => void;
|
|
1924
|
+
minified?: boolean;
|
|
1925
|
+
iconSize?: number;
|
|
1926
|
+
defaultImage?: string; // fallback badge icon
|
|
1927
|
+
}
|
|
1928
|
+
|
|
1929
|
+
<CredentialMiniBox credential={assertion} onClick={() => setOpen(assertion)} />
|
|
1930
|
+
\`\`\`
|
|
1931
|
+
|
|
1932
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/credential-mini-box.tsx\``,
|
|
1933
|
+
CredentialMiniBoxSkeleton: `# CredentialMiniBoxSkeleton Component
|
|
1934
|
+
|
|
1935
|
+
Loading placeholder for CredentialMiniBox.
|
|
1936
|
+
|
|
1937
|
+
\`\`\`typescript
|
|
1938
|
+
import { CredentialMiniBoxSkeleton } from '@iblai/iblai-js/web-containers';
|
|
1939
|
+
|
|
1940
|
+
<CredentialMiniBoxSkeleton />
|
|
1941
|
+
\`\`\`
|
|
1942
|
+
|
|
1943
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/credential-mini-box-skeleton.tsx\``,
|
|
1944
|
+
CredentialDetailModal: `# CredentialDetailModal Component
|
|
1945
|
+
|
|
1946
|
+
Full-screen modal showing credential badge, course, issuer, issue date and a Download button. Pure presentational — caller supplies download behaviour via \`onDownload\`.
|
|
1947
|
+
|
|
1948
|
+
\`\`\`typescript
|
|
1949
|
+
import { CredentialDetailModal } from '@iblai/iblai-js/web-containers/next';
|
|
1950
|
+
import type { CredentialDetailAssertion } from '@iblai/iblai-js/web-containers/next';
|
|
1951
|
+
|
|
1952
|
+
interface CredentialDetailModalProps {
|
|
1953
|
+
credential: CredentialDetailAssertion | null;
|
|
1954
|
+
onClose: () => void;
|
|
1955
|
+
defaultImage?: string;
|
|
1956
|
+
courseFallbackImage?: string;
|
|
1957
|
+
onDownload?: (element: HTMLDivElement | null) => void;
|
|
1958
|
+
recipientTitle?: string;
|
|
1959
|
+
}
|
|
1960
|
+
|
|
1961
|
+
<CredentialDetailModal
|
|
1962
|
+
credential={selected}
|
|
1963
|
+
onClose={() => setSelected(null)}
|
|
1964
|
+
onDownload={(el) => printElement(el)}
|
|
1965
|
+
/>
|
|
1966
|
+
\`\`\`
|
|
1967
|
+
|
|
1968
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/credential-detail-modal.tsx\``,
|
|
1969
|
+
SkillBox: `# SkillBox Component
|
|
1970
|
+
|
|
1971
|
+
Skill tile with name, circular level indicator (1-5), and star. Pure presentational — accepts any skill shape matching \`{ id?, name, level? }\`.
|
|
1972
|
+
|
|
1973
|
+
\`\`\`typescript
|
|
1974
|
+
import { SkillBox } from '@iblai/iblai-js/web-containers';
|
|
1975
|
+
|
|
1976
|
+
interface SkillBoxSkill {
|
|
1977
|
+
id?: string | number;
|
|
1978
|
+
name: string;
|
|
1979
|
+
level?: number;
|
|
1980
|
+
}
|
|
1981
|
+
|
|
1982
|
+
<SkillBox skill={skill} onSkillClick={(s) => setSelected(s)} />
|
|
1983
|
+
<SkillBox skill={skill} showRating={false} />
|
|
1984
|
+
\`\`\`
|
|
1985
|
+
|
|
1986
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/skill-box.tsx\``,
|
|
1987
|
+
SkeletonSkillBox: `# SkeletonSkillBox Component
|
|
1988
|
+
|
|
1989
|
+
Loading placeholder for SkillBox.
|
|
1990
|
+
|
|
1991
|
+
\`\`\`typescript
|
|
1992
|
+
import { SkeletonSkillBox } from '@iblai/iblai-js/web-containers';
|
|
1993
|
+
|
|
1994
|
+
<SkeletonSkillBox />
|
|
1995
|
+
\`\`\`
|
|
1996
|
+
|
|
1997
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/skeleton-skill-box.tsx\``,
|
|
1998
|
+
SkillDetailModal: `# SkillDetailModal Component
|
|
1999
|
+
|
|
2000
|
+
Modal that lets the user rate their expertise in a skill on a 1-5 scale. Fully controlled via callbacks.
|
|
2001
|
+
|
|
2002
|
+
\`\`\`typescript
|
|
2003
|
+
import { SkillDetailModal } from '@iblai/iblai-js/web-containers';
|
|
2004
|
+
|
|
2005
|
+
interface SkillDetailModalProps {
|
|
2006
|
+
skill: { name: string; rating: number };
|
|
2007
|
+
updatingSkill?: boolean;
|
|
2008
|
+
deletingSkill?: boolean;
|
|
2009
|
+
onClose: () => void;
|
|
2010
|
+
onRatingChange?: (rating: number) => void;
|
|
2011
|
+
onDeleteSkill?: () => void;
|
|
2012
|
+
}
|
|
2013
|
+
|
|
2014
|
+
<SkillDetailModal
|
|
2015
|
+
skill={{ name: 'TypeScript', rating: 3 }}
|
|
2016
|
+
onClose={closeModal}
|
|
2017
|
+
onRatingChange={(r) => mutate({ rating: r })}
|
|
2018
|
+
onDeleteSkill={() => deleteSkill()}
|
|
2019
|
+
/>
|
|
2020
|
+
\`\`\`
|
|
2021
|
+
|
|
2022
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/skill-detail-modal.tsx\``,
|
|
2023
|
+
SkeletonPathwayBox: `# SkeletonPathwayBox Component
|
|
2024
|
+
|
|
2025
|
+
Loading placeholder for a pathway card (also reused by the programs grid). Pure presentational.
|
|
2026
|
+
|
|
2027
|
+
\`\`\`typescript
|
|
2028
|
+
import { SkeletonPathwayBox } from '@iblai/iblai-js/web-containers';
|
|
2029
|
+
|
|
2030
|
+
<SkeletonPathwayBox />
|
|
2031
|
+
\`\`\`
|
|
2032
|
+
|
|
2033
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/skeleton-pathway-box.tsx\``,
|
|
2034
|
+
UserAvatar: `# UserAvatar Component
|
|
2035
|
+
|
|
2036
|
+
Avatar for the logged-in user. Reads metadata via the shared \`useUserMetadata\` hook and falls back through profile image → Gravatar → initials.
|
|
2037
|
+
|
|
2038
|
+
\`\`\`typescript
|
|
2039
|
+
import { UserAvatar } from '@iblai/iblai-js/web-containers';
|
|
2040
|
+
|
|
2041
|
+
<UserAvatar size={48} enableGravatar={false} containerClassName="ring-2" />
|
|
2042
|
+
\`\`\`
|
|
2043
|
+
|
|
2044
|
+
Pass \`enableGravatar={false}\` for tenants that disable Gravatar. The component requires the data-layer Redux store to be available (because of useUserMetadata).
|
|
2045
|
+
|
|
2046
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/user-avatar.tsx\``,
|
|
2047
|
+
ProfileTimeChart: `# ProfileTimeChart Component
|
|
2048
|
+
|
|
2049
|
+
Presentational 7-day time-spent bar chart (recharts). Caller supplies the data and loading flag.
|
|
2050
|
+
|
|
2051
|
+
\`\`\`typescript
|
|
2052
|
+
import { ProfileTimeChart } from '@iblai/iblai-js/web-containers';
|
|
2053
|
+
import { useProfileTimeSpent } from '@iblai/iblai-js/web-containers';
|
|
2054
|
+
|
|
2055
|
+
const { timeSpent, timeSpentLoading } = useProfileTimeSpent();
|
|
2056
|
+
<ProfileTimeChart data={timeSpent} loading={timeSpentLoading} />
|
|
2057
|
+
\`\`\`
|
|
2058
|
+
|
|
2059
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/profile-time-chart.tsx\``,
|
|
2060
|
+
SkillLeaderboardChart: `# SkillLeaderboardChart Component
|
|
2061
|
+
|
|
2062
|
+
Presentational percentile/skill-points curve chart with the user's position highlighted. Pure props in.
|
|
2063
|
+
|
|
2064
|
+
\`\`\`typescript
|
|
2065
|
+
import { SkillLeaderboardChart } from '@iblai/iblai-js/web-containers';
|
|
2066
|
+
|
|
2067
|
+
<SkillLeaderboardChart userSkillPoints={250} />
|
|
2068
|
+
\`\`\`
|
|
2069
|
+
|
|
2070
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/skill-leaderboard-chart.tsx\``,
|
|
2071
|
+
CustomTooltip: `# CustomTooltip Component
|
|
2072
|
+
|
|
2073
|
+
\`@internal\` — exported only so unit tests can render it in isolation. Not part of the package's public API; consumers should render \`SkillLeaderboardChart\` instead, which wires this tooltip into the underlying \`recharts\` \`<Tooltip>\`.
|
|
2074
|
+
|
|
2075
|
+
Renders a small white card showing the hovered point's level, skill points (rounded), and percentile. Returns \`null\` when \`active\` is false or \`payload\` is empty.
|
|
2076
|
+
|
|
2077
|
+
\`\`\`typescript
|
|
2078
|
+
// Shape consumed by recharts <Tooltip content={...} />
|
|
2079
|
+
interface TooltipProps {
|
|
2080
|
+
active?: boolean;
|
|
2081
|
+
payload?: Array<{
|
|
2082
|
+
value: number;
|
|
2083
|
+
payload: { percentile: number; value: number; level: string; description: string };
|
|
2084
|
+
}>;
|
|
2085
|
+
label?: string | number;
|
|
2086
|
+
}
|
|
2087
|
+
|
|
2088
|
+
// Internal usage inside SkillLeaderboardChart:
|
|
2089
|
+
<Tooltip content={<CustomTooltip />} />
|
|
2090
|
+
\`\`\`
|
|
2091
|
+
|
|
2092
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/skill-leaderboard-chart.tsx\``,
|
|
2093
|
+
ProfileInfoCards: `# ProfileInfoCards Component
|
|
2094
|
+
|
|
2095
|
+
Grid of 4 profile info cards (Last Accessed, Joined, Total Time Spent, Top Content). Presentational. Uses next/link, so it ships from \`@iblai/iblai-js/web-containers/next\`.
|
|
2096
|
+
|
|
2097
|
+
\`\`\`typescript
|
|
2098
|
+
import { ProfileInfoCards } from '@iblai/iblai-js/web-containers/next';
|
|
2099
|
+
|
|
2100
|
+
<ProfileInfoCards
|
|
2101
|
+
userInfo={{ last_activity, date_joined, total_time_spent }}
|
|
2102
|
+
topContent={{ name, course_id, time_invested }}
|
|
2103
|
+
loading={isLoading}
|
|
2104
|
+
topContentLoading={topContentLoading}
|
|
2105
|
+
courseHrefTemplate="/courses/{courseId}"
|
|
2106
|
+
/>
|
|
2107
|
+
\`\`\`
|
|
2108
|
+
|
|
2109
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/profile-info-cards.tsx\``,
|
|
2110
|
+
SkeletonProfileInfoCard: `# SkeletonProfileInfoCard Component
|
|
2111
|
+
|
|
2112
|
+
Loading placeholder for a single ProfileInfoCard. Pure presentational.
|
|
2113
|
+
|
|
2114
|
+
\`\`\`typescript
|
|
2115
|
+
import { SkeletonProfileInfoCard } from '@iblai/iblai-js/web-containers';
|
|
2116
|
+
|
|
2117
|
+
<SkeletonProfileInfoCard />
|
|
2118
|
+
\`\`\`
|
|
2119
|
+
|
|
2120
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/skeleton-profile-info-card.tsx\``,
|
|
2121
|
+
AddSkillDialog: `# AddSkillDialog Component
|
|
2122
|
+
|
|
2123
|
+
Debounced "add skill" search dialog. Presentational — caller wires the search and update operations via callbacks. Typically backed by \`useProfileSkills\`.
|
|
2124
|
+
|
|
2125
|
+
\`\`\`typescript
|
|
2126
|
+
import { AddSkillDialog, useProfileSkills } from '@iblai/iblai-js/web-containers';
|
|
2127
|
+
|
|
2128
|
+
const skills = useProfileSkills();
|
|
2129
|
+
|
|
2130
|
+
<AddSkillDialog
|
|
2131
|
+
open={open}
|
|
2132
|
+
onOpenChange={setOpen}
|
|
2133
|
+
type="self-reported"
|
|
2134
|
+
fetchedSkills={skills.fetchedSkills}
|
|
2135
|
+
isFetchingSkills={skills.isFetchingSkills}
|
|
2136
|
+
isFetchingSkillsError={skills.isFetchingSkillsError}
|
|
2137
|
+
updatingSkill={skills.updatingSkill}
|
|
2138
|
+
onSearch={(q) => skills.handleFetchAllSkills(q)}
|
|
2139
|
+
onAddSkill={(skill) => skills.handleSkillsUpdate(/* ... */)}
|
|
2140
|
+
/>
|
|
2141
|
+
\`\`\`
|
|
2142
|
+
|
|
2143
|
+
Search input is debounced (default 500ms, configurable via \`searchDebounceMs\`).
|
|
2144
|
+
|
|
2145
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/add-skill-dialog.tsx\``,
|
|
2146
|
+
SkeletonAddSkillsLoading: `# SkeletonAddSkillsLoading Component
|
|
2147
|
+
|
|
2148
|
+
Loading placeholder row for the AddSkillDialog search results. Pure presentational.
|
|
2149
|
+
|
|
2150
|
+
\`\`\`typescript
|
|
2151
|
+
import { SkeletonAddSkillsLoading } from '@iblai/iblai-js/web-containers';
|
|
2152
|
+
|
|
2153
|
+
<SkeletonAddSkillsLoading />
|
|
2154
|
+
\`\`\`
|
|
2155
|
+
|
|
2156
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/skeleton-add-skills-loading.tsx\``,
|
|
2157
|
+
PathwayDetailModal: `# PathwayDetailModal Component
|
|
2158
|
+
|
|
2159
|
+
Detail modal for a single pathway showing its courses, completion bar, and Enroll button. Presentational. Uses next/image, so it ships from \`@iblai/iblai-js/web-containers/next\`.
|
|
2160
|
+
|
|
2161
|
+
\`\`\`typescript
|
|
2162
|
+
import { PathwayDetailModal, useProfilePathways } from '@iblai/iblai-js/web-containers/next';
|
|
2163
|
+
|
|
2164
|
+
<PathwayDetailModal
|
|
2165
|
+
pathway={selectedPathway}
|
|
2166
|
+
paths={pathwayCourses}
|
|
2167
|
+
pathwayCompletion={completion}
|
|
2168
|
+
enrollmentStatus={isEnrolled}
|
|
2169
|
+
bannerImageSrc={lmsUrl + pathway.metadata?.banner_image_asset_path}
|
|
2170
|
+
onClose={() => setSelectedPathway(null)}
|
|
2171
|
+
onEnroll={(p) => enrollMutation(p)}
|
|
2172
|
+
onCourseClick={(course) => router.push(\`/courses/\${course.course_id}\`)}
|
|
2173
|
+
/>
|
|
2174
|
+
\`\`\`
|
|
2175
|
+
|
|
2176
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/pathway-detail-modal.tsx\``,
|
|
2177
|
+
CreatePathwayModal: `# CreatePathwayModal Component
|
|
2178
|
+
|
|
2179
|
+
"Create New Pathway" wizard modal. Owns its local form state (name, description, subject, cover image, selected courses/resources, search query). Caller handles search via \`onSearchChange\` and persistence via \`onSave\`. Uses next/image, so it ships from \`@iblai/iblai-js/web-containers/next\`.
|
|
2180
|
+
|
|
2181
|
+
\`\`\`typescript
|
|
2182
|
+
import { CreatePathwayModal, type CreatePathwayFormData } from '@iblai/iblai-js/web-containers/next';
|
|
2183
|
+
|
|
2184
|
+
<CreatePathwayModal
|
|
2185
|
+
open={open}
|
|
2186
|
+
onOpenChange={setOpen}
|
|
2187
|
+
searchedCourses={searchResults.courses}
|
|
2188
|
+
searchedResources={searchResults.resources}
|
|
2189
|
+
isCoursesLoading={isLoading}
|
|
2190
|
+
onSearchChange={(q) => debouncedSearch(q)}
|
|
2191
|
+
onSave={(form: CreatePathwayFormData) => createPathwayMutation(buildPayload(form))}
|
|
2192
|
+
/>
|
|
2193
|
+
\`\`\`
|
|
2194
|
+
|
|
2195
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/create-pathway-modal.tsx\``,
|
|
2196
|
+
SkeletonCreatePathwaySearchList: `# SkeletonCreatePathwaySearchList Component
|
|
2197
|
+
|
|
2198
|
+
Loading placeholder row for the CreatePathwayModal content search list. Pure presentational.
|
|
2199
|
+
|
|
2200
|
+
\`\`\`typescript
|
|
2201
|
+
import { SkeletonCreatePathwaySearchList } from '@iblai/iblai-js/web-containers';
|
|
2202
|
+
|
|
2203
|
+
<SkeletonCreatePathwaySearchList />
|
|
2204
|
+
\`\`\`
|
|
2205
|
+
|
|
2206
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/skeleton-create-pathway-search-list.tsx\``,
|
|
2207
|
+
ProgramDetailModal: `# ProgramDetailModal Component
|
|
2208
|
+
|
|
2209
|
+
Detail modal for a single program with optional admin Settings tab. Caller supplies the courses, completion, enrollment state, banner image, initial settings, and the showSettings (admin) flag. Uses next/image, so it ships from \`@iblai/iblai-js/web-containers/next\`.
|
|
2210
|
+
|
|
2211
|
+
\`\`\`typescript
|
|
2212
|
+
import {
|
|
2213
|
+
ProgramDetailModal,
|
|
2214
|
+
EMPTY_PROGRAM_SETTINGS_FORM,
|
|
2215
|
+
type ProgramSettingsFormData,
|
|
2216
|
+
} from '@iblai/iblai-js/web-containers/next';
|
|
2217
|
+
|
|
2218
|
+
<ProgramDetailModal
|
|
2219
|
+
program={selectedProgram}
|
|
2220
|
+
courses={programCourses}
|
|
2221
|
+
programCompletion={completion}
|
|
2222
|
+
enrollmentStatus={isEnrolled}
|
|
2223
|
+
showSettings={isAdmin}
|
|
2224
|
+
initialSettings={metadata?.formData}
|
|
2225
|
+
onClose={() => setSelected(null)}
|
|
2226
|
+
onEnroll={(p) => enrollMutation(p)}
|
|
2227
|
+
onCourseClick={(id) => router.push(\`/courses/\${id}\`)}
|
|
2228
|
+
onSaveSettings={(s: ProgramSettingsFormData) => updateMetadataMutation(s)}
|
|
2229
|
+
/>
|
|
2230
|
+
\`\`\`
|
|
2231
|
+
|
|
2232
|
+
The Settings form is owned internally; \`initialSettings\` re-initializes when the prop changes.
|
|
2233
|
+
|
|
2234
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/program-detail-modal.tsx\``,
|
|
2235
|
+
CredentialBox: `# CredentialBox Component
|
|
2236
|
+
|
|
2237
|
+
Public-profile credentials grid using CredentialMiniBox tiles. Presentational — pass the credentials list from \`useProfileCredentials\`.
|
|
2238
|
+
|
|
2239
|
+
\`\`\`typescript
|
|
2240
|
+
import { CredentialBox, useProfileCredentials } from '@iblai/iblai-js/web-containers';
|
|
2241
|
+
|
|
2242
|
+
const { fetchedCredentials, isLoading, isError } = useProfileCredentials({ search: '' });
|
|
2243
|
+
<CredentialBox credentials={fetchedCredentials} isLoading={isLoading} isError={isError} />
|
|
2244
|
+
\`\`\`
|
|
2245
|
+
|
|
2246
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/credential-box.tsx\``,
|
|
2247
|
+
EducationBox: `# EducationBox Component
|
|
2248
|
+
|
|
2249
|
+
Public-profile education list with edit buttons. Presentational. Caller wires the EducationDialog open state via \`onEditEducation\`.
|
|
2250
|
+
|
|
2251
|
+
\`\`\`typescript
|
|
2252
|
+
import { EducationBox } from '@iblai/iblai-js/web-containers';
|
|
2253
|
+
import { useGetUserEducationQuery } from '@iblai/data-layer';
|
|
2254
|
+
|
|
2255
|
+
const { data, isLoading, error } = useGetUserEducationQuery([{ org, username }]);
|
|
2256
|
+
<EducationBox
|
|
2257
|
+
education={data}
|
|
2258
|
+
isLoading={isLoading}
|
|
2259
|
+
isError={!!error}
|
|
2260
|
+
onEditEducation={(e) => setEditing(e)}
|
|
2261
|
+
/>
|
|
2262
|
+
\`\`\`
|
|
2263
|
+
|
|
2264
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/education-box.tsx\``,
|
|
2265
|
+
ExperienceBox: `# ExperienceBox Component
|
|
2266
|
+
|
|
2267
|
+
Public-profile work experience list with edit buttons. Presentational. Mirrors EducationBox.
|
|
2268
|
+
|
|
2269
|
+
\`\`\`typescript
|
|
2270
|
+
import { ExperienceBox } from '@iblai/iblai-js/web-containers';
|
|
2271
|
+
|
|
2272
|
+
<ExperienceBox
|
|
2273
|
+
experience={data}
|
|
2274
|
+
isLoading={isLoading}
|
|
2275
|
+
isError={isError}
|
|
2276
|
+
onEditExperience={(x) => setEditing(x)}
|
|
2277
|
+
/>
|
|
2278
|
+
\`\`\`
|
|
2279
|
+
|
|
2280
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/experience-box.tsx\``,
|
|
2281
|
+
SkillsBox: `# SkillsBox Component
|
|
2282
|
+
|
|
2283
|
+
Public-profile skills grid split into Earned, Self-Reported, and Desired sections. Presentational — pass the three RTK query payloads from \`useProfileSkills\`.
|
|
2284
|
+
|
|
2285
|
+
\`\`\`typescript
|
|
2286
|
+
import { SkillsBox, useProfileSkills } from '@iblai/iblai-js/web-containers';
|
|
2287
|
+
|
|
2288
|
+
const skills = useProfileSkills();
|
|
2289
|
+
<SkillsBox
|
|
2290
|
+
earnedSkills={skills.earnedSkills}
|
|
2291
|
+
earnedSkillsLoading={skills.earnedSkillsLoading}
|
|
2292
|
+
earnedSkillsError={skills.earnedSkillsError}
|
|
2293
|
+
selfReportedSkills={skills.selfReportedSkills}
|
|
2294
|
+
selfReportedSkillsLoading={skills.selfReportedSkillsLoading}
|
|
2295
|
+
selfReportedSkillsError={skills.selfReportedSkillsError}
|
|
2296
|
+
desiredSkills={skills.desiredSkills}
|
|
2297
|
+
desiredSkillsLoading={skills.desiredSkillsLoading}
|
|
2298
|
+
desiredSkillsError={skills.desiredSkillsError}
|
|
2299
|
+
/>
|
|
2300
|
+
\`\`\`
|
|
2301
|
+
|
|
2302
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/skills-box.tsx\``,
|
|
2303
|
+
ResumeBox: `# ResumeBox Component
|
|
2304
|
+
|
|
2305
|
+
Public-profile PDF resume viewer (react-pdf) with paging, zoom, and rotation controls. Presentational — caller resolves the resume URL.
|
|
2306
|
+
|
|
2307
|
+
\`\`\`typescript
|
|
2308
|
+
import { ResumeBox } from '@iblai/iblai-js/web-containers';
|
|
2309
|
+
|
|
2310
|
+
const resumeUrl = data?.files?.find((f) => f.type === 'resume')?.url;
|
|
2311
|
+
<ResumeBox resumeUrl={resumeUrl} isLoading={isLoading} isError={isError} />
|
|
2312
|
+
\`\`\`
|
|
2313
|
+
|
|
2314
|
+
Must run client-side (\`'use client'\`).
|
|
2315
|
+
|
|
2316
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/resume-box.tsx\``,
|
|
2317
|
+
SkeletonEducationBox: `# SkeletonEducationBox Component
|
|
2318
|
+
|
|
2319
|
+
Loading placeholder for an EducationBox / ExperienceBox row. Pure presentational.
|
|
2320
|
+
|
|
2321
|
+
\`\`\`typescript
|
|
2322
|
+
import { SkeletonEducationBox } from '@iblai/iblai-js/web-containers';
|
|
2323
|
+
|
|
2324
|
+
<SkeletonEducationBox />
|
|
2325
|
+
\`\`\`
|
|
2326
|
+
|
|
2327
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/skeleton-education-box.tsx\``,
|
|
2328
|
+
MediaBox: `# MediaBox Component
|
|
2329
|
+
|
|
2330
|
+
Public-profile media uploader and uploaded-media grid. Owns the @tanstack/react-form file/link tabs internally; caller handles persistence via \`onUploadFile\` / \`onUploadLink\`. Uses next/link, so it ships from \`@iblai/iblai-js/web-containers/next\`.
|
|
2331
|
+
|
|
2332
|
+
\`\`\`typescript
|
|
2333
|
+
import { MediaBox, type UploadedFile } from '@iblai/iblai-js/web-containers/next';
|
|
2334
|
+
|
|
2335
|
+
<MediaBox
|
|
2336
|
+
uploadedMedia={mediaList}
|
|
2337
|
+
isLoading={isLoading}
|
|
2338
|
+
isError={isError}
|
|
2339
|
+
isUploading={isUploading}
|
|
2340
|
+
resumeCheckboxEnabled={!isSkillsResumeFeatureHidden}
|
|
2341
|
+
onUploadFile={(file, isResume) => uploadResumeMutation({ file, isResume })}
|
|
2342
|
+
onUploadLink={(url) => uploadLinkMutation({ url })}
|
|
2343
|
+
onError={(msg) => toast.error(msg)}
|
|
2344
|
+
/>
|
|
2345
|
+
\`\`\`
|
|
2346
|
+
|
|
2347
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/media-box.tsx\``,
|
|
2348
|
+
CourseOutline: `# CourseOutline Component
|
|
2349
|
+
|
|
2350
|
+
Hierarchical course outline (chapter → lesson → sublesson) with collapsible tree + completion progress rings. Reads all state from \`CourseOutlineContext\` — the \`CourseContentLayout\` sets up the provider, or wrap manually.
|
|
2351
|
+
|
|
2352
|
+
\`\`\`typescript
|
|
2353
|
+
import { CourseOutline, CourseOutlineContext } from '@iblai/iblai-js/web-containers';
|
|
2354
|
+
|
|
2355
|
+
<CourseOutlineContext.Provider value={{ courseOutline, toggleModule, ... }}>
|
|
2356
|
+
<CourseOutline />
|
|
2357
|
+
</CourseOutlineContext.Provider>
|
|
2358
|
+
\`\`\`
|
|
2359
|
+
|
|
2360
|
+
**File Location**: \`packages/web-containers/src/components/course-content/course-outline.tsx\``,
|
|
2361
|
+
CourseOutlineDrawer: `# CourseOutlineDrawer Component
|
|
2362
|
+
|
|
2363
|
+
Mobile drawer wrapping \`<CourseOutline />\` in a shadcn Sheet. Reads open state from \`CourseOutlineContext\`.
|
|
2364
|
+
|
|
2365
|
+
\`\`\`typescript
|
|
2366
|
+
import { CourseOutlineDrawer } from '@iblai/iblai-js/web-containers';
|
|
2367
|
+
|
|
2368
|
+
<CourseOutlineDrawer />
|
|
2369
|
+
\`\`\`
|
|
2370
|
+
|
|
2371
|
+
**File Location**: \`packages/web-containers/src/components/course-content/course-outline-drawer.tsx\``,
|
|
2372
|
+
TimedExam: `# TimedExam Component
|
|
2373
|
+
|
|
2374
|
+
Timed-exam overlay + countdown for edX proctored subsections. Reads \`examInfo\` from \`EdxIframeContext\` and drives \`useStartExamMutation\` / \`useUpdateExamAttemptMutation\` / \`useLazyGetExamInfoQuery\` from \`@iblai/data-layer\`. Errors are logged via \`console.error\`; no internal toasts.
|
|
2375
|
+
|
|
2376
|
+
\`\`\`typescript
|
|
2377
|
+
import { TimedExam } from '@iblai/iblai-js/web-containers';
|
|
2378
|
+
|
|
2379
|
+
{examInfo && <TimedExam />}
|
|
2380
|
+
\`\`\`
|
|
2381
|
+
|
|
2382
|
+
**File Location**: \`packages/web-containers/src/components/course-content/timed-exam.tsx\``,
|
|
2383
|
+
CourseAccessGuard: `# CourseAccessGuard Component
|
|
2384
|
+
|
|
2385
|
+
Guards course content rendering on tenant / loading-state. Shows a spinner while loading, calls \`onUnauthorized\` if the course's \`platform_key\` doesn't match the current tenant (and isn't \`'main'\`), and calls \`onNotFound\` on failure with no course. Otherwise renders children. Routing is the caller's responsibility.
|
|
2386
|
+
|
|
2387
|
+
\`\`\`typescript
|
|
2388
|
+
import { CourseAccessGuard } from '@iblai/iblai-js/web-containers';
|
|
2389
|
+
|
|
2390
|
+
<CourseAccessGuard
|
|
2391
|
+
course={course}
|
|
2392
|
+
courseInfoLoadingState={courseInfoLoadingState}
|
|
2393
|
+
currentTenant={getTenant()}
|
|
2394
|
+
onUnauthorized={() => router.push('/error/403')}
|
|
2395
|
+
onNotFound={() => router.push('/error/404')}
|
|
2396
|
+
>
|
|
2397
|
+
{children}
|
|
2398
|
+
</CourseAccessGuard>
|
|
2399
|
+
\`\`\`
|
|
2400
|
+
|
|
2401
|
+
**File Location**: \`packages/web-containers/src/components/course-content/course-access-guard.tsx\``,
|
|
2402
|
+
CourseContentLoading: `# CourseContentLoading Component
|
|
2403
|
+
|
|
2404
|
+
Loading skeleton shown while \`CourseContentLayout\` is hydrating. Mirrors skillsai's \`app/course-content/[course_id]/loading.tsx\`.
|
|
2405
|
+
|
|
2406
|
+
\`\`\`typescript
|
|
2407
|
+
import { CourseContentLoading } from '@iblai/iblai-js/web-containers';
|
|
2408
|
+
|
|
2409
|
+
<CourseContentLoading />
|
|
2410
|
+
\`\`\`
|
|
2411
|
+
|
|
2412
|
+
**File Location**: \`packages/web-containers/src/components/course-content/course-content-loading.tsx\``,
|
|
2413
|
+
EdxIframe: `# EdxIframe Component
|
|
2414
|
+
|
|
2415
|
+
The edX iframe shell with postMessage JWT handshake, exam detection, prev/next lesson buttons, and debounced URL resolution. Reads state from \`EdxIframeContext\` + \`CourseOutlineContext\`; caller provides LMS/MFE/legacy LMS base URLs as props. Uses \`next/navigation\` (\`useSearchParams\`), so it ships from \`@iblai/iblai-js/web-containers/next\`.
|
|
2416
|
+
|
|
2417
|
+
\`\`\`typescript
|
|
2418
|
+
import { EdxIframe } from '@iblai/iblai-js/web-containers/next';
|
|
2419
|
+
|
|
2420
|
+
<EdxIframe
|
|
2421
|
+
lmsUrl="https://lms.example.com"
|
|
2422
|
+
mfeUrl="https://apps.example.com"
|
|
2423
|
+
legacyLmsUrl="https://legacy.example.com"
|
|
2424
|
+
edxTokenKey="edx_token"
|
|
2425
|
+
/>
|
|
2426
|
+
\`\`\`
|
|
2427
|
+
|
|
2428
|
+
**File Location**: \`packages/web-containers/src/components/course-content/edx-iframe.tsx\``,
|
|
2429
|
+
CourseContentTabPage: `# CourseContentTabPage Component
|
|
2430
|
+
|
|
2431
|
+
A single component replacing skillsai's seven per-tab \`page.tsx\` files under \`app/course-content/[course_id]/*\`. Sets \`activeTab\` on the \`EdxIframeContext\` once on mount and renders \`<EdxIframe />\`. Requires the same LMS/MFE/legacy URL props as \`EdxIframe\`.
|
|
2432
|
+
|
|
2433
|
+
\`\`\`typescript
|
|
2434
|
+
import { CourseContentTabPage } from '@iblai/iblai-js/web-containers/next';
|
|
2435
|
+
|
|
2436
|
+
// e.g. in app/course-content/[course_id]/progress/page.tsx
|
|
2437
|
+
<CourseContentTabPage
|
|
2438
|
+
tab="progress"
|
|
2439
|
+
lmsUrl={lmsUrl}
|
|
2440
|
+
mfeUrl={mfeUrl}
|
|
2441
|
+
legacyLmsUrl={legacyLmsUrl}
|
|
2442
|
+
/>
|
|
2443
|
+
\`\`\`
|
|
2444
|
+
|
|
2445
|
+
**File Location**: \`packages/web-containers/src/components/course-content/course-content-tab-page.tsx\``,
|
|
2446
|
+
CourseContentLayout: `# CourseContentLayout Component
|
|
2447
|
+
|
|
2448
|
+
Top-level layout for the course content experience. Owns the \`CourseOutlineContext\` + \`EdxIframeContext\` providers, wires \`useCourseDetail\` / \`useEdxIframe\`, renders the sidebar + tab strip + breadcrumb + progress indicator, and gates access via \`CourseAccessGuard\`. \`children\` is typically a \`<CourseContentTabPage />\`. Uses \`next/link\` and \`next/navigation\`, so it ships from \`@iblai/iblai-js/web-containers/next\`.
|
|
2449
|
+
|
|
2450
|
+
\`\`\`typescript
|
|
2451
|
+
import { CourseContentLayout } from '@iblai/iblai-js/web-containers/next';
|
|
2452
|
+
|
|
2453
|
+
<CourseContentLayout
|
|
2454
|
+
courseId={courseId}
|
|
2455
|
+
isPlatformAdmin={isPlatformAdmin}
|
|
2456
|
+
currentTenant={getTenant()}
|
|
2457
|
+
dmUrl={config.urls.dm()}
|
|
2458
|
+
courseEligibilityEnabled={config.settings.courseEligibilityEnabled()}
|
|
2459
|
+
onUnauthorized={() => router.push('/error/403')}
|
|
2460
|
+
onNotFound={() => router.push('/error/404')}
|
|
2461
|
+
onNavigate={(href, opts) => (opts?.external ? window.location.assign(href) : router.push(href))}
|
|
2462
|
+
onError={(msg) => toast.error(msg)}
|
|
2463
|
+
onSuccess={(msg) => toast.success(msg)}
|
|
2464
|
+
onCourseMentorChange={(uuid) => setCourseMentor(uuid)}
|
|
2465
|
+
>
|
|
2466
|
+
{children}
|
|
2467
|
+
</CourseContentLayout>
|
|
2468
|
+
\`\`\`
|
|
2469
|
+
|
|
2470
|
+
**File Location**: \`packages/web-containers/src/components/course-content/course-content-layout.tsx\``,
|
|
1793
2471
|
};
|
|
1794
2472
|
const UI_PRIMITIVES = [
|
|
1795
2473
|
'Button',
|
|
@@ -1838,7 +2516,18 @@ export function getComponentInfo(componentName) {
|
|
|
1838
2516
|
'AppSidebar',
|
|
1839
2517
|
'NavBar',
|
|
1840
2518
|
'ConversationStarters',
|
|
1841
|
-
,
|
|
2519
|
+
'ProfileTabs',
|
|
2520
|
+
'CourseBox',
|
|
2521
|
+
'CredentialMiniBox',
|
|
2522
|
+
'CredentialDetailModal',
|
|
2523
|
+
'ProfileInfoCards',
|
|
2524
|
+
'PathwayDetailModal',
|
|
2525
|
+
'CreatePathwayModal',
|
|
2526
|
+
'ProgramDetailModal',
|
|
2527
|
+
'MediaBox',
|
|
2528
|
+
'EdxIframe',
|
|
2529
|
+
'CourseContentTabPage',
|
|
2530
|
+
'CourseContentLayout',
|
|
1842
2531
|
];
|
|
1843
2532
|
return `Component "${componentName}" not found.
|
|
1844
2533
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-info.js","sourceRoot":"","sources":["../../src/tools/component-info.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"component-info.js","sourceRoot":"","sources":["../../src/tools/component-info.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-info.d.ts","sourceRoot":"","sources":["../../src/tools/hook-info.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAcxB,CAAC;
|
|
1
|
+
{"version":3,"file":"hook-info.d.ts","sourceRoot":"","sources":["../../src/tools/hook-info.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAcxB,CAAC;AA4xEF,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAuIpD"}
|
package/dist/tools/hook-info.js
CHANGED
|
@@ -328,6 +328,41 @@ const {
|
|
|
328
328
|
\`\`\`
|
|
329
329
|
|
|
330
330
|
**File Location**: \`packages/web-utils/src/features/tracking/use-time-tracker.ts\``,
|
|
331
|
+
useAuditLog: `# useAuditLog Hook
|
|
332
|
+
|
|
333
|
+
Fetches paginated audit logs for a tenant with filtering by action, actor, date range, and optional mentor scope. Wraps \`useGetAuditLogsQuery\` and manages local filter/pagination state.
|
|
334
|
+
|
|
335
|
+
\`\`\`typescript
|
|
336
|
+
import { useAuditLog } from '@iblai/iblai-js/web-containers';
|
|
337
|
+
|
|
338
|
+
const {
|
|
339
|
+
data, // AuditLogsResponse (results + count)
|
|
340
|
+
isLoading,
|
|
341
|
+
isFetching,
|
|
342
|
+
error,
|
|
343
|
+
page,
|
|
344
|
+
setPage,
|
|
345
|
+
limit, // Fixed page size (20)
|
|
346
|
+
totalPages,
|
|
347
|
+
actionFilter, // number | undefined
|
|
348
|
+
setActionFilter,
|
|
349
|
+
actorFilter, // actor username search string
|
|
350
|
+
setActorFilter,
|
|
351
|
+
dateRange, // { from?: Date; to?: Date } | undefined
|
|
352
|
+
setDateRange,
|
|
353
|
+
} = useAuditLog({
|
|
354
|
+
tenantKey: string,
|
|
355
|
+
userId: string,
|
|
356
|
+
mentorId?: string, // Optional: scope logs to a specific mentor
|
|
357
|
+
});
|
|
358
|
+
\`\`\`
|
|
359
|
+
|
|
360
|
+
**Behavior:**
|
|
361
|
+
- Paginated (20 per page) with offset computed from \`page\`.
|
|
362
|
+
- Dates are serialized to \`YYYY-MM-DD\` for \`from_date\` / \`to_date\` params.
|
|
363
|
+
- Only non-empty filters are sent to the API.
|
|
364
|
+
|
|
365
|
+
**File Location**: \`packages/web-containers/src/components/analytics/use-audit-log.ts\``,
|
|
331
366
|
// ============================================================================
|
|
332
367
|
// DATE/TIME HOOKS
|
|
333
368
|
// ============================================================================
|
|
@@ -1952,6 +1987,220 @@ const { data, isLoading } = useCheckAccessUnscopedQuery({
|
|
|
1952
1987
|
Prefer \`useCheckAccessQuery\` whenever the user's tenant is known.
|
|
1953
1988
|
|
|
1954
1989
|
**File Location**: \`packages/data-layer/src/features/monetization/custom-api-slice.ts\``,
|
|
1990
|
+
useCourseMetadata: `# useCourseMetadata Hook
|
|
1991
|
+
|
|
1992
|
+
Wrapper around the LMS course-metadata RTK endpoints. Returns promise-returning helpers for use inside effects/callbacks.
|
|
1993
|
+
|
|
1994
|
+
\`\`\`typescript
|
|
1995
|
+
import { useCourseMetadata } from '@iblai/iblai-js/web-containers';
|
|
1996
|
+
|
|
1997
|
+
const {
|
|
1998
|
+
handleFetchCourseMetaData,
|
|
1999
|
+
handleFetchCourseEligibility,
|
|
2000
|
+
handleFetchCourseCompletionOutlines,
|
|
2001
|
+
isLoading,
|
|
2002
|
+
isError,
|
|
2003
|
+
} = useCourseMetadata();
|
|
2004
|
+
|
|
2005
|
+
const meta = await handleFetchCourseMetaData('course-v1:org+num+run');
|
|
2006
|
+
\`\`\`
|
|
2007
|
+
|
|
2008
|
+
Backed by \`useLazyGetCourseMetaDataQuery\`, \`useLazyGetCourseEligibilityQuery\`, and \`useLazyGetCourseCompletionOutlinesQuery\` from \`@iblai/data-layer\` (LMS service).
|
|
2009
|
+
|
|
2010
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/hooks/use-course-metadata.ts\``,
|
|
2011
|
+
useUserCourses: `# useUserCourses Hook
|
|
2012
|
+
|
|
2013
|
+
Fetches the logged-in user's enrolled or assigned courses (paged), then hydrates each row with edX course metadata. Supports both API search and client-side filtering.
|
|
2014
|
+
|
|
2015
|
+
\`\`\`typescript
|
|
2016
|
+
import { useUserCourses } from '@iblai/iblai-js/web-containers';
|
|
2017
|
+
|
|
2018
|
+
const result = useUserCourses({ limit: 8, page: 1, courseType: 'enrolled', useAPISearch: false });
|
|
2019
|
+
// result.userCourses, result.isLoadingUserCourses, result.errorUserCourses, result.pagination
|
|
2020
|
+
\`\`\`
|
|
2021
|
+
|
|
2022
|
+
Reads username/tenant/userId from localStorage via the helpers shipped alongside the hook. Backed by the new \`courses\` slice in \`@iblai/data-layer\`.
|
|
2023
|
+
|
|
2024
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/hooks/use-user-courses.ts\``,
|
|
2025
|
+
useProfileCredentials: `# useProfileCredentials Hook
|
|
2026
|
+
|
|
2027
|
+
Fetches the logged-in user's credential assertions and maintains a client-side filtered list keyed off a search string.
|
|
2028
|
+
|
|
2029
|
+
\`\`\`typescript
|
|
2030
|
+
import { useProfileCredentials } from '@iblai/iblai-js/web-containers';
|
|
2031
|
+
|
|
2032
|
+
const result = useProfileCredentials({ maxCredentials: 12 });
|
|
2033
|
+
// result.filteredCredentials, result.fetchedCredentials, result.isLoading, result.isError
|
|
2034
|
+
\`\`\`
|
|
2035
|
+
|
|
2036
|
+
Backed by \`useLazyGetUserCredentialsQuery\` from \`@iblai/data-layer\`.
|
|
2037
|
+
|
|
2038
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/hooks/use-profile-credentials.ts\``,
|
|
2039
|
+
useProfileSkills: `# useProfileSkills Hook
|
|
2040
|
+
|
|
2041
|
+
Aggregates the logged-in user's earned, self-reported, and desired skills, plus mutations to create / update / delete self-reported and desired skills. Also exposes a \`handleFetchAllSkills\` helper backed by the catalog search endpoint.
|
|
2042
|
+
|
|
2043
|
+
\`\`\`typescript
|
|
2044
|
+
import { useProfileSkills } from '@iblai/iblai-js/web-containers';
|
|
2045
|
+
|
|
2046
|
+
const skills = useProfileSkills(showToast);
|
|
2047
|
+
// skills.earnedSkills, .selfReportedSkills, .desiredSkills (+ loading/error/success)
|
|
2048
|
+
// skills.handleSkillsUpdate(skill, allSkills, callback)
|
|
2049
|
+
// skills.handleSkillsDeletion(skill, allSkills, callback)
|
|
2050
|
+
// skills.handleSkillsCreate(reportedSkill)
|
|
2051
|
+
// skills.handleFetchAllSkills(query) → updates skills.fetchedSkills
|
|
2052
|
+
\`\`\`
|
|
2053
|
+
|
|
2054
|
+
Backed by \`useGetUserEarnedSkillsQuery\`, \`useGetUserReportedSkillsQuery\`, \`useGetUserDesiredSkillsQuery\`, \`useCreateOrUpdateUserReportedSkillMutation\`, and \`useCreateOrUpdateUserDesiredSkillMutation\` from \`@iblai/data-layer\`. Uses sonner for toasts.
|
|
2055
|
+
|
|
2056
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/hooks/use-profile-skills.ts\``,
|
|
2057
|
+
useCatalogSearch: `# useCatalogSearch Hook
|
|
2058
|
+
|
|
2059
|
+
Thin wrapper around \`useLazyGetCatalogSearchQuery\` exposing a promise-returning \`handleSearch\` helper for ad-hoc searches inside effects/callbacks.
|
|
2060
|
+
|
|
2061
|
+
\`\`\`typescript
|
|
2062
|
+
import { useCatalogSearch } from '@iblai/iblai-js/web-containers';
|
|
2063
|
+
|
|
2064
|
+
const { handleSearch, isLoading, isError } = useCatalogSearch();
|
|
2065
|
+
const result = await handleSearch({ content: ['skills'], tenant: 'acme', query: 'rust' });
|
|
2066
|
+
\`\`\`
|
|
2067
|
+
|
|
2068
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/hooks/use-catalog-search.ts\``,
|
|
2069
|
+
useProfilePathways: `# useProfilePathways Hook
|
|
2070
|
+
|
|
2071
|
+
Fetches the logged-in user's catalog / assigned / enrolled pathways and hydrates each with completion stats. Supports client-side search filtering on pathway name.
|
|
2072
|
+
|
|
2073
|
+
\`\`\`typescript
|
|
2074
|
+
import { useProfilePathways } from '@iblai/iblai-js/web-containers';
|
|
2075
|
+
|
|
2076
|
+
const {
|
|
2077
|
+
pathways,
|
|
2078
|
+
filteredPathways,
|
|
2079
|
+
pathwayCompletions,
|
|
2080
|
+
pathwayCompletionsLoading,
|
|
2081
|
+
isLoading,
|
|
2082
|
+
isError,
|
|
2083
|
+
handleFetchSinglePathwayEnrollmentStatus,
|
|
2084
|
+
} = useProfilePathways({ searchQuery: q, contentType: 'catalog', lmsUrl: lmsBaseUrl });
|
|
2085
|
+
// contentType is one of 'catalog' | 'assigned' | 'enrolled'
|
|
2086
|
+
\`\`\`
|
|
2087
|
+
|
|
2088
|
+
Pass \`lmsUrl\` to prefix catalog \`metadata.course_image_asset_path\` URLs (replaces skillsai's \`config.urls.lms()\`).
|
|
2089
|
+
|
|
2090
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/hooks/use-profile-pathways.ts\``,
|
|
2091
|
+
useProfilePrograms: `# useProfilePrograms Hook
|
|
2092
|
+
|
|
2093
|
+
Fetches the logged-in user's enrolled / assigned / catalog programs and hydrates each with completion stats. Supports client-side search filtering on program name.
|
|
2094
|
+
|
|
2095
|
+
\`\`\`typescript
|
|
2096
|
+
import { useProfilePrograms } from '@iblai/iblai-js/web-containers';
|
|
2097
|
+
|
|
2098
|
+
const { programs, filteredPrograms, programCompletions, programCompletionsLoading, isLoading, isError } =
|
|
2099
|
+
useProfilePrograms({ searchQuery: q, activeTab: 'enrolled' });
|
|
2100
|
+
\`\`\`
|
|
2101
|
+
|
|
2102
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/hooks/use-profile-programs.ts\``,
|
|
2103
|
+
useProfileActivityStats: `# useProfileActivityStats Hook
|
|
2104
|
+
|
|
2105
|
+
Fans out 9 RTK lazy queries in parallel to populate the profile activity counters (Points, Skills, Credentials, Courses, Programs, Pathways, Resources, Assessments, Videos). Each row updates independently as its request resolves; per-stat failures collapse to 0 without blocking the others.
|
|
2106
|
+
|
|
2107
|
+
\`\`\`typescript
|
|
2108
|
+
import { useProfileActivityStats } from '@iblai/iblai-js/web-containers';
|
|
2109
|
+
|
|
2110
|
+
const { stats } = useProfileActivityStats();
|
|
2111
|
+
// stats: ActivityStats[] — { value, label, loading }
|
|
2112
|
+
\`\`\`
|
|
2113
|
+
|
|
2114
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/hooks/use-profile-activity-stats.ts\``,
|
|
2115
|
+
useProfileTimeSpent: `# useProfileTimeSpent Hook
|
|
2116
|
+
|
|
2117
|
+
Fetches the last 7 days of learning activity for the logged-in user and returns it as \`{ date, minutes }\` rows ready for a chart (e.g. \`ProfileTimeChart\`).
|
|
2118
|
+
|
|
2119
|
+
\`\`\`typescript
|
|
2120
|
+
import { useProfileTimeSpent } from '@iblai/iblai-js/web-containers';
|
|
2121
|
+
|
|
2122
|
+
const { timeSpent, timeSpentLoading } = useProfileTimeSpent();
|
|
2123
|
+
\`\`\`
|
|
2124
|
+
|
|
2125
|
+
Backed by \`useLazyGetOverTimeActivityQuery\` from \`@iblai/data-layer\`.
|
|
2126
|
+
|
|
2127
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/hooks/use-profile-timespent.ts\``,
|
|
2128
|
+
useUserMetadata: `# useUserMetadata Hook
|
|
2129
|
+
|
|
2130
|
+
Thin wrapper around \`useGetUserMetadataQuery\` that reads the username from localStorage and skips the request when there is no logged-in user.
|
|
2131
|
+
|
|
2132
|
+
\`\`\`typescript
|
|
2133
|
+
import { useUserMetadata } from '@iblai/iblai-js/web-containers';
|
|
2134
|
+
|
|
2135
|
+
const { userMetaData, userMetaDataLoading, userMetaDataError } = useUserMetadata();
|
|
2136
|
+
\`\`\`
|
|
2137
|
+
|
|
2138
|
+
**File Location**: \`packages/web-containers/src/components/skills-profile/hooks/use-user-metadata.ts\``,
|
|
2139
|
+
useCourseDetail: `# useCourseDetail Hook
|
|
2140
|
+
|
|
2141
|
+
Large business-logic hook for the course-content experience. Fetches course metadata / progress / completion / eligibility, owns the "enroll / access / buy now / request access" button-action state machine, and surfaces a Stripe checkout flow. Ported from skillsai with the profile-PR refactor: no \`next/router\`, no \`sonner\`, no \`config.*\` reads — all navigation / toasts / config go via props.
|
|
2142
|
+
|
|
2143
|
+
\`\`\`typescript
|
|
2144
|
+
import { useCourseDetail } from '@iblai/iblai-js/web-containers';
|
|
2145
|
+
|
|
2146
|
+
const {
|
|
2147
|
+
handleFetchCourseInfo,
|
|
2148
|
+
handleFetchCourseSyllabus,
|
|
2149
|
+
handleFetchCourseEligibilityInfo,
|
|
2150
|
+
handleFetchCourseProgress,
|
|
2151
|
+
handleFetchCourseCompletion,
|
|
2152
|
+
handleEnrollToCourse,
|
|
2153
|
+
handleCreateCheckoutSession,
|
|
2154
|
+
handleAccessCourse,
|
|
2155
|
+
handleOpenLesson,
|
|
2156
|
+
course,
|
|
2157
|
+
courseOutline,
|
|
2158
|
+
courseEligibility,
|
|
2159
|
+
courseProgress,
|
|
2160
|
+
courseCompletion,
|
|
2161
|
+
courseInfoLoadingState,
|
|
2162
|
+
} = useCourseDetail({
|
|
2163
|
+
courseId,
|
|
2164
|
+
dmUrl: config.urls.dm(),
|
|
2165
|
+
courseEligibilityEnabled: config.settings.courseEligibilityEnabled(),
|
|
2166
|
+
onNavigate: (href, opts) => (opts?.external ? window.location.assign(href) : router.push(href)),
|
|
2167
|
+
onError: (msg) => toast.error(msg),
|
|
2168
|
+
onSuccess: (msg) => toast.success(msg),
|
|
2169
|
+
});
|
|
2170
|
+
\`\`\`
|
|
2171
|
+
|
|
2172
|
+
**File Location**: \`packages/web-containers/src/components/course-content/hooks/use-course-detail.ts\``,
|
|
2173
|
+
useEdxIframe: `# useEdxIframe Hook
|
|
2174
|
+
|
|
2175
|
+
Helpers for the edX iframe course navigation: pure tree-traversal utils (\`findSequentialParent\`, \`flattenVerticalBlocks\`, \`getFirstAvailableUnit\`, \`findLastResumeBlock\`, \`getParentBlockById\`, \`getPreviousUnitIframe\`, \`getNextUnitIframe\`, \`getParentsInfosFromSublessonId\`, \`addBookmarksTab\`, \`getUnitToIframe\`) plus an async \`getIframeURL\` that wraps the SSO-token handshake via \`useLazyGetEdxSSOTokenQuery\` from \`@iblai/data-layer\`. Takes the LMS / MFE / legacy LMS base URLs as arguments instead of reading from a config module.
|
|
2176
|
+
|
|
2177
|
+
\`\`\`typescript
|
|
2178
|
+
import { useEdxIframe } from '@iblai/iblai-js/web-containers';
|
|
2179
|
+
|
|
2180
|
+
const { getIframeURL, getUnitToIframe, findSequentialParent } = useEdxIframe({
|
|
2181
|
+
lmsUrl: config.urls.lms(),
|
|
2182
|
+
mfeUrl: config.urls.mfe(),
|
|
2183
|
+
legacyLmsUrl: config.urls.legacyLmsUrl(),
|
|
2184
|
+
});
|
|
2185
|
+
\`\`\`
|
|
2186
|
+
|
|
2187
|
+
**File Location**: \`packages/web-containers/src/components/course-content/hooks/use-edx-iframe.ts\``,
|
|
2188
|
+
useChatState: `# useChatState Hook
|
|
2189
|
+
|
|
2190
|
+
Small context accessor exposing the shared mentor-chat state (open/close, current course mentor uuid, sidebar visibility). Ported from the \`useChatState\` + \`ChatContext\` + \`ChatProvider\` bundle in skillsai's \`components/chat-button.tsx\`. The actual \`ChatButton\` UI was NOT ported (it's config-heavy + depends on a mentor web component).
|
|
2191
|
+
|
|
2192
|
+
\`\`\`typescript
|
|
2193
|
+
import { ChatProvider, useChatState } from '@iblai/iblai-js/web-containers';
|
|
2194
|
+
|
|
2195
|
+
<ChatProvider>
|
|
2196
|
+
{children}
|
|
2197
|
+
</ChatProvider>
|
|
2198
|
+
|
|
2199
|
+
// inside a child:
|
|
2200
|
+
const { isOpen, setIsOpen, courseMentor, setCourseMentor } = useChatState();
|
|
2201
|
+
\`\`\`
|
|
2202
|
+
|
|
2203
|
+
**File Location**: \`packages/web-containers/src/components/course-content/hooks/use-chat-state.ts\``,
|
|
1955
2204
|
};
|
|
1956
2205
|
export function getHookInfo(hookName) {
|
|
1957
2206
|
const info = hooks[hookName];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-info.js","sourceRoot":"","sources":["../../src/tools/hook-info.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hook-info.js","sourceRoot":"","sources":["../../src/tools/hook-info.ts"],"names":[],"mappings":"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"}
|