@visin/frontend-core 1.8.0 → 1.10.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.
Files changed (77) hide show
  1. package/dist/components/AppLayout/AppLayout.d.ts +2 -4
  2. package/dist/components/AppLayout/AppLayout.d.ts.map +1 -1
  3. package/dist/components/AppLayout/AppLayout.js +84 -62
  4. package/dist/components/AppLayout/AppLayout.js.map +1 -1
  5. package/dist/components/ColorMode/ColorModeSetting.d.ts +39 -0
  6. package/dist/components/ColorMode/ColorModeSetting.d.ts.map +1 -0
  7. package/dist/components/ColorMode/ColorModeSetting.js +52 -0
  8. package/dist/components/ColorMode/ColorModeSetting.js.map +1 -0
  9. package/dist/components/ColorMode/VisinThemeProvider.d.ts +16 -0
  10. package/dist/components/ColorMode/VisinThemeProvider.d.ts.map +1 -0
  11. package/dist/components/ColorMode/VisinThemeProvider.js +19 -0
  12. package/dist/components/ColorMode/VisinThemeProvider.js.map +1 -0
  13. package/dist/components/ColorMode/index.d.ts +7 -0
  14. package/dist/components/ColorMode/index.d.ts.map +1 -0
  15. package/dist/components/ColorMode/index.js +4 -0
  16. package/dist/components/ColorMode/index.js.map +1 -0
  17. package/dist/components/ColorMode/useChartColors.d.ts +15 -0
  18. package/dist/components/ColorMode/useChartColors.d.ts.map +1 -0
  19. package/dist/components/ColorMode/useChartColors.js +16 -0
  20. package/dist/components/ColorMode/useChartColors.js.map +1 -0
  21. package/dist/components/Page/EmptyState.d.ts +10 -0
  22. package/dist/components/Page/EmptyState.d.ts.map +1 -0
  23. package/dist/components/Page/EmptyState.js +19 -0
  24. package/dist/components/Page/EmptyState.js.map +1 -0
  25. package/dist/components/Page/ListRow.d.ts +27 -0
  26. package/dist/components/Page/ListRow.d.ts.map +1 -0
  27. package/dist/components/Page/ListRow.js +73 -0
  28. package/dist/components/Page/ListRow.js.map +1 -0
  29. package/dist/components/Page/PageHeader.d.ts +33 -0
  30. package/dist/components/Page/PageHeader.d.ts.map +1 -0
  31. package/dist/components/Page/PageHeader.js +49 -0
  32. package/dist/components/Page/PageHeader.js.map +1 -0
  33. package/dist/components/Page/Panel.d.ts +18 -0
  34. package/dist/components/Page/Panel.d.ts.map +1 -0
  35. package/dist/components/Page/Panel.js +23 -0
  36. package/dist/components/Page/Panel.js.map +1 -0
  37. package/dist/components/Page/ResponsiveActions.d.ts +38 -0
  38. package/dist/components/Page/ResponsiveActions.d.ts.map +1 -0
  39. package/dist/components/Page/ResponsiveActions.js +30 -0
  40. package/dist/components/Page/ResponsiveActions.js.map +1 -0
  41. package/dist/components/Page/SectionHeading.d.ts +10 -0
  42. package/dist/components/Page/SectionHeading.d.ts.map +1 -0
  43. package/dist/components/Page/SectionHeading.js +7 -0
  44. package/dist/components/Page/SectionHeading.js.map +1 -0
  45. package/dist/components/Page/index.d.ts +14 -0
  46. package/dist/components/Page/index.d.ts.map +1 -0
  47. package/dist/components/Page/index.js +8 -0
  48. package/dist/components/Page/index.js.map +1 -0
  49. package/dist/components/Page/layout.d.ts +10 -0
  50. package/dist/components/Page/layout.d.ts.map +1 -0
  51. package/dist/components/Page/layout.js +14 -0
  52. package/dist/components/Page/layout.js.map +1 -0
  53. package/dist/index.d.ts +6 -0
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +3 -0
  56. package/dist/index.js.map +1 -1
  57. package/dist/theme/chart.d.ts +19 -0
  58. package/dist/theme/chart.d.ts.map +1 -0
  59. package/dist/theme/chart.js +19 -0
  60. package/dist/theme/chart.js.map +1 -0
  61. package/dist/theme/createVisinTheme.d.ts +45 -0
  62. package/dist/theme/createVisinTheme.d.ts.map +1 -0
  63. package/dist/theme/createVisinTheme.js +261 -0
  64. package/dist/theme/createVisinTheme.js.map +1 -0
  65. package/dist/theme/index.d.ts +6 -0
  66. package/dist/theme/index.d.ts.map +1 -0
  67. package/dist/theme/index.js +5 -0
  68. package/dist/theme/index.js.map +1 -0
  69. package/dist/theme/livePalette.d.ts +11 -0
  70. package/dist/theme/livePalette.d.ts.map +1 -0
  71. package/dist/theme/livePalette.js +10 -0
  72. package/dist/theme/livePalette.js.map +1 -0
  73. package/dist/theme/tokens.d.ts +224 -0
  74. package/dist/theme/tokens.d.ts.map +1 -0
  75. package/dist/theme/tokens.js +205 -0
  76. package/dist/theme/tokens.js.map +1 -0
  77. package/package.json +1 -1
