@visin/frontend-core 1.7.0 → 1.9.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/dist/auth/AuthProvider.d.ts.map +1 -1
- package/dist/auth/AuthProvider.js +29 -0
- package/dist/auth/AuthProvider.js.map +1 -1
- package/dist/auth/authService.d.ts +6 -0
- package/dist/auth/authService.d.ts.map +1 -1
- package/dist/auth/authService.js +1 -0
- package/dist/auth/authService.js.map +1 -1
- package/dist/components/AppLayout/AppLayout.d.ts +2 -4
- package/dist/components/AppLayout/AppLayout.d.ts.map +1 -1
- package/dist/components/AppLayout/AppLayout.js +78 -55
- package/dist/components/AppLayout/AppLayout.js.map +1 -1
- package/dist/components/Page/EmptyState.d.ts +10 -0
- package/dist/components/Page/EmptyState.d.ts.map +1 -0
- package/dist/components/Page/EmptyState.js +19 -0
- package/dist/components/Page/EmptyState.js.map +1 -0
- package/dist/components/Page/ListRow.d.ts +27 -0
- package/dist/components/Page/ListRow.d.ts.map +1 -0
- package/dist/components/Page/ListRow.js +72 -0
- package/dist/components/Page/ListRow.js.map +1 -0
- package/dist/components/Page/PageHeader.d.ts +33 -0
- package/dist/components/Page/PageHeader.d.ts.map +1 -0
- package/dist/components/Page/PageHeader.js +47 -0
- package/dist/components/Page/PageHeader.js.map +1 -0
- package/dist/components/Page/Panel.d.ts +16 -0
- package/dist/components/Page/Panel.d.ts.map +1 -0
- package/dist/components/Page/Panel.js +13 -0
- package/dist/components/Page/Panel.js.map +1 -0
- package/dist/components/Page/ResponsiveActions.d.ts +38 -0
- package/dist/components/Page/ResponsiveActions.d.ts.map +1 -0
- package/dist/components/Page/ResponsiveActions.js +30 -0
- package/dist/components/Page/ResponsiveActions.js.map +1 -0
- package/dist/components/Page/SectionHeading.d.ts +10 -0
- package/dist/components/Page/SectionHeading.d.ts.map +1 -0
- package/dist/components/Page/SectionHeading.js +7 -0
- package/dist/components/Page/SectionHeading.js.map +1 -0
- package/dist/components/Page/index.d.ts +14 -0
- package/dist/components/Page/index.d.ts.map +1 -0
- package/dist/components/Page/index.js +8 -0
- package/dist/components/Page/index.js.map +1 -0
- package/dist/components/Page/layout.d.ts +10 -0
- package/dist/components/Page/layout.d.ts.map +1 -0
- package/dist/components/Page/layout.js +14 -0
- package/dist/components/Page/layout.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/theme.d.ts +27 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +121 -0
- package/dist/theme.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthProvider.d.ts","sourceRoot":"","sources":["../../src/auth/AuthProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+D,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACpG,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"AuthProvider.d.ts","sourceRoot":"","sources":["../../src/auth/AuthProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+D,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACpG,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAS5E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,iFAAiF;IACjF,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,gGAAgG;IAChG,OAAO,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;CACzC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,WAAW;iCAWpB;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE;mBA2DvC,gBAAgB;EASrC"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { createContext, useCallback, useContext, useEffect, useState } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* How stale the session check may get before returning to the app re-runs it.
|
|
5
|
+
* Each check renews the session cookie, so an installed app left open for days
|
|
6
|
+
* keeps its session alive instead of only renewing on a full page load.
|
|
7
|
+
*/
|
|
8
|
+
const AUTH_RECHECK_INTERVAL_MS = 60 * 60 * 1000;
|
|
3
9
|
/**
|
|
4
10
|
* Builds a Context + `useAuth()` hook backed by a single `authService`
|
|
5
11
|
* instance, so every consumer in the app shares one session check instead
|
|
@@ -13,11 +19,13 @@ export function createAuthContext(authService) {
|
|
|
13
19
|
// flashing "Checking authentication..." on every visit. The check still runs
|
|
14
20
|
// on each mount and corrects it.
|
|
15
21
|
let lastKnownUser;
|
|
22
|
+
let lastCheckedAt = 0;
|
|
16
23
|
function AuthProvider({ children }) {
|
|
17
24
|
const [user, setUser] = useState(lastKnownUser ?? null);
|
|
18
25
|
const [isLoading, setIsLoading] = useState(lastKnownUser === undefined);
|
|
19
26
|
const refresh = useCallback(async () => {
|
|
20
27
|
const result = await authService.checkAuth();
|
|
28
|
+
lastCheckedAt = Date.now();
|
|
21
29
|
lastKnownUser = result.user;
|
|
22
30
|
setUser(result.user);
|
|
23
31
|
return result;
|
|
@@ -32,6 +40,27 @@ export function createAuthContext(authService) {
|
|
|
32
40
|
cancelled = true;
|
|
33
41
|
};
|
|
34
42
|
}, [refresh]);
|
|
43
|
+
// Returning to the app (a tab brought forward, an installed app resumed)
|
|
44
|
+
// re-checks a stale session. A check that could not reach the server — a
|
|
45
|
+
// phone waking up offline — leaves the session as it was rather than
|
|
46
|
+
// signing the user out; the next return tries again.
|
|
47
|
+
useEffect(() => {
|
|
48
|
+
const onVisibilityChange = () => {
|
|
49
|
+
if (document.visibilityState !== 'visible')
|
|
50
|
+
return;
|
|
51
|
+
if (Date.now() - lastCheckedAt < AUTH_RECHECK_INTERVAL_MS)
|
|
52
|
+
return;
|
|
53
|
+
lastCheckedAt = Date.now();
|
|
54
|
+
void authService.checkAuth().then((result) => {
|
|
55
|
+
if (result.failed)
|
|
56
|
+
return;
|
|
57
|
+
lastKnownUser = result.user;
|
|
58
|
+
setUser(result.user);
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
document.addEventListener('visibilitychange', onVisibilityChange);
|
|
62
|
+
return () => document.removeEventListener('visibilitychange', onVisibilityChange);
|
|
63
|
+
}, []);
|
|
35
64
|
const login = useCallback(() => {
|
|
36
65
|
authService.redirectToLogin();
|
|
37
66
|
}, []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthProvider.js","sourceRoot":"","sources":["../../src/auth/AuthProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AuthProvider.js","sourceRoot":"","sources":["../../src/auth/AuthProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,12 @@ export interface AuthUser {
|
|
|
29
29
|
export interface AuthCheckResult {
|
|
30
30
|
authenticated: boolean;
|
|
31
31
|
user: AuthUser | null;
|
|
32
|
+
/**
|
|
33
|
+
* True when the check never got an answer (network down, server error), as
|
|
34
|
+
* opposed to the server saying "not logged in". `authenticated` is false
|
|
35
|
+
* either way; this is what lets a caller keep a session it already has.
|
|
36
|
+
*/
|
|
37
|
+
failed?: boolean;
|
|
32
38
|
}
|
|
33
39
|
export interface AuthServiceOptions {
|
|
34
40
|
/** Base URL of auth-service, e.g. `() => getGlobalConfig().AUTH_SERVICE_URL`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authService.d.ts","sourceRoot":"","sources":["../../src/auth/authService.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"authService.d.ts","sourceRoot":"","sources":["../../src/auth/authService.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,iFAAiF;IACjF,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,4FAA4F;IAC5F,YAAY,EAAE,MAAM,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,EAAE,kBAAkB;qBAS9D,OAAO,CAAC,eAAe,CAAC;0BAgCb,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;sBAK5B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;2BAUnB,OAAO,CAAC,OAAO,CAAC;kBAKzB,OAAO,CAAC,OAAO,CAAC;kCAUJ,MAAM,KAAG,IAAI;EAcnD;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
package/dist/auth/authService.js
CHANGED
|
@@ -34,6 +34,7 @@ export function createAuthService({ authServiceUrl, authFrontUrl }) {
|
|
|
34
34
|
// anonymous visitor, not a bug worth an error-level log.
|
|
35
35
|
if (!(error instanceof ApiError && error.status === 401)) {
|
|
36
36
|
console.error('Auth check failed:', error);
|
|
37
|
+
return { authenticated: false, user: null, failed: true };
|
|
37
38
|
}
|
|
38
39
|
return { authenticated: false, user: null };
|
|
39
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authService.js","sourceRoot":"","sources":["../../src/auth/authService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"authService.js","sourceRoot":"","sources":["../../src/auth/authService.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,8 +38,6 @@ export interface AppLayoutProps {
|
|
|
38
38
|
children: ReactNode;
|
|
39
39
|
/** The page title where no section names the page. */
|
|
40
40
|
appName: string;
|
|
41
|
-
/** Static description shown under the desktop page title. */
|
|
42
|
-
subtitle: string;
|
|
43
41
|
navGroups: AppLayoutNavGroup[];
|
|
44
42
|
/**
|
|
45
43
|
* Account's sections: listed in the account menu, and in the section bar
|
|
@@ -59,7 +57,7 @@ export interface AppLayoutProps {
|
|
|
59
57
|
/** Required when `isAuthenticated` can be false. */
|
|
60
58
|
onLogin?: () => void;
|
|
61
59
|
/**
|
|
62
|
-
* False drops the page title
|
|
60
|
+
* False drops the page title, for apps whose pages render
|
|
63
61
|
* their own headings. Defaults to true.
|
|
64
62
|
*/
|
|
65
63
|
showPageHeader?: boolean;
|
|
@@ -77,6 +75,6 @@ export interface AppLayoutProps {
|
|
|
77
75
|
* behind a burger button on phones, and collapsed on desktop to an icon rail
|
|
78
76
|
* that relied on the reader recognising the icons.
|
|
79
77
|
*/
|
|
80
|
-
export declare function AppLayout({ children, appName,
|
|
78
|
+
export declare function AppLayout({ children, appName, navGroups, accountItems, user, onLogout, maxContentWidth, isAuthenticated, onLogin, showPageHeader, homePath }: AppLayoutProps): import("react").JSX.Element;
|
|
81
79
|
export {};
|
|
82
80
|
//# sourceMappingURL=AppLayout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppLayout.d.ts","sourceRoot":"","sources":["../../../src/components/AppLayout/AppLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAwB,MAAM,OAAO,CAAC;AA4BxD,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,8DAA8D;AAC9D,MAAM,WAAW,wBAAyB,SAAQ,WAAW;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,qEAAqE;AACrE,MAAM,WAAW,wBAAyB,SAAQ,WAAW;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,MAAM,gBAAgB,GAAG,wBAAwB,GAAG,wBAAwB,CAAC;AAEnF;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,yDAAyD;IACzD,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,SAAS,CAAC;IACpB,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,
|
|
1
|
+
{"version":3,"file":"AppLayout.d.ts","sourceRoot":"","sources":["../../../src/components/AppLayout/AppLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAwB,MAAM,OAAO,CAAC;AA4BxD,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,8DAA8D;AAC9D,MAAM,WAAW,wBAAyB,SAAQ,WAAW;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,qEAAqE;AACrE,MAAM,WAAW,wBAAyB,SAAQ,WAAW;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,MAAM,gBAAgB,GAAG,wBAAwB,GAAG,wBAAwB,CAAC;AAEnF;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,yDAAyD;IACzD,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,SAAS,CAAC;IACpB,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B;;;;OAIG;IACH,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAClC,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2GAA2G;IAC3G,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAUD;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,OAAO,EACP,SAAS,EACT,YAAiB,EACjB,IAAI,EACJ,QAAQ,EACR,eAAqB,EACrB,eAAsB,EACtB,OAAO,EACP,cAAqB,EACrB,QAAQ,EACT,EAAE,cAAc,+BAkXhB"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from 'react';
|
|
3
|
-
import { Avatar, Box, Button, ButtonBase, CssBaseline, Divider, Drawer, ListItemIcon, ListItemText, Menu, MenuItem, MenuList, Typography,
|
|
3
|
+
import { Avatar, Box, Button, ButtonBase, CssBaseline, Divider, Drawer, ListItemIcon, ListItemText, Menu, MenuItem, MenuList, Typography, useTheme } from '@mui/material';
|
|
4
4
|
import { alpha } from '@mui/material/styles';
|
|
5
5
|
import { ExpandMore, Login, Logout, Person } from '@mui/icons-material';
|
|
6
6
|
import { Link, useLocation } from 'react-router-dom';
|
|
7
|
+
import { VISIN_COLORS } from '../../theme';
|
|
8
|
+
import { TAB_BAR_HEIGHT, useCompactLayout } from '../Page/layout';
|
|
7
9
|
const RAIL_WIDTH = 88;
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
const CHROME_BG = '#111827';
|
|
11
|
-
const CHROME_BORDER = 'rgba(255,255,255,0.1)';
|
|
10
|
+
const APP_BAR_HEIGHT = 56;
|
|
11
|
+
const RAIL_BORDER = 'rgba(255,255,255,0.08)';
|
|
12
12
|
const ownsPath = (prefix, pathname) => pathname === prefix || pathname.startsWith(`${prefix}/`);
|
|
13
13
|
// A router link for a local section, a plain anchor — a full page load — for a
|
|
14
14
|
// sibling app's.
|
|
@@ -24,17 +24,13 @@ const linkProps = (item) => item.path !== undefined ? { component: Link, to: ite
|
|
|
24
24
|
* behind a burger button on phones, and collapsed on desktop to an icon rail
|
|
25
25
|
* that relied on the reader recognising the icons.
|
|
26
26
|
*/
|
|
27
|
-
export function AppLayout({ children, appName,
|
|
27
|
+
export function AppLayout({ children, appName, navGroups, accountItems = [], user, onLogout, maxContentWidth = 800, isAuthenticated = true, onLogin, showPageHeader = true, homePath }) {
|
|
28
28
|
const { pathname } = useLocation();
|
|
29
29
|
const theme = useTheme();
|
|
30
|
-
//
|
|
31
|
-
//
|
|
32
|
-
//
|
|
33
|
-
|
|
34
|
-
// but not for the rail *and* a readable content column, so from 600 to 900 it
|
|
35
|
-
// was the content that gave up the 88px. Below `md` the compact layout — tab
|
|
36
|
-
// bar, section dropdown, bottom-sheet account — gets the full width instead.
|
|
37
|
-
const mobile = useMediaQuery(theme.breakpoints.down('md'), { noSsr: true });
|
|
30
|
+
// Below `md` the compact layout — app bar, tab bar, section dropdown,
|
|
31
|
+
// bottom-sheet account — gets the full width; from 600 to 900 there is room
|
|
32
|
+
// for the rail but not the rail *and* a readable content column.
|
|
33
|
+
const mobile = useCompactLayout();
|
|
38
34
|
const [accountAnchor, setAccountAnchor] = useState(null);
|
|
39
35
|
const [sectionAnchor, setSectionAnchor] = useState(null);
|
|
40
36
|
const closeAccount = () => setAccountAnchor(null);
|
|
@@ -81,37 +77,44 @@ export function AppLayout({ children, appName, subtitle, navGroups, accountItems
|
|
|
81
77
|
paper: { sx: { ml: 1, minWidth: 240, maxWidth: 320, borderRadius: 3 } },
|
|
82
78
|
list: { 'aria-label': 'Account' }
|
|
83
79
|
}, children: accountMenuItems }));
|
|
84
|
-
|
|
80
|
+
// What the app bar calls the page: its section, else its group, else the app.
|
|
81
|
+
const barTitle = activeItem?.text ?? activeGroup?.label ?? appName;
|
|
82
|
+
const appBarSx = {
|
|
83
|
+
position: 'sticky',
|
|
84
|
+
top: 0,
|
|
85
|
+
zIndex: theme.zIndex.appBar,
|
|
85
86
|
display: 'flex',
|
|
86
87
|
alignItems: 'center',
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
bgcolor: VISIN_COLORS.appBar,
|
|
89
|
+
color: '#fff',
|
|
90
|
+
borderBottom: `1px solid ${RAIL_BORDER}`,
|
|
91
|
+
// Under a status bar the installed app draws into (viewport-fit=cover).
|
|
92
|
+
pt: 'env(safe-area-inset-top)'
|
|
90
93
|
};
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
textTransform: 'none',
|
|
94
|
+
const sectionMenu = sectionGroup && (_jsx(Menu, { anchorEl: sectionAnchor, open: Boolean(sectionAnchor), onClose: closeSections, anchorOrigin: { vertical: 'bottom', horizontal: 'left' }, transformOrigin: { vertical: 'top', horizontal: 'left' }, slotProps: { paper: { sx: { minWidth: 220 } } }, children: sectionGroup.items.map((item) => menuItem(item, closeSections)) }));
|
|
95
|
+
const header = mobile ? (_jsx(Box, { component: "header", sx: { ...appBarSx, minHeight: APP_BAR_HEIGHT, px: 1 }, children: sectionGroup ? (_jsxs(Box, { component: "nav", "aria-label": sectionGroup.label, sx: { minWidth: 0 }, children: [_jsx(Button, { onClick: (event) => setSectionAnchor(event.currentTarget), endIcon: _jsx(ExpandMore, {}), "aria-haspopup": "menu", "aria-expanded": Boolean(sectionAnchor), sx: {
|
|
94
96
|
fontWeight: 700,
|
|
95
|
-
fontSize: '
|
|
96
|
-
color: '
|
|
97
|
-
borderRadius: 2,
|
|
97
|
+
fontSize: '1.125rem',
|
|
98
|
+
color: 'inherit',
|
|
98
99
|
minWidth: 0,
|
|
99
|
-
maxWidth: '100%'
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
100
|
+
maxWidth: '100%',
|
|
101
|
+
px: 1.25,
|
|
102
|
+
'&:hover': { bgcolor: 'rgba(255,255,255,0.12)' }
|
|
103
|
+
}, children: _jsx(Box, { component: "span", sx: { overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }, children: sectionGroup.items.find(isActive)?.text ?? sectionGroup.label }) }), sectionMenu] })) : (_jsx(Typography, { component: "span", noWrap: true, sx: { fontWeight: 700, fontSize: '1.125rem', px: 1.25 }, children: barTitle })) })) : (_jsxs(Box, { component: "header", sx: { ...appBarSx, minHeight: 64, gap: 3, px: { md: 5 } }, children: [_jsx(Typography, { component: "span", noWrap: true, sx: { fontWeight: 700, fontSize: '1.125rem', flexShrink: 0 }, children: activeGroup?.label ?? appName }), sectionGroup && (_jsx(Box, { component: "nav", "aria-label": sectionGroup.label, sx: { display: 'flex', alignItems: 'center', gap: 0.5, overflowX: 'auto', minWidth: 0 }, children: sectionGroup.items.map((item) => {
|
|
104
|
+
const active = isActive(item);
|
|
105
|
+
return (_jsx(Button, { ...linkProps(item), startIcon: item.icon, "aria-current": active ? 'page' : undefined, sx: {
|
|
106
|
+
flexShrink: 0,
|
|
107
|
+
px: 1.75,
|
|
108
|
+
height: 36,
|
|
109
|
+
fontWeight: active ? 700 : 500,
|
|
110
|
+
color: active ? '#fff' : 'rgba(255,255,255,0.72)',
|
|
111
|
+
bgcolor: active ? 'rgba(255,255,255,0.16)' : 'transparent',
|
|
112
|
+
'& .MuiButton-startIcon svg': { fontSize: 20 },
|
|
113
|
+
'&:hover': { bgcolor: active ? 'rgba(255,255,255,0.22)' : 'rgba(255,255,255,0.1)', color: '#fff' }
|
|
114
|
+
}, children: item.text }, item.text));
|
|
115
|
+
}) }))] }));
|
|
116
|
+
// On a phone the app bar already names the page.
|
|
117
|
+
const pageHeader = showPageHeader && !mobile && (_jsx(Typography, { variant: "h4", component: "h1", sx: { fontSize: '1.75rem', lineHeight: 1.25, mb: 3 }, children: activeItem?.text || appName }));
|
|
115
118
|
return (_jsxs(Box, { sx: { display: 'flex', minHeight: '100vh', bgcolor: 'background.default' }, children: [_jsx(CssBaseline, {}), !mobile && (_jsxs(Box, { component: "nav", "aria-label": "Main", sx: {
|
|
116
119
|
width: RAIL_WIDTH,
|
|
117
120
|
flexShrink: 0,
|
|
@@ -127,20 +130,20 @@ export function AppLayout({ children, appName, subtitle, navGroups, accountItems
|
|
|
127
130
|
px: 0.5,
|
|
128
131
|
py: 2,
|
|
129
132
|
overflowY: 'auto',
|
|
130
|
-
bgcolor:
|
|
133
|
+
bgcolor: VISIN_COLORS.rail,
|
|
131
134
|
color: '#fff',
|
|
132
|
-
borderRight: `1px solid ${
|
|
135
|
+
borderRight: `1px solid ${RAIL_BORDER}`
|
|
133
136
|
}, children: [homePath ? (_jsx(ButtonBase, { component: Link, to: homePath, "aria-label": "Visin home", disableRipple: true, sx: {
|
|
134
137
|
alignSelf: 'center',
|
|
135
138
|
mb: 2,
|
|
136
139
|
p: 0.5,
|
|
137
140
|
borderRadius: '10px',
|
|
138
141
|
'&.Mui-focusVisible': { outline: `2px solid ${theme.palette.primary.light}`, outlineOffset: 1 }
|
|
139
|
-
}, children: _jsx(Box, { component: "img", src: "/logo.svg", alt: "Visin", sx: { display: 'block', width: 32, height: 32 } }) })) : (_jsx(Box, { component: "img", src: "/logo.svg", alt: "Visin", sx: { width: 32, height: 32, mx: 'auto', mb: 2.5, mt: 0.5 } })), railEntries] })), _jsxs(Box, { sx: { flexGrow: 1, minWidth: 0, display: 'flex', flexDirection: 'column' }, children: [
|
|
142
|
+
}, children: _jsx(Box, { component: "img", src: "/logo.svg", alt: "Visin", sx: { display: 'block', width: 32, height: 32 } }) })) : (_jsx(Box, { component: "img", src: "/logo.svg", alt: "Visin", sx: { width: 32, height: 32, mx: 'auto', mb: 2.5, mt: 0.5 } })), railEntries] })), _jsxs(Box, { sx: { flexGrow: 1, minWidth: 0, display: 'flex', flexDirection: 'column' }, children: [header, _jsx(Box, { component: "main", sx: {
|
|
140
143
|
flexGrow: 1,
|
|
141
144
|
// Gutters stay narrow for as long as the compact layout runs; 4 was
|
|
142
145
|
// a desktop margin applied to a tablet's much shorter line.
|
|
143
|
-
p: { xs: 2, sm: 3, md:
|
|
146
|
+
p: { xs: 2, sm: 3, md: 5 },
|
|
144
147
|
// Clear of the fixed tab bar. On the padding rather than a spacer,
|
|
145
148
|
// since the workbench sizes its frame to what main's padding leaves.
|
|
146
149
|
...(mobile && { pb: `calc(${TAB_BAR_HEIGHT}px + ${theme.spacing(2)} + env(safe-area-inset-bottom))` }),
|
|
@@ -157,13 +160,35 @@ export function AppLayout({ children, appName, subtitle, navGroups, accountItems
|
|
|
157
160
|
px: 0.5,
|
|
158
161
|
pt: 0.75,
|
|
159
162
|
pb: 'calc(6px + env(safe-area-inset-bottom))',
|
|
160
|
-
bgcolor:
|
|
161
|
-
color: '
|
|
162
|
-
borderTop:
|
|
163
|
+
bgcolor: 'background.paper',
|
|
164
|
+
color: 'text.secondary',
|
|
165
|
+
borderTop: 1,
|
|
166
|
+
borderColor: 'divider',
|
|
167
|
+
boxShadow: '0 -4px 16px rgba(15, 23, 42, 0.04)'
|
|
163
168
|
}, children: railEntries })), isAuthenticated && accountMenu] }));
|
|
164
169
|
}
|
|
165
170
|
function NavButton({ label, icon, active, current, mobile, target, onClick, expanded }) {
|
|
166
171
|
const theme = useTheme();
|
|
172
|
+
// The rail is dark; the phone's tab bar is light, under a coloured app bar.
|
|
173
|
+
const tone = mobile
|
|
174
|
+
? {
|
|
175
|
+
idle: theme.palette.text.secondary,
|
|
176
|
+
active: theme.palette.text.primary,
|
|
177
|
+
activeIcon: theme.palette.primary.main,
|
|
178
|
+
pill: alpha(theme.palette.primary.main, 0.12),
|
|
179
|
+
pillHover: alpha(theme.palette.primary.main, 0.18),
|
|
180
|
+
idleHover: theme.palette.action.hover,
|
|
181
|
+
focus: theme.palette.primary.main
|
|
182
|
+
}
|
|
183
|
+
: {
|
|
184
|
+
idle: 'rgba(255,255,255,0.62)',
|
|
185
|
+
active: '#fff',
|
|
186
|
+
activeIcon: theme.palette.primary.light,
|
|
187
|
+
pill: alpha(theme.palette.primary.main, 0.24),
|
|
188
|
+
pillHover: alpha(theme.palette.primary.main, 0.34),
|
|
189
|
+
idleHover: 'rgba(255,255,255,0.08)',
|
|
190
|
+
focus: theme.palette.primary.light
|
|
191
|
+
};
|
|
167
192
|
const sx = {
|
|
168
193
|
flex: mobile ? 1 : 'none',
|
|
169
194
|
minWidth: 0,
|
|
@@ -173,7 +198,7 @@ function NavButton({ label, icon, active, current, mobile, target, onClick, expa
|
|
|
173
198
|
gap: 0.5,
|
|
174
199
|
py: 0.5,
|
|
175
200
|
borderRadius: 3,
|
|
176
|
-
color: active ?
|
|
201
|
+
color: active ? tone.active : tone.idle,
|
|
177
202
|
WebkitTapHighlightColor: 'transparent',
|
|
178
203
|
'& .nav-pill': {
|
|
179
204
|
width: 56,
|
|
@@ -181,16 +206,14 @@ function NavButton({ label, icon, active, current, mobile, target, onClick, expa
|
|
|
181
206
|
borderRadius: 999,
|
|
182
207
|
display: 'grid',
|
|
183
208
|
placeItems: 'center',
|
|
184
|
-
color: active ?
|
|
185
|
-
bgcolor: active ?
|
|
209
|
+
color: active ? tone.activeIcon : 'inherit',
|
|
210
|
+
bgcolor: active ? tone.pill : 'transparent',
|
|
186
211
|
transition: 'background-color .2s ease, color .2s ease, transform .15s ease'
|
|
187
212
|
},
|
|
188
|
-
'&:hover': { color:
|
|
189
|
-
'&:hover .nav-pill': {
|
|
190
|
-
bgcolor: active ? alpha(theme.palette.primary.main, 0.32) : 'rgba(255,255,255,0.08)'
|
|
191
|
-
},
|
|
213
|
+
'&:hover': { color: tone.active },
|
|
214
|
+
'&:hover .nav-pill': { bgcolor: active ? tone.pillHover : tone.idleHover },
|
|
192
215
|
'&:active .nav-pill': { transform: 'scale(0.94)' },
|
|
193
|
-
'&.Mui-focusVisible .nav-pill': { outline: `2px solid ${
|
|
216
|
+
'&.Mui-focusVisible .nav-pill': { outline: `2px solid ${tone.focus}`, outlineOffset: 1 }
|
|
194
217
|
};
|
|
195
218
|
const body = (_jsxs(_Fragment, { children: [_jsx(Box, { className: "nav-pill", "aria-hidden": true, children: icon }), _jsx(Box, { component: "span", sx: {
|
|
196
219
|
maxWidth: '100%',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppLayout.js","sourceRoot":"","sources":["../../../src/components/AppLayout/AppLayout.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AppLayout.js","sourceRoot":"","sources":["../../../src/components/AppLayout/AppLayout.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export interface EmptyStateProps {
|
|
3
|
+
icon: ReactNode;
|
|
4
|
+
title: string;
|
|
5
|
+
description?: ReactNode;
|
|
6
|
+
action?: ReactNode;
|
|
7
|
+
}
|
|
8
|
+
/** What stands in for a list with nothing in it: what would be here, and how to add the first one. */
|
|
9
|
+
export declare function EmptyState({ icon, title, description, action }: EmptyStateProps): import("react").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=EmptyState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../../src/components/Page/EmptyState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,sGAAsG;AACtG,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,eAAe,+BA6B/E"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Typography } from '@mui/material';
|
|
3
|
+
import { alpha } from '@mui/material/styles';
|
|
4
|
+
/** What stands in for a list with nothing in it: what would be here, and how to add the first one. */
|
|
5
|
+
export function EmptyState({ icon, title, description, action }) {
|
|
6
|
+
return (_jsxs(Box, { sx: { textAlign: 'center', px: 3, py: { xs: 6, md: 8 } }, children: [_jsx(Box, { "aria-hidden": true, sx: (theme) => ({
|
|
7
|
+
width: 56,
|
|
8
|
+
height: 56,
|
|
9
|
+
mx: 'auto',
|
|
10
|
+
mb: 2,
|
|
11
|
+
borderRadius: '16px',
|
|
12
|
+
display: 'grid',
|
|
13
|
+
placeItems: 'center',
|
|
14
|
+
color: 'primary.main',
|
|
15
|
+
bgcolor: alpha(theme.palette.primary.main, 0.1),
|
|
16
|
+
'& svg': { fontSize: 28 }
|
|
17
|
+
}), children: icon }), _jsx(Typography, { sx: { fontWeight: 700, fontSize: '1.05rem' }, children: title }), description && (_jsx(Typography, { variant: "body2", sx: { color: 'text.secondary', mt: 0.5, maxWidth: 420, mx: 'auto' }, children: description })), action && _jsx(Box, { sx: { mt: 2.5 }, children: action })] }));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=EmptyState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyState.js","sourceRoot":"","sources":["../../../src/components/Page/EmptyState.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAS7C,sGAAsG;AACtG,MAAM,UAAU,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAmB;IAC9E,OAAO,CACL,MAAC,GAAG,IAAC,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,aAC3D,KAAC,GAAG,yBAEF,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACd,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,EAAE;oBACV,EAAE,EAAE,MAAM;oBACV,EAAE,EAAE,CAAC;oBACL,YAAY,EAAE,MAAM;oBACpB,OAAO,EAAE,MAAM;oBACf,UAAU,EAAE,QAAQ;oBACpB,KAAK,EAAE,cAAc;oBACrB,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;oBAC/C,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;iBAC1B,CAAC,YAED,IAAI,GACD,EACN,KAAC,UAAU,IAAC,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAG,KAAK,GAAc,EAC7E,WAAW,IAAI,CACd,KAAC,UAAU,IAAC,OAAO,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,YAC5F,WAAW,GACD,CACd,EACA,MAAM,IAAI,KAAC,GAAG,IAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,YAAG,MAAM,GAAO,IAC3C,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export interface ListRowProps {
|
|
3
|
+
/** A route in this app. */
|
|
4
|
+
to?: string;
|
|
5
|
+
/** A page elsewhere, loaded in full. */
|
|
6
|
+
href?: string;
|
|
7
|
+
onClick?: () => void;
|
|
8
|
+
leading?: ReactNode;
|
|
9
|
+
title: ReactNode;
|
|
10
|
+
secondary?: ReactNode;
|
|
11
|
+
/** Controls at the end of the row (a menu, a chip). Replaces the chevron, and sits outside the tap target. */
|
|
12
|
+
trailing?: ReactNode;
|
|
13
|
+
/** Drawn under the secondary line, e.g. a progress meter. */
|
|
14
|
+
children?: ReactNode;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* One row of a native-style list: icon, two lines, and a chevron — the whole
|
|
18
|
+
* row one tap target. Rows in a `Panel` get hairlines between them, inset past
|
|
19
|
+
* the icon the way a phone draws them.
|
|
20
|
+
*/
|
|
21
|
+
export declare function ListRow({ to, href, onClick, leading, title, secondary, trailing, children }: ListRowProps): import("react").JSX.Element;
|
|
22
|
+
/** The tinted square an icon sits in at the start of a row. */
|
|
23
|
+
export declare function RowIcon({ color, children }: {
|
|
24
|
+
color: string;
|
|
25
|
+
children: ReactNode;
|
|
26
|
+
}): import("react").JSX.Element;
|
|
27
|
+
//# sourceMappingURL=ListRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListRow.d.ts","sourceRoot":"","sources":["../../../src/components/Page/ListRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAgBvC,MAAM,WAAW,YAAY;IAC3B,2BAA2B;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,8GAA8G;IAC9G,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,YAAY,+BA2EzG;AAED,+DAA+D;AAC/D,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAmBlF"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Link as RouterLink } from 'react-router-dom';
|
|
3
|
+
import { Box, ButtonBase, Typography } from '@mui/material';
|
|
4
|
+
import { alpha } from '@mui/material/styles';
|
|
5
|
+
import { ChevronRight } from '@mui/icons-material';
|
|
6
|
+
// Up to two lines, then an ellipsis: one line cut a phone row's detail off
|
|
7
|
+
// before its most useful part.
|
|
8
|
+
const twoLines = {
|
|
9
|
+
display: '-webkit-box',
|
|
10
|
+
WebkitBoxOrient: 'vertical',
|
|
11
|
+
WebkitLineClamp: 2,
|
|
12
|
+
overflow: 'hidden',
|
|
13
|
+
overflowWrap: 'anywhere'
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* One row of a native-style list: icon, two lines, and a chevron — the whole
|
|
17
|
+
* row one tap target. Rows in a `Panel` get hairlines between them, inset past
|
|
18
|
+
* the icon the way a phone draws them.
|
|
19
|
+
*/
|
|
20
|
+
export function ListRow({ to, href, onClick, leading, title, secondary, trailing, children }) {
|
|
21
|
+
const navigable = to !== undefined || href !== undefined || onClick !== undefined;
|
|
22
|
+
const target = to !== undefined ? { component: RouterLink, to } : href !== undefined ? { component: 'a', href } : {};
|
|
23
|
+
const body = (_jsxs(_Fragment, { children: [leading, _jsxs(Box, { component: "span", sx: { flex: 1, minWidth: 0 }, children: [_jsx(Typography, { component: "span", sx: { ...twoLines, fontSize: '0.975rem', fontWeight: 600, lineHeight: 1.4 }, children: title }), secondary && (_jsx(Typography, { component: "span", variant: "body2", sx: { ...twoLines, color: 'text.secondary' }, children: secondary })), children] }), navigable && !trailing && _jsx(ChevronRight, { sx: { color: 'text.disabled', flexShrink: 0 } })] }));
|
|
24
|
+
const rowSx = {
|
|
25
|
+
flex: 1,
|
|
26
|
+
minWidth: 0,
|
|
27
|
+
display: 'flex',
|
|
28
|
+
alignItems: 'center',
|
|
29
|
+
justifyContent: 'flex-start',
|
|
30
|
+
gap: 1.5,
|
|
31
|
+
px: 2,
|
|
32
|
+
py: 1.5,
|
|
33
|
+
minHeight: 64,
|
|
34
|
+
textAlign: 'left',
|
|
35
|
+
color: 'text.primary'
|
|
36
|
+
};
|
|
37
|
+
return (_jsxs(Box, { className: "visin-list-row", sx: {
|
|
38
|
+
position: 'relative',
|
|
39
|
+
display: 'flex',
|
|
40
|
+
alignItems: 'center',
|
|
41
|
+
pr: trailing ? 1 : 0,
|
|
42
|
+
'.visin-list-row + &::before': {
|
|
43
|
+
content: '""',
|
|
44
|
+
position: 'absolute',
|
|
45
|
+
top: 0,
|
|
46
|
+
left: leading ? 68 : 16,
|
|
47
|
+
right: 0,
|
|
48
|
+
borderTop: '1px solid',
|
|
49
|
+
borderColor: 'divider'
|
|
50
|
+
}
|
|
51
|
+
}, children: [navigable ? (_jsx(ButtonBase, { ...target, onClick: onClick, sx: {
|
|
52
|
+
...rowSx,
|
|
53
|
+
WebkitTapHighlightColor: 'transparent',
|
|
54
|
+
transition: 'background-color .15s ease',
|
|
55
|
+
'&:hover': { bgcolor: 'action.hover' },
|
|
56
|
+
'&:active': { bgcolor: 'action.selected' }
|
|
57
|
+
}, children: body })) : (_jsx(Box, { sx: rowSx, children: body })), trailing && _jsx(Box, { sx: { display: 'flex', alignItems: 'center', gap: 0.5, flexShrink: 0 }, children: trailing })] }));
|
|
58
|
+
}
|
|
59
|
+
/** The tinted square an icon sits in at the start of a row. */
|
|
60
|
+
export function RowIcon({ color, children }) {
|
|
61
|
+
return (_jsx(Box, { component: "span", "aria-hidden": true, sx: {
|
|
62
|
+
width: 40,
|
|
63
|
+
height: 40,
|
|
64
|
+
borderRadius: '12px',
|
|
65
|
+
display: 'grid',
|
|
66
|
+
placeItems: 'center',
|
|
67
|
+
flexShrink: 0,
|
|
68
|
+
color,
|
|
69
|
+
bgcolor: alpha(color, 0.12)
|
|
70
|
+
}, children: children }));
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=ListRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListRow.js","sourceRoot":"","sources":["../../../src/components/Page/ListRow.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export interface PageAction {
|
|
3
|
+
label: string;
|
|
4
|
+
icon?: ReactNode;
|
|
5
|
+
/** A route in this app. */
|
|
6
|
+
to?: string;
|
|
7
|
+
onClick?: () => void;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface PageHeaderProps {
|
|
11
|
+
/**
|
|
12
|
+
* Left out where the layout already titles the page (label and account pages,
|
|
13
|
+
* whose `AppLayout` header names them): then only the subtitle and actions show.
|
|
14
|
+
*/
|
|
15
|
+
title?: string;
|
|
16
|
+
subtitle?: ReactNode;
|
|
17
|
+
/** Secondary controls beside the primary action, e.g. a refresh button. */
|
|
18
|
+
actions?: ReactNode;
|
|
19
|
+
/** The page's main action. A button on desktop; a floating button above the tab bar on a phone. */
|
|
20
|
+
primaryAction?: PageAction;
|
|
21
|
+
/**
|
|
22
|
+
* The app bar already names this page on a phone — a top-level section like
|
|
23
|
+
* Projects or Jobs — so the title is left out there rather than said twice.
|
|
24
|
+
*/
|
|
25
|
+
hideTitleOnPhone?: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The top of a page: its title, a line saying what it is for, and what can be
|
|
29
|
+
* done here. On a phone the main action moves to a floating button in thumb
|
|
30
|
+
* reach, the way a native app offers "new".
|
|
31
|
+
*/
|
|
32
|
+
export declare function PageHeader({ title, subtitle, actions, primaryAction, hideTitleOnPhone }: PageHeaderProps): import("react").JSX.Element;
|
|
33
|
+
//# sourceMappingURL=PageHeader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PageHeader.d.ts","sourceRoot":"","sources":["../../../src/components/Page/PageHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAcvC,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,2BAA2B;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,mGAAmG;IACnG,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,gBAAwB,EAAE,EAAE,eAAe,+BAuFhH"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Link as RouterLink } from 'react-router-dom';
|
|
3
|
+
import { Box, Button, Fab, Typography } from '@mui/material';
|
|
4
|
+
import { TAB_BAR_HEIGHT, useCompactLayout } from './layout';
|
|
5
|
+
const visuallyHidden = {
|
|
6
|
+
position: 'absolute',
|
|
7
|
+
width: '1px',
|
|
8
|
+
height: '1px',
|
|
9
|
+
overflow: 'hidden',
|
|
10
|
+
clip: 'rect(0 0 0 0)',
|
|
11
|
+
whiteSpace: 'nowrap'
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* The top of a page: its title, a line saying what it is for, and what can be
|
|
15
|
+
* done here. On a phone the main action moves to a floating button in thumb
|
|
16
|
+
* reach, the way a native app offers "new".
|
|
17
|
+
*/
|
|
18
|
+
export function PageHeader({ title, subtitle, actions, primaryAction, hideTitleOnPhone = false }) {
|
|
19
|
+
const compact = useCompactLayout();
|
|
20
|
+
const showTitle = title !== undefined && !(compact && hideTitleOnPhone);
|
|
21
|
+
const link = primaryAction?.to !== undefined ? { component: RouterLink, to: primaryAction.to } : {};
|
|
22
|
+
const primary = primaryAction &&
|
|
23
|
+
(compact ? (_jsxs(Fab, { variant: "extended", color: "primary", ...link, onClick: primaryAction.onClick, disabled: primaryAction.disabled, sx: {
|
|
24
|
+
position: 'fixed',
|
|
25
|
+
right: 16,
|
|
26
|
+
bottom: `calc(${TAB_BAR_HEIGHT}px + 16px + env(safe-area-inset-bottom))`,
|
|
27
|
+
zIndex: (theme) => theme.zIndex.speedDial,
|
|
28
|
+
gap: 1,
|
|
29
|
+
px: 2.5,
|
|
30
|
+
boxShadow: '0 8px 24px rgba(37, 99, 235, 0.35)'
|
|
31
|
+
}, children: [primaryAction.icon, primaryAction.label] })) : (_jsx(Button, { variant: "contained", ...link, onClick: primaryAction.onClick, disabled: primaryAction.disabled, startIcon: primaryAction.icon, sx: { flexShrink: 0, height: 40, px: 2.25 }, children: primaryAction.label })));
|
|
32
|
+
const controls = (actions || (primary && !compact)) && (_jsxs(Box, { sx: { display: 'flex', alignItems: 'center', gap: 1, flexShrink: 0 }, children: [actions, !compact && primary] }));
|
|
33
|
+
return (_jsxs(Box, { component: "header", sx: {
|
|
34
|
+
display: 'flex',
|
|
35
|
+
alignItems: showTitle ? 'flex-start' : 'center',
|
|
36
|
+
justifyContent: 'space-between',
|
|
37
|
+
// A narrow screen wraps a wide control (a select) under the text rather
|
|
38
|
+
// than squeezing the text into a strip beside it; an icon still fits.
|
|
39
|
+
flexWrap: 'wrap',
|
|
40
|
+
gap: 2,
|
|
41
|
+
// Nothing visible (a phone, no subtitle or controls): no gap either.
|
|
42
|
+
mb: !showTitle && !subtitle && !controls ? 0 : { xs: 2, md: 3 }
|
|
43
|
+
}, children: [_jsxs(Box, { sx: { minWidth: 0, flex: '1 1 240px' }, children: [title !== undefined && (_jsx(Typography, { variant: "h4", component: "h1", sx: showTitle
|
|
44
|
+
? { fontSize: { xs: '1.5rem', md: '1.75rem' }, lineHeight: 1.25, mb: subtitle ? 0.5 : 0 }
|
|
45
|
+
: visuallyHidden, children: title })), subtitle && (_jsx(Typography, { variant: "body2", sx: { color: 'text.secondary', fontSize: { md: '0.95rem' } }, children: subtitle }))] }), controls, compact && primary] }));
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=PageHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PageHeader.js","sourceRoot":"","sources":["../../../src/components/Page/PageHeader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { type SxProps, type Theme } from '@mui/material';
|
|
3
|
+
export interface PanelProps {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
sx?: SxProps<Theme>;
|
|
6
|
+
/** The element to render, e.g. `section` or `ul`. */
|
|
7
|
+
component?: React.ElementType;
|
|
8
|
+
'aria-label'?: string;
|
|
9
|
+
'aria-labelledby'?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* The surface lists, tables and forms sit on: white, a hairline border, 16px
|
|
13
|
+
* corners. Flat on purpose — on a phone, stacked shadows read as clutter.
|
|
14
|
+
*/
|
|
15
|
+
export declare function Panel({ children, sx, component, ...aria }: PanelProps): import("react").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=Panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../../src/components/Page/Panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAO,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAE9D,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,qDAAqD;IACrD,SAAS,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAiB,EAAE,GAAG,IAAI,EAAE,EAAE,UAAU,+BAa7E"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Box } from '@mui/material';
|
|
3
|
+
/**
|
|
4
|
+
* The surface lists, tables and forms sit on: white, a hairline border, 16px
|
|
5
|
+
* corners. Flat on purpose — on a phone, stacked shadows read as clutter.
|
|
6
|
+
*/
|
|
7
|
+
export function Panel({ children, sx, component = 'div', ...aria }) {
|
|
8
|
+
return (_jsx(Box, { component: component, ...aria, sx: [
|
|
9
|
+
{ bgcolor: 'background.paper', border: '1px solid', borderColor: 'divider', borderRadius: '16px', overflow: 'hidden' },
|
|
10
|
+
...(Array.isArray(sx) ? sx : [sx])
|
|
11
|
+
], children: children }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=Panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Panel.js","sourceRoot":"","sources":["../../../src/components/Page/Panel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAA4B,MAAM,eAAe,CAAC;AAW9D;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,IAAI,EAAc;IAC5E,OAAO,CACL,KAAC,GAAG,IACF,SAAS,EAAE,SAAS,KAChB,IAAI,EACR,EAAE,EAAE;YACF,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;YACtH,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACnC,YAEA,QAAQ,GACL,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export interface ResponsiveAction {
|
|
3
|
+
label: string;
|
|
4
|
+
icon?: ReactNode;
|
|
5
|
+
onClick?: () => void;
|
|
6
|
+
/** A route in this app. */
|
|
7
|
+
to?: string;
|
|
8
|
+
/** A page or file elsewhere. */
|
|
9
|
+
href?: string;
|
|
10
|
+
/** Filled: the one thing this page is for. At most one per bar. */
|
|
11
|
+
primary?: boolean;
|
|
12
|
+
/** A destructive action, drawn in the error colour. */
|
|
13
|
+
danger?: boolean;
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface ResponsiveActionsProps {
|
|
17
|
+
actions: ResponsiveAction[];
|
|
18
|
+
/**
|
|
19
|
+
* How many of the leading actions stay buttons on a phone; the rest move into
|
|
20
|
+
* a ⋮ menu. Defaults to 0 — a phone's width belongs to the content.
|
|
21
|
+
*/
|
|
22
|
+
keepOnPhone?: number;
|
|
23
|
+
/**
|
|
24
|
+
* How many stay buttons on desktop; the rest go behind ⋮ there too. Defaults
|
|
25
|
+
* to all — set it where a page has chores (exports, archive) that would
|
|
26
|
+
* otherwise crowd out what the page is for.
|
|
27
|
+
*/
|
|
28
|
+
keepOnDesktop?: number;
|
|
29
|
+
/** Names the ⋮ button, e.g. "More actions for VLM". */
|
|
30
|
+
menuLabel?: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* A page's actions: a row of buttons on desktop, and on a phone the leading
|
|
34
|
+
* few as buttons with the rest behind a ⋮ menu, the way a native app keeps its
|
|
35
|
+
* toolbar to what fits.
|
|
36
|
+
*/
|
|
37
|
+
export declare function ResponsiveActions({ actions, keepOnPhone, keepOnDesktop, menuLabel }: ResponsiveActionsProps): import("react").JSX.Element | null;
|
|
38
|
+
//# sourceMappingURL=ResponsiveActions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResponsiveActions.d.ts","sourceRoot":"","sources":["../../../src/components/Page/ResponsiveActions.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAMjD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,2BAA2B;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uDAAuD;IACvD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,OAAO,EAAE,WAAe,EAAE,aAAa,EAAE,SAA0B,EAAE,EAAE,sBAAsB,sCA2DhI"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { Link as RouterLink } from 'react-router-dom';
|
|
4
|
+
import { Box, Button, IconButton, ListItemIcon, Menu, MenuItem } from '@mui/material';
|
|
5
|
+
import { MoreVert } from '@mui/icons-material';
|
|
6
|
+
import { useCompactLayout } from './layout';
|
|
7
|
+
const linkProps = (action) => action.to !== undefined
|
|
8
|
+
? { component: RouterLink, to: action.to }
|
|
9
|
+
: action.href !== undefined
|
|
10
|
+
? { component: 'a', href: action.href }
|
|
11
|
+
: {};
|
|
12
|
+
/**
|
|
13
|
+
* A page's actions: a row of buttons on desktop, and on a phone the leading
|
|
14
|
+
* few as buttons with the rest behind a ⋮ menu, the way a native app keeps its
|
|
15
|
+
* toolbar to what fits.
|
|
16
|
+
*/
|
|
17
|
+
export function ResponsiveActions({ actions, keepOnPhone = 0, keepOnDesktop, menuLabel = 'More actions' }) {
|
|
18
|
+
const compact = useCompactLayout();
|
|
19
|
+
const [anchor, setAnchor] = useState(null);
|
|
20
|
+
const kept = compact ? keepOnPhone : (keepOnDesktop ?? actions.length);
|
|
21
|
+
const shown = actions.slice(0, kept);
|
|
22
|
+
const overflow = actions.slice(kept);
|
|
23
|
+
if (actions.length === 0)
|
|
24
|
+
return null;
|
|
25
|
+
return (_jsxs(Box, { sx: { display: 'flex', alignItems: 'center', flexWrap: 'wrap', gap: 1 }, children: [shown.map((action) => (_jsx(Button, { ...linkProps(action), onClick: action.onClick, disabled: action.disabled, startIcon: action.icon, variant: action.primary ? 'contained' : 'outlined', color: action.danger ? 'error' : action.primary ? 'primary' : 'inherit', sx: action.primary || action.danger ? undefined : { borderColor: 'divider', color: 'text.primary' }, children: action.label }, action.label))), overflow.length > 0 && (_jsxs(_Fragment, { children: [_jsx(IconButton, { "aria-label": menuLabel, "aria-haspopup": "menu", onClick: (event) => setAnchor(event.currentTarget), children: _jsx(MoreVert, {}) }), _jsx(Menu, { anchorEl: anchor, open: Boolean(anchor), onClose: () => setAnchor(null), anchorOrigin: { vertical: 'bottom', horizontal: 'right' }, transformOrigin: { vertical: 'top', horizontal: 'right' }, slotProps: { paper: { sx: { minWidth: 200 } } }, children: overflow.map((action) => (_jsxs(MenuItem, { ...linkProps(action), disabled: action.disabled, onClick: () => {
|
|
26
|
+
setAnchor(null);
|
|
27
|
+
action.onClick?.();
|
|
28
|
+
}, sx: action.danger ? { color: 'error.main' } : undefined, children: [action.icon && _jsx(ListItemIcon, { sx: action.danger ? { color: 'inherit' } : undefined, children: action.icon }), action.label] }, action.label))) })] }))] }));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=ResponsiveActions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResponsiveActions.js","sourceRoot":"","sources":["../../../src/components/Page/ResponsiveActions.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export interface SectionHeadingProps {
|
|
3
|
+
id?: string;
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
/** Beside the caption, e.g. a "See all" link. */
|
|
6
|
+
action?: ReactNode;
|
|
7
|
+
}
|
|
8
|
+
/** The small caption over a group of rows, the way a phone's settings screens caption theirs. */
|
|
9
|
+
export declare function SectionHeading({ id, children, action }: SectionHeadingProps): import("react").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=SectionHeading.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SectionHeading.d.ts","sourceRoot":"","sources":["../../../src/components/Page/SectionHeading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,mBAAmB;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,SAAS,CAAC;IACpB,iDAAiD;IACjD,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,iGAAiG;AACjG,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,mBAAmB,+BAa3E"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Typography } from '@mui/material';
|
|
3
|
+
/** The small caption over a group of rows, the way a phone's settings screens caption theirs. */
|
|
4
|
+
export function SectionHeading({ id, children, action }) {
|
|
5
|
+
return (_jsxs(Box, { sx: { display: 'flex', alignItems: 'baseline', justifyContent: 'space-between', gap: 2, px: 0.5, mb: 1 }, children: [_jsx(Typography, { id: id, component: "h2", sx: { fontSize: 13, fontWeight: 700, letterSpacing: '0.06em', textTransform: 'uppercase', color: 'text.secondary' }, children: children }), action] }));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=SectionHeading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SectionHeading.js","sourceRoot":"","sources":["../../../src/components/Page/SectionHeading.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAShD,iGAAiG;AACjG,MAAM,UAAU,cAAc,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAuB;IAC1E,OAAO,CACL,MAAC,GAAG,IAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,aAC3G,KAAC,UAAU,IACT,EAAE,EAAE,EAAE,EACN,SAAS,EAAC,IAAI,EACd,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE,YAElH,QAAQ,GACE,EACZ,MAAM,IACH,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { PageHeader } from './PageHeader';
|
|
2
|
+
export type { PageHeaderProps, PageAction } from './PageHeader';
|
|
3
|
+
export { Panel } from './Panel';
|
|
4
|
+
export type { PanelProps } from './Panel';
|
|
5
|
+
export { ListRow, RowIcon } from './ListRow';
|
|
6
|
+
export type { ListRowProps } from './ListRow';
|
|
7
|
+
export { SectionHeading } from './SectionHeading';
|
|
8
|
+
export type { SectionHeadingProps } from './SectionHeading';
|
|
9
|
+
export { EmptyState } from './EmptyState';
|
|
10
|
+
export type { EmptyStateProps } from './EmptyState';
|
|
11
|
+
export { ResponsiveActions } from './ResponsiveActions';
|
|
12
|
+
export type { ResponsiveAction, ResponsiveActionsProps } from './ResponsiveActions';
|
|
13
|
+
export { TAB_BAR_HEIGHT, useCompactLayout } from './layout';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Page/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { PageHeader } from './PageHeader';
|
|
2
|
+
export { Panel } from './Panel';
|
|
3
|
+
export { ListRow, RowIcon } from './ListRow';
|
|
4
|
+
export { SectionHeading } from './SectionHeading';
|
|
5
|
+
export { EmptyState } from './EmptyState';
|
|
6
|
+
export { ResponsiveActions } from './ResponsiveActions';
|
|
7
|
+
export { TAB_BAR_HEIGHT, useCompactLayout } from './layout';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Page/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Height the phone tab bar covers at the foot of the screen, above the safe-area inset. */
|
|
2
|
+
export declare const TAB_BAR_HEIGHT = 72;
|
|
3
|
+
/**
|
|
4
|
+
* Whether the compact (phone) layout is showing: tab bar, app-bar titles,
|
|
5
|
+
* floating actions. The cut is at `md`, where the rail and a readable content
|
|
6
|
+
* column stop fitting side by side. Read synchronously, so a phone never draws
|
|
7
|
+
* a frame of the desktop layout first.
|
|
8
|
+
*/
|
|
9
|
+
export declare function useCompactLayout(): boolean;
|
|
10
|
+
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/components/Page/layout.ts"],"names":[],"mappings":"AAEA,4FAA4F;AAC5F,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAG1C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useMediaQuery, useTheme } from '@mui/material';
|
|
2
|
+
/** Height the phone tab bar covers at the foot of the screen, above the safe-area inset. */
|
|
3
|
+
export const TAB_BAR_HEIGHT = 72;
|
|
4
|
+
/**
|
|
5
|
+
* Whether the compact (phone) layout is showing: tab bar, app-bar titles,
|
|
6
|
+
* floating actions. The cut is at `md`, where the rail and a readable content
|
|
7
|
+
* column stop fitting side by side. Read synchronously, so a phone never draws
|
|
8
|
+
* a frame of the desktop layout first.
|
|
9
|
+
*/
|
|
10
|
+
export function useCompactLayout() {
|
|
11
|
+
const theme = useTheme();
|
|
12
|
+
return useMediaQuery(theme.breakpoints.down('md'), { noSsr: true });
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/components/Page/layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAExD,4FAA4F;AAC5F,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,OAAO,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACtE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,9 @@ export { ErrorPage } from './components/ErrorPage';
|
|
|
6
6
|
export type { ErrorPageProps } from './components/ErrorPage';
|
|
7
7
|
export { AppLayout } from './components/AppLayout';
|
|
8
8
|
export type { AppLayoutProps, AppLayoutNavGroup, AppLayoutNavItem, AppLayoutInternalNavItem, AppLayoutExternalNavItem, AppLayoutUser } from './components/AppLayout';
|
|
9
|
+
export { PageHeader, Panel, ListRow, RowIcon, SectionHeading, EmptyState, ResponsiveActions, TAB_BAR_HEIGHT, useCompactLayout } from './components/Page';
|
|
10
|
+
export type { PageHeaderProps, PageAction, PanelProps, ListRowProps, SectionHeadingProps, EmptyStateProps, ResponsiveAction, ResponsiveActionsProps } from './components/Page';
|
|
11
|
+
export { createVisinTheme, VISIN_COLORS } from './theme';
|
|
9
12
|
export { createVisinNavigation } from './navigation';
|
|
10
13
|
export type { VisinApp, VisinAppUrls, VisinNavigation } from './navigation';
|
|
11
14
|
export { createProtectedRoute } from './components/ProtectedRoute';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAElF,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,aAAa,EACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAE1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,YAAY,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAElF,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,aAAa,EACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,UAAU,EACV,KAAK,EACL,OAAO,EACP,OAAO,EACP,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,eAAe,EACf,UAAU,EACV,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAE1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,YAAY,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,8 @@ export { createApiClient, ApiError } from './apiClient';
|
|
|
3
3
|
export { Loader } from './components/Loader';
|
|
4
4
|
export { ErrorPage } from './components/ErrorPage';
|
|
5
5
|
export { AppLayout } from './components/AppLayout';
|
|
6
|
+
export { PageHeader, Panel, ListRow, RowIcon, SectionHeading, EmptyState, ResponsiveActions, TAB_BAR_HEIGHT, useCompactLayout } from './components/Page';
|
|
7
|
+
export { createVisinTheme, VISIN_COLORS } from './theme';
|
|
6
8
|
export { createVisinNavigation } from './navigation';
|
|
7
9
|
export { createProtectedRoute } from './components/ProtectedRoute';
|
|
8
10
|
export { createLoginRedirect } from './components/LoginRedirect';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGxD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AASnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGxD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AASnD,OAAO,EACL,UAAU,EACV,KAAK,EACL,OAAO,EACP,OAAO,EACP,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAW3B,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC"}
|
package/dist/theme.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type Theme, type ThemeOptions } from '@mui/material/styles';
|
|
2
|
+
/**
|
|
3
|
+
* The colours of Visin's own chrome — the landing page's: dark ink behind the
|
|
4
|
+
* navigation, one blue for what can be acted on. Exported for the places that
|
|
5
|
+
* have to name a colour outside a theme: the browser's `theme-color`, the
|
|
6
|
+
* manifest, the offline page.
|
|
7
|
+
*/
|
|
8
|
+
export declare const VISIN_COLORS: {
|
|
9
|
+
/** Primary: buttons, links, the selected state. */
|
|
10
|
+
readonly brand: "#2563EB";
|
|
11
|
+
/** The app bar across the top of every page (and the phone's status bar); the landing page's ink. */
|
|
12
|
+
readonly appBar: "#111827";
|
|
13
|
+
/** The desktop navigation rail beside the content. */
|
|
14
|
+
readonly rail: "#111827";
|
|
15
|
+
readonly background: "#F6F7FB";
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* The one theme every Visin front renders with — shell, vision, label, account
|
|
19
|
+
* and sign-in — so crossing apps inside the shell never changes the typeface,
|
|
20
|
+
* the blue, or the shape of a button.
|
|
21
|
+
*
|
|
22
|
+
* `shape.borderRadius` stays MUI's 4px unit on purpose: pages across the apps
|
|
23
|
+
* set radii as theme multiples (`borderRadius: 2`), and a larger unit turned
|
|
24
|
+
* those into pills. Components get their rounder corners here instead.
|
|
25
|
+
*/
|
|
26
|
+
export declare function createVisinTheme(overrides?: ThemeOptions): Theme;
|
|
27
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAElF;;;;;GAKG;AACH,eAAO,MAAM,YAAY;IACvB,mDAAmD;;IAEnD,qGAAqG;;IAErG,sDAAsD;;;CAG9C,CAAC;AAOX;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,GAAE,YAAiB,GAAG,KAAK,CA8FpE"}
|
package/dist/theme.js
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { createTheme } from '@mui/material/styles';
|
|
2
|
+
/**
|
|
3
|
+
* The colours of Visin's own chrome — the landing page's: dark ink behind the
|
|
4
|
+
* navigation, one blue for what can be acted on. Exported for the places that
|
|
5
|
+
* have to name a colour outside a theme: the browser's `theme-color`, the
|
|
6
|
+
* manifest, the offline page.
|
|
7
|
+
*/
|
|
8
|
+
export const VISIN_COLORS = {
|
|
9
|
+
/** Primary: buttons, links, the selected state. */
|
|
10
|
+
brand: '#2563EB',
|
|
11
|
+
/** The app bar across the top of every page (and the phone's status bar); the landing page's ink. */
|
|
12
|
+
appBar: '#111827',
|
|
13
|
+
/** The desktop navigation rail beside the content. */
|
|
14
|
+
rail: '#111827',
|
|
15
|
+
background: '#F6F7FB'
|
|
16
|
+
};
|
|
17
|
+
/** Below `md` — the compact (phone) layout, as `useCompactLayout` reads it. */
|
|
18
|
+
const PHONE = '@media (max-width:899.95px)';
|
|
19
|
+
const FONT_STACK = '"Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif';
|
|
20
|
+
/**
|
|
21
|
+
* The one theme every Visin front renders with — shell, vision, label, account
|
|
22
|
+
* and sign-in — so crossing apps inside the shell never changes the typeface,
|
|
23
|
+
* the blue, or the shape of a button.
|
|
24
|
+
*
|
|
25
|
+
* `shape.borderRadius` stays MUI's 4px unit on purpose: pages across the apps
|
|
26
|
+
* set radii as theme multiples (`borderRadius: 2`), and a larger unit turned
|
|
27
|
+
* those into pills. Components get their rounder corners here instead.
|
|
28
|
+
*/
|
|
29
|
+
export function createVisinTheme(overrides = {}) {
|
|
30
|
+
return createTheme({
|
|
31
|
+
palette: {
|
|
32
|
+
primary: { main: VISIN_COLORS.brand, light: '#60A5FA', dark: '#1D4ED8', contrastText: '#FFFFFF' },
|
|
33
|
+
secondary: { main: '#64748B' },
|
|
34
|
+
success: { main: '#16A34A' },
|
|
35
|
+
warning: { main: '#D97706' },
|
|
36
|
+
error: { main: '#DC2626' },
|
|
37
|
+
info: { main: '#0284C7' },
|
|
38
|
+
background: { default: VISIN_COLORS.background, paper: '#FFFFFF' },
|
|
39
|
+
text: { primary: '#0F172A', secondary: '#475569' },
|
|
40
|
+
divider: '#E2E8F0'
|
|
41
|
+
},
|
|
42
|
+
typography: {
|
|
43
|
+
fontFamily: FONT_STACK,
|
|
44
|
+
h1: { fontWeight: 700, letterSpacing: '-0.02em' },
|
|
45
|
+
h2: { fontWeight: 700, letterSpacing: '-0.02em' },
|
|
46
|
+
h3: { fontWeight: 700, letterSpacing: '-0.02em' },
|
|
47
|
+
// Page titles: MUI's 2.125rem h4 filled a phone's width with two words.
|
|
48
|
+
h4: { fontWeight: 700, letterSpacing: '-0.02em', fontSize: '1.75rem', [PHONE]: { fontSize: '1.375rem' } },
|
|
49
|
+
h5: { fontWeight: 600, [PHONE]: { fontSize: '1.2rem' } },
|
|
50
|
+
h6: { fontWeight: 600 },
|
|
51
|
+
subtitle1: { fontWeight: 600 },
|
|
52
|
+
subtitle2: { fontWeight: 600 },
|
|
53
|
+
button: { textTransform: 'none', fontWeight: 600 }
|
|
54
|
+
},
|
|
55
|
+
shape: { borderRadius: 4 },
|
|
56
|
+
components: {
|
|
57
|
+
MuiCssBaseline: {
|
|
58
|
+
styleOverrides: {
|
|
59
|
+
body: { WebkitFontSmoothing: 'antialiased', MozOsxFontSmoothing: 'grayscale' }
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
// AppLayout's content column already has the page gutters; a Container's
|
|
63
|
+
// own added a second pair, which a phone paid for in width.
|
|
64
|
+
MuiContainer: {
|
|
65
|
+
defaultProps: { disableGutters: true }
|
|
66
|
+
},
|
|
67
|
+
MuiButton: {
|
|
68
|
+
defaultProps: { disableElevation: true },
|
|
69
|
+
styleOverrides: { root: { borderRadius: 10 } }
|
|
70
|
+
},
|
|
71
|
+
MuiFab: {
|
|
72
|
+
styleOverrides: { root: { textTransform: 'none', fontWeight: 600 } }
|
|
73
|
+
},
|
|
74
|
+
MuiPaper: {
|
|
75
|
+
styleOverrides: {
|
|
76
|
+
rounded: { borderRadius: 12 },
|
|
77
|
+
outlined: { borderColor: '#E2E8F0' }
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
MuiCard: {
|
|
81
|
+
defaultProps: { variant: 'outlined' },
|
|
82
|
+
styleOverrides: { root: { borderRadius: 16 } }
|
|
83
|
+
},
|
|
84
|
+
MuiDialog: {
|
|
85
|
+
styleOverrides: { paper: { borderRadius: 16 } }
|
|
86
|
+
},
|
|
87
|
+
MuiMenu: {
|
|
88
|
+
styleOverrides: { paper: { borderRadius: 12 } }
|
|
89
|
+
},
|
|
90
|
+
MuiOutlinedInput: {
|
|
91
|
+
styleOverrides: { root: { borderRadius: 10, backgroundColor: '#FFFFFF' } }
|
|
92
|
+
},
|
|
93
|
+
MuiAlert: {
|
|
94
|
+
styleOverrides: { root: { borderRadius: 10 } }
|
|
95
|
+
},
|
|
96
|
+
MuiChip: {
|
|
97
|
+
styleOverrides: { root: { fontWeight: 500 } }
|
|
98
|
+
},
|
|
99
|
+
MuiTab: {
|
|
100
|
+
styleOverrides: { root: { textTransform: 'none', fontWeight: 600 } }
|
|
101
|
+
},
|
|
102
|
+
MuiTableCell: {
|
|
103
|
+
styleOverrides: {
|
|
104
|
+
root: { borderColor: '#E2E8F0' },
|
|
105
|
+
head: {
|
|
106
|
+
backgroundColor: '#F8FAFC',
|
|
107
|
+
color: '#475569',
|
|
108
|
+
fontSize: '0.75rem',
|
|
109
|
+
fontWeight: 600,
|
|
110
|
+
letterSpacing: '0.04em',
|
|
111
|
+
textTransform: 'uppercase'
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
MuiLinearProgress: {
|
|
116
|
+
styleOverrides: { root: { borderRadius: 999 }, bar: { borderRadius: 999 } }
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}, overrides);
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
|