@local-civics/hub-ui 0.1.208 → 0.1.210
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +210 -7
- package/dist/index.js +710 -303
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +701 -304
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -1
package/dist/index.d.ts
CHANGED
|
@@ -456,6 +456,11 @@ type CardProps = {
|
|
|
456
456
|
*/
|
|
457
457
|
declare const Card: (props: CardProps) => JSX.Element;
|
|
458
458
|
|
|
459
|
+
/**
|
|
460
|
+
* A component for the page footer.
|
|
461
|
+
*/
|
|
462
|
+
declare const Footer: () => JSX.Element;
|
|
463
|
+
|
|
459
464
|
/**
|
|
460
465
|
* Home
|
|
461
466
|
* @constructor
|
|
@@ -1085,14 +1090,217 @@ type PathwayButtonProps = {
|
|
|
1085
1090
|
};
|
|
1086
1091
|
declare const PathwayButton: (props: PathwayButtonProps) => JSX.Element;
|
|
1087
1092
|
|
|
1093
|
+
/**
|
|
1094
|
+
* The accent cycled across dashboard pills.
|
|
1095
|
+
*/
|
|
1096
|
+
type PillAccent = "cyan" | "mint" | "gold" | "slate";
|
|
1097
|
+
/**
|
|
1098
|
+
* PillProps
|
|
1099
|
+
*/
|
|
1100
|
+
type PillProps = {
|
|
1101
|
+
label: string;
|
|
1102
|
+
accent?: PillAccent;
|
|
1103
|
+
};
|
|
1104
|
+
/**
|
|
1105
|
+
* A small accent-tinted label used for level/XP style tags across the student dashboard.
|
|
1106
|
+
* @param props
|
|
1107
|
+
* @constructor
|
|
1108
|
+
*/
|
|
1109
|
+
declare const Pill: (props: PillProps) => JSX.Element;
|
|
1110
|
+
|
|
1111
|
+
/**
|
|
1112
|
+
* The accent cycled across dashboard stat tiles.
|
|
1113
|
+
*/
|
|
1114
|
+
type StatTileAccent = "cyan" | "mint" | "gold" | "slate";
|
|
1115
|
+
/**
|
|
1116
|
+
* StatTileProps
|
|
1117
|
+
*/
|
|
1118
|
+
type StatTileProps = {
|
|
1119
|
+
icon: IconName;
|
|
1120
|
+
value: string | number;
|
|
1121
|
+
label: string;
|
|
1122
|
+
accent?: StatTileAccent;
|
|
1123
|
+
};
|
|
1124
|
+
/**
|
|
1125
|
+
* A single icon + number + label stat tile, meant to appear in a StatTileRow.
|
|
1126
|
+
* @param props
|
|
1127
|
+
* @constructor
|
|
1128
|
+
*/
|
|
1129
|
+
declare const StatTile: (props: StatTileProps) => JSX.Element;
|
|
1130
|
+
/**
|
|
1131
|
+
* StatTileRowProps
|
|
1132
|
+
*/
|
|
1133
|
+
type StatTileRowProps = {
|
|
1134
|
+
children: React.ReactNode;
|
|
1135
|
+
};
|
|
1136
|
+
/**
|
|
1137
|
+
* A row layout for a set of StatTiles.
|
|
1138
|
+
* @param props
|
|
1139
|
+
* @constructor
|
|
1140
|
+
*/
|
|
1141
|
+
declare const StatTileRow: (props: StatTileRowProps) => JSX.Element;
|
|
1142
|
+
|
|
1143
|
+
/**
|
|
1144
|
+
* ProfileHeroCardProps
|
|
1145
|
+
*/
|
|
1146
|
+
type ProfileHeroCardProps = {
|
|
1147
|
+
isLoading?: boolean;
|
|
1148
|
+
avatarURL?: string;
|
|
1149
|
+
givenName?: string;
|
|
1150
|
+
familyName?: string;
|
|
1151
|
+
createdAt?: string;
|
|
1152
|
+
online?: boolean;
|
|
1153
|
+
impactStatement?: string;
|
|
1154
|
+
placeName?: string;
|
|
1155
|
+
communityName?: string;
|
|
1156
|
+
level?: number;
|
|
1157
|
+
xp?: number;
|
|
1158
|
+
nextXP?: number;
|
|
1159
|
+
onEdit?: () => void;
|
|
1160
|
+
};
|
|
1161
|
+
/**
|
|
1162
|
+
* The student dashboard's profile summary: avatar/name/meta (formerly `ProfileWidget`), bio and
|
|
1163
|
+
* place/community (formerly `AboutWidget`), and level/XP progress (formerly `ImpactWidget`)
|
|
1164
|
+
* consolidated into a single card, matching Mockup I's layout and color treatment.
|
|
1165
|
+
* @param props
|
|
1166
|
+
* @constructor
|
|
1167
|
+
*/
|
|
1168
|
+
declare const ProfileHeroCard: (props: ProfileHeroCardProps) => JSX.Element;
|
|
1169
|
+
|
|
1170
|
+
/**
|
|
1171
|
+
* A single pathway as rendered by the dashboard - the same shape `PathwaySection` already
|
|
1172
|
+
* consumes (see `usePathways` in the hub app), so this is a drop-in replacement for the data.
|
|
1173
|
+
*/
|
|
1174
|
+
type PathwayItem = PathwayCardProps & {
|
|
1175
|
+
pathwayId?: string;
|
|
1176
|
+
onClick?: () => void;
|
|
1177
|
+
};
|
|
1178
|
+
/**
|
|
1179
|
+
* PathwaysCardProps
|
|
1180
|
+
*/
|
|
1181
|
+
type PathwaysCardProps = {
|
|
1182
|
+
pathways: PathwayItem[];
|
|
1183
|
+
isLoading?: boolean;
|
|
1184
|
+
list?: boolean;
|
|
1185
|
+
onToggleLayout?: (next: boolean) => void;
|
|
1186
|
+
};
|
|
1187
|
+
/**
|
|
1188
|
+
* The student dashboard's "My Pathways & Seals" card - a presentational replacement for
|
|
1189
|
+
* `PathwaySection` scoped to the Home page. Keeps the same list/grid-toggle behavior; the
|
|
1190
|
+
* in-progress/completed/available/locked grouping isn't reproduced because `PathwaySection`'s
|
|
1191
|
+
* own grouping is currently stubbed (everything lands in "in progress"), so a flat grid is
|
|
1192
|
+
* behaviorally equivalent to what ships today.
|
|
1193
|
+
* @param props
|
|
1194
|
+
* @constructor
|
|
1195
|
+
*/
|
|
1196
|
+
declare const PathwaysCard: (props: PathwaysCardProps) => JSX.Element;
|
|
1197
|
+
|
|
1198
|
+
/**
|
|
1199
|
+
* BadgesCardProps
|
|
1200
|
+
*/
|
|
1201
|
+
type BadgesCardProps = {
|
|
1202
|
+
badges: BadgeProps[];
|
|
1203
|
+
isLoading?: boolean;
|
|
1204
|
+
list?: boolean;
|
|
1205
|
+
onToggleLayout?: (next: boolean) => void;
|
|
1206
|
+
};
|
|
1207
|
+
/**
|
|
1208
|
+
* The student dashboard's "Badges" card - a presentational replacement for `BadgeSection`
|
|
1209
|
+
* scoped to the Home page. Ports `BadgeSection`'s real state classification (in
|
|
1210
|
+
* progress/completed/available/locked, driven by `finishedAt`/`isLocked`/`startedAt`) and its
|
|
1211
|
+
* grid/list toggle, but shows one state at a time via a single-select tab strip
|
|
1212
|
+
* (`Board`'s `Tab` `secondary` variant) to match the mockup's tab look, rather than
|
|
1213
|
+
* `BadgeSection`'s original multi-select filter pills.
|
|
1214
|
+
* @param props
|
|
1215
|
+
* @constructor
|
|
1216
|
+
*/
|
|
1217
|
+
declare const BadgesCard: (props: BadgesCardProps) => JSX.Element;
|
|
1218
|
+
|
|
1219
|
+
/**
|
|
1220
|
+
* DashboardShellProps
|
|
1221
|
+
*/
|
|
1222
|
+
type DashboardShellProps = {
|
|
1223
|
+
sidebar: React.ReactNode;
|
|
1224
|
+
topBar?: React.ReactNode;
|
|
1225
|
+
isLoading?: boolean;
|
|
1226
|
+
children?: React.ReactNode;
|
|
1227
|
+
};
|
|
1228
|
+
/**
|
|
1229
|
+
* The student-facing app's page shell: a full-height row with the sidebar and content pane as
|
|
1230
|
+
* siblings, so the content pane (with its own top bar) can scroll independently of the sidebar.
|
|
1231
|
+
* Used across the student side of the app (Home, Pathway/Badge detail pages, etc.) in place of
|
|
1232
|
+
* bare `AuthLayout` usage — `AuthLayout` itself is untouched, still used for non-student surfaces.
|
|
1233
|
+
* Renders the shared `Footer` at the bottom of the scrollable content, pinned to the viewport
|
|
1234
|
+
* bottom on short pages and pushed below content on long ones (standard sticky-footer behavior).
|
|
1235
|
+
* @param props
|
|
1236
|
+
* @constructor
|
|
1237
|
+
*/
|
|
1238
|
+
declare const DashboardShell: (props: DashboardShellProps) => JSX.Element;
|
|
1239
|
+
|
|
1240
|
+
/**
|
|
1241
|
+
* The name of a dashboard sidebar tab.
|
|
1242
|
+
*/
|
|
1243
|
+
type DashboardSidebarTabName = "profile" | "pathways" | "badges" | "file-locker" | "transcript" | "portfolio" | "comments";
|
|
1244
|
+
/**
|
|
1245
|
+
* A tab's live destination. Tabs with no entry here render disabled.
|
|
1246
|
+
*/
|
|
1247
|
+
type DashboardSidebarLinks = Partial<Record<DashboardSidebarTabName, {
|
|
1248
|
+
href: string;
|
|
1249
|
+
}>>;
|
|
1250
|
+
/**
|
|
1251
|
+
* The signed-in student shown above the nav.
|
|
1252
|
+
*/
|
|
1253
|
+
type DashboardSidebarIdentity = {
|
|
1254
|
+
avatarURL?: string;
|
|
1255
|
+
name: string;
|
|
1256
|
+
subtitle?: string;
|
|
1257
|
+
online?: boolean;
|
|
1258
|
+
};
|
|
1259
|
+
/**
|
|
1260
|
+
* The properties for the dashboard sidebar.
|
|
1261
|
+
*/
|
|
1262
|
+
type DashboardSidebarProps = {
|
|
1263
|
+
active?: DashboardSidebarTabName;
|
|
1264
|
+
links: DashboardSidebarLinks;
|
|
1265
|
+
identity?: DashboardSidebarIdentity;
|
|
1266
|
+
disabled?: boolean;
|
|
1267
|
+
onSwitchAccount?: () => void;
|
|
1268
|
+
onLogout?: () => void;
|
|
1269
|
+
};
|
|
1270
|
+
/**
|
|
1271
|
+
* The single left nav used across the whole student side of the app (Home, Pathway/Badge detail
|
|
1272
|
+
* pages, and any future page that adopts `DashboardShell`) — never render a page-specific copy of
|
|
1273
|
+
* this. Tabs with no matching `links` entry render disabled, which is how not-yet-built
|
|
1274
|
+
* destinations (File Locker, Transcript, Portfolio, Comments) show up today.
|
|
1275
|
+
*/
|
|
1276
|
+
declare const DashboardSidebar: (props: DashboardSidebarProps) => JSX.Element;
|
|
1277
|
+
|
|
1278
|
+
/**
|
|
1279
|
+
* DashboardTopBarProps
|
|
1280
|
+
*/
|
|
1281
|
+
type DashboardTopBarProps = {
|
|
1282
|
+
eyebrow?: string;
|
|
1283
|
+
title: string;
|
|
1284
|
+
children?: React.ReactNode;
|
|
1285
|
+
onNotifications?: () => void;
|
|
1286
|
+
};
|
|
1287
|
+
/**
|
|
1288
|
+
* The persistent bar above the dashboard's scrollable content: a page heading on the left,
|
|
1289
|
+
* notifications and a primary action slot (e.g. LogServiceButton) on the right.
|
|
1290
|
+
* @param props
|
|
1291
|
+
* @constructor
|
|
1292
|
+
*/
|
|
1293
|
+
declare const DashboardTopBar: (props: DashboardTopBarProps) => JSX.Element;
|
|
1294
|
+
|
|
1088
1295
|
/**
|
|
1089
1296
|
* AuthLayoutProps
|
|
1090
1297
|
*/
|
|
1091
1298
|
type AuthLayoutProps = {
|
|
1092
1299
|
isLoading?: boolean;
|
|
1093
1300
|
pathname?: string;
|
|
1094
|
-
page?: "profile"
|
|
1301
|
+
page?: "profile";
|
|
1095
1302
|
disabled?: boolean;
|
|
1303
|
+
topNav?: boolean;
|
|
1096
1304
|
header?: React__default.ReactNode;
|
|
1097
1305
|
subheader?: React__default.ReactNode;
|
|
1098
1306
|
sidebar?: React__default.ReactNode;
|
|
@@ -1101,12 +1309,7 @@ type AuthLayoutProps = {
|
|
|
1101
1309
|
children?: React__default.ReactNode;
|
|
1102
1310
|
onHome?: () => void;
|
|
1103
1311
|
onProfile?: () => void;
|
|
1104
|
-
onExplore?: () => void;
|
|
1105
|
-
onCalendar?: () => void;
|
|
1106
1312
|
onLogout?: () => void;
|
|
1107
|
-
onFAQ?: () => void;
|
|
1108
|
-
onPrivacy?: () => void;
|
|
1109
|
-
onTerms?: () => void;
|
|
1110
1313
|
onSwitchAccount?: () => void;
|
|
1111
1314
|
};
|
|
1112
1315
|
/**
|
|
@@ -1136,4 +1339,4 @@ type HomeLayoutProps = {
|
|
|
1136
1339
|
*/
|
|
1137
1340
|
declare const HomeLayout: (props: HomeLayoutProps) => JSX.Element;
|
|
1138
1341
|
|
|
1139
|
-
export { AboutWidget, AboutWidgetProps, AchievementWidget, AchievementWidgetProps, ActivityCard, ActivityCardProps, ActivityItem, ActivityItemProps, ActivityList, ActivityListProps, ActivityReflection, ActivityReflectionProps, AuthLayout, AuthLayoutProps, Badge, BadgeActivityMenu, BadgeActivityMenuProps, BadgeFilterOption, BadgeProps, BadgeSection, BadgeSectionProps, BadgeSuccessDialog, BadgeSuccessDialogProps, Board, BoardProps, Button, ButtonBorder, ButtonColor, ButtonFilter, ButtonJustify, ButtonProps, ButtonSize, ButtonSpacing, ButtonTheme, Card, CardProps, CtaListProps, DateSelection, DateSelectionProps, DaySelectionOptionProps, EventItem, EventItemProps, EventList, EventListProps, Home, HomeLayout, HomeLayoutProps, Icon, IconName, IconProps, ImpactWidget, ImpactWidgetProps, LearningForm, LearningFormProps, Loader, LoaderProps, LogServiceButton, LogServiceButtonProps, Logo, Modal, ModalProps, NavBar, NavBarProps, NavLink, NavLinkName, NavLinkProps, NotFound, NotFoundProps, Onboarding, OnboardingProps, Overlay, OverlayProps, Pathway, PathwayButton, PathwayButtonProps, PathwayFilter, PathwayFilterOption, PathwayFilterProps, PathwayProgress, PathwayProgressHeight, PathwayProgressProps, PathwayProps, PathwaySection, PathwaySectionProps, PathwayWidget, PathwayWidgetProps, ProfileWidget, Progress, ProgressProps, ResidentWidgetProps, Search, SearchButton, SearchButtonProps, SearchProps, SearchResult, SearchResultProps, SettingsCard, SettingsCardProps, Stopwatch, StopwatchProps, Tab, TabProps, TagFilter, TagFilterProps, TaskItem, TaskItemProps, TaskList, TaskListProps, Widget, WidgetBody, WidgetBodyProps, WidgetHeader, WidgetHeaderLink, WidgetHeaderLinkProps, WidgetHeaderProps, WidgetProps, WidgetTitle, WidgetTitleProps };
|
|
1342
|
+
export { AboutWidget, AboutWidgetProps, AchievementWidget, AchievementWidgetProps, ActivityCard, ActivityCardProps, ActivityItem, ActivityItemProps, ActivityList, ActivityListProps, ActivityReflection, ActivityReflectionProps, AuthLayout, AuthLayoutProps, Badge, BadgeActivityMenu, BadgeActivityMenuProps, BadgeFilterOption, BadgeProps, BadgeSection, BadgeSectionProps, BadgeSuccessDialog, BadgeSuccessDialogProps, BadgesCard, BadgesCardProps, Board, BoardProps, Button, ButtonBorder, ButtonColor, ButtonFilter, ButtonJustify, ButtonProps, ButtonSize, ButtonSpacing, ButtonTheme, Card, CardProps, CtaListProps, DashboardShell, DashboardShellProps, DashboardSidebar, DashboardSidebarIdentity, DashboardSidebarLinks, DashboardSidebarProps, DashboardSidebarTabName, DashboardTopBar, DashboardTopBarProps, DateSelection, DateSelectionProps, DaySelectionOptionProps, EventItem, EventItemProps, EventList, EventListProps, Footer, Home, HomeLayout, HomeLayoutProps, Icon, IconName, IconProps, ImpactWidget, ImpactWidgetProps, LearningForm, LearningFormProps, Loader, LoaderProps, LogServiceButton, LogServiceButtonProps, Logo, Modal, ModalProps, NavBar, NavBarProps, NavLink, NavLinkName, NavLinkProps, NotFound, NotFoundProps, Onboarding, OnboardingProps, Overlay, OverlayProps, Pathway, PathwayButton, PathwayButtonProps, PathwayFilter, PathwayFilterOption, PathwayFilterProps, PathwayItem, PathwayProgress, PathwayProgressHeight, PathwayProgressProps, PathwayProps, PathwaySection, PathwaySectionProps, PathwayWidget, PathwayWidgetProps, PathwaysCard, PathwaysCardProps, Pill, PillAccent, PillProps, ProfileHeroCard, ProfileHeroCardProps, ProfileWidget, Progress, ProgressProps, ResidentWidgetProps, Search, SearchButton, SearchButtonProps, SearchProps, SearchResult, SearchResultProps, SettingsCard, SettingsCardProps, StatTile, StatTileAccent, StatTileProps, StatTileRow, StatTileRowProps, Stopwatch, StopwatchProps, Tab, TabProps, TagFilter, TagFilterProps, TaskItem, TaskItemProps, TaskList, TaskListProps, Widget, WidgetBody, WidgetBodyProps, WidgetHeader, WidgetHeaderLink, WidgetHeaderLinkProps, WidgetHeaderProps, WidgetProps, WidgetTitle, WidgetTitleProps };
|