@@ -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/subtitle header, for apps whose pages render
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, subtitle, navGroups, accountItems, user, onLogout, maxContentWidth, isAuthenticated, onLogin, showPageHeader, homePath }: AppLayoutProps): import("react").JSX.Element;
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,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,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,QAAQ,EACR,SAAS,EACT,YAAiB,EACjB,IAAI,EACJ,QAAQ,EACR,eAAqB,EACrB,eAAsB,EACtB,OAAO,EACP,cAAqB,EACrB,QAAQ,EACT,EAAE,cAAc,+BAgWhB"}
1
+ {"version":3,"file":"AppLayout.d.ts","sourceRoot":"","sources":["../../../src/components/AppLayout/AppLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAwB,MAAM,OAAO,CAAC;AA6BxD,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,+BA4YhB"}
@@ -1,14 +1,13 @@
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, useMediaQuery, useTheme } from '@mui/material';
4
- import { alpha } from '@mui/material/styles';
3
+ import { Avatar, Box, Button, ButtonBase, CssBaseline, Divider, Drawer, ListItemIcon, ListItemText, Menu, MenuItem, MenuList, Typography, useColorScheme, useTheme } from '@mui/material';
5
4
  import { ExpandMore, Login, Logout, Person } from '@mui/icons-material';
6
5
  import { Link, useLocation } from 'react-router-dom';
6
+ import { chrome, glass, livePalette, pageBackground, surface } from '../../theme';
7
+ import { COLOR_MODE_OPTIONS } from '../ColorMode';
8
+ import { TAB_BAR_HEIGHT, useCompactLayout } from '../Page/layout';
7
9
  const RAIL_WIDTH = 88;
8
- /** Height the phone tab bar covers at the foot of the screen, above the safe-area inset. */
9
- const TAB_BAR_HEIGHT = 72;
10
- const CHROME_BG = '#111827';
11
- const CHROME_BORDER = 'rgba(255,255,255,0.1)';
10
+ const APP_BAR_HEIGHT = 56;
12
11
  const ownsPath = (prefix, pathname) => pathname === prefix || pathname.startsWith(`${prefix}/`);
13
12
  // A router link for a local section, a plain anchor — a full page load — for a
14
13
  // sibling app's.
