@gostudent/shared-ui-library-mcp 1.28.0 → 1.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/library-manifest.json +184 -3
- package/package.json +1 -1
package/library-manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"libraryVersion": "1.
|
|
2
|
+
"libraryVersion": "1.30.0",
|
|
3
3
|
"components": [
|
|
4
4
|
{
|
|
5
5
|
"name": "Avatar",
|
|
@@ -646,6 +646,11 @@
|
|
|
646
646
|
"stretch"
|
|
647
647
|
]
|
|
648
648
|
},
|
|
649
|
+
{
|
|
650
|
+
"name": "fluid",
|
|
651
|
+
"description": "Fill the containing block instead of capping at the layout content max-width and auto-centering on desktop. Use when the Grid is nested inside a flex/grid parent (or any narrower container), where the default centering would otherwise add side margins. Defaults to `false`.",
|
|
652
|
+
"options": []
|
|
653
|
+
},
|
|
649
654
|
{
|
|
650
655
|
"name": "as",
|
|
651
656
|
"description": "Renders as this HTML element or React component. Defaults to `div`.",
|
|
@@ -1593,6 +1598,88 @@
|
|
|
1593
1598
|
}
|
|
1594
1599
|
]
|
|
1595
1600
|
},
|
|
1601
|
+
{
|
|
1602
|
+
"name": "StudentLessonCard",
|
|
1603
|
+
"description": "The student-portal counterpart to `TutorLessonCard`. It displays a lesson session from the\nstudent's perspective: the identity block shows the **tutor**, and group lessons additionally show\nan `AvatarGroup` of the fellow classmates.\n\nSupports states driven by the `lessonState`, `type`, `modality`, and `feedbackState` props:\n\n| `lessonState` | `modality` | `feedbackState` | Actions |\n|------------------|-------------|-------------------|---------|\n| `upcoming` | `online` | — | \"Workspace\" link + \"Start lesson\" + \"Rate lesson\" (inactive) |\n| `upcoming` | `offline` | — | \"Rate lesson\" (inactive) |\n| `in-progress` | `online` | — | \"Workspace\" link + \"Start lesson\" + \"Rate lesson\" (active) |\n| `in-progress` | `offline` | — | \"Rate lesson\" (active) |\n| `completed` | any | `pending` | \"Rate lesson\" button (primary, active) |\n| `completed` | any | `submitted` | \"Check feedback\" button (secondary) |\n\n### Usage\n\n```tsx\nimport { StudentLessonCard } from '@gostudent/shared-ui-library';\n\n<StudentLessonCard\n title=\"English lesson\"\n modality=\"online\"\n type=\"individual\"\n subjects={['English']}\n time=\"17:00 - 18:00\"\n lessonState=\"upcoming\"\n tutor={{ name: 'Jane Tutor' }}\n isStartLessonDisabled\n/>\n```",
|
|
1604
|
+
"storybookUrl": "https://62835ff8873d45004a627ad4-snugmmtvrg.chromatic.com/?path=/docs/compositions-studentlessoncard",
|
|
1605
|
+
"props": [
|
|
1606
|
+
{
|
|
1607
|
+
"name": "title",
|
|
1608
|
+
"description": "Lesson title shown as the card heading.",
|
|
1609
|
+
"options": [
|
|
1610
|
+
"online",
|
|
1611
|
+
"offline"
|
|
1612
|
+
]
|
|
1613
|
+
},
|
|
1614
|
+
{
|
|
1615
|
+
"name": "type",
|
|
1616
|
+
"description": "Lesson type — group lessons show a classmate AvatarGroup beside the tutor.",
|
|
1617
|
+
"options": [
|
|
1618
|
+
"individual",
|
|
1619
|
+
"group"
|
|
1620
|
+
]
|
|
1621
|
+
},
|
|
1622
|
+
{
|
|
1623
|
+
"name": "subjects",
|
|
1624
|
+
"description": "Array of subject labels rendered as Tag pills.",
|
|
1625
|
+
"options": []
|
|
1626
|
+
},
|
|
1627
|
+
{
|
|
1628
|
+
"name": "time",
|
|
1629
|
+
"description": "Formatted time range, e.g. \"17:00 - 18:00\".",
|
|
1630
|
+
"options": [
|
|
1631
|
+
"upcoming",
|
|
1632
|
+
"in-progress",
|
|
1633
|
+
"completed"
|
|
1634
|
+
]
|
|
1635
|
+
},
|
|
1636
|
+
{
|
|
1637
|
+
"name": "feedbackState",
|
|
1638
|
+
"description": "Feedback phase for completed lessons.",
|
|
1639
|
+
"options": [
|
|
1640
|
+
"pending",
|
|
1641
|
+
"submitted"
|
|
1642
|
+
]
|
|
1643
|
+
},
|
|
1644
|
+
{
|
|
1645
|
+
"name": "isStartLessonDisabled",
|
|
1646
|
+
"description": "Disables the \"Start lesson\" button.",
|
|
1647
|
+
"options": []
|
|
1648
|
+
},
|
|
1649
|
+
{
|
|
1650
|
+
"name": "hasKebab",
|
|
1651
|
+
"description": "Show or hide the kebab menu. When enabled, passes menu items to the card.",
|
|
1652
|
+
"options": []
|
|
1653
|
+
},
|
|
1654
|
+
{
|
|
1655
|
+
"name": "tutor",
|
|
1656
|
+
"description": "Tutor object ({ name, avatarSrc }) shown in the identity block.",
|
|
1657
|
+
"options": []
|
|
1658
|
+
},
|
|
1659
|
+
{
|
|
1660
|
+
"name": "onStartLesson",
|
|
1661
|
+
"description": "Called when \"Start lesson\" is clicked.",
|
|
1662
|
+
"options": []
|
|
1663
|
+
}
|
|
1664
|
+
],
|
|
1665
|
+
"examples": [
|
|
1666
|
+
{
|
|
1667
|
+
"name": "UpcomingIndividual",
|
|
1668
|
+
"jsx": "<StudentLessonCard title=\"Individual lesson\" modality=\"online\" type=\"individual\" subjects={['English']} time=\"17:00 - 18:00\" lessonState=\"upcoming\" isStartLessonDisabled={true} tutor={TUTOR} hasKebab={true} />",
|
|
1669
|
+
"storyUrl": "https://62835ff8873d45004a627ad4-snugmmtvrg.chromatic.com/?path=/story/compositions-studentlessoncard--upcoming-individual"
|
|
1670
|
+
},
|
|
1671
|
+
{
|
|
1672
|
+
"name": "UpcomingGroup",
|
|
1673
|
+
"jsx": "<StudentLessonCard title=\"Group lesson\" modality=\"online\" type=\"group\" subjects={['English', 'Biology', 'Math']} time=\"17:00 - 18:00\" lessonState=\"upcoming\" isStartLessonDisabled={true} tutor={TUTOR} classmates={CLASSMATES} hasKebab={true} />",
|
|
1674
|
+
"storyUrl": "https://62835ff8873d45004a627ad4-snugmmtvrg.chromatic.com/?path=/story/compositions-studentlessoncard--upcoming-group"
|
|
1675
|
+
},
|
|
1676
|
+
{
|
|
1677
|
+
"name": "UpcomingGroupOffline",
|
|
1678
|
+
"jsx": "<StudentLessonCard title=\"Group lesson\" modality=\"offline\" type=\"group\" subjects={['English', 'Biology', 'Math']} time=\"17:00 - 18:00\" room=\"Room 1\" lessonCenter=\"Centrostudi Navigli\" lessonState=\"upcoming\" tutor={TUTOR} classmates={CLASSMATES} hasKebab={true} />",
|
|
1679
|
+
"storyUrl": "https://62835ff8873d45004a627ad4-snugmmtvrg.chromatic.com/?path=/story/compositions-studentlessoncard--upcoming-group-offline"
|
|
1680
|
+
}
|
|
1681
|
+
]
|
|
1682
|
+
},
|
|
1596
1683
|
{
|
|
1597
1684
|
"name": "TopNavigation",
|
|
1598
1685
|
"description": "Responsive top navigation bar. On **mobile/tablet** (< 1024 px) it shows the logo and a hamburger button that opens a slide-in drawer.\nOn **desktop** (≥ 1024 px) it shows the logo, a tab list, and the user section (Avatar + name + role Tag + chevron) with a dropdown.\n\nThe drawer open/close state is managed internally — no external state needed.\n\n### Usage\n\n```tsx\nimport { TopNavigation } from '@gostudent/shared-ui-library';\n\n<TopNavigation\n tabs={[\n { label: 'Lessons', isSelected: true, onClick: () => {} },\n { label: 'My availability', isSelected: false, onClick: () => {} },\n ]}\n userName=\"Anna James\"\n userRole=\"tutor\"\n navItems={[\n { icon: DashboardIcon, label: 'Lessons', isSelected: true, onClick: () => {} },\n ]}\n languages={[{ value: 'en', label: 'English' }]}\n onLanguageClick={() => {}}\n onLogout={() => {}}\n/>\n```",
|
|
@@ -1702,6 +1789,57 @@
|
|
|
1702
1789
|
}
|
|
1703
1790
|
]
|
|
1704
1791
|
},
|
|
1792
|
+
{
|
|
1793
|
+
"name": "TutorDetails",
|
|
1794
|
+
"description": "Renders a single tutor as an **Avatar** plus name in a horizontal row.\n\nBy default the name is shown in full. Set `truncate` to clip it with an ellipsis **on mobile**\nwhen it overflows — from the `tablet` breakpoint up the full name is always shown.\n\nTwo sizes are available — `md` (32px avatar, default) and `sm` (24px avatar).\n\nSetting `disabled` dims the row to 50% opacity and shows an \"Unavailable\" tooltip on hover/focus\n(override via `disabledLabel`).\n\nIntended for use inside `StudentLessonCard` as the tutor identity block — the student-portal\ncounterpart to `StudentDetails`.\n\n### Usage\n\n```tsx\nimport { TutorDetails } from '@gostudent/shared-ui-library';\n\n<TutorDetails name=\"John Doe\" avatarSrc=\"https://i.pravatar.cc/150?u=john\" />\n```",
|
|
1795
|
+
"storybookUrl": "https://62835ff8873d45004a627ad4-snugmmtvrg.chromatic.com/?path=/docs/compositions-tutordetails",
|
|
1796
|
+
"props": [
|
|
1797
|
+
{
|
|
1798
|
+
"name": "name",
|
|
1799
|
+
"description": "Avatar status badge.",
|
|
1800
|
+
"options": [
|
|
1801
|
+
"default",
|
|
1802
|
+
"done",
|
|
1803
|
+
"pending"
|
|
1804
|
+
]
|
|
1805
|
+
},
|
|
1806
|
+
{
|
|
1807
|
+
"name": "size",
|
|
1808
|
+
"description": "Avatar size: sm=24px, md=32px (default).",
|
|
1809
|
+
"options": [
|
|
1810
|
+
"sm",
|
|
1811
|
+
"md"
|
|
1812
|
+
]
|
|
1813
|
+
},
|
|
1814
|
+
{
|
|
1815
|
+
"name": "truncate",
|
|
1816
|
+
"description": "Truncate the name with an ellipsis on mobile when it overflows. Off by default.",
|
|
1817
|
+
"options": []
|
|
1818
|
+
},
|
|
1819
|
+
{
|
|
1820
|
+
"name": "disabled",
|
|
1821
|
+
"description": "Tooltip text shown on hover/focus when disabled. Defaults to \"Unavailable\".",
|
|
1822
|
+
"options": []
|
|
1823
|
+
}
|
|
1824
|
+
],
|
|
1825
|
+
"examples": [
|
|
1826
|
+
{
|
|
1827
|
+
"name": "Default",
|
|
1828
|
+
"jsx": "<TutorDetails name=\"John Doe\" />",
|
|
1829
|
+
"storyUrl": "https://62835ff8873d45004a627ad4-snugmmtvrg.chromatic.com/?path=/story/compositions-tutordetails--default"
|
|
1830
|
+
},
|
|
1831
|
+
{
|
|
1832
|
+
"name": "WithAvatarImage",
|
|
1833
|
+
"jsx": "<TutorDetails name=\"John Doe\" avatarSrc=\"https://i.pravatar.cc/150?u=john\" />",
|
|
1834
|
+
"storyUrl": "https://62835ff8873d45004a627ad4-snugmmtvrg.chromatic.com/?path=/story/compositions-tutordetails--with-avatar-image"
|
|
1835
|
+
},
|
|
1836
|
+
{
|
|
1837
|
+
"name": "Small",
|
|
1838
|
+
"jsx": "<TutorDetails name=\"John Doe\" size=\"sm\" />",
|
|
1839
|
+
"storyUrl": "https://62835ff8873d45004a627ad4-snugmmtvrg.chromatic.com/?path=/story/compositions-tutordetails--small"
|
|
1840
|
+
}
|
|
1841
|
+
]
|
|
1842
|
+
},
|
|
1705
1843
|
{
|
|
1706
1844
|
"name": "TutorLessonCard",
|
|
1707
1845
|
"description": "A domain-level card that displays a lesson session with all associated metadata.\n\nSupports states driven by the `lessonState`, `type`, `modality`, and `feedbackState` props:\n\n| `lessonState` | `type` | `modality` | `feedbackState` | Description |\n|----------------|-----------------|--------------|-----------------|-------------|\n| `upcoming` | `individual` | `online` | — | Metadata row (time) + actions in a wrapping flex row, \"Workspace\" link + \"Start GoClass\" button, `StudentDetails` always visible below |\n| `upcoming` | `group` | `online` | — | Metadata row (time, student count) + actions in a wrapping flex row, optional kebab menu, always-visible `StudentDetails` (desktop) / \"N students\" disclosure (mobile) below |\n| `upcoming` | `individual` | `offline` | — | Offline modality tag, metadata row includes room/lesson center, single \"Document lesson\" button |\n| `upcoming` | `group` | `offline` | — | Offline modality tag, metadata row includes room/lesson center, \"N students\" disclosure below |\n| `completed` | `individual` | `online` | `pending` | `StudentDetails` (24px, pending badge) inline, no dropdown, \"Document lesson\" button |\n| `completed` | `group` | `online` | `pending` | Disclosure toggle revealing `StudentDetails` (24px, done/pending badges), \"Document lesson\" button |\n| `completed` | `group` | `online` | `submitted` | \"Review feedback\" button, always-visible `StudentDetails` (desktop) / \"N students\" disclosure (mobile) |\n| `completed` | `individual` | `online` | `submitted` | \"Review feedback\" button, `StudentDetails` inline at both breakpoints |\n\nOnline lessons also show a \"Workspace\" link (secondary/link-styled) alongside \"Start GoClass\" /\n\"Document lesson\", for every lesson state.\n\n### Usage\n\n```tsx\nimport { TutorLessonCard } from '@gostudent/shared-ui-library';\n\n<TutorLessonCard\n title=\"English lesson\"\n modality=\"online\"\n type=\"individual\"\n subjects={['English']}\n time=\"17:00 - 18:00\"\n lessonState=\"upcoming\"\n students={[{ name: 'Alice Smith', grade: '8', subject: 'English' }]}\n isStartLessonDisabled\n/>\n```",
|
|
@@ -1755,6 +1893,11 @@
|
|
|
1755
1893
|
"description": "Disables the \"Start lesson\" button in upcoming state.",
|
|
1756
1894
|
"options": []
|
|
1757
1895
|
},
|
|
1896
|
+
{
|
|
1897
|
+
"name": "isDocumentLessonDisabled",
|
|
1898
|
+
"description": "Shows \"Document lesson\" disabled with a tooltip explaining why, instead of hiding it. Used before the 30-minute pre-lesson documentation window opens.",
|
|
1899
|
+
"options": []
|
|
1900
|
+
},
|
|
1758
1901
|
{
|
|
1759
1902
|
"name": "hasKebab",
|
|
1760
1903
|
"description": "Show or hide the kebab menu. When enabled, passes menu items to the card.",
|
|
@@ -1774,6 +1917,31 @@
|
|
|
1774
1917
|
"name": "onStartLesson",
|
|
1775
1918
|
"description": "Called when \"Start GoClass\" is clicked.",
|
|
1776
1919
|
"options": []
|
|
1920
|
+
},
|
|
1921
|
+
{
|
|
1922
|
+
"name": "docs",
|
|
1923
|
+
"description": "",
|
|
1924
|
+
"options": []
|
|
1925
|
+
},
|
|
1926
|
+
{
|
|
1927
|
+
"name": "docs",
|
|
1928
|
+
"description": "",
|
|
1929
|
+
"options": []
|
|
1930
|
+
},
|
|
1931
|
+
{
|
|
1932
|
+
"name": "labels",
|
|
1933
|
+
"description": "",
|
|
1934
|
+
"options": []
|
|
1935
|
+
},
|
|
1936
|
+
{
|
|
1937
|
+
"name": "labels",
|
|
1938
|
+
"description": "",
|
|
1939
|
+
"options": []
|
|
1940
|
+
},
|
|
1941
|
+
{
|
|
1942
|
+
"name": "labels",
|
|
1943
|
+
"description": "",
|
|
1944
|
+
"options": []
|
|
1777
1945
|
}
|
|
1778
1946
|
],
|
|
1779
1947
|
"examples": [
|
|
@@ -1799,6 +1967,9 @@
|
|
|
1799
1967
|
"names": [
|
|
1800
1968
|
"ArrowLeftIcon",
|
|
1801
1969
|
"ArrowRightIcon",
|
|
1970
|
+
"BookIcon",
|
|
1971
|
+
"BookStarIcon",
|
|
1972
|
+
"CakeIcon",
|
|
1802
1973
|
"CancelFilledIcon",
|
|
1803
1974
|
"ChevronDownIcon",
|
|
1804
1975
|
"ChevronLeftIcon",
|
|
@@ -1812,6 +1983,7 @@
|
|
|
1812
1983
|
"ErrorFilledIcon",
|
|
1813
1984
|
"EventNoteIcon",
|
|
1814
1985
|
"GlobeIcon",
|
|
1986
|
+
"GradeIcon",
|
|
1815
1987
|
"GraduationCapIcon",
|
|
1816
1988
|
"GroupIcon",
|
|
1817
1989
|
"HistoryIcon",
|
|
@@ -1820,17 +1992,23 @@
|
|
|
1820
1992
|
"InfoIcon",
|
|
1821
1993
|
"KebabIcon",
|
|
1822
1994
|
"LocationCenterIcon",
|
|
1995
|
+
"LocationIcon",
|
|
1823
1996
|
"LogoutIcon",
|
|
1824
1997
|
"MenuIcon",
|
|
1998
|
+
"MoreIcon",
|
|
1825
1999
|
"OfflineIcon",
|
|
1826
2000
|
"PendingFilledIcon",
|
|
2001
|
+
"PhoneIcon",
|
|
1827
2002
|
"PlanetIcon",
|
|
1828
2003
|
"PlusIcon",
|
|
2004
|
+
"SearchIcon",
|
|
1829
2005
|
"StarsIcon",
|
|
2006
|
+
"TagIcon",
|
|
1830
2007
|
"TickFilledIcon",
|
|
1831
2008
|
"TickIcon",
|
|
1832
2009
|
"UploadIcon",
|
|
1833
|
-
"WarningFilledIcon"
|
|
2010
|
+
"WarningFilledIcon",
|
|
2011
|
+
"WarningOutlinedIcon"
|
|
1834
2012
|
],
|
|
1835
2013
|
"sizes": [
|
|
1836
2014
|
"sm",
|
|
@@ -1854,7 +2032,8 @@
|
|
|
1854
2032
|
"breakpointDesktopScreenWidth": "var(--breakpoint-desktop-screen-width)",
|
|
1855
2033
|
"breakpointTabletScreenWidth": "var(--breakpoint-tablet-screen-width)",
|
|
1856
2034
|
"breakpointMobileScreenWidth": "var(--breakpoint-mobile-screen-width)",
|
|
1857
|
-
"breakpointLayoutContentMaxWidth": "var(--breakpoint-layout-content-max-width)"
|
|
2035
|
+
"breakpointLayoutContentMaxWidth": "var(--breakpoint-layout-content-max-width)",
|
|
2036
|
+
"breakpointTooltipContentMaxWidth": "var(--breakpoint-tooltip-content-max-width)"
|
|
1858
2037
|
},
|
|
1859
2038
|
"error": {
|
|
1860
2039
|
"error50": "var(--error-50)",
|
|
@@ -2239,6 +2418,7 @@
|
|
|
2239
2418
|
"colorBorderFeedbackDefault": "var(--color-border-feedback-default)",
|
|
2240
2419
|
"colorBorderDark": "var(--color-border-dark)",
|
|
2241
2420
|
"colorBorderPill": "var(--color-border-pill)",
|
|
2421
|
+
"colorBorderSelected": "var(--color-border-selected)",
|
|
2242
2422
|
"colorTextPrimary": "var(--color-text-primary)",
|
|
2243
2423
|
"colorTextSecondary": "var(--color-text-secondary)",
|
|
2244
2424
|
"colorTextInverse": "var(--color-text-inverse)",
|
|
@@ -2522,6 +2702,7 @@
|
|
|
2522
2702
|
"colorBorderFeedbackDefault": "var(--color-border-feedback-default)",
|
|
2523
2703
|
"colorBorderDark": "var(--color-border-dark)",
|
|
2524
2704
|
"colorBorderPill": "var(--color-border-pill)",
|
|
2705
|
+
"colorBorderSelected": "var(--color-border-selected)",
|
|
2525
2706
|
"colorTextPrimary": "var(--color-text-primary)",
|
|
2526
2707
|
"colorTextSecondary": "var(--color-text-secondary)",
|
|
2527
2708
|
"colorTextInverse": "var(--color-text-inverse)",
|