sage-nexus-ui 1.0.4 → 1.0.5
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/components/CheckboxGroup.d.ts +13 -0
- package/dist/components/DateFormats.d.ts +6 -0
- package/dist/components/LocationMultiSelect.d.ts +15 -0
- package/dist/components/NexusLogo.d.ts +5 -0
- package/dist/components/RagDot.d.ts +6 -0
- package/dist/components/SearchInput.d.ts +13 -0
- package/dist/components/SecondaryButton.d.ts +6 -0
- package/dist/components/SkillChip.d.ts +8 -0
- package/dist/components/StatusChip.d.ts +9 -0
- package/dist/components/index.d.ts +8 -0
- package/dist/index.d.ts +70 -5
- package/dist/index.mjs +1 -1
- package/dist/stories/ActionBar.stories.d.ts +21 -0
- package/package.json +3 -2
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SxProps } from '@mui/system';
|
|
2
|
+
import type { Theme } from '@mui/material/styles';
|
|
3
|
+
interface CheckboxGroupProps {
|
|
4
|
+
title?: React.ReactNode;
|
|
5
|
+
labels?: string[];
|
|
6
|
+
selectedValues?: string[];
|
|
7
|
+
onChange?: (values: string[]) => void;
|
|
8
|
+
rootSx?: SxProps<Theme>;
|
|
9
|
+
groupSx?: SxProps<Theme>;
|
|
10
|
+
titleSx?: SxProps<Theme>;
|
|
11
|
+
}
|
|
12
|
+
export declare const CheckboxGroup: React.FC<CheckboxGroupProps>;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { SxProps } from "@mui/material";
|
|
3
|
+
import type { Theme } from "@mui/material/styles";
|
|
4
|
+
interface LocationMultiSelectProps {
|
|
5
|
+
ariaLabel?: string;
|
|
6
|
+
availableLocations?: string[];
|
|
7
|
+
emptyLabel?: string;
|
|
8
|
+
selectedLocations?: string[];
|
|
9
|
+
onLocationsChange?: (next: string[]) => void;
|
|
10
|
+
formControlSx?: SxProps<Theme>;
|
|
11
|
+
menuSx?: SxProps<Theme>;
|
|
12
|
+
selectSx?: SxProps<Theme>;
|
|
13
|
+
}
|
|
14
|
+
export declare const LocationMultiSelect: React.FC<LocationMultiSelectProps>;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { SxProps } from '@mui/material';
|
|
3
|
+
import type { Theme } from '@mui/material/styles';
|
|
4
|
+
interface SearchInputProps {
|
|
5
|
+
ariaLabel?: string;
|
|
6
|
+
onSearchChange: (value: string) => void;
|
|
7
|
+
placeholder?: string;
|
|
8
|
+
searchValue?: string;
|
|
9
|
+
sx?: SxProps<Theme>;
|
|
10
|
+
styles?: SxProps<Theme>;
|
|
11
|
+
}
|
|
12
|
+
export declare const SearchInput: React.FC<SearchInputProps>;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { ChipProps } from "@mui/material";
|
|
3
|
+
interface SkillChipProps extends ChipProps {
|
|
4
|
+
label?: React.ReactNode;
|
|
5
|
+
tone?: "default" | "matched" | "accent" | string;
|
|
6
|
+
}
|
|
7
|
+
export declare const SkillChip: React.FC<SkillChipProps>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type ChipProps } from "@mui/material";
|
|
2
|
+
type ChipSize = "default" | "small";
|
|
3
|
+
export interface StatusChipProps extends ChipProps {
|
|
4
|
+
status?: string;
|
|
5
|
+
label?: React.ReactNode;
|
|
6
|
+
chipSize?: ChipSize;
|
|
7
|
+
}
|
|
8
|
+
export declare const StatusChip: React.FC<StatusChipProps>;
|
|
9
|
+
export {};
|
|
@@ -1,3 +1,11 @@
|
|
|
1
1
|
export { ActionBar } from "./ActionBar";
|
|
2
|
+
export { CheckboxGroup } from "./CheckboxGroup";
|
|
3
|
+
export { LocationMultiSelect } from "./LocationMultiSelect";
|
|
2
4
|
export { NexusHome } from "./NexusHome";
|
|
5
|
+
export { NexusLogo } from "./NexusLogo";
|
|
6
|
+
export { SecondaryButton } from "./SecondaryButton";
|
|
7
|
+
export { default as RagDot } from "./RagDot";
|
|
8
|
+
export { SearchInput } from "./SearchInput";
|
|
9
|
+
export { SkillChip } from "./SkillChip";
|
|
10
|
+
export { StatusChip } from "./StatusChip";
|
|
3
11
|
export { ThemeToggle } from "./ThemeToggle";
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { ReactNode, ReactElement, CSSProperties, PropsWithChildren } from 'react';
|
|
2
|
-
import {
|
|
1
|
+
import React$1, { ReactNode, ReactElement, CSSProperties, PropsWithChildren } from 'react';
|
|
2
|
+
import { SxProps } from '@mui/system';
|
|
3
|
+
import { Theme, SxProps as SxProps$2 } from '@mui/material/styles';
|
|
4
|
+
import { SxProps as SxProps$1, ButtonProps, ChipProps } from '@mui/material';
|
|
3
5
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
6
|
|
|
5
7
|
interface ActionBarProps {
|
|
@@ -9,8 +11,71 @@ interface ActionBarProps {
|
|
|
9
11
|
}
|
|
10
12
|
declare const ActionBar: ({ title, extraLeft, extraRight, }: ActionBarProps) => ReactElement;
|
|
11
13
|
|
|
14
|
+
interface CheckboxGroupProps {
|
|
15
|
+
title?: React.ReactNode;
|
|
16
|
+
labels?: string[];
|
|
17
|
+
selectedValues?: string[];
|
|
18
|
+
onChange?: (values: string[]) => void;
|
|
19
|
+
rootSx?: SxProps<Theme>;
|
|
20
|
+
groupSx?: SxProps<Theme>;
|
|
21
|
+
titleSx?: SxProps<Theme>;
|
|
22
|
+
}
|
|
23
|
+
declare const CheckboxGroup: React.FC<CheckboxGroupProps>;
|
|
24
|
+
|
|
25
|
+
interface LocationMultiSelectProps {
|
|
26
|
+
ariaLabel?: string;
|
|
27
|
+
availableLocations?: string[];
|
|
28
|
+
emptyLabel?: string;
|
|
29
|
+
selectedLocations?: string[];
|
|
30
|
+
onLocationsChange?: (next: string[]) => void;
|
|
31
|
+
formControlSx?: SxProps$1<Theme>;
|
|
32
|
+
menuSx?: SxProps$1<Theme>;
|
|
33
|
+
selectSx?: SxProps$1<Theme>;
|
|
34
|
+
}
|
|
35
|
+
declare const LocationMultiSelect: React$1.FC<LocationMultiSelectProps>;
|
|
36
|
+
|
|
12
37
|
declare const NexusHome: React.FC;
|
|
13
38
|
|
|
39
|
+
type LogoProps = {
|
|
40
|
+
size?: "sm" | "md" | "lg";
|
|
41
|
+
};
|
|
42
|
+
declare const NexusLogo: ({ size }: LogoProps) => react_jsx_runtime.JSX.Element;
|
|
43
|
+
|
|
44
|
+
interface SecondaryButtonProps extends ButtonProps {
|
|
45
|
+
buttonSize?: "default" | "small";
|
|
46
|
+
}
|
|
47
|
+
declare const SecondaryButton: React.FC<SecondaryButtonProps>;
|
|
48
|
+
|
|
49
|
+
type RagStatus = "On Track" | "At Risk" | "Off Track" | string;
|
|
50
|
+
interface RagDotProps {
|
|
51
|
+
status: RagStatus;
|
|
52
|
+
}
|
|
53
|
+
declare function RagDot({ status }: RagDotProps): react_jsx_runtime.JSX.Element;
|
|
54
|
+
|
|
55
|
+
interface SearchInputProps {
|
|
56
|
+
ariaLabel?: string;
|
|
57
|
+
onSearchChange: (value: string) => void;
|
|
58
|
+
placeholder?: string;
|
|
59
|
+
searchValue?: string;
|
|
60
|
+
sx?: SxProps$1<Theme>;
|
|
61
|
+
styles?: SxProps$1<Theme>;
|
|
62
|
+
}
|
|
63
|
+
declare const SearchInput: React$1.FC<SearchInputProps>;
|
|
64
|
+
|
|
65
|
+
interface SkillChipProps extends ChipProps {
|
|
66
|
+
label?: React$1.ReactNode;
|
|
67
|
+
tone?: "default" | "matched" | "accent" | string;
|
|
68
|
+
}
|
|
69
|
+
declare const SkillChip: React$1.FC<SkillChipProps>;
|
|
70
|
+
|
|
71
|
+
type ChipSize = "default" | "small";
|
|
72
|
+
interface StatusChipProps extends ChipProps {
|
|
73
|
+
status?: string;
|
|
74
|
+
label?: React.ReactNode;
|
|
75
|
+
chipSize?: ChipSize;
|
|
76
|
+
}
|
|
77
|
+
declare const StatusChip: React.FC<StatusChipProps>;
|
|
78
|
+
|
|
14
79
|
declare const ThemeToggle: React.FC;
|
|
15
80
|
|
|
16
81
|
type ThemeMode = "light" | "dark";
|
|
@@ -89,8 +154,8 @@ declare const getGradientBorderStyles: (theme: Theme, options?: GradientBorderOp
|
|
|
89
154
|
pointerEvents: string;
|
|
90
155
|
};
|
|
91
156
|
};
|
|
92
|
-
declare const leftPipe: SxProps<Theme>;
|
|
93
|
-
declare const expandableText: (isExpanded: boolean) => SxProps<Theme>;
|
|
157
|
+
declare const leftPipe: SxProps$2<Theme>;
|
|
158
|
+
declare const expandableText: (isExpanded: boolean) => SxProps$2<Theme>;
|
|
94
159
|
|
|
95
|
-
export { ActionBar, MuiAppThemeProvider, NexusHome, ThemeModeProvider, ThemeToggle, colours, createSageTheme, expandableText, fontSageText, fontSageUI, getGradientBorderStyles, gradients, leftPipe, useThemeMode };
|
|
160
|
+
export { ActionBar, CheckboxGroup, LocationMultiSelect, MuiAppThemeProvider, NexusHome, NexusLogo, RagDot, SearchInput, SecondaryButton, SkillChip, StatusChip, ThemeModeProvider, ThemeToggle, colours, createSageTheme, expandableText, fontSageText, fontSageUI, getGradientBorderStyles, gradients, leftPipe, useThemeMode };
|
|
96
161
|
export type { GradientBorderOptions, ThemeMode };
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as r}from"react/jsx-runtime";import{Tooltip as o,IconButton as t,CssBaseline as i,useTheme as a,useMediaQuery as n,AppBar as d,Toolbar as l,Box as s,Typography as c}from"@mui/material";import{useTheme as p,createTheme as m,alpha as g,ThemeProvider as u}from"@mui/material/styles";import{useMemo as b,createContext as x,useState as h,useContext as C,useRef as y,useEffect as f}from"react";import"@mui/x-data-grid/themeAugmentation";import D from"@mui/icons-material/LightMode";import k from"@mui/icons-material/DarkMode";const v=()=>{const r=p();return e(o,{title:"Go to Nexus Home",placement:"bottom",children:e(t,{component:"a",href:"https://ai-nexus.sage.com/",size:"small","aria-label":"Nexus home",sx:{width:32,height:32,borderRadius:"50%",p:.5,display:"inline-flex",alignItems:"center",justifyContent:"center","&:hover":{backgroundColor:r.palette.action.hover}},children:e("img",{src:"data:image/svg+xml,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%20120%20120%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%3E%20%20%3Cg%20id%3D%22nexus-icon%22%20transform%3D%22translate%2860%2C%2060%29%22%20fill%3D%22%2305D505%22%3E%20%20%20%20%3Ccircle%20cx%3D%220%22%20cy%3D%220%22%20r%3D%2212%22%2F%3E%20%20%20%20%3Cg%20stroke%3D%22%2305D505%22%20stroke-width%3D%224.5%22%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%280%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%2860%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%28120%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%28180%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%28240%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%28300%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%3C%2Fg%3E%20%20%3C%2Fg%3E%3C%2Fsvg%3E",alt:"Nexus Logo",style:{width:20,height:20,display:"block"}})})})},w={brilliantGreen:"#00D639",primaryGreenHover:"#00BE32",primaryGreenActive:"#00AA2D",jade:"#00A65C",teal:"#006362",navy:"#00293F",cherry:"#cc0f4b",terra:"#A13829",amber:"#E9875B",gold:"#F5C518",black:"#000000",white:"#FFFFFF",darkGrey:"#55616D",lightGrey:"#ffffffc2"},F={brand:`linear-gradient(135deg, ${w.brilliantGreen} 0%, ${w.jade} 42%, ${w.teal} 100%)`,nexus:`linear-gradient(135deg, ${w.brilliantGreen} 0%, #00D6DE 40%, #2D60FF 100%)`,mesh:"radial-gradient(circle at top right, rgba(0, 214, 57, 0.16) 0%, transparent 34%), linear-gradient(135deg, rgba(0, 166, 92, 0.08) 0%, rgba(0, 99, 98, 0.12) 100%)"},M="SageText, Inter, Segoe UI, sans-serif",E="SageUI, Inter, Segoe UI, sans-serif",G=(e="light")=>{const r=(e=>{const r="dark"===e;return{background:{default:r?w.black:"#F5F7F6",paper:r?"#111111":w.white},text:{primary:r?w.white:w.black,secondary:r?w.lightGrey:w.darkGrey,greens:r?w.brilliantGreen:w.jade},border:r?"rgba(255, 255, 255, 0.10)":"rgba(0, 0, 0, 0.10)",shadow:r?"0 28px 80px rgba(0, 0, 0, 0.42)":"0 24px 64px rgba(0, 41, 63, 0.12)",outlinedPrimary:r?w.brilliantGreen:w.jade,outlinedPrimaryHover:r?w.primaryGreenHover:w.primaryGreenActive}})(e),o=(e=>({h1:e.text.primary,h2:e.text.primary,h3:e.text.greens,h4:e.text.primary,body1:e.text.primary,body2:e.text.secondary,caption:e.text.secondary,actionBarTitle:w.brilliantGreen}))(r);return m({palette:{mode:e,primary:{main:w.brilliantGreen,dark:w.primaryGreenActive,contrastText:w.black},secondary:{main:w.teal,contrastText:w.white},success:{main:w.jade,contrastText:w.white},warning:{main:w.amber,contrastText:w.white},error:{main:w.cherry,contrastText:w.white},info:{main:w.navy,contrastText:w.white},background:{default:r.background.default,paper:r.background.paper},text:r.text,divider:r.border},shape:{borderRadius:8},typography:{fontFamily:M,h1:{fontSize:"clamp(2rem, 3vw, 2.75rem)",lineHeight:1.08,letterSpacing:"-0.02em",fontWeight:700},h2:{fontSize:"1.5rem",lineHeight:1.2,fontWeight:600,letterSpacing:"-0.01em"},h3:{fontSize:"0.75rem",lineHeight:1.25,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.08em"},h4:{fontSize:"1rem",lineHeight:1.3,fontWeight:500},actionBarTitle:{fontSize:"0.95rem",lineHeight:1.2,fontWeight:600,textTransform:"none",fontFamily:E},body1:{fontSize:"0.9rem",lineHeight:1.5},body2:{fontSize:"0.8rem",lineHeight:1.4},caption:{fontSize:"0.7rem",lineHeight:1.4},button:{fontFamily:E,fontSize:"0.95rem",fontWeight:600,textTransform:"none"}},shadows:["none","0 1px 2px rgba(0,0,0,0.08)","0 4px 12px rgba(0,0,0,0.10)","0 8px 24px rgba(0,0,0,0.12)","0 16px 48px rgba(0,0,0,0.18)",...Array(20).fill("none")],components:{MuiCssBaseline:{styleOverrides:{html:{backgroundColor:r.background.default},body:{backgroundColor:r.background.default,fontFamily:M,color:r.text.primary,transition:"background-color 200ms ease, color 200ms ease"},"#root":{minHeight:"100vh"},"::selection":{backgroundColor:g(w.brilliantGreen,.28),color:r.text.primary},a:{color:r.text.greens,"&:hover":{color:r.text.secondary}},aside:{marginRight:"10px",borderLeft:"2px solid",borderColor:r.text.secondary,padding:"0 8px"}}},MuiTypography:{styleOverrides:{root:({ownerState:e})=>({color:o[e.variant]??"inherit"})}},MuiPaper:{defaultProps:{elevation:1},styleOverrides:{root:({theme:e})=>({backgroundImage:"none",border:`1px solid ${r.border}`,borderRadius:e.shape.borderRadius,padding:e.spacing(1)})}},MuiCard:{styleOverrides:{root:({theme:e})=>({borderRadius:e.shape.borderRadius,boxShadow:r.shadow,border:`1px solid ${r.border}`})}},MuiButton:{defaultProps:{disableElevation:!0},styleOverrides:{root:{borderRadius:999,paddingInline:18,minHeight:48,transition:"color 160ms ease, border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease","&.MuiButton-containedPrimary":{color:w.black,"&:hover":{backgroundColor:w.primaryGreenHover,color:w.black},"&:active":{color:w.black}}},outlined:{borderWidth:1.5,"&:hover":{borderWidth:1.5},"&.MuiButton-outlinedPrimary":{color:r.outlinedPrimary,borderColor:g(r.outlinedPrimary,"dark"===e?.8:.72),"&:hover":{color:r.outlinedPrimaryHover,borderColor:r.outlinedPrimaryHover,backgroundColor:g(r.outlinedPrimaryHover,"dark"===e?.12:.08)}}},sizeSmall:{minHeight:0,minWidth:0,paddingInline:0,paddingBlock:0}}},MuiChip:{styleOverrides:{root:{borderRadius:999,fontFamily:E}}},MuiDivider:{styleOverrides:{root:{borderColor:r.border}}},MuiDataGrid:{styleOverrides:{root:({theme:o})=>({borderRadius:o.shape.borderRadius,border:`1px solid ${r.border}`,backgroundColor:r.background.paper,color:r.text.primary,"--DataGrid-rowBorderColor":r.border,"--DataGrid-containerBackground":r.background.paper,"--DataGrid-pinnedBackground":r.background.paper,"& .MuiDataGrid-toolbarContainer":{padding:"12px 16px 0",gap:8},"& .MuiDataGrid-toolbarContainer .MuiButton-root":{minHeight:36,paddingInline:12,color:r.text.secondary},"& .MuiDataGrid-toolbarContainer .MuiInputBase-root":{borderRadius:999,backgroundColor:g(w.brilliantGreen,"dark"===e?.08:.05)},"& .MuiDataGrid-toolbarContainer .MuiInputBase-input":{paddingBlock:8},"& .MuiDataGrid-overlay":{backgroundColor:"transparent"}}),columnHeaders:{backgroundColor:g(w.brilliantGreen,"dark"===e?.12:.08),borderBottom:`1px solid ${r.border}`},columnHeader:{"&:focus, &:focus-within":{outline:"none"}},columnHeaderTitle:{fontWeight:600},cell:{alignItems:"center",borderTop:`1px solid ${r.border}`,"&:focus, &:focus-within":{outline:"none"}},row:{"&:hover":{backgroundColor:g(w.brilliantGreen,"dark"===e?.08:.04)}},footerContainer:{borderTop:`1px solid ${r.border}`,backgroundColor:g(w.brilliantGreen,"dark"===e?.05:.03)},sortIcon:{color:w.brilliantGreen},menuIconButton:{color:r.text.secondary},withBorderColor:{borderColor:r.border}}},MuiListItemButton:{styleOverrides:{root:({theme:e})=>({borderRadius:e.shape.borderRadius,border:`1px solid ${r.border}`,backgroundColor:r.background.paper,color:r.text.primary})}},MuiAppBar:{defaultProps:{elevation:1},styleOverrides:{root:{backgroundColor:r.background.paper,backgroundImage:"none",borderBottom:`1px solid ${r.border}`,borderRadius:0,color:r.text.primary}}},MuiAccordion:{defaultProps:{disableGutters:!0,elevation:0},styleOverrides:{root:{backgroundColor:"transparent",border:`1px solid ${r.border}`,borderRadius:"8px !important","&:before":{display:"none"},"&.Mui-expanded":{borderColor:g(w.brilliantGreen,"dark"===e?.4:.3)}}}},MuiAccordionSummary:{styleOverrides:{root:({theme:e})=>({borderRadius:e.shape.borderRadius,minHeight:24,"&.Mui-expanded":{minHeight:24},"&:focus-visible":{outline:`2px solid ${r.outlinedPrimary}`,outlineOffset:2},padding:0}),content:{margin:"0","&.Mui-expanded":{margin:"0"}},expandIconWrapper:{color:r.text.secondary}}},MuiAccordionDetails:{styleOverrides:{root:{padding:0,borderTop:`1px solid ${r.border}`}}},MuiTabs:{styleOverrides:{root:{minHeight:40,borderBottom:`1px solid ${r.border}`},indicator:{backgroundColor:w.brilliantGreen,height:2}}},MuiTab:{styleOverrides:{root:{minHeight:40,fontFamily:E,fontWeight:600,fontSize:"0.85rem",letterSpacing:"0.01em",textTransform:"none",color:r.text.secondary,"&.Mui-selected":{color:r.text.primary},"&:focus-visible":{outline:`2px solid ${r.outlinedPrimary}`,outlineOffset:2}}}},MuiDialog:{styleOverrides:{paper:({theme:e})=>({backgroundColor:r.background.paper,backgroundImage:"none",border:`1px solid ${r.border}`,borderRadius:e.shape.borderRadius,boxShadow:r.shadow})}},MuiDialogTitle:{styleOverrides:{root:{paddingBottom:8}}},MuiDialogContent:{styleOverrides:{root:{paddingTop:"8px !important"}}}}})},H=({children:o,mode:t="dark"})=>{const a=b(()=>G(t),[t]);return r(u,{theme:a,children:[e(i,{}),o]})},B=x({mode:"dark",toggleMode:()=>{}}),S=()=>C(B),R=({children:r})=>{const[o,t]=h("dark");return e(B.Provider,{value:{mode:o,toggleMode:()=>t(e=>"dark"===e?"light":"dark")},children:e(H,{mode:o,children:r})})},T=()=>{const{mode:r,toggleMode:i}=S(),n=a();return e(o,{title:`Switch to ${"dark"===r?"light":"dark"} mode`,placement:"bottom",children:e(t,{onClick:i,size:"small","aria-label":`Switch to ${"dark"===r?"light":"dark"} mode`,sx:{color:n.palette.warning?.main??n.palette.primary.main},children:e("dark"===r?D:k,{fontSize:"small"})})})};const $=({title:o,extraLeft:t,extraRight:i})=>{const[p,m]=h(!0),g=y(0),u=a(),b=n(u.breakpoints.up("md"));return f(()=>{const e=()=>{const e=window.scrollY;e>g.current?m(!1):m(!0),g.current=e};return window.addEventListener("scroll",e,{passive:!0}),()=>window.removeEventListener("scroll",e)},[]),e(d,{position:"sticky",component:"header",children:r(l,{variant:"dense",sx:{display:"flex",flexDirection:{xs:"column",md:"row"},flexWrap:"wrap",alignItems:"center",justifyContent:{xs:"center",md:"space-between"},py:{xs:1,md:0}},children:[e(s,{sx:{width:{xs:"100%",md:"auto"},textAlign:"center",display:{xs:"block",md:"none"}},children:e(c,{variant:"actionBarTitle",children:o})}),e(s,{sx:{display:"block",width:"100%",maxHeight:{xs:b||p?"300px":"0px",md:"none"},overflow:{xs:"hidden",md:"visible"},transition:{xs:"max-height 0.2s ease-in-out",md:"none"}},children:r(s,{sx:{display:"flex",flexDirection:{xs:"column",md:"row"},alignItems:"center",justifyContent:{xs:"center",md:"space-between"},width:"100%",gap:{xs:1,md:0}},children:[e(s,{sx:{height:"38px",pt:.5},children:e("img",{src:"data:image/svg+xml,%3Csvg%20width%3D%2268%22%20height%3D%2238%22%20viewBox%3D%220%200%2068%2038%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M15.2062%206.9913C15.1288%202.92301%2011.6876%200%207.46542%200C3.2388%200%200%203.16051%200%207.18922C0%2011.6525%203.12093%2013.2727%206.87343%2014.6186C10.231%2015.8043%2011.8504%2016.8704%2011.8504%2019.3985C11.8504%2021.4524%2010.231%2023.151%207.78209%2023.151C5.45107%2023.151%203.39713%2021.5316%203.39713%2019.0035C3.39713%2018.1877%203.61739%2017.7237%203.80556%2017.3274C3.94585%2017.0319%204.06829%2016.774%204.06829%2016.4359C4.06829%2015.5237%203.43672%2014.8526%202.40931%2014.8526C1.22445%2014.8526%200%2016.6303%200%2019.1583C0%2023.2266%203.51852%2026.2288%207.78209%2026.227C12.1266%2026.227%2015.2475%2023.027%2015.2475%2019.0378C15.2475%2014.4558%2011.9691%2012.9147%208.37408%2011.6111C5.01389%2010.3884%203.39713%209.32408%203.39537%206.91301C3.39537%204.70074%205.13704%203.08134%207.42408%203.08134C9.87385%203.08134%2011.809%204.78343%2011.8486%207.07047C11.8882%208.13746%2012.6385%208.76903%2013.5076%208.76903C14.4145%208.76903%2015.2457%208.13482%2015.2062%206.9913ZM16.8827%2018.4467C16.8827%2022.7921%2020.4382%2026.2288%2024.7044%2026.2288C26.6%2026.2288%2028.0619%2025.5963%2028.0619%2024.3719C28.0619%2023.4632%2027.272%2022.8317%2026.5217%2022.8317C26.2792%2022.8317%2026.0671%2022.8771%2025.8288%2022.9282C25.5235%2022.9936%2025.1752%2023.0683%2024.6648%2023.0683C22.215%2023.0683%2020.2798%2020.9352%2020.2798%2018.4467C20.2798%2015.7612%2022.2555%2013.6677%2024.744%2013.6677C27.5482%2013.6677%2029.326%2015.8008%2029.326%2018.9208V24.5698C29.326%2025.5568%2030.1159%2026.2288%2031.0641%2026.2288C31.971%2026.2288%2032.7627%2025.5568%2032.7627%2024.5698V18.8021C32.7627%2014.0626%2029.4852%2010.5863%2024.8231%2010.5863C20.4778%2010.5863%2016.8827%2013.9439%2016.8827%2018.4467ZM42.4958%2038C38.0713%2038%2034.3979%2034.8395%2034.3979%2030.7316C34.3979%2029.3488%2035.1896%2028.7173%2036.0965%2028.7173C37.0034%2028.7173%2037.7555%2029.3101%2037.7951%2030.4554C37.8346%2033.0231%2039.8886%2034.9187%2042.4571%2034.9187C45.184%2034.9187%2046.9599%2033.1805%2046.9599%2030.9295C46.9599%2028.3619%2044.9852%2027.2949%2041.6276%2026.2288C37.7168%2024.9648%2034.3988%2023.2266%2034.3988%2018.4071C34.3988%2013.9835%2037.7959%2010.5863%2042.2205%2010.5863C46.6837%2010.5863%2050.3571%2013.8251%2050.3571%2018.0913C50.3571%2020.6986%2049.291%2022.7129%2047.829%2022.7129C46.8421%2022.7129%2046.17%2022.0022%2046.17%2021.1296C46.17%2020.7404%2046.3152%2020.4455%2046.4813%2020.1083C46.7029%2019.658%2046.9617%2019.1324%2046.9617%2018.2066C46.9617%2015.4797%2044.8295%2013.6642%2042.2618%2013.6642C39.7725%2013.6642%2037.7977%2015.5598%2037.7977%2018.0482C37.7977%2020.8534%2039.8121%2022.0382%2043.1309%2023.1439C46.9617%2024.408%2050.3588%2025.9878%2050.3588%2030.6093C50.3588%2034.7577%2047.0804%2037.9982%2042.4985%2037.9982L42.4958%2038ZM51.9923%2018.4072C51.9923%2022.7525%2055.6261%2026.2288%2060.0506%2026.2288H60.0533C62.2655%2026.2288%2064.0433%2025.636%2065.2281%2024.8856C66.413%2024.1353%2066.8871%2023.5029%2066.8871%2022.7921C66.8871%2022.0418%2066.3312%2021.3698%2065.3038%2021.3698C64.8266%2021.3698%2064.3854%2021.6398%2063.847%2021.9694C63.0039%2022.4854%2061.9223%2023.1475%2060.0902%2023.1475C59.4694%2023.1482%2058.8545%2023.0258%2058.2813%2022.7873C57.708%2022.5489%2057.1878%2022.1991%2056.7506%2021.7583C56.3135%2021.3174%2055.9681%2020.7943%2055.7344%2020.219C55.5008%2019.6438%2055.3835%2019.028%2055.3895%2018.4072C55.3895%2015.8008%2057.4434%2013.6281%2059.9715%2013.6281C62.6974%2013.6281%2064.1585%2015.4076%2064.1585%2016.5511C64.1585%2016.8669%2063.9219%2017.0253%2063.6052%2017.0253H60.2081C59.2968%2017.0253%2058.6247%2017.6551%2058.6247%2018.4467C58.6247%2019.2762%2059.3003%2019.9087%2060.2081%2019.9087H64.7514C66.4895%2019.9087%2067.5556%2019%2067.5556%2017.4994C67.5556%2013.6281%2064.2377%2010.5864%2059.8527%2010.5864C58.8224%2010.5814%2057.8013%2010.78%2056.8479%2011.1708C55.8946%2011.5615%2055.0279%2012.1368%2054.2975%2012.8635C53.5671%2013.5902%2052.9875%2014.454%2052.5919%2015.4054C52.1963%2016.3567%2051.9925%2017.3768%2051.9923%2018.4072Z%22%20fill%3D%22%2300D639%22%2F%3E%3C%2Fsvg%3E",alt:"Logo"})}),e(s,{children:t}),e(s,{sx:{display:{xs:"none",md:"block"}},children:e(c,{variant:"actionBarTitle",children:o})}),e(s,{children:i}),r(s,{sx:{flex:"0 0 auto",display:"flex",alignItems:"center",gap:1,ml:{xs:0,sm:2}},children:[e(v,{}),e(T,{})]})]})})]})})},I=(e,r={})=>{const{borderRadius:o=e.shape.borderRadius,padding:t=1}=r;return{position:"relative",borderRadius:o,border:`${t}px solid transparent`,background:e.palette.background.paper,backgroundClip:"padding-box","&::before":{content:'""',position:"absolute",inset:0,borderRadius:"inherit",padding:`${t}px`,background:F.brand,WebkitMask:"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)",WebkitMaskComposite:"xor",maskComposite:"exclude",pointerEvents:"none"}}},O={borderLeft:e=>`3px solid ${e.palette.text.primary}`,pl:.8},P=e=>({color:"text.primary",lineHeight:1.45,whiteSpace:e?"pre-line":"normal",overflow:"hidden",display:e?"block":"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:e?"unset":2});export{$ as ActionBar,H as MuiAppThemeProvider,v as NexusHome,R as ThemeModeProvider,T as ThemeToggle,w as colours,G as createSageTheme,P as expandableText,M as fontSageText,E as fontSageUI,I as getGradientBorderStyles,F as gradients,O as leftPipe,S as useThemeMode};
|
|
1
|
+
import{jsx as e,jsxs as r}from"react/jsx-runtime";import{Tooltip as o,IconButton as t,CssBaseline as a,useTheme as n,Box as i,useMediaQuery as l,AppBar as d,Toolbar as s,Typography as c,Stack as m,FormGroup as p,FormControlLabel as b,Checkbox as g,FormControl as u,Select as x,MenuItem as h,ListItemText as D,OutlinedInput as y,Button as C,TextField as f,Chip as k}from"@mui/material";import{useTheme as E,createTheme as F,alpha as w,ThemeProvider as v}from"@mui/material/styles";import{useMemo as S,createContext as G,useState as M,useContext as B,useRef as H,useEffect as A}from"react";import"@mui/x-data-grid/themeAugmentation";import z from"@mui/icons-material/LightMode";import I from"@mui/icons-material/DarkMode";const R=()=>{const r=E();return e(o,{title:"Go to Nexus Home",placement:"bottom",children:e(t,{component:"a",href:"https://ai-nexus.sage.com/",size:"small","aria-label":"Nexus home",sx:{width:32,height:32,borderRadius:"50%",p:.5,display:"inline-flex",alignItems:"center",justifyContent:"center","&:hover":{backgroundColor:r.palette.action.hover}},children:e("img",{src:"data:image/svg+xml,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%20120%20120%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%3E%20%20%3Cg%20id%3D%22nexus-icon%22%20transform%3D%22translate%2860%2C%2060%29%22%20fill%3D%22%2305D505%22%3E%20%20%20%20%3Ccircle%20cx%3D%220%22%20cy%3D%220%22%20r%3D%2212%22%2F%3E%20%20%20%20%3Cg%20stroke%3D%22%2305D505%22%20stroke-width%3D%224.5%22%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%280%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%2860%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%28120%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%28180%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%28240%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%28300%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%3C%2Fg%3E%20%20%3C%2Fg%3E%3C%2Fsvg%3E",alt:"Nexus Logo",style:{width:20,height:20,display:"block"}})})})},$={brilliantGreen:"#00D639",primaryGreenHover:"#00BE32",primaryGreenActive:"#00AA2D",jade:"#00A65C",teal:"#006362",navy:"#00293F",cherry:"#cc0f4b",terra:"#A13829",amber:"#E9875B",gold:"#F5C518",black:"#000000",white:"#FFFFFF",darkGrey:"#55616D",lightGrey:"#ffffffc2"},W={brand:`linear-gradient(135deg, ${$.brilliantGreen} 0%, ${$.jade} 42%, ${$.teal} 100%)`,nexus:`linear-gradient(135deg, ${$.brilliantGreen} 0%, #00D6DE 40%, #2D60FF 100%)`,mesh:"radial-gradient(circle at top right, rgba(0, 214, 57, 0.16) 0%, transparent 34%), linear-gradient(135deg, rgba(0, 166, 92, 0.08) 0%, rgba(0, 99, 98, 0.12) 100%)"},T="SageText, Inter, Segoe UI, sans-serif",O="SageUI, Inter, Segoe UI, sans-serif",j=(e="light")=>{const r=(e=>{const r="dark"===e;return{background:{default:r?$.black:"#F5F7F6",paper:r?"#111111":$.white},text:{primary:r?$.white:$.black,secondary:r?$.lightGrey:$.darkGrey,greens:r?$.brilliantGreen:$.jade},border:r?"rgba(255, 255, 255, 0.10)":"rgba(0, 0, 0, 0.10)",shadow:r?"0 28px 80px rgba(0, 0, 0, 0.42)":"0 24px 64px rgba(0, 41, 63, 0.12)",outlinedPrimary:r?$.brilliantGreen:$.jade,outlinedPrimaryHover:r?$.primaryGreenHover:$.primaryGreenActive}})(e),o=(e=>({h1:e.text.primary,h2:e.text.primary,h3:e.text.greens,h4:e.text.primary,body1:e.text.primary,body2:e.text.secondary,caption:e.text.secondary,actionBarTitle:$.brilliantGreen}))(r);return F({palette:{mode:e,primary:{main:$.brilliantGreen,dark:$.primaryGreenActive,contrastText:$.black},secondary:{main:$.teal,contrastText:$.white},success:{main:$.jade,contrastText:$.white},warning:{main:$.amber,contrastText:$.white},error:{main:$.cherry,contrastText:$.white},info:{main:$.navy,contrastText:$.white},background:{default:r.background.default,paper:r.background.paper},text:r.text,divider:r.border},shape:{borderRadius:8},typography:{fontFamily:T,h1:{fontSize:"clamp(2rem, 3vw, 2.75rem)",lineHeight:1.08,letterSpacing:"-0.02em",fontWeight:700},h2:{fontSize:"1.5rem",lineHeight:1.2,fontWeight:600,letterSpacing:"-0.01em"},h3:{fontSize:"0.75rem",lineHeight:1.25,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.08em"},h4:{fontSize:"1rem",lineHeight:1.3,fontWeight:500},actionBarTitle:{color:$.brilliantGreen,fontFamily:O,fontWeight:700,lineHeight:1.2,textTransform:"none"},body1:{fontSize:"0.9rem",lineHeight:1.5},body2:{fontSize:"0.8rem",lineHeight:1.4},caption:{fontSize:"0.7rem",lineHeight:1.4},button:{fontFamily:O,fontSize:"0.95rem",fontWeight:600,textTransform:"none"}},shadows:["none","0 1px 2px rgba(0,0,0,0.08)","0 4px 12px rgba(0,0,0,0.10)","0 8px 24px rgba(0,0,0,0.12)","0 16px 48px rgba(0,0,0,0.18)",...Array(20).fill("none")],components:{MuiCssBaseline:{styleOverrides:{html:{backgroundColor:r.background.default},body:{backgroundColor:r.background.default,fontFamily:T,color:r.text.primary,transition:"background-color 200ms ease, color 200ms ease"},"#root":{minHeight:"100vh"},"::selection":{backgroundColor:w($.brilliantGreen,.28),color:r.text.primary},a:{color:r.text.greens,"&:hover":{color:r.text.secondary}},aside:{marginRight:"10px",borderLeft:"2px solid",borderColor:r.text.secondary,padding:"0 8px"}}},MuiTypography:{styleOverrides:{root:({ownerState:e})=>({color:o[e.variant]??"inherit"})}},MuiPaper:{defaultProps:{elevation:1},styleOverrides:{root:({theme:e})=>({backgroundImage:"none",border:`1px solid ${r.border}`,borderRadius:e.shape.borderRadius,padding:e.spacing(1)})}},MuiCard:{styleOverrides:{root:({theme:e})=>({borderRadius:e.shape.borderRadius,boxShadow:r.shadow,border:`1px solid ${r.border}`})}},MuiButton:{defaultProps:{disableElevation:!0},styleOverrides:{root:{borderRadius:999,paddingInline:18,minHeight:48,transition:"color 160ms ease, border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease","&.MuiButton-containedPrimary":{color:$.black,"&:hover":{backgroundColor:$.primaryGreenHover,color:$.black},"&:active":{color:$.black}}},outlined:{borderWidth:1.5,"&:hover":{borderWidth:1.5},"&.MuiButton-outlinedPrimary":{color:r.outlinedPrimary,borderColor:w(r.outlinedPrimary,"dark"===e?.8:.72),"&:hover":{color:r.outlinedPrimaryHover,borderColor:r.outlinedPrimaryHover,backgroundColor:w(r.outlinedPrimaryHover,"dark"===e?.12:.08)}}},sizeSmall:{minHeight:0,minWidth:0,paddingInline:0,paddingBlock:0}}},MuiChip:{styleOverrides:{root:{borderRadius:999,fontFamily:O}}},MuiDivider:{styleOverrides:{root:{borderColor:r.border}}},MuiDataGrid:{styleOverrides:{root:({theme:o})=>({borderRadius:o.shape.borderRadius,border:`1px solid ${r.border}`,backgroundColor:r.background.paper,color:r.text.primary,"--DataGrid-rowBorderColor":r.border,"--DataGrid-containerBackground":r.background.paper,"--DataGrid-pinnedBackground":r.background.paper,"& .MuiDataGrid-toolbarContainer":{padding:"12px 16px 0",gap:8},"& .MuiDataGrid-toolbarContainer .MuiButton-root":{minHeight:36,paddingInline:12,color:r.text.secondary},"& .MuiDataGrid-toolbarContainer .MuiInputBase-root":{borderRadius:999,backgroundColor:w($.brilliantGreen,"dark"===e?.08:.05)},"& .MuiDataGrid-toolbarContainer .MuiInputBase-input":{paddingBlock:8},"& .MuiDataGrid-overlay":{backgroundColor:"transparent"}}),columnHeaders:{backgroundColor:w($.brilliantGreen,"dark"===e?.12:.08),borderBottom:`1px solid ${r.border}`},columnHeader:{"&:focus, &:focus-within":{outline:"none"}},columnHeaderTitle:{fontWeight:600},cell:{alignItems:"center",borderTop:`1px solid ${r.border}`,"&:focus, &:focus-within":{outline:"none"}},row:{"&:hover":{backgroundColor:w($.brilliantGreen,"dark"===e?.08:.04)}},footerContainer:{borderTop:`1px solid ${r.border}`,backgroundColor:w($.brilliantGreen,"dark"===e?.05:.03)},sortIcon:{color:$.brilliantGreen},menuIconButton:{color:r.text.secondary},withBorderColor:{borderColor:r.border}}},MuiListItemButton:{styleOverrides:{root:({theme:e})=>({borderRadius:e.shape.borderRadius,border:`1px solid ${r.border}`,backgroundColor:r.background.paper,color:r.text.primary})}},MuiAppBar:{defaultProps:{elevation:1},styleOverrides:{root:{backgroundColor:r.background.paper,backgroundImage:"none",borderBottom:`1px solid ${r.border}`,borderRadius:0,color:r.text.primary}}},MuiAccordion:{defaultProps:{disableGutters:!0,elevation:0},styleOverrides:{root:{backgroundColor:"transparent",border:`1px solid ${r.border}`,borderRadius:"8px !important","&:before":{display:"none"},"&.Mui-expanded":{borderColor:w($.brilliantGreen,"dark"===e?.4:.3)}}}},MuiAccordionSummary:{styleOverrides:{root:({theme:e})=>({borderRadius:e.shape.borderRadius,minHeight:24,"&.Mui-expanded":{minHeight:24},"&:focus-visible":{outline:`2px solid ${r.outlinedPrimary}`,outlineOffset:2},padding:0}),content:{margin:"0","&.Mui-expanded":{margin:"0"}},expandIconWrapper:{color:r.text.secondary}}},MuiAccordionDetails:{styleOverrides:{root:{padding:0,borderTop:`1px solid ${r.border}`}}},MuiTabs:{styleOverrides:{root:{minHeight:40,borderBottom:`1px solid ${r.border}`},indicator:{backgroundColor:$.brilliantGreen,height:2}}},MuiTab:{styleOverrides:{root:{minHeight:40,fontFamily:O,fontWeight:600,fontSize:"0.85rem",letterSpacing:"0.01em",textTransform:"none",color:r.text.secondary,"&.Mui-selected":{color:r.text.primary},"&:focus-visible":{outline:`2px solid ${r.outlinedPrimary}`,outlineOffset:2}}}},MuiDialog:{styleOverrides:{paper:({theme:e})=>({backgroundColor:r.background.paper,backgroundImage:"none",border:`1px solid ${r.border}`,borderRadius:e.shape.borderRadius,boxShadow:r.shadow})}},MuiDialogTitle:{styleOverrides:{root:{paddingBottom:8}}},MuiDialogContent:{styleOverrides:{root:{paddingTop:"8px !important"}}}}})},P=({children:o,mode:t="dark"})=>{const n=S(()=>j(t),[t]);return r(v,{theme:n,children:[e(a,{}),o]})},L=G({mode:"dark",toggleMode:()=>{}}),U=()=>B(L),N=({children:r})=>{const[o,t]=M("dark");return e(L.Provider,{value:{mode:o,toggleMode:()=>t(e=>"dark"===e?"light":"dark")},children:e(P,{mode:o,children:r})})},V=()=>{const{mode:r,toggleMode:a}=U(),i=n();return e(o,{title:`Switch to ${"dark"===r?"light":"dark"} mode`,placement:"bottom",children:e(t,{onClick:a,size:"small","aria-label":`Switch to ${"dark"===r?"light":"dark"} mode`,sx:{color:i.palette.warning?.main??i.palette.primary.main},children:e("dark"===r?z:I,{fontSize:"small"})})})};const Y=({size:r="md"})=>{const o=n();return e(i,{component:"img",src:"dark"===o.palette.mode?"data:image/svg+xml,%3Csvg%20width%3D%22320%22%20height%3D%2299%22%20viewBox%3D%2215%2010%20300%2099%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%20%20%3Cg%20id%3D%22nexus-icon%22%20transform%3D%22translate%2860%2C%2060%29%22%20fill%3D%22%2305D505%22%3E%20%20%20%20%3Ccircle%20cx%3D%220%22%20cy%3D%220%22%20r%3D%2212%22%2F%3E%20%20%20%20%3Cg%20stroke%3D%22%2305D505%22%20stroke-width%3D%224.5%22%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%280%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%2860%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%28120%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%28180%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%28240%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%28300%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%3C%2Fg%3E%20%20%3C%2Fg%3E%20%20%3Ctext%20x%3D%22145%22%20y%3D%2275%22%20font-family%3D%22Arial%2C%20Helvetica%2C%20sans-serif%22%20font-size%3D%2250%22%20font-weight%3D%22bold%22%20fill%3D%22%23FFFFFF%22%20letter-spacing%3D%222%22%3ENEXUS%3C%2Ftext%3E%3C%2Fsvg%3E":"data:image/svg+xml,%3Csvg%20width%3D%22320%22%20height%3D%2299%22%20viewBox%3D%2215%2010%20300%2099%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%20%20%3Cg%20id%3D%22nexus-icon%22%20transform%3D%22translate%2860%2C%2060%29%22%20fill%3D%22%2305D505%22%3E%20%20%20%20%3Ccircle%20cx%3D%220%22%20cy%3D%220%22%20r%3D%2212%22%2F%3E%20%20%20%20%20%20%20%20%3Cg%20stroke%3D%22%2305D505%22%20stroke-width%3D%224.5%22%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%280%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%2860%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%28120%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%28180%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%28240%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%3Cg%20transform%3D%22rotate%28300%29%22%3E%20%20%20%20%20%20%20%20%3Cline%20x1%3D%2212%22%20y1%3D%220%22%20x2%3D%2236%22%20y2%3D%220%22%20%2F%3E%20%20%20%20%20%20%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%220%22%20r%3D%228%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%3C%2Fg%3E%20%20%3C%2Fg%3E%20%20%20%20%3Ctext%20x%3D%22145%22%20y%3D%2275%22%20font-family%3D%22Arial%2C%20Helvetica%2C%20sans-serif%22%20font-size%3D%2250%22%20font-weight%3D%22bold%22%20fill%3D%22%23000000%22%20letter-spacing%3D%222%22%3ENEXUS%3C%2Ftext%3E%3C%2Fsvg%3E",alt:"Nexus logo",sx:{height:{sm:24,md:32,lg:40}[r],width:"auto",objectFit:"contain",display:"block"}})},X=({title:o,extraLeft:t,extraRight:a})=>{const[m,p]=M(!0),b=H(0),g=n(),u=l(g.breakpoints.up("md"));return A(()=>{const e=()=>{const e=window.scrollY;e>b.current?p(!1):p(!0),b.current=e};return window.addEventListener("scroll",e,{passive:!0}),()=>window.removeEventListener("scroll",e)},[]),e(d,{position:"sticky",component:"header",children:r(s,{variant:"dense",sx:{display:"flex",flexDirection:{xs:"column",md:"row"},flexWrap:"wrap",alignItems:"center",justifyContent:{xs:"center",md:"space-between"},py:{xs:1,md:0}},children:[e(i,{sx:{width:{xs:"100%",md:"auto"},textAlign:"center",display:{xs:"block",md:"none"}},children:e(c,{variant:"actionBarTitle",component:"h1",children:o})}),e(i,{sx:{display:"block",width:"100%",maxHeight:{xs:u||m?"300px":"0px",md:"none"},overflow:{xs:"hidden",md:"visible"},transition:{xs:"max-height 0.2s ease-in-out",md:"none"}},children:r(i,{sx:{display:"flex",flexDirection:{xs:"column",md:"row"},alignItems:"center",justifyContent:{xs:"center",md:"space-between"},width:"100%",gap:{xs:1,md:0}},children:[e(i,{sx:{height:"38px",pt:.5,display:{xs:"none",md:"block"}},children:e(Y,{})}),e(i,{children:t}),e(i,{sx:{display:{xs:"none",md:"block"}},children:e(c,{variant:"actionBarTitle",component:"h1",children:o})}),e(i,{children:a}),r(i,{sx:{flex:"0 0 auto",display:"flex",alignItems:"center",gap:1,ml:{xs:0,sm:2}},children:[e(R,{}),e(V,{})]})]})})]})})},q=({title:o,labels:t=[],selectedValues:a=[],onChange:n,rootSx:l,groupSx:d,titleSx:s})=>r(m,{spacing:.5,sx:l,children:[e(i,{component:"h4",sx:s,children:o}),e(p,{sx:d,children:t.map(r=>e(b,{sx:{m:0,gap:.5,alignItems:"center"},control:e(g,{size:"small",checked:a.includes(r),onChange:()=>(e=>{const r=a.includes(e)?a.filter(r=>r!==e):[...a,e];n?.(r)})(r),sx:{p:.25,"& .MuiSvgIcon-root":{fontSize:18}}}),label:r},r))})]}),J=({ariaLabel:o="Locations",availableLocations:t=[],emptyLabel:a="All locations",selectedLocations:n=[],onLocationsChange:i,formControlSx:l,menuSx:d,selectSx:s})=>{const c=d?{PaperProps:{sx:d}}:void 0;return e(u,{fullWidth:!0,size:"small",sx:l,children:e(x,{"aria-label":o,multiple:!0,value:n,onChange:e=>{const r=e.target.value;i?.("string"==typeof r?r.split(","):r)},input:e(y,{notched:!1}),renderValue:e=>{const r=e;return r&&r.length?r.join(", "):a},displayEmpty:!0,sx:s,MenuProps:c,children:t.map(o=>r(h,{value:o,children:[e(g,{checked:n.includes(o)}),e(D,{primary:o})]},o))})})},K={default:{minWidth:120,minHeight:48,px:2.25,fontSize:"1rem","& .MuiButton-startIcon, & .MuiButton-endIcon":{"& > *:first-of-type":{fontSize:"1.125rem"}}},small:{minWidth:0,minHeight:36,px:1.5,fontSize:"0.875rem","& .MuiButton-startIcon, & .MuiButton-endIcon":{margin:0,"& > *:first-of-type":{fontSize:"1rem"}}}},Q=({buttonSize:r="default",children:o,sx:t,...a})=>{const n=K[r]||K.default;return e(C,{variant:"outlined",color:"primary",sx:e=>{const r={backgroundColor:"transparent",color:$.black,borderWidth:2,borderColor:$.brilliantGreen,fontWeight:500,justifyContent:"center",gap:.5,boxShadow:"none",...n,transition:"transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease, border-color 160ms ease, color 160ms ease","&:hover":{backgroundColor:w($.brilliantGreen,.1),borderWidth:2,borderColor:$.brilliantGreen,color:$.brilliantGreen,transform:"translateY(-1px)",boxShadow:`0 2px 8px ${w($.brilliantGreen,.15)}`},"&:active":{transform:"translateY(0)",boxShadow:`0 1px 4px ${w($.brilliantGreen,.15)}`},"&:focus-visible":{outline:`2px solid ${$.brilliantGreen}`,outlineOffset:2},"&.Mui-disabled":{backgroundColor:"transparent",borderColor:e.palette.divider,color:e.palette.text.disabled,transform:"none",boxShadow:"none",opacity:.5},[e.breakpoints.down("md")]:{flex:1,minWidth:0}};let o={};return"function"==typeof t?o=t(e)||{}:Array.isArray(t)?o=t.reduce((e,r)=>({...e,...r}),{}):t&&(o=t),{...r,...o}},...a,children:o})};function Z({status:r}){const t=E(),a="On Track"===r?t.palette.success.main:"At Risk"===r?t.palette.warning.main:t.palette.error.main;return e(o,{title:r,arrow:!0,placement:"top",children:e(i,{component:"span",role:"img","aria-label":`Status: ${r}`,sx:{display:"inline-block",width:10,height:10,borderRadius:"2px",backgroundColor:a,flexShrink:0,verticalAlign:"middle"}})})}const _=({ariaLabel:r="Search",onSearchChange:o,placeholder:t="Search...",searchValue:a="",sx:n,styles:i})=>e(f,{"aria-label":r,fullWidth:!0,placeholder:t,onChange:e=>o(e.target.value),size:"small",sx:n??i,value:a}),ee={default:e=>({color:"dark"===e.palette.mode?$.white:$.black,borderColor:"dark"===e.palette.mode?$.white:$.black,backgroundColor:"transparent"}),matched:e=>({color:"dark"===e.palette.mode?$.black:$.white,borderColor:"dark"===e.palette.mode?$.brilliantGreen:$.jade,backgroundColor:"dark"===e.palette.mode?$.brilliantGreen:$.jade}),accent:e=>({color:"dark"===e.palette.mode?$.brilliantGreen:$.jade,borderColor:"dark"===e.palette.mode?$.brilliantGreen:$.jade,backgroundColor:"transparent"})},re=({label:r,tone:o="default",sx:t,...a})=>{const n=ee[String(o)]||ee.default;return e(k,{...a,label:r||"Unknown skill",size:"small",variant:"matched"===o?"filled":"outlined",sx:e=>{let r={};return"function"==typeof t?r=t(e)||{}:Array.isArray(t)?r=t.reduce((e,r)=>({...e,...r}),{}):t&&(r=t),{height:18,borderRadius:999,"& .MuiChip-label":{px:.625,pt:0,pb:"1px",fontSize:"0.6875rem",fontWeight:500,lineHeight:1},...n(e),...r}}})},oe={active:e=>({color:$.black,backgroundImage:W.nexus,border:"none",boxShadow:"none"}),interview:e=>({color:"dark"===e.palette.mode?$.black:$.white,backgroundColor:"dark"===e.palette.mode?$.brilliantGreen:$.jade,border:"none",boxShadow:"none"}),stage:e=>({color:"dark"===e.palette.mode?$.brilliantGreen:$.jade,backgroundColor:"transparent",border:`1px solid ${"dark"===e.palette.mode?$.brilliantGreen:$.jade}`,boxShadow:"none"}),"application stage":e=>({color:"dark"===e.palette.mode?$.brilliantGreen:$.jade,backgroundColor:"transparent",border:`1px solid ${"dark"===e.palette.mode?$.brilliantGreen:$.jade}`,boxShadow:"none"}),closed:e=>({color:"dark"===e.palette.mode?$.white:"#1E2328",backgroundColor:"dark"===e.palette.mode?"rgba(255, 255, 255, 0.16)":"#A7B0B8",border:"none",boxShadow:"none"}),rejected:e=>({color:$.white,backgroundColor:$.cherry,border:"none",boxShadow:"none"}),"on hold":e=>({color:"dark"===e.palette.mode?$.black:"#4A2A00",backgroundColor:"dark"===e.palette.mode?w($.amber,.92):w($.amber,.72),border:"none",boxShadow:"none"}),"on-hold":e=>({color:"dark"===e.palette.mode?$.black:"#4A2A00",backgroundColor:"dark"===e.palette.mode?w($.amber,.92):w($.amber,.72),border:"none",boxShadow:"none"}),withdrew:e=>({color:"dark"===e.palette.mode?$.black:"#4A2A00",backgroundColor:"dark"===e.palette.mode?w($.amber,.92):w($.amber,.72),border:"none",boxShadow:"none"}),"not this vacancy":e=>({color:$.white,backgroundColor:$.navy,border:"none",boxShadow:"none"}),"not-this-vacancy":e=>({color:$.white,backgroundColor:$.navy,border:"none",boxShadow:"none"}),default:e=>({color:e.palette.text.primary,backgroundColor:w(e.palette.text.secondary??"#000","dark"===e.palette.mode?.22:.12),border:"none",boxShadow:"none"})},te={default:{height:28,"& .MuiChip-label":{px:1.25}},small:{height:22,fontSize:"0.75rem","& .MuiChip-label":{px:.875}}},ae=({status:r,label:o,chipSize:t="default",sx:a,...n})=>{const i=(e=>String(e??"default").trim().toLowerCase())(r),l=oe[i]??oe.default,d=te[t]??te.default;return e(k,{...n,label:o??r??"Unknown",size:"small",sx:e=>({borderRadius:999,fontWeight:500,letterSpacing:"0.01em",...d,...l(e),..."function"==typeof a?a(e):a})})},ne=(e,r={})=>{const{borderRadius:o=e.shape.borderRadius,padding:t=1}=r;return{position:"relative",borderRadius:o,border:`${t}px solid transparent`,background:e.palette.background.paper,backgroundClip:"padding-box","&::before":{content:'""',position:"absolute",inset:0,borderRadius:"inherit",padding:`${t}px`,background:W.brand,WebkitMask:"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)",WebkitMaskComposite:"xor",maskComposite:"exclude",pointerEvents:"none"}}},ie={borderLeft:e=>`3px solid ${e.palette.text.primary}`,pl:.8},le=e=>({color:"text.primary",lineHeight:1.45,whiteSpace:e?"pre-line":"normal",overflow:"hidden",display:e?"block":"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:e?"unset":2});export{X as ActionBar,q as CheckboxGroup,J as LocationMultiSelect,P as MuiAppThemeProvider,R as NexusHome,Y as NexusLogo,Z as RagDot,_ as SearchInput,Q as SecondaryButton,re as SkillChip,ae as StatusChip,N as ThemeModeProvider,V as ThemeToggle,$ as colours,j as createSageTheme,le as expandableText,T as fontSageText,O as fontSageUI,ne as getGradientBorderStyles,W as gradients,ie as leftPipe,U as useThemeMode};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { StoryObj } from "@storybook/react-vite";
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: ({ title, extraLeft, extraRight, }: import("../components/ActionBar").ActionBarProps) => import("react").ReactElement;
|
|
5
|
+
tags: string[];
|
|
6
|
+
parameters: {
|
|
7
|
+
layout: string;
|
|
8
|
+
};
|
|
9
|
+
decorators: ((Story: import("storybook/internal/csf").PartialStoryFn<import("@storybook/react").ReactRenderer, {
|
|
10
|
+
title?: import("react").ReactNode;
|
|
11
|
+
extraLeft?: import("react").ReactNode;
|
|
12
|
+
extraRight?: import("react").ReactNode;
|
|
13
|
+
}>) => import("react/jsx-runtime").JSX.Element)[];
|
|
14
|
+
};
|
|
15
|
+
export default meta;
|
|
16
|
+
type Story = StoryObj<typeof meta>;
|
|
17
|
+
export declare const Default: Story;
|
|
18
|
+
export declare const WithExtraLeft: Story;
|
|
19
|
+
export declare const WithExtraRight: Story;
|
|
20
|
+
export declare const WithBothExtras: Story;
|
|
21
|
+
export declare const LightMode: Story;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sage-nexus-ui",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "Nexus core components",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "emsmart-sage",
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"@emotion/react": "^11.14.0",
|
|
35
35
|
"@emotion/styled": "^11.14.1",
|
|
36
|
-
"@mui/material": "^7 || ^8 || ^9",
|
|
37
36
|
"@mui/icons-material": "^7 || ^8 || ^9",
|
|
37
|
+
"@mui/material": "^7 || ^8 || ^9",
|
|
38
38
|
"@mui/x-data-grid": "^7 || ^8 || ^9",
|
|
39
39
|
"react": "^18 || ^19",
|
|
40
40
|
"react-dom": "^18 || ^19"
|
|
@@ -56,6 +56,7 @@
|
|
|
56
56
|
"@types/node": "^25.6.0",
|
|
57
57
|
"@types/react": "^19.2.14",
|
|
58
58
|
"@types/rollup-plugin-peer-deps-external": "^2.2.6",
|
|
59
|
+
"@vitejs/plugin-react": "^6.0.1",
|
|
59
60
|
"@vitest/browser-playwright": "^4.1.4",
|
|
60
61
|
"@vitest/coverage-v8": "^4.1.4",
|
|
61
62
|
"eslint": "9.39.4",
|