@@ -24,17 +23,17 @@ const linkProps = (item) => item.path !== undefined ? { component: Link, to: ite
24
23
  * behind a burger button on phones, and collapsed on desktop to an icon rail
25
24
  * that relied on the reader recognising the icons.
26
25
  */
27
- export function AppLayout({ children, appName, subtitle, navGroups, accountItems = [], user, onLogout, maxContentWidth = 800, isAuthenticated = true, onLogin, showPageHeader = true, homePath }) {
26
+ export function AppLayout({ children, appName, navGroups, accountItems = [], user, onLogout, maxContentWidth = 800, isAuthenticated = true, onLogin, showPageHeader = true, homePath }) {
28
27
  const { pathname } = useLocation();
29
28
  const theme = useTheme();
30
- // Read synchronously. The default first pass assumes a wide screen, which
31
- // would draw the rail on a phone for a frame before swapping in the tab bar.
32
- //
33
- // The cut is at `md`, not `sm`: a tablet-width window has room for the rail
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 });
29
+ // Below `md` the compact layout — app bar, tab bar, section dropdown,
30
+ // bottom-sheet account — gets the full width; from 600 to 900 there is room
31
+ // for the rail but not the rail *and* a readable content column.
32
+ const mobile = useCompactLayout();
33
+ const palette = livePalette(theme);
34
+ const { mode, setMode } = useColorScheme();
35
+ const colorMode = COLOR_MODE_OPTIONS.find((option) => option.value === (mode ?? 'system')) ?? COLOR_MODE_OPTIONS[0];
36
+ const nextColorMode = COLOR_MODE_OPTIONS[(COLOR_MODE_OPTIONS.indexOf(colorMode) + 1) % COLOR_MODE_OPTIONS.length].value;
38
37
  const [accountAnchor, setAccountAnchor] = useState(null);
39
38
  const [sectionAnchor, setSectionAnchor] = useState(null);
40
39
  const closeAccount = () => setAccountAnchor(null);
@@ -55,14 +54,16 @@ export function AppLayout({ children, appName, subtitle, navGroups, accountItems
55
54
  const sectionGroup = activeGroup && activeGroup.items.length > 1 ? activeGroup : null;
56
55
  const initial = user?.name?.charAt(0) || _jsx(Person, { fontSize: "small" });
57
56
  const menuItem = (item, onClose) => (_jsxs(MenuItem, { ...linkProps(item), selected: isActive(item), onClick: onClose, children: [_jsx(ListItemIcon, { children: item.icon }), _jsx(ListItemText, { children: item.text })] }, item.text));
58
- const railEntries = (_jsxs(_Fragment, { children: [navGroups.map((group) => (_jsx(NavButton, { label: group.label, icon: group.icon, target: group.items[0], active: group === activeGroup, current: group === activeGroup, mobile: mobile }, group.label))), !mobile && _jsx(Box, { sx: { flex: 1 } }), isAuthenticated ? (_jsx(NavButton, { label: "Account", icon: _jsx(Avatar, { src: user?.picture, alt: "", sx: { width: 26, height: 26, fontSize: '0.8rem', bgcolor: theme.palette.secondary.main }, children: initial }), active: Boolean(accountAnchor) || activeGroup === accountGroup, current: activeGroup === accountGroup, mobile: mobile, onClick: (event) => setAccountAnchor(event.currentTarget), expanded: Boolean(accountAnchor) })) : (_jsx(NavButton, { label: "Login", icon: _jsx(Login, {}), active: false, current: false, mobile: mobile, onClick: onLogin }))] }));
57
+ const railEntries = (_jsxs(_Fragment, { children: [navGroups.map((group) => (_jsx(NavButton, { label: group.label, icon: group.icon, target: group.items[0], active: group === activeGroup, current: group === activeGroup, mobile: mobile }, group.label))), !mobile && _jsx(Box, { sx: { flex: 1 } }), isAuthenticated ? (_jsx(NavButton, { label: "Account", icon: _jsx(Avatar, { src: user?.picture, alt: "", sx: { width: 26, height: 26, fontSize: '0.8rem', bgcolor: 'secondary.main' }, children: initial }), active: Boolean(accountAnchor) || activeGroup === accountGroup, current: activeGroup === accountGroup, mobile: mobile, onClick: (event) => setAccountAnchor(event.currentTarget), expanded: Boolean(accountAnchor) })) : (_jsx(NavButton, { label: "Login", icon: _jsx(Login, {}), active: false, current: false, mobile: mobile, onClick: onLogin }))] }));
59
58
  // An array rather than a fragment: Menu and MenuList walk their direct
60
59
  // children to manage focus.
61
60
  const accountMenuItems = [
62
- _jsxs(MenuItem, { disabled: true, sx: { gap: 1.5, py: 1.25, '&.Mui-disabled': { opacity: 1 } }, children: [_jsx(Avatar, { src: user?.picture, alt: "", sx: { width: 36, height: 36, bgcolor: theme.palette.secondary.main }, children: initial }), _jsxs(Box, { sx: { minWidth: 0 }, children: [_jsx(Typography, { noWrap: true, sx: { fontWeight: 700 }, children: user?.name || 'User' }), user?.email && (_jsx(Typography, { noWrap: true, variant: "body2", sx: { color: 'text.secondary' }, children: user.email }))] })] }, "who"),
61
+ _jsxs(MenuItem, { disabled: true, sx: { gap: 1.5, py: 1.25, '&.Mui-disabled': { opacity: 1 } }, children: [_jsx(Avatar, { src: user?.picture, alt: "", sx: { width: 36, height: 36, bgcolor: 'secondary.main' }, children: initial }), _jsxs(Box, { sx: { minWidth: 0 }, children: [_jsx(Typography, { noWrap: true, sx: { fontWeight: 700 }, children: user?.name || 'User' }), user?.email && (_jsx(Typography, { noWrap: true, variant: "body2", sx: { color: 'text.secondary' }, children: user.email }))] })] }, "who"),
63
62
  _jsx(Divider, {}, "who-divider"),
64
63
  ...accountItems.map((item) => menuItem(item, closeAccount)),
65
- ...(accountItems.length > 0 ? [_jsx(Divider, {}, "logout-divider")] : []),
64
+ ...(accountItems.length > 0 ? [_jsx(Divider, {}, "appearance-divider")] : []),
65
+ _jsxs(MenuItem, { onClick: () => setMode(nextColorMode), "aria-label": `Appearance: ${colorMode.label}. Switch to ${COLOR_MODE_OPTIONS.find((option) => option.value === nextColorMode)?.label}`, children: [_jsx(ListItemIcon, { children: _jsx(colorMode.Icon, { fontSize: "small" }) }), _jsx(ListItemText, { children: "Appearance" }), _jsx(Typography, { variant: "body2", sx: { color: 'text.secondary', ml: 2 }, children: colorMode.label })] }, "appearance"),
66
+ _jsx(Divider, {}, "logout-divider"),
66
67
  _jsxs(MenuItem, { onClick: () => {
67
68
  closeAccount();
68
69
  onLogout();
@@ -71,6 +72,8 @@ export function AppLayout({ children, appName, subtitle, navGroups, accountItems
71
72
  const accountMenu = mobile ? (_jsxs(Drawer, { anchor: "bottom", open: Boolean(accountAnchor), onClose: closeAccount, slotProps: {
72
73
  paper: {
73
74
  sx: {
75
+ ...glass,
76
+ borderBottom: 'none',
74
77
  borderTopLeftRadius: 20,
75
78
  borderTopRightRadius: 20,
76
79
  maxHeight: '85dvh',
@@ -81,38 +84,48 @@ export function AppLayout({ children, appName, subtitle, navGroups, accountItems
81
84
  paper: { sx: { ml: 1, minWidth: 240, maxWidth: 320, borderRadius: 3 } },
82
85
  list: { 'aria-label': 'Account' }
83
86
  }, children: accountMenuItems }));
84
- const sectionBarSx = {
87
+ // What the app bar calls the page: its section, else its group, else the app.
88
+ const barTitle = activeItem?.text ?? activeGroup?.label ?? appName;
89
+ const appBarSx = {
90
+ position: 'sticky',
91
+ top: 0,
92
+ zIndex: theme.zIndex.appBar,
85
93
  display: 'flex',
86
94
  alignItems: 'center',
87
- borderBottom: 1,
88
- borderColor: 'divider',
89
- bgcolor: 'background.paper'
95
+ ...chrome.surface,
96
+ color: chrome.ink,
97
+ borderBottom: `1px solid ${chrome.edge}`,
98
+ // Under a status bar the installed app draws into (viewport-fit=cover).
99
+ pt: 'env(safe-area-inset-top)'
90
100
  };
91
- const sectionBar = sectionGroup &&
92
- (mobile ? (_jsxs(Box, { component: "nav", "aria-label": sectionGroup.label, sx: { ...sectionBarSx, minHeight: 52, px: 1 }, children: [_jsx(Button, { onClick: (event) => setSectionAnchor(event.currentTarget), endIcon: _jsx(ExpandMore, {}), "aria-haspopup": "menu", "aria-expanded": Boolean(sectionAnchor), sx: {
93
- textTransform: 'none',
101
+ 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)) }));
102
+ 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
103
  fontWeight: 700,
95
- fontSize: '1rem',
96
- color: 'text.primary',
97
- borderRadius: 2,
104
+ fontSize: '1.125rem',
105
+ color: 'inherit',
98
106
  minWidth: 0,
99
- maxWidth: '100%'
100
- }, children: _jsx(Box, { component: "span", sx: { overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }, children: sectionGroup.items.find(isActive)?.text ?? sectionGroup.label }) }), _jsx(Menu, { anchorEl: sectionAnchor, open: Boolean(sectionAnchor), onClose: closeSections, anchorOrigin: { vertical: 'bottom', horizontal: 'left' }, transformOrigin: { vertical: 'top', horizontal: 'left' }, slotProps: { paper: { sx: { minWidth: 220, borderRadius: 3 } } }, children: sectionGroup.items.map((item) => menuItem(item, closeSections)) })] })) : (_jsx(Box, { component: "nav", "aria-label": sectionGroup.label, sx: { ...sectionBarSx, gap: 1, minHeight: 56, px: { sm: 3, md: 7 }, overflowX: 'auto' }, children: sectionGroup.items.map((item) => {
101
- const active = isActive(item);
102
- return (_jsx(Button, { ...linkProps(item), startIcon: item.icon, "aria-current": active ? 'page' : undefined, sx: {
103
- flexShrink: 0,
104
- px: 2,
105
- borderRadius: 2,
106
- textTransform: 'none',
107
- fontWeight: active ? 700 : 500,
108
- color: active ? 'primary.main' : 'text.secondary',
109
- bgcolor: active ? alpha(theme.palette.primary.main, 0.08) : 'transparent',
110
- '&:hover': { bgcolor: active ? alpha(theme.palette.primary.main, 0.14) : 'action.hover' }
111
- }, children: item.text }, item.text));
112
- }) })));
113
- // On a phone the section dropdown already names the page.
114
- const pageHeader = showPageHeader && !(mobile && sectionGroup) && (_jsxs(Box, { sx: { mb: { xs: 3, md: 6 } }, children: [_jsx(Typography, { variant: "h4", sx: { fontWeight: 700, letterSpacing: '-1px', mb: 1, fontSize: { xs: '1.5rem', sm: '2.125rem' } }, children: activeItem?.text || appName }), _jsx(Typography, { variant: "body1", sx: { color: 'text.secondary', display: { xs: 'none', md: 'block' } }, children: subtitle })] }));
115
- return (_jsxs(Box, { sx: { display: 'flex', minHeight: '100vh', bgcolor: 'background.default' }, children: [_jsx(CssBaseline, {}), !mobile && (_jsxs(Box, { component: "nav", "aria-label": "Main", sx: {
107
+ maxWidth: '100%',
108
+ px: 1.25,
109
+ '&:hover': { bgcolor: surface.hover }
110
+ }, 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) => {
111
+ const active = isActive(item);
112
+ return (_jsx(Button, { ...linkProps(item), startIcon: item.icon, "aria-current": active ? 'page' : undefined, sx: {
113
+ flexShrink: 0,
114
+ px: 1.75,
115
+ height: 36,
116
+ fontWeight: active ? 700 : 500,
117
+ color: active ? palette.primary.main : chrome.inkMuted,
118
+ bgcolor: active ? theme.alpha(palette.primary.main, 0.12) : 'transparent',
119
+ '& .MuiButton-startIcon svg': { fontSize: 20 },
120
+ '&:hover': {
121
+ bgcolor: active ? theme.alpha(palette.primary.main, 0.18) : surface.hover,
122
+ color: active ? palette.primary.main : chrome.ink
123
+ }
124
+ }, children: item.text }, item.text));
125
+ }) }))] }));
126
+ // On a phone the app bar already names the page.
127
+ const pageHeader = showPageHeader && !mobile && (_jsx(Typography, { variant: "h4", component: "h1", sx: { fontSize: '1.75rem', lineHeight: 1.25, mb: 3 }, children: activeItem?.text || appName }));
128
+ return (_jsxs(Box, { sx: { display: 'flex', minHeight: '100vh', ...pageBackground }, children: [_jsx(CssBaseline, {}), !mobile && (_jsxs(Box, { component: "nav", "aria-label": "Main", sx: {
116
129
  width: RAIL_WIDTH,
117
130
  flexShrink: 0,
118
131
  // Stays on screen while the page scrolls; flex-start, or the row
@@ -127,20 +140,20 @@ export function AppLayout({ children, appName, subtitle, navGroups, accountItems
127
140
  px: 0.5,
128
141
  py: 2,
129
142
  overflowY: 'auto',
130
- bgcolor: CHROME_BG,
131
- color: '#fff',
132
- borderRight: `1px solid ${CHROME_BORDER}`
143
+ ...chrome.surface,
144
+ color: chrome.ink,
145
+ borderRight: `1px solid ${chrome.edge}`
133
146
  }, children: [homePath ? (_jsx(ButtonBase, { component: Link, to: homePath, "aria-label": "Visin home", disableRipple: true, sx: {
134
147
  alignSelf: 'center',
135
148
  mb: 2,
136
149
  p: 0.5,
137
150
  borderRadius: '10px',
138
- '&.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: [sectionBar, _jsx(Box, { component: "main", sx: {
151
+ '&.Mui-focusVisible': { outline: `2px solid ${palette.primary.main}`, outlineOffset: 1 }
152
+ }, 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
153
  flexGrow: 1,
141
154
  // Gutters stay narrow for as long as the compact layout runs; 4 was
142
155
  // a desktop margin applied to a tablet's much shorter line.
143
- p: { xs: 2, sm: 3, md: 8 },
156
+ p: { xs: 2, sm: 3, md: 5 },
144
157
  // Clear of the fixed tab bar. On the padding rather than a spacer,
145
158
  // since the workbench sizes its frame to what main's padding leaves.
146
159
  ...(mobile && { pb: `calc(${TAB_BAR_HEIGHT}px + ${theme.spacing(2)} + env(safe-area-inset-bottom))` }),
@@ -157,13 +170,24 @@ export function AppLayout({ children, appName, subtitle, navGroups, accountItems
157
170
  px: 0.5,
158
171
  pt: 0.75,
159
172
  pb: 'calc(6px + env(safe-area-inset-bottom))',
160
- bgcolor: CHROME_BG,
161
- color: '#fff',
162
- borderTop: `1px solid ${CHROME_BORDER}`
173
+ ...chrome.surface,
174
+ color: chrome.inkMuted,
175
+ borderTop: `1px solid ${chrome.edge}`
163
176
  }, children: railEntries })), isAuthenticated && accountMenu] }));
164
177
  }
165
178
  function NavButton({ label, icon, active, current, mobile, target, onClick, expanded }) {
166
179
  const theme = useTheme();
180
+ const palette = livePalette(theme);
181
+ // The rail and the phone's tab bar are the same frosted chrome, in either scheme.
182
+ const tone = {
183
+ idle: chrome.inkMuted,
184
+ active: chrome.ink,
185
+ activeIcon: palette.primary.main,
186
+ pill: theme.alpha(palette.primary.main, 0.14),
187
+ pillHover: theme.alpha(palette.primary.main, 0.2),
188
+ idleHover: surface.hover,
189
+ focus: palette.primary.main
190
+ };
167
191
  const sx = {
168
192
  flex: mobile ? 1 : 'none',
169
193
  minWidth: 0,
@@ -173,7 +197,7 @@ function NavButton({ label, icon, active, current, mobile, target, onClick, expa
173
197
  gap: 0.5,
174
198
  py: 0.5,
175
199
  borderRadius: 3,
176
- color: active ? '#fff' : 'rgba(255,255,255,0.6)',
200
+ color: active ? tone.active : tone.idle,
177
201
  WebkitTapHighlightColor: 'transparent',
178
202
  '& .nav-pill': {
179
203
  width: 56,
@@ -181,16 +205,14 @@ function NavButton({ label, icon, active, current, mobile, target, onClick, expa
181
205
  borderRadius: 999,
182
206
  display: 'grid',
183
207
  placeItems: 'center',
184
- color: active ? theme.palette.primary.light : 'inherit',
185
- bgcolor: active ? alpha(theme.palette.primary.main, 0.22) : 'transparent',
208
+ color: active ? tone.activeIcon : 'inherit',
209
+ bgcolor: active ? tone.pill : 'transparent',
186
210
  transition: 'background-color .2s ease, color .2s ease, transform .15s ease'
187
211
  },
188
- '&:hover': { color: '#fff' },
189
- '&:hover .nav-pill': {
190
- bgcolor: active ? alpha(theme.palette.primary.main, 0.32) : 'rgba(255,255,255,0.08)'
191
- },
212
+ '&:hover': { color: tone.active },
213
+ '&:hover .nav-pill': { bgcolor: active ? tone.pillHover : tone.idleHover },
192
214
  '&:active .nav-pill': { transform: 'scale(0.94)' },
193
- '&.Mui-focusVisible .nav-pill': { outline: `2px solid ${theme.palette.primary.light}`, outlineOffset: 1 }
215
+ '&.Mui-focusVisible .nav-pill': { outline: `2px solid ${tone.focus}`, outlineOffset: 1 }
194
216
  };
195
217
  const body = (_jsxs(_Fragment, { children: [_jsx(Box, { className: "nav-pill", "aria-hidden": true, children: icon }), _jsx(Box, { component: "span", sx: {
196
218
  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,39 @@
1
+ import { type Palette } from '@mui/material';
2
+ import { LightModeOutlined } from '@mui/icons-material';
3
+ export type ColorMode = 'system' | 'light' | 'dark';
4
+ export declare const COLOR_MODE_OPTIONS: {
5
+ value: ColorMode;
6
+ label: string;
7
+ Icon: typeof LightModeOutlined;
8
+ }[];
9
+ export interface ColorModeSettingProps {
10
+ /** Shown above the buttons. Pass `null` where the surrounding row already says what it is. */
11
+ label?: string | null;
12
+ /** Tighter, for a menu rather than a settings page. */
13
+ dense?: boolean;
14
+ }
15
+ /**
16
+ * Auto, light or dark, for the whole of Visin.
17
+ *
18
+ * The choice lives in the shell's theme provider, which every remote is
19
+ * federated into, so changing it here changes it everywhere at once. It is per
20
+ * device on purpose: the same person may want dark on a laptop at night and
21
+ * light on a desk monitor.
22
+ */
23
+ export declare function ColorModeSetting({ label, dense }: ColorModeSettingProps): import("react").JSX.Element;
24
+ /**
25
+ * Keeps the browser's own bar (`<meta name="theme-color">`) on the scheme that
26
+ * is showing, which index.html can only guess at before the app loads.
27
+ */
28
+ export declare function useThemeColorMeta(): void;
29
+ /**
30
+ * The palette of the scheme that is showing, as real colour values.
31
+ *
32
+ * `theme.palette` is not it: with CSS variables the theme object is built once
33
+ * and holds the light palette in both schemes. That is fine in `sx`, which
34
+ * should say `'text.secondary'` anyway, but anything that needs the colour
35
+ * itself — `alpha()`, an SVG attribute, a chart series — reads the light value
36
+ * in dark. Use this there.
37
+ */
38
+ export declare function useActivePalette(): Palette;
39
+ //# sourceMappingURL=ColorModeSetting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorModeSetting.d.ts","sourceRoot":"","sources":["../../../src/components/ColorMode/ColorModeSetting.tsx"],"names":[],"mappings":"AACA,OAAO,EAA8E,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AACzH,OAAO,EAA4C,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGlG,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpD,eAAO,MAAM,kBAAkB,EAAE;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,iBAAiB,CAAA;CAAE,EAInG,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,8FAA8F;IAC9F,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,uDAAuD;IACvD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,KAAoB,EAAE,KAAa,EAAE,EAAE,qBAAqB,+BA8B9F;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,SAShC;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAI1C"}
@@ -0,0 +1,52 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useId } from 'react';
3
+ import { Box, ToggleButton, ToggleButtonGroup, Typography, useColorScheme, useTheme } from '@mui/material';
4
+ import { BrightnessAutoOutlined, DarkModeOutlined, LightModeOutlined } from '@mui/icons-material';
5
+ import { VISIN_COLORS } from '../../theme';
6
+ export const COLOR_MODE_OPTIONS = [
7
+ { value: 'system', label: 'Auto', Icon: BrightnessAutoOutlined },
8
+ { value: 'light', label: 'Light', Icon: LightModeOutlined },
9
+ { value: 'dark', label: 'Dark', Icon: DarkModeOutlined }
10
+ ];
11
+ /**
12
+ * Auto, light or dark, for the whole of Visin.
13
+ *
14
+ * The choice lives in the shell's theme provider, which every remote is
15
+ * federated into, so changing it here changes it everywhere at once. It is per
16
+ * device on purpose: the same person may want dark on a laptop at night and
17
+ * light on a desk monitor.
18
+ */
19
+ export function ColorModeSetting({ label = 'Appearance', dense = false }) {
20
+ const { mode, setMode } = useColorScheme();
21
+ const labelId = useId();
22
+ return (_jsxs(Box, { children: [label && (_jsx(Typography, { variant: "subtitle2", component: "p", id: labelId, sx: { mb: 1 }, children: label })), _jsx(ToggleButtonGroup, { exclusive: true, fullWidth: true, size: "small", value: mode ?? 'system', onChange: (_, next) => next && setMode(next), "aria-labelledby": label ? labelId : undefined, "aria-label": label ? undefined : 'Appearance', sx: { '& .MuiToggleButton-root': { gap: 0.75, textTransform: 'none', py: dense ? 0.5 : 0.75 } }, children: COLOR_MODE_OPTIONS.map(({ value, label: text, Icon }) => (_jsxs(ToggleButton, { value: value, children: [_jsx(Icon, { fontSize: "small" }), text] }, value))) })] }));
23
+ }
24
+ /**
25
+ * Keeps the browser's own bar (`<meta name="theme-color">`) on the scheme that
26
+ * is showing, which index.html can only guess at before the app loads.
27
+ */
28
+ export function useThemeColorMeta() {
29
+ const { colorScheme } = useColorScheme();
30
+ useEffect(() => {
31
+ if (!colorScheme)
32
+ return;
33
+ document
34
+ .querySelector('meta[name="theme-color"]')
35
+ ?.setAttribute('content', colorScheme === 'dark' ? VISIN_COLORS.themeColorDark : VISIN_COLORS.themeColor);
36
+ }, [colorScheme]);
37
+ }
38
+ /**
39
+ * The palette of the scheme that is showing, as real colour values.
40
+ *
41
+ * `theme.palette` is not it: with CSS variables the theme object is built once
42
+ * and holds the light palette in both schemes. That is fine in `sx`, which
43
+ * should say `'text.secondary'` anyway, but anything that needs the colour
44
+ * itself — `alpha()`, an SVG attribute, a chart series — reads the light value
45
+ * in dark. Use this there.
46
+ */
47
+ export function useActivePalette() {
48
+ const theme = useTheme();
49
+ const { colorScheme } = useColorScheme();
50
+ return (colorScheme && theme.colorSchemes?.[colorScheme]?.palette) || theme.palette;
51
+ }
52
+ //# sourceMappingURL=ColorModeSetting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorModeSetting.js","sourceRoot":"","sources":["../../../src/components/ColorMode/ColorModeSetting.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { ReactNode } from 'react';
2
+ import { type Theme } from '@mui/material';
3
+ export interface VisinThemeProviderProps {
4
+ children: ReactNode;
5
+ /** Defaults to the shared Visin theme. */
6
+ theme?: Theme;
7
+ }
8
+ /**
9
+ * The theme, the light/dark state and the page baseline, for a front's root.
10
+ *
11
+ * Inside the shell a remote renders one of these under the shell's own: MUI
12
+ * hands the nested provider the outer light/dark state rather than starting a
13
+ * second, so the storage keys only matter for whichever is outermost.
14
+ */
15
+ export declare function VisinThemeProvider({ children, theme }: VisinThemeProviderProps): import("react").JSX.Element;
16
+ //# sourceMappingURL=VisinThemeProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VisinThemeProvider.d.ts","sourceRoot":"","sources":["../../../src/components/ColorMode/VisinThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAA8B,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AASvE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,SAAS,CAAC;IACpB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,KAAkB,EAAE,EAAE,uBAAuB,+BAc3F"}
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { CssBaseline, ThemeProvider } from '@mui/material';
3
+ import { COLOR_MODE_STORAGE_KEY, COLOR_SCHEME_STORAGE_KEY, visinTheme } from '../../theme';
4
+ import { useThemeColorMeta } from './ColorModeSetting';
5
+ function ThemeColorMeta() {
6
+ useThemeColorMeta();
7
+ return null;
8
+ }
9
+ /**
10
+ * The theme, the light/dark state and the page baseline, for a front's root.
11
+ *
12
+ * Inside the shell a remote renders one of these under the shell's own: MUI
13
+ * hands the nested provider the outer light/dark state rather than starting a
14
+ * second, so the storage keys only matter for whichever is outermost.
15
+ */
16
+ export function VisinThemeProvider({ children, theme = visinTheme }) {
17
+ return (_jsxs(ThemeProvider, { theme: theme, modeStorageKey: COLOR_MODE_STORAGE_KEY, colorSchemeStorageKey: COLOR_SCHEME_STORAGE_KEY, disableTransitionOnChange: true, noSsr: true, children: [_jsx(CssBaseline, { enableColorScheme: true }), _jsx(ThemeColorMeta, {}), children] }));
18
+ }
19
+ //# sourceMappingURL=VisinThemeProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VisinThemeProvider.js","sourceRoot":"","sources":["../../../src/components/ColorMode/VisinThemeProvider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAc,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,SAAS,cAAc;IACrB,iBAAiB,EAAE,CAAC;IACpB,OAAO,IAAI,CAAC;AACd,CAAC;AAQD;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAE,QAAQ,EAAE,KAAK,GAAG,UAAU,EAA2B;IAC1F,OAAO,CACL,MAAC,aAAa,IACZ,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,sBAAsB,EACtC,qBAAqB,EAAE,wBAAwB,EAC/C,yBAAyB,QACzB,KAAK,mBAEL,KAAC,WAAW,IAAC,iBAAiB,SAAG,EACjC,KAAC,cAAc,KAAG,EACjB,QAAQ,IACK,CACjB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { ColorModeSetting, COLOR_MODE_OPTIONS, useThemeColorMeta, useActivePalette } from './ColorModeSetting';
2
+ export type { ColorMode, ColorModeSettingProps } from './ColorModeSetting';
3
+ export { VisinThemeProvider } from './VisinThemeProvider';
4
+ export { useChartColors } from './useChartColors';
5
+ export type { ChartColors } from './useChartColors';
6
+ export type { VisinThemeProviderProps } from './VisinThemeProvider';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ColorMode/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC/G,YAAY,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { ColorModeSetting, COLOR_MODE_OPTIONS, useThemeColorMeta, useActivePalette } from './ColorModeSetting';
2
+ export { VisinThemeProvider } from './VisinThemeProvider';
3
+ export { useChartColors } from './useChartColors';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ColorMode/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE/G,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,15 @@
1
+ export interface ChartColors {
2
+ /** The eight series colours of the scheme showing, in slot order. */
3
+ series: readonly string[];
4
+ /** Slot `index`, wrapping past the eighth. */
5
+ slot: (index: number) => string;
6
+ /**
7
+ * A stored colour (a project's class colour, say) as it should draw in the
8
+ * scheme showing: a light-scheme series colour becomes its dark step, and any
9
+ * other colour is someone's deliberate choice, left alone.
10
+ */
11
+ adapt: (color: string) => string;
12
+ }
13
+ /** Chart series colours for the scheme that is showing. */
14
+ export declare function useChartColors(): ChartColors;
15
+ //# sourceMappingURL=useChartColors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChartColors.d.ts","sourceRoot":"","sources":["../../../src/components/ColorMode/useChartColors.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,8CAA8C;IAC9C,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAChC;;;;OAIG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAClC;AAED,2DAA2D;AAC3D,wBAAgB,cAAc,IAAI,WAAW,CAW5C"}
@@ -0,0 +1,16 @@
1
+ import { useColorScheme } from '@mui/material';
2
+ import { chartSeries } from '../../theme';
3
+ /** Chart series colours for the scheme that is showing. */
4
+ export function useChartColors() {
5
+ const { colorScheme } = useColorScheme();
6
+ const series = colorScheme === 'dark' ? chartSeries.dark : chartSeries.light;
7
+ return {
8
+ series,
9
+ slot: (index) => series[index % series.length],
10
+ adapt: (color) => {
11
+ const index = chartSeries.light.indexOf(color.toLowerCase());
12
+ return index === -1 ? color : series[index];
13
+ }
14
+ };
15
+ }
16
+ //# sourceMappingURL=useChartColors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChartColors.js","sourceRoot":"","sources":["../../../src/components/ColorMode/useChartColors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAe1C,2DAA2D;AAC3D,MAAM,UAAU,cAAc;IAC5B,MAAM,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC;IAC7E,OAAO;QACL,MAAM;QACN,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9C,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,KAAK,GAAI,WAAW,CAAC,KAA2B,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YACpF,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -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"}