@elementos-development/alchemy-ui 0.1.22 → 0.1.23
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/forms/index.cjs +3 -1
- package/dist/forms/index.cjs.map +1 -1
- package/dist/forms/index.js +3 -1
- package/dist/forms/index.js.map +1 -1
- package/dist/index.cjs +33 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +64 -3
- package/dist/index.d.ts +64 -3
- package/dist/index.js +33 -3
- package/dist/index.js.map +1 -1
- package/dist/theme/index.d.mts +2 -2
- package/dist/theme/index.d.ts +2 -2
- package/package.json +1 -1
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/theme/palette.ts","../src/theme/typography.ts","../src/theme/shape.ts","../src/theme/transitions.ts","../src/theme/components.ts","../src/theme/shadows.ts","../src/theme/spacing.ts","../src/theme/createAlchemyTheme.ts","../src/theme/zIndex.ts","../src/theme/index.ts","../src/AlchemyProvider.tsx","../src/theme/dark.ts","../src/hooks/useColorMode.ts","../src/hooks/ColorModeProvider.tsx","../src/atoms/Button/Button.tsx","../src/atoms/Select/Select.tsx","../src/atoms/Switch/Switch.tsx","../src/atoms/TextField/TextField.tsx","../src/atoms/Typography/Typography.tsx","../src/atoms/Avatar/Avatar.tsx","../src/atoms/Chip/Chip.tsx","../src/atoms/IconButton/IconButton.tsx","../src/atoms/Badge/Badge.tsx","../src/atoms/Divider/Divider.tsx","../src/atoms/Skeleton/Skeleton.tsx","../src/atoms/Progress/Progress.tsx","../src/atoms/Tooltip/Tooltip.tsx","../src/atoms/Checkbox/Checkbox.tsx","../src/atoms/RadioGroup/RadioGroup.tsx","../src/atoms/Slider/Slider.tsx","../src/atoms/Rating/Rating.tsx","../src/atoms/Link/Link.tsx","../src/atoms/ToggleButton/ToggleButton.tsx","../src/atoms/Fab/Fab.tsx","../src/molecules/FormField/FormField.tsx","../src/molecules/SearchBar/SearchBar.tsx","../src/molecules/StatusChip/StatusChip.tsx","../src/molecules/AlertBanner/AlertBanner.tsx","../src/molecules/MenuItem/MenuItem.tsx","../src/molecules/Tabs/Tabs.tsx","../src/molecules/Breadcrumb/Breadcrumb.tsx","../src/molecules/Toast/Toast.tsx","../src/molecules/Accordion/Accordion.tsx","../src/molecules/accordion-group/accordion-group.tsx","../src/molecules/Autocomplete/Autocomplete.tsx","../src/molecules/FileUpload/FileUpload.tsx","../src/molecules/Menu/Menu.tsx","../src/molecules/Pagination/Pagination.tsx","../src/molecules/List/List.tsx","../src/molecules/AvatarGroup/AvatarGroup.tsx","../src/molecules/ButtonGroup/ButtonGroup.tsx","../src/organisms/Card/Card.tsx","../src/organisms/EmptyState/EmptyState.tsx","../src/organisms/EmptyState/illustrations/EmptyStateIllustration.tsx","../src/organisms/EmptyState/illustrations/NoUsersIllustration.tsx","../src/organisms/EmptyState/illustrations/NoFilesIllustration.tsx","../src/organisms/DataTable/DataTableExpandableRow.tsx","../src/organisms/DataTable/DataTablePagination.tsx","../src/organisms/DataTable/DataTable.tsx","../src/organisms/DataTable/DataTableExpandedItem.tsx","../src/organisms/AppBar/AppBar.tsx","../src/organisms/Sidebar/Sidebar.tsx","../src/organisms/Sidebar/SidebarUserFooter.tsx","../src/organisms/Sidebar/AlchemyLogos.tsx","../src/organisms/Dialog/Dialog.tsx","../src/organisms/Stepper/Stepper.tsx","../src/organisms/DatePicker/styles.ts","../src/organisms/DatePicker/DatePicker.tsx","../src/templates/AuthLayout/AuthLayout.tsx","../src/templates/AuthLayout/AuthLayoutHeroContent.tsx","../src/templates/DashboardLayout/DashboardLayout.tsx","../src/templates/DocumentEditor/DocumentEditor.tsx","../src/templates/FilterBar/FilterBar.tsx"],"names":["borderRadius","createTheme","useMemo","jsxs","ThemeProvider","CssBaseline","useState","useEffect","useCallback","createContext","jsx","useContext","React","MuiButton","CircularProgress","FormControl","InputLabel","MuiSelect","MenuItem","FormHelperText","FormControlLabel","MuiSwitch","InputAdornment","MuiTextField","MuiTypography","MuiAvatar","MuiChip","MuiIconButton","Tooltip","MuiBadge","MuiDivider","MuiSkeleton","MuiCircularProgress","MuiLinearProgress","MuiTooltip","MuiCheckbox","FormLabel","MuiRadioGroup","MuiRadio","MuiSlider","MuiRating","MuiLink","MuiToggleButton","MuiToggleButtonGroup","MuiFab","OutlinedInput","SearchIcon","ClearIcon","Alert","AlertTitle","Collapse","ListItemButton","ListItemIcon","ListItemText","useTheme","Box","MuiTabs","Tab","MuiBreadcrumbs","Typography","Link","SonnerToaster","MuiAccordion","AccordionSummary","ExpandMoreIcon","AccordionDetails","MuiAutocomplete","TextField","useRef","UploadFileIcon","MuiMenu","MuiMenuItem","MuiPagination","MuiList","MuiListSubheader","MuiListItem","MuiListItemButton","MuiListItemIcon","MuiListItemText","MuiAvatarGroup","MuiButtonGroup","MuiCard","Fragment","CardHeader","Divider","CardContent","CardActions","TableRow","TableCell","IconButton","KeyboardArrowDownIcon","KeyboardArrowRightIcon","TablePagination","Checkbox","Paper","LinearProgress","TableContainer","Table","TableHead","TableSortLabel","TableBody","DescriptionIcon","WbSunnyIcon","NotificationsNoneIcon","FirstPageIcon","LastPageIcon","List","Drawer","LogoutIcon","MuiDialog","DialogTitle","DialogContent","DialogActions","MuiStepper","Step","StepLabel","StepContent","CalendarMonthIcon","Popover","Controller","SaveIcon","DragIndicatorIcon","Button","FilterAltIcon"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { PaletteOptions } from \"@mui/material/styles\";\n\nexport const customColors = {\n blue: {\n 50: \"#EEF6FF\",\n 100: \"#DAEAFF\",\n 200: \"#BDDAFF\",\n 300: \"#5BA2FF\",\n 400: \"#347EFD\",\n 500: \"#1649DF\",\n 600: \"#1649DF\",\n 700: \"#1F5FF2\",\n 800: \"#193BB4\",\n 900: \"#152356\",\n A100: \"#82B1FF\",\n A200: \"#448AFF\",\n A400: \"#2979FF\",\n A700: \"#2962FF\",\n },\n lightBlue: {\n 50: \"#EAFFFD\",\n 100: \"#CBFFFD\",\n 200: \"#5BFDFF\",\n 300: \"#00D3E5\",\n 400: \"#00F0FF\",\n 500: \"#00A8C0\",\n 600: \"#00A8C0\",\n 700: \"#03859B\",\n 800: \"#105869\",\n 900: \"#033A49\",\n A100: \"#00A8C0\",\n A200: \"#00D3E5\",\n },\n grey: {\n 50: \"#FAFAFA\",\n 100: \"#F5F5F5\",\n 200: \"#EEEEEE\",\n 300: \"#E0E0E0\",\n 400: \"#BDBDBD\",\n 500: \"#9E9E9E\",\n 600: \"#757575\",\n 700: \"#616161\",\n 800: \"#424242\",\n 900: \"#212121\",\n A100: \"#F5F5F5\",\n A200: \"#EEEEEE\",\n A400: \"#BDBDBD\",\n A700: \"#616161\",\n },\n amber: {\n 50: \"#FFF8E1\",\n 100: \"#FFECB3\",\n 200: \"#FFE082\",\n 300: \"#FFD54F\",\n 400: \"#FFCA28\",\n 500: \"#FFC107\",\n 600: \"#FFB300\",\n 700: \"#FFA000\",\n 800: \"#FF8F00\",\n 900: \"#FF6F00\",\n A100: \"#FFE57F\",\n A200: \"#FFD740\",\n A400: \"#FFC400\",\n A700: \"#FFAB00\",\n },\n folderTitle: \"rgba(21, 35, 86, 0.87)\",\n};\n\nexport const palette: PaletteOptions = {\n primary: {\n main: \"#1F5FF2\",\n dark: \"#1565C0\",\n light: \"#00F0FF\",\n contrastText: \"#FFFFFF\",\n },\n secondary: {\n main: \"#00A8C0\",\n dark: \"#03859B\",\n light: \"#00F0FF\",\n contrastText: \"#FFFFFF\",\n },\n error: {\n main: \"#D32F2F\",\n dark: \"#C62828\",\n light: \"#EF5350\",\n },\n warning: {\n main: \"#EF6C00\",\n dark: \"#E65100\",\n light: \"#FF9800\",\n },\n info: {\n main: \"#03859B\",\n dark: \"#033A49\",\n light: \"#00A8C0\",\n },\n success: {\n main: \"#2E7D32\",\n dark: \"#1B5E20\",\n light: \"#4CAF50\",\n },\n background: {\n default: \"#FFFFFF\",\n paper: \"#FFFFFF\",\n },\n text: {\n primary: \"#171A1C\",\n secondary: \"rgba(15, 23, 56, 0.6)\",\n disabled: \"rgba(21, 35, 86, 0.38)\",\n },\n divider: \"rgba(21, 35, 86, 0.12)\",\n action: {\n active: \"rgba(21, 35, 86, 0.56)\",\n hover: \"rgba(21, 35, 86, 0.04)\",\n selected: \"rgba(21, 35, 86, 0.08)\",\n disabled: \"rgba(21, 35, 86, 0.38)\",\n disabledBackground: \"rgba(21, 35, 86, 0.12)\",\n focus: \"rgba(21, 35, 86, 0.12)\",\n },\n common: {\n black: \"rgba(21, 35, 86, 0.87)\",\n white: \"#FFFFFF\",\n },\n};\n","import type { ThemeOptions } from \"@mui/material/styles\";\n\ntype TypographyOptions = NonNullable<ThemeOptions[\"typography\"]>;\n\nexport const typography: TypographyOptions = {\n fontFamily: \"Roboto, Helvetica, Arial, sans-serif\",\n h1: {\n fontSize: \"6rem\",\n fontWeight: 600,\n letterSpacing: \"-1.5px\",\n lineHeight: 1.167,\n },\n h2: {\n fontSize: \"3.75rem\",\n fontWeight: 300,\n letterSpacing: \"-0.5px\",\n lineHeight: 1.2,\n },\n h3: {\n fontSize: \"3rem\",\n fontWeight: 400,\n letterSpacing: \"0px\",\n lineHeight: 1.167,\n },\n h4: {\n fontSize: \"2.125rem\",\n fontWeight: 400,\n letterSpacing: \"0.25px\",\n lineHeight: 1.235,\n },\n h5: {\n fontSize: \"1.5rem\",\n fontWeight: 400,\n letterSpacing: \"0px\",\n lineHeight: 1.334,\n },\n h6: {\n fontSize: \"1.25rem\",\n fontWeight: 500,\n letterSpacing: \"0.15px\",\n lineHeight: 1.6,\n },\n subtitle1: {\n fontSize: \"1rem\",\n fontWeight: 400,\n letterSpacing: \"0.15px\",\n lineHeight: 1.75,\n },\n subtitle2: {\n fontSize: \"0.875rem\",\n fontWeight: 500,\n letterSpacing: \"0.1px\",\n lineHeight: 1.57,\n },\n body1: {\n fontSize: \"1rem\",\n fontWeight: 400,\n letterSpacing: \"0.5px\",\n lineHeight: 1.5,\n },\n body2: {\n fontSize: \"0.875rem\",\n fontWeight: 400,\n letterSpacing: \"0.17px\",\n lineHeight: 1.43,\n },\n caption: {\n fontSize: \"0.875rem\",\n fontWeight: 400,\n letterSpacing: \"0.4px\",\n lineHeight: 1.66,\n },\n overline: {\n fontSize: \"0.75rem\",\n fontWeight: 400,\n letterSpacing: \"1px\",\n lineHeight: 2.66,\n textTransform: \"uppercase\",\n },\n button: {\n fontSize: \"0.9375rem\",\n fontWeight: 400,\n letterSpacing: \"0.46px\",\n lineHeight: 1.75,\n textTransform: \"none\",\n },\n};\n","export const borderRadius = {\n none: 0,\n xs: 4,\n sm: 8,\n md: 12,\n lg: 16,\n xl: 24,\n pill: 100,\n} as const;\n\nexport const shapeConfig = {\n borderRadius: borderRadius.sm,\n} as const;\n","export const transitionsConfig = {\n easing: {\n easeInOut: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n easeOut: \"cubic-bezier(0.0, 0, 0.2, 1)\",\n easeIn: \"cubic-bezier(0.4, 0, 1, 1)\",\n sharp: \"cubic-bezier(0.4, 0, 0.6, 1)\",\n },\n duration: {\n shortest: 150,\n shorter: 200,\n short: 250,\n standard: 300,\n complex: 375,\n enteringScreen: 225,\n leavingScreen: 195,\n },\n} as const;\n","import type { Theme, Components } from \"@mui/material/styles\";\nimport { borderRadius } from \"./shape\";\nimport { transitionsConfig } from \"./transitions\";\n\nconst { shorter } = transitionsConfig.duration;\nconst { easeInOut } = transitionsConfig.easing;\n\nexport const components: Components<Theme> = {\n MuiButton: {\n styleOverrides: {\n root: ({ theme }) => ({\n borderRadius: borderRadius.xl,\n fontWeight: 400,\n fontSize: \"0.9375rem\",\n textTransform: \"none\",\n boxShadow: \"none\",\n padding: \"6px 16px\",\n minHeight: 40,\n transition: `background-color ${shorter}ms ${easeInOut}, box-shadow ${shorter}ms ${easeInOut}, border-color ${shorter}ms ${easeInOut}`,\n \"&:focus-visible\": {\n boxShadow: `0 0 0 4px rgba(1, 117, 253, 0.20)`,\n },\n \"&.MuiButton-containedPrimary:hover\": {\n boxShadow: \"0 4px 12px 0 rgba(1, 117, 253, 0.16)\",\n },\n \"&.Mui-disabled\": {\n color: theme.palette.action.disabled,\n backgroundColor: theme.palette.action.disabledBackground,\n },\n }),\n sizeLarge: {\n padding: \"10px 22px\",\n fontSize: \"1rem\",\n minHeight: 48,\n },\n sizeSmall: {\n padding: \"4px 10px\",\n fontSize: \"0.8125rem\",\n minHeight: 32,\n },\n },\n },\n MuiIconButton: {\n styleOverrides: {\n root: {\n borderRadius: borderRadius.md,\n transition: `background-color ${shorter}ms ${easeInOut}, box-shadow ${shorter}ms ${easeInOut}`,\n \"&:focus-visible\": {\n boxShadow: \"0 0 0 4px rgba(1, 117, 253, 0.20)\",\n },\n },\n },\n },\n MuiTextField: {\n styleOverrides: {\n root: {\n \"& .MuiOutlinedInput-root\": {\n borderRadius: borderRadius.lg,\n minHeight: 48,\n },\n },\n },\n },\n MuiOutlinedInput: {\n styleOverrides: {\n root: ({ theme }) => ({\n borderRadius: borderRadius.lg,\n minHeight: 48,\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"rgba(21, 35, 86, 0.23)\",\n },\n \"&:hover .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"#152356\",\n },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderWidth: 2,\n borderColor: theme.palette.primary.main,\n },\n \"&.Mui-error .MuiOutlinedInput-notchedOutline\": {\n borderColor: theme.palette.error.main,\n },\n \"&.Mui-disabled .MuiOutlinedInput-notchedOutline\": {\n borderColor: theme.palette.action.disabledBackground,\n },\n }),\n },\n },\n MuiInputLabel: {\n styleOverrides: {\n root: ({ theme }) => ({\n fontWeight: 500,\n color: theme.palette.text.secondary,\n \"&.Mui-focused\": {\n color: theme.palette.primary.main,\n },\n \"&.Mui-error\": {\n color: theme.palette.error.main,\n },\n \"&.Mui-disabled\": {\n color: theme.palette.action.disabled,\n },\n }),\n },\n },\n MuiFormHelperText: {\n styleOverrides: {\n root: ({ theme }) => ({\n fontSize: \"0.85rem\",\n marginLeft: 0,\n \"&.Mui-error\": {\n color: theme.palette.error.main,\n },\n \"&.Mui-disabled\": {\n color: theme.palette.action.disabled,\n },\n }),\n },\n },\n MuiListItemButton: {\n styleOverrides: {\n root: ({ theme }) => ({\n borderRadius: borderRadius.xl,\n minHeight: 32,\n gap: 8,\n \"&.Mui-selected\": {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.common.white,\n boxShadow:\n \"0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.20)\",\n \"&:hover\": {\n backgroundColor: theme.palette.primary.dark,\n },\n \"& .MuiListItemIcon-root\": {\n color: theme.palette.common.white,\n },\n },\n }),\n },\n },\n MuiCard: {\n styleOverrides: {\n root: {\n borderRadius: borderRadius.lg,\n boxShadow: \"0px 4px 14px rgba(22, 73, 223, 0.08)\",\n },\n },\n },\n MuiCardContent: {\n styleOverrides: {\n root: {\n padding: 24,\n \"&:last-child\": {\n paddingBottom: 24,\n },\n },\n },\n },\n MuiChip: {\n styleOverrides: {\n root: {\n borderRadius: borderRadius.sm,\n fontWeight: 500,\n fontSize: \"0.8125rem\",\n },\n sizeSmall: {\n height: 24,\n fontSize: \"0.75rem\",\n },\n },\n },\n MuiBackdrop: {\n styleOverrides: {\n root: {\n backgroundColor: \"#2962FF4D\",\n },\n },\n },\n MuiAppBar: {\n styleOverrides: {\n root: {\n boxShadow: \"0px 1px 2px rgba(0, 0, 0, 0.04)\",\n },\n },\n },\n MuiDrawer: {\n styleOverrides: {\n paper: {\n borderRight: \"1px solid rgba(21, 35, 86, 0.12)\",\n boxShadow: \"none\",\n },\n },\n },\n MuiPaper: {\n styleOverrides: {\n root: {\n backgroundImage: \"none\",\n },\n rounded: {\n borderRadius: borderRadius.lg,\n },\n elevation1: {\n boxShadow: \"0px 1px 2px rgba(0, 0, 0, 0.04), 0px 1px 4px rgba(0, 0, 0, 0.04)\",\n },\n elevation2: {\n boxShadow: \"0px 4px 14px rgba(22, 73, 223, 0.08)\",\n },\n elevation4: {\n boxShadow: \"0px 10px 20px rgba(0, 0, 0, 0.1)\",\n },\n },\n },\n MuiDivider: {\n styleOverrides: {\n root: {\n borderColor: \"rgba(21, 35, 86, 0.12)\",\n },\n },\n },\n MuiTooltip: {\n styleOverrides: {\n tooltip: {\n borderRadius: borderRadius.sm,\n fontSize: \"0.75rem\",\n },\n },\n },\n MuiAvatar: {\n styleOverrides: {\n root: {\n fontWeight: 600,\n fontSize: \"0.875rem\",\n },\n },\n },\n MuiTableHead: {\n styleOverrides: {\n root: {\n \"& .MuiTableCell-root\": {\n fontWeight: 600,\n fontSize: \"0.875rem\",\n color: \"rgba(15, 23, 56, 0.6)\",\n borderBottom: \"2px solid rgba(21, 35, 86, 0.12)\",\n },\n },\n },\n },\n MuiTableCell: {\n styleOverrides: {\n root: {\n borderBottom: \"1px solid rgba(21, 35, 86, 0.08)\",\n fontSize: \"0.875rem\",\n },\n },\n },\n MuiTableRow: {\n styleOverrides: {\n root: {\n \"&:hover\": {\n backgroundColor: \"rgba(21, 35, 86, 0.02)\",\n },\n \"&.Mui-selected\": {\n backgroundColor: \"rgba(31, 95, 242, 0.06)\",\n \"&:hover\": {\n backgroundColor: \"rgba(31, 95, 242, 0.08)\",\n },\n },\n },\n },\n },\n MuiLinearProgress: {\n styleOverrides: {\n root: {\n borderRadius: borderRadius.xs,\n height: 6,\n },\n },\n },\n MuiCircularProgress: {\n defaultProps: {\n size: 24,\n thickness: 4,\n },\n },\n MuiSkeleton: {\n styleOverrides: {\n root: {\n borderRadius: borderRadius.sm,\n },\n },\n },\n MuiAlert: {\n styleOverrides: {\n root: {\n borderRadius: borderRadius.md,\n },\n },\n },\n MuiBadge: {\n styleOverrides: {\n badge: {\n fontWeight: 600,\n fontSize: \"0.6875rem\",\n },\n },\n },\n};\n","import type { Shadows } from \"@mui/material/styles\";\n\nexport const shadows: Shadows = [\n \"none\",\n \"0px 1px 2px rgba(0,0,0,0.04), 0px 1px 4px rgba(0,0,0,0.04)\",\n \"0px 2px 6px rgba(0,0,0,0.06), 0px 2px 4px rgba(0,0,0,0.04)\",\n \"0px 3px 8px rgba(0,0,0,0.08), 0px 3px 6px rgba(0,0,0,0.04)\",\n \"0px 4px 10px rgba(0,0,0,0.10), 0px 4px 6px rgba(0,0,0,0.05)\",\n \"0px 5px 12px rgba(0,0,0,0.10), 0px 5px 8px rgba(0,0,0,0.05)\",\n \"0px 6px 14px rgba(0,0,0,0.10), 0px 6px 9px rgba(0,0,0,0.06)\",\n \"0px 7px 16px rgba(0,0,0,0.10), 0px 7px 10px rgba(0,0,0,0.06)\",\n \"0px 8px 18px rgba(0,0,0,0.11), 0px 8px 11px rgba(0,0,0,0.06)\",\n \"0px 9px 20px rgba(0,0,0,0.11), 0px 9px 12px rgba(0,0,0,0.06)\",\n \"0px 10px 20px rgba(0,0,0,0.10), 0px 10px 14px rgba(0,0,0,0.06)\",\n \"0px 11px 22px rgba(0,0,0,0.12), 0px 11px 15px rgba(0,0,0,0.06)\",\n \"0px 12px 24px rgba(0,0,0,0.12), 0px 12px 16px rgba(0,0,0,0.07)\",\n \"0px 13px 26px rgba(0,0,0,0.12), 0px 13px 18px rgba(0,0,0,0.07)\",\n \"0px 14px 28px rgba(0,0,0,0.13), 0px 14px 20px rgba(0,0,0,0.07)\",\n \"0px 15px 30px rgba(0,0,0,0.13), 0px 15px 22px rgba(0,0,0,0.07)\",\n \"0px 16px 32px rgba(0,0,0,0.14), 0px 16px 24px rgba(0,0,0,0.07)\",\n \"0px 17px 34px rgba(0,0,0,0.14), 0px 17px 26px rgba(0,0,0,0.08)\",\n \"0px 18px 36px rgba(0,0,0,0.14), 0px 18px 28px rgba(0,0,0,0.08)\",\n \"0px 19px 38px rgba(0,0,0,0.15), 0px 19px 30px rgba(0,0,0,0.08)\",\n \"0px 20px 40px rgba(0,0,0,0.15), 0px 20px 32px rgba(0,0,0,0.08)\",\n \"0px 21px 42px rgba(0,0,0,0.16), 0px 21px 34px rgba(0,0,0,0.09)\",\n \"0px 22px 44px rgba(0,0,0,0.16), 0px 22px 36px rgba(0,0,0,0.09)\",\n \"0px 23px 46px rgba(0,0,0,0.17), 0px 23px 38px rgba(0,0,0,0.09)\",\n \"0px 24px 48px rgba(0,0,0,0.17), 0px 24px 40px rgba(0,0,0,0.09)\",\n];\n","export const spacingUnit = 8;\n\nexport const spacingTokens = {\n 0: 0,\n 1: 4,\n 2: 8,\n 3: 12,\n 4: 16,\n 5: 20,\n 6: 24,\n 7: 28,\n 8: 32,\n 9: 36,\n 10: 40,\n 11: 44,\n 12: 48,\n 14: 56,\n 16: 64,\n 20: 80,\n 24: 96,\n 32: 128,\n} as const;\n","import { createTheme } from \"@mui/material/styles\";\nimport { alchemyTheme } from \"./index\";\nimport type { Theme, ThemeOptions } from \"@mui/material/styles\";\n\nexport interface BrandTokens {\n primary?: string;\n secondary?: string;\n fontFamily?: string;\n borderRadius?: number;\n error?: string;\n warning?: string;\n info?: string;\n success?: string;\n background?: {\n default?: string;\n paper?: string;\n };\n overrides?: ThemeOptions;\n}\n\nexport function createAlchemyTheme(tokens: BrandTokens = {}): Theme {\n const {\n primary,\n secondary,\n fontFamily,\n borderRadius,\n error,\n warning,\n info,\n success,\n background,\n overrides = {},\n } = tokens;\n\n const paletteOverrides: ThemeOptions[\"palette\"] = {};\n if (primary) paletteOverrides.primary = { main: primary };\n if (secondary) paletteOverrides.secondary = { main: secondary };\n if (error) paletteOverrides.error = { main: error };\n if (warning) paletteOverrides.warning = { main: warning };\n if (info) paletteOverrides.info = { main: info };\n if (success) paletteOverrides.success = { main: success };\n if (background) paletteOverrides.background = background;\n\n const typographyOverrides: ThemeOptions[\"typography\"] = fontFamily\n ? ({ fontFamily } as ThemeOptions[\"typography\"])\n : {};\n\n const shapeOverrides: ThemeOptions[\"shape\"] =\n borderRadius !== undefined ? { borderRadius } : {};\n\n return createTheme(alchemyTheme, {\n palette: paletteOverrides,\n typography: typographyOverrides,\n shape: shapeOverrides,\n ...overrides,\n });\n}\n","export const zIndex = {\n mobileStepper: 1000,\n fab: 1050,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500,\n} as const;\n","import { createTheme } from \"@mui/material/styles\";\nimport { palette, customColors } from \"./palette\";\nimport { typography } from \"./typography\";\nimport { components } from \"./components\";\nimport { shapeConfig } from \"./shape\";\nimport { shadows } from \"./shadows\";\nimport { transitionsConfig } from \"./transitions\";\nimport { spacingUnit } from \"./spacing\";\nimport \"./types\";\n\nconst opacities = {\n 4: 0.04,\n 8: 0.08,\n 12: 0.12,\n 16: 0.16,\n 20: 0.2,\n 24: 0.24,\n 32: 0.32,\n 40: 0.4,\n 48: 0.48,\n 56: 0.56,\n 60: 0.6,\n 64: 0.64,\n 72: 0.72,\n 80: 0.8,\n 88: 0.88,\n 96: 0.96,\n 100: 1,\n};\n\nexport const alchemyTheme = createTheme({\n palette: {\n ...palette,\n shadow: {\n light: \"rgba(0, 0, 0, 0.12)\",\n medium: \"rgba(0, 0, 0, 0.14)\",\n dark: \"rgba(0, 0, 0, 0.20)\",\n },\n },\n typography,\n components,\n shape: shapeConfig,\n shadows,\n transitions: transitionsConfig,\n spacing: spacingUnit,\n customColors,\n opacities,\n} as Parameters<typeof createTheme>[0]);\n\nexport { customColors, palette, typography, components, opacities };\nexport { borderRadius, shapeConfig } from \"./shape\";\nexport { shadows } from \"./shadows\";\nexport { transitionsConfig } from \"./transitions\";\nexport { spacingTokens, spacingUnit } from \"./spacing\";\nexport { createAlchemyTheme } from \"./createAlchemyTheme\";\nexport type { BrandTokens } from \"./createAlchemyTheme\";\nexport { zIndex } from \"./zIndex\";\nexport type { Theme } from \"@mui/material/styles\";\n","import React, { useMemo } from \"react\";\nimport { ThemeProvider, createTheme } from \"@mui/material/styles\";\nimport CssBaseline from \"@mui/material/CssBaseline\";\nimport { alchemyTheme } from \"./theme\";\nimport type { Theme, ThemeOptions } from \"@mui/material/styles\";\n\nexport interface AlchemyProviderProps {\n children: React.ReactNode;\n /** Completely replaces the default Alchemy theme. Takes priority over themeOverrides. */\n theme?: Theme;\n /** Partial theme options merged on top of alchemyTheme. Use this to customize colors, typography, etc. */\n themeOverrides?: ThemeOptions;\n disableCssBaseline?: boolean;\n}\n\nexport const AlchemyProvider: React.FC<AlchemyProviderProps> = ({\n children,\n theme,\n themeOverrides,\n disableCssBaseline = false,\n}) => {\n const resolvedTheme = useMemo(() => {\n if (theme) return theme;\n if (themeOverrides) return createTheme(alchemyTheme, themeOverrides);\n return alchemyTheme;\n }, [theme, themeOverrides]);\n\n return (\n <ThemeProvider theme={resolvedTheme}>\n {!disableCssBaseline && <CssBaseline />}\n {children}\n </ThemeProvider>\n );\n};\n","import { createTheme } from \"@mui/material/styles\";\nimport { alchemyTheme } from \"./index\";\n\nexport const alchemyDarkTheme = createTheme(alchemyTheme, {\n palette: {\n mode: \"dark\",\n primary: {\n main: \"#4D82F5\",\n light: \"#7AA3F7\",\n dark: \"#1F5FF2\",\n contrastText: \"#FFFFFF\",\n },\n secondary: {\n main: \"#00BCD4\",\n light: \"#33C9DC\",\n dark: \"#00A8C0\",\n contrastText: \"#FFFFFF\",\n },\n background: {\n default: \"#0B0F19\",\n paper: \"#131929\",\n },\n text: {\n primary: \"#E8EAF6\",\n secondary: \"#9FA8DA\",\n disabled: \"rgba(232,234,246,0.38)\",\n },\n divider: \"rgba(255,255,255,0.12)\",\n action: {\n active: \"rgba(255,255,255,0.7)\",\n hover: \"rgba(255,255,255,0.08)\",\n selected: \"rgba(77,130,245,0.16)\",\n disabled: \"rgba(255,255,255,0.3)\",\n disabledBackground: \"rgba(255,255,255,0.12)\",\n },\n },\n components: {\n MuiCard: {\n styleOverrides: {\n root: {\n boxShadow: \"0px 4px 24px rgba(0,0,0,0.4)\",\n },\n },\n },\n MuiOutlinedInput: {\n styleOverrides: {\n root: {\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"rgba(255,255,255,0.23)\",\n },\n },\n },\n },\n },\n});\n","import { useState, useEffect, useCallback } from \"react\";\nimport { alchemyTheme } from \"../theme\";\nimport { alchemyDarkTheme } from \"../theme/dark\";\nimport type { Theme } from \"@mui/material/styles\";\n\nexport type ColorMode = \"light\" | \"dark\" | \"system\";\nexport type ResolvedColorMode = \"light\" | \"dark\";\n\nexport interface ColorModeState {\n mode: ColorMode;\n resolvedMode: ResolvedColorMode;\n isDark: boolean;\n theme: Theme;\n toggle: () => void;\n setMode: (mode: ColorMode) => void;\n}\n\nconst STORAGE_KEY = \"alchemy-color-mode\";\n\nfunction getSystemMode(): ResolvedColorMode {\n /* v8 ignore start */\n if (typeof window === \"undefined\") return \"light\";\n /* v8 ignore stop */\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\n}\n\nfunction readStoredMode(): ColorMode {\n try {\n const stored = localStorage.getItem(STORAGE_KEY);\n if (stored === \"light\" || stored === \"dark\" || stored === \"system\") return stored;\n } catch {\n // localStorage unavailable (SSR, private mode)\n }\n return \"system\";\n}\n\nfunction writeStoredMode(mode: ColorMode): void {\n try {\n localStorage.setItem(STORAGE_KEY, mode);\n } catch {\n // ignore\n }\n}\n\nexport function useColorMode(): ColorModeState {\n const [mode, setModeState] = useState<ColorMode>(() => readStoredMode());\n const [systemMode, setSystemMode] = useState<ResolvedColorMode>(() => getSystemMode());\n\n useEffect(() => {\n /* v8 ignore start */\n if (typeof window === \"undefined\") return;\n /* v8 ignore stop */\n const mq = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const handler = (e: MediaQueryListEvent) => {\n setSystemMode(e.matches ? \"dark\" : \"light\");\n };\n mq.addEventListener(\"change\", handler);\n return () => mq.removeEventListener(\"change\", handler);\n }, []);\n\n const resolvedMode: ResolvedColorMode = mode === \"system\" ? systemMode : mode;\n const isDark = resolvedMode === \"dark\";\n const theme = isDark ? alchemyDarkTheme : alchemyTheme;\n\n const setMode = useCallback((next: ColorMode) => {\n setModeState(next);\n writeStoredMode(next);\n }, []);\n\n const toggle = useCallback(() => {\n setMode(resolvedMode === \"dark\" ? \"light\" : \"dark\");\n }, [resolvedMode, setMode]);\n\n return { mode, resolvedMode, isDark, theme, toggle, setMode };\n}\n","import React, { createContext, useContext, useMemo } from \"react\";\nimport { ThemeProvider } from \"@mui/material/styles\";\nimport CssBaseline from \"@mui/material/CssBaseline\";\nimport { useColorMode } from \"./useColorMode\";\nimport type { ColorModeState, ColorMode } from \"./useColorMode\";\n\nconst ColorModeContext = createContext<ColorModeState | null>(null);\n\nexport interface ColorModeProviderProps {\n children: React.ReactNode;\n defaultMode?: ColorMode;\n disableCssBaseline?: boolean;\n}\n\nexport function ColorModeProvider({\n children,\n disableCssBaseline = false,\n}: ColorModeProviderProps) {\n const colorMode = useColorMode();\n const value = useMemo(() => colorMode, [colorMode]);\n\n return (\n <ColorModeContext.Provider value={value}>\n <ThemeProvider theme={colorMode.theme}>\n {!disableCssBaseline && <CssBaseline />}\n {children}\n </ThemeProvider>\n </ColorModeContext.Provider>\n );\n}\n\nexport function useColorModeContext(): ColorModeState {\n const ctx = useContext(ColorModeContext);\n if (!ctx) {\n throw new Error(\"useColorModeContext must be used inside <ColorModeProvider>\");\n }\n return ctx;\n}\n","import React from \"react\";\nimport MuiButton, { type ButtonProps as MuiButtonProps } from \"@mui/material/Button\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\n\nexport interface ButtonProps extends Omit<MuiButtonProps, \"children\"> {\n children?: React.ReactNode;\n loading?: boolean;\n loadingText?: string;\n}\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ children, loading = false, loadingText, disabled, startIcon, ...props }, ref) => {\n return (\n <MuiButton\n ref={ref}\n disabled={disabled || loading}\n startIcon={loading ? <CircularProgress size={16} color=\"inherit\" /> : startIcon}\n {...props}\n >\n {loading && loadingText ? loadingText : children}\n </MuiButton>\n );\n }\n);\n\nButton.displayName = \"Button\";\n","import React from \"react\";\nimport MuiSelect, { type SelectProps as MuiSelectProps } from \"@mui/material/Select\";\nimport FormControl from \"@mui/material/FormControl\";\nimport InputLabel from \"@mui/material/InputLabel\";\nimport FormHelperText from \"@mui/material/FormHelperText\";\nimport MenuItem from \"@mui/material/MenuItem\";\n\nexport interface SelectOption {\n value: string | number;\n label: string;\n disabled?: boolean;\n}\n\nexport interface SelectProps extends Omit<MuiSelectProps, \"label\"> {\n label?: string;\n options?: SelectOption[];\n helperText?: string;\n error?: boolean;\n fullWidth?: boolean;\n}\n\nexport const Select = React.forwardRef<HTMLDivElement, SelectProps>(\n (\n { label, options = [], helperText, error = false, fullWidth = false, size, ...props },\n ref\n ) => {\n const labelId = label\n ? `${label.toLowerCase().replace(/\\s+/g, \"-\")}-label`\n : undefined;\n\n return (\n <FormControl\n ref={ref}\n fullWidth={fullWidth}\n error={error}\n size={size as \"small\" | \"medium\" | undefined}\n >\n {label && <InputLabel id={labelId}>{label}</InputLabel>}\n <MuiSelect label={label} labelId={labelId} {...props}>\n {options.map((option) => (\n <MenuItem key={option.value} value={option.value} disabled={option.disabled}>\n {option.label}\n </MenuItem>\n ))}\n </MuiSelect>\n {helperText && <FormHelperText>{helperText}</FormHelperText>}\n </FormControl>\n );\n }\n);\n\nSelect.displayName = \"Select\";\n","import React from \"react\";\nimport MuiSwitch, { type SwitchProps as MuiSwitchProps } from \"@mui/material/Switch\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\n\nexport interface SwitchProps extends MuiSwitchProps {\n label?: string;\n labelPlacement?: \"start\" | \"end\" | \"top\" | \"bottom\";\n}\n\nexport const Switch = React.forwardRef<HTMLButtonElement, SwitchProps>(\n ({ label, labelPlacement = \"end\", ...props }, ref) => {\n if (label) {\n return (\n <FormControlLabel\n control={<MuiSwitch ref={ref} {...props} />}\n label={label}\n labelPlacement={labelPlacement}\n />\n );\n }\n\n return <MuiSwitch ref={ref} {...props} />;\n }\n);\n\nSwitch.displayName = \"Switch\";\n","import React from \"react\";\nimport MuiTextField from \"@mui/material/TextField\";\nimport type { OutlinedTextFieldProps } from \"@mui/material/TextField\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\n\nexport interface TextFieldProps extends Omit<OutlinedTextFieldProps, \"variant\"> {\n variant?: \"outlined\" | \"filled\" | \"standard\";\n startAdornment?: React.ReactNode;\n endAdornment?: React.ReactNode;\n}\n\nexport const TextField = React.forwardRef<HTMLDivElement, TextFieldProps>(\n ({ startAdornment, endAdornment, slotProps, ...props }, ref) => {\n const inputSlotProps: Record<string, unknown> = {\n ...(slotProps?.input as Record<string, unknown> | undefined),\n };\n\n if (startAdornment) {\n inputSlotProps.startAdornment = (\n <InputAdornment position=\"start\">{startAdornment}</InputAdornment>\n );\n }\n if (endAdornment) {\n inputSlotProps.endAdornment = (\n <InputAdornment position=\"end\">{endAdornment}</InputAdornment>\n );\n }\n\n return (\n <MuiTextField\n ref={ref}\n variant={props.variant ?? \"outlined\"}\n slotProps={{\n ...slotProps,\n input: inputSlotProps,\n }}\n {...props}\n />\n );\n }\n);\n\nTextField.displayName = \"TextField\";\n","import React from \"react\";\nimport MuiTypography, {\n type TypographyProps as MuiTypographyProps,\n} from \"@mui/material/Typography\";\n\nexport type TypographyProps = MuiTypographyProps;\n\nexport const Typography = React.forwardRef<HTMLElement, TypographyProps>((props, ref) => {\n return <MuiTypography ref={ref} {...props} />;\n});\n\nTypography.displayName = \"Typography\";\n","import React from \"react\";\nimport MuiAvatar, { type AvatarProps as MuiAvatarProps } from \"@mui/material/Avatar\";\n\nexport type AvatarSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nexport const sizeStyles: Record<\n AvatarSize,\n { width: number; height: number; fontSize: number }\n> = {\n sm: { width: 24, height: 24, fontSize: 12 },\n md: { width: 40, height: 40, fontSize: 20 },\n lg: { width: 56, height: 56, fontSize: 24 },\n xl: { width: 72, height: 72, fontSize: 32 },\n};\n\nexport interface AvatarProps extends MuiAvatarProps {\n name?: string;\n size?: AvatarSize | number;\n}\n\nfunction getInitials(name: string): string {\n return name\n .split(\" \")\n .map((part) => part[0])\n .join(\"\")\n .toUpperCase()\n .slice(0, 2);\n}\n\nfunction stringToColor(str: string): string {\n const colors = [\n \"#1F5FF2\", // primary.main\n \"#00A8C0\", // secondary.main\n \"#2E7D32\", // success.main\n \"#EF6C00\", // warning.main\n \"#D32F2F\", // error.main\n \"#152356\", // blue.900 (ink)\n \"#1565C0\", // primary.dark\n \"#03859B\", // info.main\n ];\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n hash = str.charCodeAt(i) + ((hash << 5) - hash);\n }\n return colors[Math.abs(hash) % colors.length];\n}\n\nexport const Avatar = React.forwardRef<HTMLDivElement, AvatarProps>(\n ({ name, children, sx, size, ...props }, ref) => {\n const initials = name ? getInitials(name) : undefined;\n const bgColor = name ? stringToColor(name) : undefined;\n\n const resolvedSize =\n size !== undefined\n ? typeof size === \"number\"\n ? { width: size, height: size, fontSize: Math.round(size * 0.45) }\n : sizeStyles[size]\n : undefined;\n\n return (\n <MuiAvatar\n ref={ref}\n sx={{\n bgcolor: bgColor,\n ...resolvedSize,\n ...sx,\n }}\n {...props}\n >\n {children ?? initials}\n </MuiAvatar>\n );\n }\n);\n\nAvatar.displayName = \"Avatar\";\n","import React from \"react\";\nimport MuiChip, { type ChipProps as MuiChipProps } from \"@mui/material/Chip\";\n\nexport type ChipProps = MuiChipProps;\n\nexport const Chip = React.forwardRef<HTMLDivElement, ChipProps>((props, ref) => {\n return <MuiChip ref={ref} {...props} />;\n});\n\nChip.displayName = \"Chip\";\n","import React from \"react\";\nimport MuiIconButton, {\n type IconButtonProps as MuiIconButtonProps,\n} from \"@mui/material/IconButton\";\nimport Tooltip from \"@mui/material/Tooltip\";\n\nexport interface IconButtonProps extends MuiIconButtonProps {\n tooltip?: string;\n}\n\nexport const IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(\n ({ tooltip, children, ...props }, ref) => {\n const button = (\n <MuiIconButton ref={ref} {...props}>\n {children}\n </MuiIconButton>\n );\n\n if (tooltip) {\n return <Tooltip title={tooltip}>{button}</Tooltip>;\n }\n\n return button;\n }\n);\n\nIconButton.displayName = \"IconButton\";\n","import React from \"react\";\nimport MuiBadge, { type BadgeProps as MuiBadgeProps } from \"@mui/material/Badge\";\n\nexport type BadgeProps = MuiBadgeProps;\n\nexport const Badge = React.forwardRef<HTMLSpanElement, BadgeProps>((props, ref) => {\n return <MuiBadge ref={ref} {...props} />;\n});\n\nBadge.displayName = \"Badge\";\n","import React from \"react\";\nimport MuiDivider, { type DividerProps as MuiDividerProps } from \"@mui/material/Divider\";\n\nexport type DividerProps = MuiDividerProps;\n\nexport const Divider = React.forwardRef<HTMLHRElement, DividerProps>((props, ref) => {\n return <MuiDivider ref={ref} {...props} />;\n});\n\nDivider.displayName = \"Divider\";\n","import React from \"react\";\nimport MuiSkeleton, {\n type SkeletonProps as MuiSkeletonProps,\n} from \"@mui/material/Skeleton\";\n\nexport type SkeletonProps = MuiSkeletonProps;\n\nexport const Skeleton = React.forwardRef<HTMLSpanElement, SkeletonProps>((props, ref) => {\n return <MuiSkeleton ref={ref} {...props} />;\n});\n\nSkeleton.displayName = \"Skeleton\";\n","import React from \"react\";\nimport MuiLinearProgress from \"@mui/material/LinearProgress\";\nimport MuiCircularProgress from \"@mui/material/CircularProgress\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport type ProgressType = \"linear\" | \"circular\";\nexport type ProgressVariant = \"determinate\" | \"indeterminate\" | \"buffer\" | \"query\";\nexport type ProgressColor =\n | \"primary\"\n | \"secondary\"\n | \"error\"\n | \"info\"\n | \"success\"\n | \"warning\"\n | \"inherit\";\n\nexport interface ProgressProps {\n type?: ProgressType;\n variant?: ProgressVariant;\n value?: number;\n color?: ProgressColor;\n size?: number | string;\n thickness?: number;\n sx?: SxProps<Theme>;\n}\n\nexport const Progress = React.forwardRef<HTMLElement, ProgressProps>(\n (\n {\n type = \"linear\",\n variant = \"indeterminate\",\n value,\n color = \"primary\",\n size,\n thickness,\n sx,\n },\n ref\n ) => {\n if (type === \"circular\") {\n const circularVariant =\n variant === \"buffer\" || variant === \"query\" ? \"indeterminate\" : variant;\n return (\n <MuiCircularProgress\n ref={ref as React.Ref<HTMLSpanElement>}\n variant={circularVariant}\n value={value}\n color={color}\n size={size}\n thickness={thickness}\n sx={sx}\n />\n );\n }\n\n return (\n <MuiLinearProgress\n ref={ref as React.Ref<HTMLDivElement>}\n variant={variant}\n value={value}\n color={color}\n sx={sx}\n />\n );\n }\n);\n\nProgress.displayName = \"Progress\";\n","import React from \"react\";\nimport MuiTooltip, { type TooltipProps as MuiTooltipProps } from \"@mui/material/Tooltip\";\n\nexport type TooltipProps = MuiTooltipProps;\n\nexport const Tooltip = React.forwardRef<HTMLDivElement, TooltipProps>((props, ref) => {\n return <MuiTooltip ref={ref} {...props} />;\n});\n\nTooltip.displayName = \"Tooltip\";\n","import React from \"react\";\nimport MuiCheckbox, {\n type CheckboxProps as MuiCheckboxProps,\n} from \"@mui/material/Checkbox\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\n\nexport interface CheckboxProps extends MuiCheckboxProps {\n label?: string;\n labelPlacement?: \"start\" | \"end\" | \"top\" | \"bottom\";\n}\n\nexport const Checkbox = React.forwardRef<HTMLButtonElement, CheckboxProps>(\n ({ label, labelPlacement = \"end\", ...props }, ref) => {\n if (label) {\n return (\n <FormControlLabel\n control={<MuiCheckbox ref={ref} {...props} />}\n label={label}\n labelPlacement={labelPlacement}\n />\n );\n }\n\n return <MuiCheckbox ref={ref} {...props} />;\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\n","import React from \"react\";\nimport MuiRadio, { type RadioProps as MuiRadioProps } from \"@mui/material/Radio\";\nimport MuiRadioGroup, {\n type RadioGroupProps as MuiRadioGroupProps,\n} from \"@mui/material/RadioGroup\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport FormControl from \"@mui/material/FormControl\";\nimport FormLabel from \"@mui/material/FormLabel\";\n\nexport interface RadioOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface RadioGroupProps extends Omit<MuiRadioGroupProps, \"children\"> {\n label?: string;\n options: RadioOption[];\n size?: \"small\" | \"medium\" | \"large\";\n radioProps?: MuiRadioProps;\n}\n\nexport const RadioGroup = React.forwardRef<HTMLDivElement, RadioGroupProps>(\n ({ label, options, size, radioProps, ...props }, ref) => {\n const radioSize = size === \"large\" ? \"medium\" : size;\n const effectiveRadioProps: MuiRadioProps =\n radioSize !== undefined ? { size: radioSize, ...radioProps } : { ...radioProps };\n return (\n <FormControl>\n {label && <FormLabel>{label}</FormLabel>}\n <MuiRadioGroup ref={ref} {...props}>\n {options.map((option) => (\n <FormControlLabel\n key={option.value}\n value={option.value}\n label={option.label}\n disabled={option.disabled}\n control={<MuiRadio {...effectiveRadioProps} />}\n />\n ))}\n </MuiRadioGroup>\n </FormControl>\n );\n }\n);\n\nRadioGroup.displayName = \"RadioGroup\";\n","import React from \"react\";\nimport MuiSlider, { type SliderProps as MuiSliderProps } from \"@mui/material/Slider\";\n\nexport type SliderProps = MuiSliderProps;\n\nexport const Slider = React.forwardRef<HTMLSpanElement, SliderProps>((props, ref) => {\n return <MuiSlider ref={ref} {...props} />;\n});\n\nSlider.displayName = \"Slider\";\n","import React from \"react\";\nimport MuiRating, { type RatingProps as MuiRatingProps } from \"@mui/material/Rating\";\n\nexport type RatingProps = MuiRatingProps;\n\nexport const Rating = React.forwardRef<HTMLSpanElement, RatingProps>((props, ref) => {\n return <MuiRating ref={ref} {...props} />;\n});\n\nRating.displayName = \"Rating\";\n","import React from \"react\";\nimport MuiLink, { type LinkProps as MuiLinkProps } from \"@mui/material/Link\";\n\nexport type LinkProps = MuiLinkProps;\n\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>((props, ref) => {\n return <MuiLink ref={ref} {...props} />;\n});\n\nLink.displayName = \"Link\";\n","import React from \"react\";\nimport MuiToggleButton, {\n type ToggleButtonProps as MuiToggleButtonProps,\n} from \"@mui/material/ToggleButton\";\nimport MuiToggleButtonGroup, {\n type ToggleButtonGroupProps as MuiToggleButtonGroupProps,\n} from \"@mui/material/ToggleButtonGroup\";\n\nexport type ToggleButtonProps = MuiToggleButtonProps;\nexport type ToggleButtonGroupProps = MuiToggleButtonGroupProps;\n\nexport const ToggleButton = React.forwardRef<HTMLButtonElement, ToggleButtonProps>(\n (props, ref) => {\n return <MuiToggleButton ref={ref} {...props} />;\n }\n);\nToggleButton.displayName = \"ToggleButton\";\n\nexport const ToggleButtonGroup = React.forwardRef<HTMLDivElement, ToggleButtonGroupProps>(\n (props, ref) => {\n return <MuiToggleButtonGroup ref={ref} {...props} />;\n }\n);\nToggleButtonGroup.displayName = \"ToggleButtonGroup\";\n","import React from \"react\";\nimport MuiFab, { type FabProps as MuiFabProps } from \"@mui/material/Fab\";\n\nexport type FabProps = MuiFabProps;\n\nexport const Fab = React.forwardRef<HTMLButtonElement, FabProps>((props, ref) => {\n return <MuiFab ref={ref} {...props} />;\n});\n\nFab.displayName = \"Fab\";\n","import React from \"react\";\nimport FormControl from \"@mui/material/FormControl\";\nimport FormLabel from \"@mui/material/FormLabel\";\nimport FormHelperText from \"@mui/material/FormHelperText\";\nimport { TextField, type TextFieldProps } from \"../../atoms/TextField\";\n\nexport interface FormFieldProps extends TextFieldProps {\n label?: string;\n hint?: string;\n}\n\nexport const FormField = React.forwardRef<HTMLDivElement, FormFieldProps>(\n ({ label, hint, required, error, helperText, fullWidth = true, ...props }, ref) => {\n return (\n <FormControl fullWidth={fullWidth} error={error}>\n {label && (\n <FormLabel\n required={required}\n sx={{\n mb: 0.75,\n fontSize: \"0.875rem\",\n fontWeight: 500,\n color: \"text.primary\",\n \"&.Mui-focused\": { color: \"text.primary\" },\n \"&.Mui-error\": { color: \"error.main\" },\n }}\n >\n {label}\n </FormLabel>\n )}\n <TextField\n ref={ref}\n required={required}\n error={error}\n fullWidth={fullWidth}\n {...props}\n />\n {(helperText || hint) && (\n <FormHelperText error={error} sx={{ mt: 0.5 }}>\n {helperText ?? hint}\n </FormHelperText>\n )}\n </FormControl>\n );\n }\n);\n\nFormField.displayName = \"FormField\";\n","import React from \"react\";\nimport SearchIcon from \"@mui/icons-material/Search\";\nimport ClearIcon from \"@mui/icons-material/Clear\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport MuiIconButton from \"@mui/material/IconButton\";\nimport OutlinedInput from \"@mui/material/OutlinedInput\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport interface SearchBarProps {\n value?: string;\n defaultValue?: string;\n placeholder?: string;\n onChange?: (value: string) => void;\n onClear?: () => void;\n onSearch?: (value: string) => void;\n disabled?: boolean;\n fullWidth?: boolean;\n size?: \"small\" | \"medium\";\n sx?: SxProps<Theme>;\n}\n\nexport const SearchBar = React.forwardRef<HTMLInputElement, SearchBarProps>(\n (\n {\n value,\n defaultValue,\n placeholder = \"Search...\",\n onChange,\n onClear,\n onSearch,\n disabled,\n fullWidth = true,\n size = \"medium\",\n sx,\n },\n ref\n ) => {\n const [internalValue, setInternalValue] = React.useState(defaultValue ?? \"\");\n const isControlled = value !== undefined;\n const currentValue = isControlled ? value : internalValue;\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value;\n if (!isControlled) setInternalValue(newValue);\n onChange?.(newValue);\n };\n\n const handleClear = () => {\n if (!isControlled) setInternalValue(\"\");\n onChange?.(\"\");\n onClear?.();\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") {\n onSearch?.(currentValue);\n }\n };\n\n return (\n <OutlinedInput\n inputRef={ref}\n value={currentValue}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n disabled={disabled}\n fullWidth={fullWidth}\n size={size}\n startAdornment={\n <InputAdornment position=\"start\">\n <SearchIcon fontSize=\"small\" sx={{ color: \"text.secondary\" }} />\n </InputAdornment>\n }\n endAdornment={\n currentValue ? (\n <InputAdornment position=\"end\">\n <MuiIconButton\n size=\"small\"\n onClick={handleClear}\n edge=\"end\"\n aria-label=\"clear search\"\n >\n <ClearIcon fontSize=\"small\" />\n </MuiIconButton>\n </InputAdornment>\n ) : null\n }\n sx={{\n borderRadius: \"100px\",\n bgcolor: \"action.hover\",\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"transparent\",\n },\n \"&:hover .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"divider\",\n },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"primary.main\",\n bgcolor: \"transparent\",\n },\n ...sx,\n }}\n />\n );\n }\n);\n\nSearchBar.displayName = \"SearchBar\";\n","import React from \"react\";\nimport MuiChip from \"@mui/material/Chip\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport type StatusVariant =\n | \"active\"\n | \"inactive\"\n | \"pending\"\n | \"completed\"\n | \"cancelled\"\n | \"in_progress\"\n | \"on_hold\"\n | \"error\"\n | \"draft\"\n | \"sent\"\n | \"viewed\"\n | \"signed\"\n | \"expired\"\n | \"admin\"\n | \"public\";\n\ninterface StatusConfig {\n label: string;\n color: string;\n bgcolor: string;\n}\n\nconst STATUS_CONFIG: Record<StatusVariant, StatusConfig> = {\n active: { label: \"Active\", color: \"#2E7D32\", bgcolor: \"#E8F5E9\" },\n inactive: { label: \"Inactive\", color: \"#616161\", bgcolor: \"#F5F5F5\" },\n pending: { label: \"Pending\", color: \"#EF6C00\", bgcolor: \"#FFF3E0\" },\n completed: { label: \"Completed\", color: \"#1B5E20\", bgcolor: \"#C8E6C9\" },\n cancelled: { label: \"Cancelled\", color: \"#C62828\", bgcolor: \"#FFEBEE\" },\n in_progress: { label: \"In Progress\", color: \"#1F5FF2\", bgcolor: \"#EEF6FF\" },\n on_hold: { label: \"On Hold\", color: \"#EF6C00\", bgcolor: \"#FFF8E1\" },\n error: { label: \"Error\", color: \"#D32F2F\", bgcolor: \"#FFEBEE\" },\n draft: { label: \"Draft\", color: \"#03859B\", bgcolor: \"#EAFFFD\" },\n sent: { label: \"Sent\", color: \"#E65100\", bgcolor: \"#FFF3E0\" },\n viewed: { label: \"Viewed\", color: \"#1565C0\", bgcolor: \"#E3F2FD\" },\n signed: { label: \"Signed\", color: \"#1B5E20\", bgcolor: \"#E8F5E9\" },\n expired: { label: \"Expired\", color: \"#C62828\", bgcolor: \"#FFEBEE\" },\n admin: { label: \"Admin\", color: \"#1649DF\", bgcolor: \"#EEF6FF\" },\n public: { label: \"Public\", color: \"#6A1B9A\", bgcolor: \"#F3E5F5\" },\n};\n\nexport interface StatusChipProps {\n status: StatusVariant;\n label?: string;\n size?: \"small\" | \"medium\";\n sx?: SxProps<Theme>;\n}\n\nexport const StatusChip: React.FC<StatusChipProps> = ({\n status,\n label,\n size = \"small\",\n sx,\n}) => {\n const config = STATUS_CONFIG[status];\n\n return (\n <MuiChip\n label={label ?? config.label}\n size={size}\n sx={{\n color: config.color,\n bgcolor: config.bgcolor,\n fontWeight: 600,\n borderRadius: \"6px\",\n border: \"none\",\n ...sx,\n }}\n />\n );\n};\n","import React from \"react\";\nimport Alert, { type AlertProps } from \"@mui/material/Alert\";\nimport AlertTitle from \"@mui/material/AlertTitle\";\nimport Collapse from \"@mui/material/Collapse\";\n\nexport interface AlertBannerProps extends Omit<AlertProps, \"title\"> {\n title?: string;\n message: React.ReactNode;\n open?: boolean;\n onClose?: () => void;\n animate?: boolean;\n}\n\nexport const AlertBanner: React.FC<AlertBannerProps> = ({\n title,\n message,\n open = true,\n onClose,\n animate = true,\n severity = \"info\",\n ...props\n}) => {\n const content = (\n <Alert severity={severity} onClose={onClose} sx={{ borderRadius: 3 }} {...props}>\n {title && <AlertTitle sx={{ fontWeight: 600 }}>{title}</AlertTitle>}\n {message}\n </Alert>\n );\n\n if (animate) {\n return <Collapse in={open}>{content}</Collapse>;\n }\n\n return open ? content : null;\n};\n","import React from \"react\";\nimport ListItemButton from \"@mui/material/ListItemButton\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport interface MenuItemProps {\n label: string;\n icon?: React.ReactNode;\n selected?: boolean;\n disabled?: boolean;\n onClick?: () => void;\n endContent?: React.ReactNode;\n sx?: SxProps<Theme>;\n}\n\nexport const MenuItem: React.FC<MenuItemProps> = ({\n label,\n icon,\n selected,\n disabled,\n onClick,\n endContent,\n sx,\n}) => {\n return (\n <ListItemButton\n selected={selected}\n disabled={disabled}\n onClick={onClick}\n sx={{ px: 2, py: 0.75, ...sx }}\n >\n {icon && (\n <ListItemIcon sx={{ minWidth: 36, color: \"inherit\" }}>{icon}</ListItemIcon>\n )}\n <ListItemText\n primary={label}\n slotProps={{\n primary: {\n fontSize: \"0.875rem\",\n fontWeight: selected ? 600 : 400,\n },\n }}\n />\n {endContent}\n </ListItemButton>\n );\n};\n","import React, { useState } from \"react\";\nimport MuiTabs, { type TabsProps as MuiTabsProps } from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport Box from \"@mui/material/Box\";\nimport { useTheme } from \"@mui/material/styles\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport interface TabItem {\n label: string;\n content: React.ReactNode;\n disabled?: boolean;\n icon?: React.ReactElement;\n}\n\nexport interface TabsProps extends Omit<MuiTabsProps, \"onChange\" | \"value\"> {\n tabs: TabItem[];\n defaultTab?: number;\n onChange?: (index: number) => void;\n /**\n * Visual style variant.\n * - `\"default\"` — standard MUI underline indicator.\n * - `\"pill\"` — active tab gets a filled rounded pill; no underline indicator.\n */\n styleVariant?: \"default\" | \"pill\";\n}\n\nexport const Tabs = React.forwardRef<HTMLDivElement, TabsProps>(\n (\n {\n tabs,\n defaultTab = 0,\n onChange,\n styleVariant = \"default\",\n sx: userSx,\n slotProps: userSlotProps,\n ...props\n },\n ref\n ) => {\n const theme = useTheme();\n const [activeTab, setActiveTab] = useState(defaultTab);\n\n const handleChange = (_event: React.SyntheticEvent, newValue: number) => {\n setActiveTab(newValue);\n onChange?.(newValue);\n };\n\n const pillSx: SxProps<Theme> =\n styleVariant === \"pill\"\n ? {\n \"& .MuiTabs-flexContainer\": { width: \"100%\" },\n \"& .MuiTab-root\": {\n textTransform: \"none\",\n borderRadius: \"20px\",\n minHeight: \"36px\",\n px: 2,\n py: 1,\n fontWeight: 500,\n flexGrow: 1,\n maxWidth: \"none\",\n },\n \"& .Mui-selected\": {\n backgroundColor: theme.customColors.blue[800],\n color: \"white !important\",\n },\n }\n : {};\n\n const pillSlotProps =\n styleVariant === \"pill\"\n ? { indicator: { sx: { display: \"none\" } }, ...userSlotProps }\n : userSlotProps;\n\n return (\n <Box ref={ref}>\n <MuiTabs\n value={activeTab}\n onChange={handleChange}\n slotProps={pillSlotProps}\n sx={[pillSx, ...(Array.isArray(userSx) ? userSx : [userSx])] as SxProps<Theme>}\n {...props}\n >\n {tabs.map((tab, index) => (\n <Tab\n key={index}\n label={tab.label}\n disabled={tab.disabled}\n icon={tab.icon}\n iconPosition=\"start\"\n />\n ))}\n </MuiTabs>\n {tabs.map((tab, index) => (\n <Box\n key={index}\n role=\"tabpanel\"\n hidden={activeTab !== index}\n aria-labelledby={`tab-${index}`}\n >\n {activeTab === index && tab.content}\n </Box>\n ))}\n </Box>\n );\n }\n);\n\nTabs.displayName = \"Tabs\";\n","import React from \"react\";\nimport MuiBreadcrumbs, {\n type BreadcrumbsProps as MuiBreadcrumbsProps,\n} from \"@mui/material/Breadcrumbs\";\nimport Link from \"@mui/material/Link\";\nimport Typography from \"@mui/material/Typography\";\n\nexport interface BreadcrumbItem {\n label: string;\n href?: string;\n onClick?: () => void;\n}\n\nexport interface BreadcrumbProps extends Omit<MuiBreadcrumbsProps, \"children\"> {\n items: BreadcrumbItem[];\n}\n\nexport const Breadcrumb = React.forwardRef<HTMLElement, BreadcrumbProps>(\n ({ items, ...props }, ref) => {\n return (\n <MuiBreadcrumbs ref={ref} aria-label=\"breadcrumb\" {...props}>\n {items.map((item, index) => {\n const isLast = index === items.length - 1;\n\n if (isLast) {\n return (\n <Typography key={index} color=\"text.primary\" aria-current=\"page\">\n {item.label}\n </Typography>\n );\n }\n\n if (item.href) {\n return (\n <Link key={index} href={item.href} underline=\"hover\" color=\"inherit\">\n {item.label}\n </Link>\n );\n }\n\n return (\n <Link\n key={index}\n component=\"button\"\n underline=\"hover\"\n color=\"inherit\"\n onClick={item.onClick}\n sx={{\n cursor: \"pointer\",\n background: \"none\",\n border: \"none\",\n font: \"inherit\",\n }}\n >\n {item.label}\n </Link>\n );\n })}\n </MuiBreadcrumbs>\n );\n }\n);\n\nBreadcrumb.displayName = \"Breadcrumb\";\n","import React from \"react\";\nimport {\n Toaster as SonnerToaster,\n type ToasterProps as SonnerToasterProps,\n} from \"sonner\";\n\nexport { toast } from \"sonner\";\n\nexport interface ToasterProps extends SonnerToasterProps {\n position?: SonnerToasterProps[\"position\"];\n richColors?: boolean;\n closeButton?: boolean;\n duration?: number;\n}\n\n/**\n * Mount once at the root of your app (or layout). Triggers are fired imperatively\n * via the exported `toast` utility:\n *\n * ```tsx\n * import { toast } from \"@alchemy/ui\";\n *\n * toast.success(\"Project saved.\");\n * toast.error(\"Could not save changes.\");\n * toast.warning(\"Unsaved changes.\");\n * toast.info(\"New version available.\");\n * toast.promise(saveProject(), { loading: \"Saving...\", success: \"Saved.\", error: \"Failed.\" });\n * ```\n */\nexport const Toaster = React.forwardRef<HTMLElement, ToasterProps>(\n (\n {\n position = \"bottom-right\",\n richColors = true,\n closeButton = false,\n duration = 4000,\n ...props\n },\n _ref\n ) => {\n return (\n <SonnerToaster\n position={position}\n richColors={richColors}\n closeButton={closeButton}\n duration={duration}\n toastOptions={{\n style: {\n fontFamily: \"Roboto, sans-serif\",\n borderRadius: \"10px\",\n },\n }}\n {...props}\n />\n );\n }\n);\n\nToaster.displayName = \"Toaster\";\n","import React from \"react\";\nimport MuiAccordion from \"@mui/material/Accordion\";\nimport AccordionSummary from \"@mui/material/AccordionSummary\";\nimport AccordionDetails from \"@mui/material/AccordionDetails\";\nimport Typography from \"@mui/material/Typography\";\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { Checkbox } from \"../../atoms/Checkbox\";\n\nexport interface AccordionProps {\n summary: React.ReactNode;\n details: React.ReactNode;\n disabled?: boolean;\n expanded?: boolean;\n defaultExpanded?: boolean;\n onChange?: (expanded: boolean) => void;\n /** Renders a checkbox on the left of the summary row. */\n checkable?: boolean;\n /** Controlled checked state of the header checkbox. */\n checked?: boolean;\n /** Initial checked state in uncontrolled mode. */\n defaultChecked?: boolean;\n /** Shows a dash (−) when some but not all children are selected. */\n indeterminate?: boolean;\n /** Fired when the header checkbox is toggled: `(checked: boolean) => void`. */\n onCheckChange?: (checked: boolean) => void;\n sx?: SxProps<Theme>;\n}\n\nexport const Accordion = React.forwardRef<HTMLDivElement, AccordionProps>(\n (\n {\n summary,\n details,\n disabled,\n expanded,\n defaultExpanded = false,\n onChange,\n checkable = false,\n checked,\n defaultChecked = false,\n indeterminate = false,\n onCheckChange,\n sx,\n },\n ref\n ) => {\n const theme = useTheme();\n const isControlled = typeof expanded === \"boolean\";\n const [internalExpanded, setInternalExpanded] = React.useState(defaultExpanded);\n const isExpanded = isControlled ? expanded : internalExpanded;\n\n const isCheckedControlled = typeof checked === \"boolean\";\n const [internalChecked, setInternalChecked] = React.useState(defaultChecked);\n const isChecked = isCheckedControlled ? checked : internalChecked;\n\n const handleCheckboxChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n e.stopPropagation();\n const next = e.target.checked;\n if (!isCheckedControlled) setInternalChecked(next);\n onCheckChange?.(next);\n };\n const borderColor = theme.customColors.blue[100];\n const baseSx: SxProps<Theme> = {\n overflow: \"hidden\",\n \"&:before\": { display: \"none\" },\n borderRadius: 2,\n border: `1px solid ${borderColor}`,\n backgroundColor: \"#fff\",\n };\n const composedSx = [\n baseSx,\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ] as SxProps<Theme>;\n\n const handleChange = (_: React.SyntheticEvent, nextExpanded: boolean) => {\n if (!isControlled) {\n setInternalExpanded(nextExpanded);\n }\n onChange?.(nextExpanded);\n };\n\n return (\n <MuiAccordion\n ref={ref}\n expanded={isExpanded}\n onChange={handleChange}\n disabled={disabled}\n disableGutters\n elevation={0}\n square={false}\n sx={composedSx}\n >\n <AccordionSummary\n expandIcon={<ExpandMoreIcon />}\n sx={{\n minHeight: 56,\n px: 2,\n backgroundColor: isExpanded\n ? `${theme.customColors.blue[700]}0A`\n : theme.palette.background.default,\n borderBottom: isExpanded ? \"none\" : `1px solid ${borderColor}`,\n \"&.Mui-expanded\": { minHeight: 56 },\n \"& .MuiAccordionSummary-content\": {\n my: 0,\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n gap: 0.5,\n },\n \"& .MuiAccordionSummary-content.Mui-expanded\": { my: 0 },\n \"&:hover\": {\n backgroundColor: theme.customColors.blue[50],\n },\n }}\n >\n {checkable && (\n <Checkbox\n checked={isChecked}\n indeterminate={indeterminate}\n onChange={handleCheckboxChange}\n onClick={(e) => e.stopPropagation()}\n disabled={disabled}\n size=\"small\"\n sx={{ p: 0.5, mr: 0.5 }}\n />\n )}\n {typeof summary === \"string\" ? (\n <Typography variant=\"body1\">{summary}</Typography>\n ) : (\n summary\n )}\n </AccordionSummary>\n <AccordionDetails\n sx={{\n p: 3,\n borderTop: \"none\",\n borderBottomLeftRadius: 8,\n borderBottomRightRadius: 8,\n }}\n >\n {details}\n </AccordionDetails>\n </MuiAccordion>\n );\n }\n);\n\nAccordion.displayName = \"Accordion\";\n","import React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\nimport { Accordion } from \"../Accordion\";\n\nexport interface AccordionGroupItem {\n id: string;\n title: React.ReactNode;\n content: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface AccordionGroupProps {\n items: AccordionGroupItem[];\n allowMultiple?: boolean;\n expandedIds?: string[];\n defaultExpandedIds?: string[];\n onChangeExpanded?: (expandedIds: string[]) => void;\n sx?: SxProps<Theme>;\n}\n\nexport const AccordionGroup = React.forwardRef<HTMLDivElement, AccordionGroupProps>(\n (\n {\n items,\n allowMultiple = true,\n expandedIds,\n defaultExpandedIds,\n onChangeExpanded,\n sx,\n },\n ref\n ) => {\n const isControlled = Array.isArray(expandedIds);\n const initialExpanded = React.useMemo(\n () => (Array.isArray(defaultExpandedIds) ? defaultExpandedIds : []),\n [defaultExpandedIds]\n );\n const [internalExpandedIds, setInternalExpandedIds] =\n React.useState<string[]>(initialExpanded);\n const activeExpandedIds = isControlled\n ? (expandedIds as string[])\n : internalExpandedIds;\n\n React.useEffect(() => {\n if (!isControlled) {\n setInternalExpandedIds(initialExpanded);\n }\n }, [initialExpanded, isControlled]);\n\n const handleAccordionChange = (id: string, isExpanded: boolean) => {\n const nextExpandedIds = isExpanded\n ? allowMultiple\n ? [...activeExpandedIds, id]\n : [id]\n : activeExpandedIds.filter((expandedId) => expandedId !== id);\n\n if (!isControlled) {\n setInternalExpandedIds(nextExpandedIds);\n }\n onChangeExpanded?.(nextExpandedIds);\n };\n\n return (\n <Box ref={ref}>\n {items.map((item, index) => {\n const isLast = index === items.length - 1;\n const itemSpacingSx: SxProps<Theme> = {\n mb: isLast ? 0 : 1.5,\n \"&.Mui-expanded\": {\n my: 0,\n mb: isLast ? 0 : 1.5,\n },\n };\n const itemSx = [\n itemSpacingSx,\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ] as SxProps<Theme>;\n return (\n <Accordion\n key={item.id}\n summary={item.title}\n details={item.content}\n disabled={item.disabled}\n expanded={activeExpandedIds.includes(item.id)}\n onChange={(nextExpanded) => handleAccordionChange(item.id, nextExpanded)}\n sx={itemSx}\n />\n );\n })}\n </Box>\n );\n }\n);\n\nAccordionGroup.displayName = \"AccordionGroup\";\n","import React from \"react\";\nimport MuiAutocomplete, {\n type AutocompleteProps as MuiAutocompleteProps,\n type AutocompleteRenderInputParams,\n} from \"@mui/material/Autocomplete\";\nimport TextField from \"@mui/material/TextField\";\n\nexport interface AutocompleteProps<T> extends Omit<\n MuiAutocompleteProps<T, boolean | undefined, boolean | undefined, boolean | undefined>,\n \"renderInput\"\n> {\n label?: string;\n placeholder?: string;\n error?: boolean;\n helperText?: string;\n}\n\nexport function Autocomplete<T = string>({\n label,\n placeholder,\n error,\n helperText,\n size,\n multiple,\n defaultValue,\n ...props\n}: Readonly<AutocompleteProps<T>>) {\n const resolvedDefaultValue =\n defaultValue === undefined && multiple\n ? ([] as unknown as typeof defaultValue)\n : defaultValue;\n return (\n <MuiAutocomplete\n size={size}\n multiple={multiple}\n defaultValue={resolvedDefaultValue}\n {...props}\n renderInput={(params: AutocompleteRenderInputParams) => (\n <TextField\n {...params}\n label={label}\n placeholder={placeholder}\n error={error}\n helperText={helperText}\n size={size}\n />\n )}\n />\n );\n}\n","import React, { useRef, useState } from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport UploadFileIcon from \"@mui/icons-material/UploadFile\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport interface FileUploadProps {\n accept?: string;\n multiple?: boolean;\n maxSize?: number;\n onFileSelect: (files: File[]) => void;\n onError?: (message: string) => void;\n label?: string;\n helperText?: string;\n error?: boolean;\n errorMessage?: string;\n disabled?: boolean;\n sx?: SxProps<Theme>;\n}\n\nexport const FileUpload = React.forwardRef<HTMLDivElement, FileUploadProps>(\n (\n {\n accept,\n multiple = false,\n maxSize,\n onFileSelect,\n onError,\n label = \"Drop files here or click to upload\",\n helperText,\n error = false,\n errorMessage,\n disabled = false,\n sx,\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const [isDragging, setIsDragging] = useState(false);\n\n const processFiles = (files: FileList | null) => {\n if (!files || files.length === 0) return;\n const fileArray = Array.from(files);\n\n if (maxSize) {\n const oversized = fileArray.find((f) => f.size > maxSize);\n if (oversized) {\n onError?.(`File \"${oversized.name}\" exceeds the maximum allowed size.`);\n return;\n }\n }\n\n onFileSelect(multiple ? fileArray : [fileArray[0]]);\n };\n\n const handleDragOver = (e: React.DragEvent) => {\n e.preventDefault();\n if (!disabled) setIsDragging(true);\n };\n\n const handleDragLeave = () => {\n setIsDragging(false);\n };\n\n const handleDrop = (e: React.DragEvent) => {\n e.preventDefault();\n setIsDragging(false);\n if (!disabled) processFiles(e.dataTransfer.files);\n };\n\n const handleClick = () => {\n if (!disabled) inputRef.current?.click();\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n processFiles(e.target.files);\n e.target.value = \"\";\n };\n\n const borderColor = error ? \"error.main\" : isDragging ? \"primary.main\" : \"divider\";\n\n return (\n <Box ref={ref} sx={sx}>\n <Box\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-disabled={disabled}\n onClick={handleClick}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n sx={{\n border: \"2px dashed\",\n borderColor,\n borderRadius: 2,\n p: 4,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: 1,\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n bgcolor: isDragging ? \"action.hover\" : \"transparent\",\n opacity: disabled ? 0.5 : 1,\n transition: \"border-color 0.2s, background-color 0.2s\",\n }}\n >\n <UploadFileIcon\n sx={{ fontSize: 40, color: error ? \"error.main\" : \"text.secondary\" }}\n />\n <Typography\n variant=\"body2\"\n color={error ? \"error\" : \"text.secondary\"}\n align=\"center\"\n >\n {label}\n </Typography>\n {helperText && !error && (\n <Typography variant=\"caption\" color=\"text.disabled\">\n {helperText}\n </Typography>\n )}\n {error && errorMessage && (\n <Typography variant=\"caption\" color=\"error\">\n {errorMessage}\n </Typography>\n )}\n </Box>\n <input\n ref={inputRef}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n onChange={handleInputChange}\n style={{ display: \"none\" }}\n data-testid=\"file-input\"\n />\n </Box>\n );\n }\n);\n\nFileUpload.displayName = \"FileUpload\";\n","import React from \"react\";\nimport MuiMenu, { type MenuProps as MuiMenuProps } from \"@mui/material/Menu\";\nimport MuiMenuItem from \"@mui/material/MenuItem\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport MuiDivider from \"@mui/material/Divider\";\n\nexport interface MenuAction {\n label: string;\n onClick?: () => void;\n icon?: React.ReactElement;\n disabled?: boolean;\n divider?: boolean;\n}\n\nexport interface MenuProps extends Omit<MuiMenuProps, \"children\"> {\n items: MenuAction[];\n}\n\nexport const Menu = React.forwardRef<HTMLDivElement, MenuProps>(\n ({ items, ...props }, ref) => {\n return (\n <MuiMenu ref={ref} {...props}>\n {items.flatMap((item, index) => {\n const elements = [];\n if (item.divider) {\n elements.push(<MuiDivider key={`divider-${index}`} />);\n }\n elements.push(\n <MuiMenuItem\n key={`item-${index}`}\n onClick={item.onClick}\n disabled={item.disabled}\n >\n {item.icon && <ListItemIcon>{item.icon}</ListItemIcon>}\n <ListItemText>{item.label}</ListItemText>\n </MuiMenuItem>\n );\n return elements;\n })}\n </MuiMenu>\n );\n }\n);\n\nMenu.displayName = \"Menu\";\n","import React from \"react\";\nimport MuiPagination, {\n type PaginationProps as MuiPaginationProps,\n} from \"@mui/material/Pagination\";\n\nexport type PaginationProps = MuiPaginationProps;\n\nexport const Pagination = React.forwardRef<HTMLElement, PaginationProps>((props, ref) => {\n return <MuiPagination ref={ref} {...props} />;\n});\n\nPagination.displayName = \"Pagination\";\n","import React from \"react\";\nimport MuiList, { type ListProps as MuiListProps } from \"@mui/material/List\";\nimport MuiListItem from \"@mui/material/ListItem\";\nimport MuiListItemButton from \"@mui/material/ListItemButton\";\nimport MuiListItemIcon from \"@mui/material/ListItemIcon\";\nimport MuiListItemText from \"@mui/material/ListItemText\";\nimport MuiListSubheader from \"@mui/material/ListSubheader\";\nimport MuiDivider from \"@mui/material/Divider\";\n\nexport interface ListItemDef {\n id?: string | number;\n primary: React.ReactNode;\n secondary?: React.ReactNode;\n icon?: React.ReactNode;\n onClick?: () => void;\n disabled?: boolean;\n divider?: boolean;\n selected?: boolean;\n}\n\nexport interface ListProps extends Omit<MuiListProps, \"children\"> {\n items: ListItemDef[];\n subheader?: string;\n}\n\nexport const List = React.forwardRef<HTMLUListElement, ListProps>(\n ({ items, subheader, dense, disablePadding, ...props }, ref) => {\n return (\n <MuiList\n ref={ref}\n dense={dense}\n disablePadding={disablePadding}\n subheader={\n subheader ? <MuiListSubheader>{subheader}</MuiListSubheader> : undefined\n }\n {...props}\n >\n {items.map((item, index) => (\n <React.Fragment key={item.id ?? index}>\n {item.onClick ? (\n <MuiListItem disablePadding>\n <MuiListItemButton\n onClick={item.onClick}\n disabled={item.disabled}\n selected={item.selected}\n >\n {item.icon && <MuiListItemIcon>{item.icon}</MuiListItemIcon>}\n <MuiListItemText primary={item.primary} secondary={item.secondary} />\n </MuiListItemButton>\n </MuiListItem>\n ) : (\n <MuiListItem\n sx={item.disabled ? { opacity: 0.5, pointerEvents: \"none\" } : undefined}\n >\n {item.icon && <MuiListItemIcon>{item.icon}</MuiListItemIcon>}\n <MuiListItemText primary={item.primary} secondary={item.secondary} />\n </MuiListItem>\n )}\n {item.divider && <MuiDivider />}\n </React.Fragment>\n ))}\n </MuiList>\n );\n }\n);\n\nList.displayName = \"List\";\n","import React from \"react\";\nimport MuiAvatarGroup, {\n type AvatarGroupProps as MuiAvatarGroupProps,\n} from \"@mui/material/AvatarGroup\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport { Avatar, type AvatarSize, sizeStyles } from \"../../atoms/Avatar\";\n\nexport interface AvatarGroupItem {\n name: string;\n src?: string;\n alt?: string;\n}\n\nexport interface AvatarGroupProps extends Omit<MuiAvatarGroupProps, \"children\"> {\n avatars?: AvatarGroupItem[];\n showTooltips?: boolean;\n size?: AvatarSize | number;\n}\n\nexport const AvatarGroup = React.forwardRef<HTMLDivElement, AvatarGroupProps>(\n ({ avatars = [], showTooltips = true, size, sx, ...props }, ref) => {\n const resolvedSize =\n size !== undefined\n ? typeof size === \"number\"\n ? { width: size, height: size, fontSize: Math.round(size * 0.45) }\n : sizeStyles[size]\n : undefined;\n\n const mergedSx: SxProps<Theme> | undefined = resolvedSize\n ? [\n { \"& .MuiAvatar-root\": resolvedSize },\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ]\n : sx;\n\n return (\n <MuiAvatarGroup ref={ref} sx={mergedSx} {...props}>\n {avatars.map((avatar, index) => {\n const el = (\n <Avatar\n key={index}\n name={avatar.name}\n src={avatar.src}\n alt={avatar.alt ?? avatar.name}\n />\n );\n\n return showTooltips ? (\n <Tooltip key={index} title={avatar.name}>\n {el}\n </Tooltip>\n ) : (\n el\n );\n })}\n </MuiAvatarGroup>\n );\n }\n);\n\nAvatarGroup.displayName = \"AvatarGroup\";\n","import React from \"react\";\nimport MuiButtonGroup, {\n type ButtonGroupProps as MuiButtonGroupProps,\n} from \"@mui/material/ButtonGroup\";\nimport MuiButton from \"@mui/material/Button\";\n\nexport interface ButtonGroupItem {\n label: React.ReactNode;\n onClick?: () => void;\n disabled?: boolean;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n}\n\nexport interface ButtonGroupProps extends Omit<MuiButtonGroupProps, \"children\"> {\n buttons: ButtonGroupItem[];\n}\n\nexport const ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(\n ({ buttons, ...props }, ref) => {\n return (\n <MuiButtonGroup ref={ref} {...props}>\n {buttons.map((btn, index) => (\n <MuiButton\n key={index}\n onClick={btn.onClick}\n disabled={btn.disabled}\n startIcon={btn.startIcon}\n endIcon={btn.endIcon}\n >\n {btn.label}\n </MuiButton>\n ))}\n </MuiButtonGroup>\n );\n }\n);\n\nButtonGroup.displayName = \"ButtonGroup\";\n","import React from \"react\";\nimport MuiCard from \"@mui/material/Card\";\nimport type { CardProps as MuiCardProps } from \"@mui/material/Card\";\nimport CardContent from \"@mui/material/CardContent\";\nimport CardActions from \"@mui/material/CardActions\";\nimport CardHeader from \"@mui/material/CardHeader\";\nimport Divider from \"@mui/material/Divider\";\nimport Typography from \"@mui/material/Typography\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport interface CardProps extends Omit<MuiCardProps, \"title\"> {\n title?: React.ReactNode;\n subtitle?: React.ReactNode;\n headerAction?: React.ReactNode;\n footer?: React.ReactNode;\n noPadding?: boolean;\n dividerAfterHeader?: boolean;\n dividerBeforeFooter?: boolean;\n contentSx?: SxProps<Theme>;\n}\n\nexport const Card = React.forwardRef<HTMLDivElement, CardProps>(\n (\n {\n title,\n subtitle,\n headerAction,\n footer,\n noPadding,\n dividerAfterHeader = false,\n dividerBeforeFooter = true,\n contentSx,\n children,\n ...props\n },\n ref\n ) => {\n return (\n <MuiCard ref={ref} {...props}>\n {(title || subtitle || headerAction) && (\n <>\n <CardHeader\n disableTypography\n title={\n title != null ? (\n <Typography variant=\"h6\" sx={{ fontWeight: 600 }}>\n {title}\n </Typography>\n ) : undefined\n }\n subheader={\n subtitle != null ? (\n <Typography variant=\"body2\">{subtitle}</Typography>\n ) : undefined\n }\n action={headerAction}\n sx={{ pb: dividerAfterHeader ? 2 : 0 }}\n />\n {dividerAfterHeader && <Divider />}\n </>\n )}\n <CardContent\n sx={{\n ...(noPadding && { p: \"0 !important\" }),\n ...contentSx,\n }}\n >\n {children}\n </CardContent>\n {footer && (\n <>\n {dividerBeforeFooter && <Divider />}\n <CardActions sx={{ px: 3, py: 2 }}>{footer}</CardActions>\n </>\n )}\n </MuiCard>\n );\n }\n);\n\nCard.displayName = \"Card\";\n","import React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport interface EmptyStateProps {\n illustration?: React.ReactNode;\n icon?: React.ReactNode;\n title: string;\n description?: string;\n action?: React.ReactNode;\n sx?: SxProps<Theme>;\n}\n\nexport const EmptyState: React.FC<EmptyStateProps> = ({\n illustration,\n icon,\n title,\n description,\n action,\n sx,\n}) => {\n return (\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n textAlign: \"center\",\n py: 8,\n px: 3,\n ...sx,\n }}\n >\n {illustration && <Box sx={{ mb: 3 }}>{illustration}</Box>}\n {icon && !illustration && (\n <Box\n sx={{\n width: 72,\n height: 72,\n borderRadius: \"50%\",\n bgcolor: \"action.hover\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n mb: 3,\n color: \"text.secondary\",\n \"& svg\": { fontSize: 36 },\n }}\n >\n {icon}\n </Box>\n )}\n <Typography variant=\"h6\" fontWeight={600} gutterBottom>\n {title}\n </Typography>\n {description && (\n <Typography\n variant=\"body2\"\n color=\"text.secondary\"\n sx={{ maxWidth: 360, mb: action ? 3 : 0 }}\n >\n {description}\n </Typography>\n )}\n {action}\n </Box>\n );\n};\n","import React from \"react\";\n\nexport const EmptyStateIllustration: React.FC<React.SVGProps<SVGSVGElement>> = (\n props\n) => (\n <svg\n width=\"252\"\n height=\"142\"\n viewBox=\"0 0 252 142\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M136.706 26.1041C140.587 26.1041 143.734 29.251 143.734 33.1324C143.734 37.0138 140.587 40.1598 136.706 40.1598H200.963C204.844 40.16 207.99 43.3068 207.99 47.1881C207.99 51.0694 204.844 54.2162 200.963 54.2164H223.051C226.932 54.2166 230.078 57.3626 230.078 61.2438C230.078 65.1251 226.932 68.2719 223.051 68.2721H203.974C200.093 68.2721 196.946 71.419 196.946 75.3004C196.946 79.1817 200.093 82.3278 203.974 82.3278H209.998C213.879 82.3278 217.026 85.4746 217.026 89.3561C217.026 93.2375 213.879 96.3844 209.998 96.3844H157.79C157.273 96.3844 156.769 96.3282 156.284 96.2223C155.799 96.3282 155.295 96.3844 154.778 96.3844H63.4138C59.5326 96.3842 56.3865 93.2374 56.3865 89.3561C56.3865 85.4748 59.5326 82.328 63.4138 82.3278H24.2585C20.3772 82.3278 17.2304 79.1817 17.2302 75.3004C17.2302 71.419 20.3771 68.2721 24.2585 68.2721H64.4187C68.2999 68.2718 71.446 65.1251 71.446 61.2438C71.4459 57.3626 68.2998 54.2167 64.4187 54.2164H39.3181C35.4367 54.2164 32.2898 51.0695 32.2898 47.1881C32.2898 43.3067 35.4367 40.1599 39.3181 40.1598H79.4783C75.5969 40.1598 72.4501 37.0138 72.45 33.1324C72.45 29.251 75.5968 26.1041 79.4783 26.1041H136.706ZM227.066 82.3287C230.948 82.3287 234.094 85.4748 234.094 89.3561C234.094 93.2375 230.948 96.3844 227.066 96.3844C223.185 96.3844 220.038 93.2375 220.038 89.3561C220.038 85.4748 223.185 82.3288 227.066 82.3287Z\"\n fill=\"#F3F7FF\"\n />\n <rect\n x=\"66.7097\"\n y=\"30.6906\"\n width=\"104.361\"\n height=\"83.7461\"\n rx=\"11.0608\"\n fill=\"white\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.16023\"\n />\n <circle\n cx=\"174.158\"\n cy=\"79.6741\"\n r=\"20.5415\"\n fill=\"white\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.16023\"\n />\n <path\n d=\"M171.787 69.4033C171.787 68.0943 172.849 67.0331 174.158 67.0331C175.467 67.0331 176.528 68.0943 176.528 69.4033V78.884C176.528 80.193 175.467 81.2542 174.158 81.2542C172.849 81.2542 171.787 80.193 171.787 78.884V69.4033Z\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.16023\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M171.787 89.9451C171.787 91.2541 172.849 92.3153 174.158 92.3153C175.467 92.3153 176.528 91.2541 176.528 89.9451C176.528 88.6361 175.467 87.575 174.158 87.575C172.849 87.575 171.787 88.6361 171.787 89.9451Z\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.16023\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M67.3542 50.017H170.426\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.16023\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <circle cx=\"80.1407\" cy=\"40.9612\" r=\"3.95029\" fill=\"#1F5FF2\" />\n <circle cx=\"91.2015\" cy=\"40.9612\" r=\"3.95029\" fill=\"#1F5FF2\" />\n <path\n d=\"M77.7705 67.8234C77.7705 66.5144 78.8317 65.4532 80.1407 65.4532H103.842C105.151 65.4532 106.213 66.5144 106.213 67.8234C106.213 69.1324 105.151 70.1936 103.842 70.1936H80.1407C78.8317 70.1936 77.7705 69.1324 77.7705 67.8234Z\"\n fill=\"#1F5FF2\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.16023\"\n strokeLinejoin=\"round\"\n />\n <rect\n x=\"77.7705\"\n y=\"78.0942\"\n width=\"52.1438\"\n height=\"4.74035\"\n rx=\"2.37017\"\n fill=\"#1F5FF2\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.16023\"\n strokeLinejoin=\"round\"\n />\n <rect\n x=\"77.7705\"\n y=\"90.7352\"\n width=\"52.1438\"\n height=\"4.74035\"\n rx=\"2.37017\"\n fill=\"#1F5FF2\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.16023\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M115.116 17.2595C113.689 17.2595 112.533 18.4159 112.533 19.8424C112.533 21.2688 113.689 22.4252 115.116 22.4252L123.68 22.4252C125.106 22.4252 126.263 21.2688 126.263 19.8424C126.263 18.4159 125.106 17.2595 123.68 17.2595L115.116 17.2595Z\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.16023\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n","import React from \"react\";\n\nexport const NoUsersIllustration: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"324\"\n height=\"183\"\n viewBox=\"0 0 324 183\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <rect y=\"14.25\" width=\"324\" height=\"168\" fill=\"white\" />\n <path\n d=\"M176.237 33.6525C181.241 33.6525 185.298 37.7092 185.298 42.713C185.298 47.7167 181.241 51.7726 176.237 51.7726H259.074C264.078 51.7726 268.135 55.8294 268.135 60.8331C268.135 65.837 264.078 69.8937 259.074 69.8937H287.55C292.554 69.8937 296.61 73.9504 296.61 78.9542C296.61 83.9579 292.553 88.0138 287.55 88.0138H262.958C257.954 88.0138 253.897 92.0705 253.897 97.0743C253.897 102.078 257.954 106.135 262.958 106.135H270.724C275.727 106.135 279.784 110.192 279.784 115.195C279.784 120.199 275.727 124.255 270.724 124.255H203.419C202.753 124.255 202.103 124.183 201.477 124.047C200.852 124.184 200.201 124.255 199.535 124.255H81.7518C76.7481 124.255 72.6915 120.199 72.6913 115.195C72.6913 110.192 76.748 106.135 81.7518 106.135H31.2733C26.2695 106.135 22.2128 102.078 22.2128 97.0743C22.2128 92.0705 26.2695 88.0138 31.2733 88.0138H83.0458C88.0495 88.0138 92.1061 83.9579 92.1063 78.9542C92.1063 73.9504 88.0496 69.8937 83.0458 69.8937H50.6884C45.6845 69.8937 41.6278 65.837 41.6278 60.8331C41.6279 55.8294 45.6846 51.7726 50.6884 51.7726H102.461C97.4571 51.7725 93.4004 47.7167 93.4003 42.713C93.4003 37.7092 97.457 33.6526 102.461 33.6525H176.237ZM292.727 106.135C297.731 106.135 301.787 110.192 301.787 115.195C301.787 120.199 297.731 124.255 292.727 124.255C287.724 124.255 283.667 120.199 283.667 115.195C283.667 110.192 287.724 106.135 292.727 106.135Z\"\n fill=\"#F3F7FF\"\n />\n <path\n d=\"M91.6651 42.8373C91.6651 35.6966 97.4538 29.908 104.594 29.908H200.641C207.782 29.908 213.571 35.6966 213.571 42.8373V124.662C213.571 131.802 207.782 137.591 200.641 137.591H104.594C97.4538 137.591 91.6651 131.802 91.6651 124.662V42.8373Z\"\n fill=\"white\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"4.30979\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M111.982 63.1541C111.982 56.0134 117.771 50.2247 124.911 50.2247H220.958C228.099 50.2247 233.887 56.0134 233.887 63.1541V144.979C233.887 152.119 228.099 157.908 220.958 157.908H124.911C117.771 157.908 111.982 152.119 111.982 144.979V63.1541Z\"\n fill=\"white\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"4.30979\"\n strokeLinejoin=\"round\"\n />\n <mask id=\"path-5-inside-1_1399_27036\" fill=\"white\">\n <path d=\"M202.991 114.544C211.323 114.544 218.077 121.299 218.077 129.63C218.077 132.13 216.051 134.156 213.551 134.156H171.613C169.113 134.156 167.087 132.13 167.087 129.63C167.087 121.299 173.841 114.544 182.173 114.544H202.991ZM192.449 84.7632C198.948 84.7633 204.216 90.0313 204.216 96.5298C204.216 103.028 198.948 108.297 192.449 108.297C185.951 108.297 180.682 103.029 180.682 96.5298C180.682 90.0312 185.951 84.7632 192.449 84.7632Z\" />\n </mask>\n <path\n d=\"M202.991 114.544V110.235V114.544ZM218.077 129.63L222.387 129.63V129.63H218.077ZM171.613 134.156L171.612 138.466H171.613V134.156ZM167.087 129.63H162.777V129.63L167.087 129.63ZM192.449 84.7632L192.45 80.4535H192.449V84.7632ZM204.216 96.5298H208.526V96.5298L204.216 96.5298ZM192.449 108.297V112.607L192.45 112.607L192.449 108.297ZM180.682 96.5298L176.372 96.5298V96.5298H180.682ZM202.991 114.544V118.854C208.943 118.854 213.768 123.679 213.768 129.63H218.077H222.387C222.387 118.919 213.703 110.235 202.991 110.235V114.544ZM218.077 129.63L213.768 129.63C213.768 129.749 213.671 129.846 213.551 129.846V134.156V138.466C218.43 138.466 222.387 134.511 222.387 129.63L218.077 129.63ZM213.551 134.156V129.846H171.613V134.156V138.466H213.551V134.156ZM171.613 134.156L171.613 129.846C171.493 129.846 171.397 129.749 171.397 129.63L167.087 129.63L162.777 129.63C162.777 134.51 166.733 138.465 171.612 138.466L171.613 134.156ZM167.087 129.63H171.397C171.397 123.679 176.222 118.854 182.173 118.854V114.544V110.235C171.461 110.235 162.777 118.919 162.777 129.63H167.087ZM182.173 114.544V118.854H202.991V114.544V110.235H182.173V114.544ZM192.449 84.7632L192.449 89.073C196.568 89.0731 199.906 92.4115 199.906 96.5299L204.216 96.5298L208.526 96.5298C208.526 87.6511 201.328 80.4536 192.45 80.4535L192.449 84.7632ZM204.216 96.5298H199.906C199.906 100.649 196.567 103.988 192.449 103.988L192.449 108.297L192.45 112.607C201.329 112.607 208.526 105.408 208.526 96.5298H204.216ZM192.449 108.297V103.988C188.331 103.988 184.992 100.648 184.992 96.5298H180.682H176.372C176.372 105.409 183.571 112.607 192.449 112.607V108.297ZM180.682 96.5298L184.992 96.5299C184.992 92.4119 188.331 89.073 192.449 89.073V84.7632V80.4535C183.571 80.4535 176.372 87.6506 176.372 96.5298L180.682 96.5298Z\"\n fill=\"#1F5FF2\"\n mask=\"url(#path-5-inside-1_1399_27036)\"\n />\n <path\n d=\"M174.26 110.549C184.883 110.549 193.495 119.161 193.495 129.784C193.495 132.971 190.911 135.555 187.724 135.555H134.25C131.063 135.555 128.479 132.971 128.479 129.784C128.479 119.161 137.091 110.549 147.715 110.549H174.26ZM160.822 72.5704C169.108 72.5704 175.826 79.2881 175.826 87.5743C175.826 95.8604 169.108 102.577 160.822 102.577C152.536 102.577 145.819 95.8603 145.819 87.5743C145.819 79.2882 152.536 72.5706 160.822 72.5704Z\"\n fill=\"#1F5FF2\"\n />\n <path\n d=\"M86.5684 157.628C84.6231 157.628 83.0461 156.051 83.0461 154.105C83.0461 152.16 84.6231 150.583 86.5684 150.583L98.2476 150.583C100.193 150.583 101.77 152.16 101.77 154.105C101.77 156.051 100.193 157.628 98.2476 157.628L86.5684 157.628Z\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"4.30979\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M236.928 27.1808C238.874 27.1808 240.451 28.7579 240.451 30.7032C240.451 32.6486 238.874 34.2256 236.928 34.2256L225.249 34.2256C223.304 34.2256 221.727 32.6486 221.727 30.7032C221.727 28.7579 223.304 27.1808 225.249 27.1808L236.928 27.1808Z\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"4.30979\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n","import React from \"react\";\n\nexport const NoFilesIllustration: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"324\"\n height=\"169\"\n viewBox=\"0 0 324 169\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <rect width=\"324\" height=\"168\" fill=\"white\" />\n <path\n d=\"M176.237 19.4025C181.241 19.4025 185.298 23.4592 185.298 28.463C185.298 33.4667 181.241 37.5226 176.237 37.5226H259.074C264.078 37.5226 268.135 41.5794 268.135 46.5831C268.135 51.587 264.078 55.6437 259.074 55.6437H287.55C292.554 55.6437 296.61 59.7004 296.61 64.7042C296.61 69.7079 292.553 73.7638 287.55 73.7638H262.958C257.954 73.7638 253.897 77.8205 253.897 82.8243C253.897 87.8282 257.954 91.8849 262.958 91.8849H270.724C275.727 91.8849 279.784 95.9416 279.784 100.945C279.784 105.949 275.727 110.005 270.724 110.005H203.419C202.753 110.005 202.103 109.933 201.477 109.797C200.852 109.934 200.201 110.005 199.535 110.005H81.7518C76.7481 110.005 72.6915 105.949 72.6913 100.945C72.6913 95.9416 76.748 91.8849 81.7518 91.8849H31.2733C26.2695 91.8849 22.2128 87.8282 22.2128 82.8243C22.2128 77.8205 26.2695 73.7638 31.2733 73.7638H83.0458C88.0495 73.7638 92.1061 69.7079 92.1063 64.7042C92.1063 59.7004 88.0496 55.6437 83.0458 55.6437H50.6884C45.6845 55.6437 41.6278 51.587 41.6278 46.5831C41.6279 41.5794 45.6846 37.5226 50.6884 37.5226H102.461C97.4571 37.5225 93.4004 33.4667 93.4003 28.463C93.4003 23.4592 97.457 19.4026 102.461 19.4025H176.237ZM292.727 91.8849C297.731 91.8851 301.787 95.9417 301.787 100.945C301.787 105.949 297.731 110.005 292.727 110.005C287.724 110.005 283.667 105.949 283.667 100.945C283.667 95.9416 287.724 91.8849 292.727 91.8849Z\"\n fill=\"#F3F7FF\"\n />\n <path\n d=\"M194.074 71.2153H197.385C203.809 71.2153 209.017 76.423 209.017 82.8471V134.879C209.017 141.303 203.809 146.511 197.385 146.511H99.6413H93.6319C87.2078 146.511 82 141.303 82 134.879V45.7013C82 39.2772 87.2078 34.0695 93.6319 34.0695H129.36C132.518 34.0695 135.539 35.353 137.732 37.6253L145.399 45.5728C147.591 47.8451 150.613 49.1286 153.77 49.1286H182.442C188.866 49.1286 194.074 54.3363 194.074 60.7604V71.2153Z\"\n fill=\"white\"\n />\n <path\n d=\"M99.6413 146.511V82.8471C99.6413 76.423 104.849 71.2153 111.273 71.2153H197.385C203.809 71.2153 209.017 76.423 209.017 82.8471V134.879C209.017 141.303 203.809 146.511 197.385 146.511H93.6319C87.2078 146.511 82 141.303 82 134.879V45.7013C82 39.2772 87.2078 34.0695 93.6319 34.0695H129.36C132.518 34.0695 135.539 35.353 137.732 37.6253L145.399 45.5728C147.591 47.8451 150.613 49.1286 153.77 49.1286H182.442C188.866 49.1286 194.074 54.3363 194.074 60.7604V71.2153\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.87729\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M102.105 57.9441H176.419C181.237 57.9441 185.143 61.8496 185.143 66.6677V70.5808H106.556C102.809 70.581 99.7707 73.6187 99.7706 77.366V144.573H93.381V66.6677C93.381 61.8496 97.2865 57.9441 102.105 57.9441Z\"\n fill=\"#1F5FF2\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"1.93864\"\n />\n <path\n d=\"M152.502 29.9189C153.771 31.1242 153.822 33.13 152.617 34.3989C151.412 35.6678 149.406 35.7193 148.137 34.514L140.519 27.2776C139.25 26.0722 139.199 24.0665 140.404 22.7976C141.609 21.5287 143.615 21.4771 144.884 22.6825L152.502 29.9189Z\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.87729\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M162.714 34.2455C160.964 34.268 159.564 35.7048 159.586 37.4548C159.609 39.2047 161.046 40.6052 162.796 40.5828L173.302 40.4481C175.052 40.4257 176.452 38.9889 176.43 37.2389C176.407 35.4889 174.971 34.0885 173.221 34.1109L162.714 34.2455Z\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.87729\"\n strokeLinejoin=\"round\"\n />\n <circle\n cx=\"217.705\"\n cy=\"86.4126\"\n r=\"25.2024\"\n fill=\"white\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.87729\"\n />\n <path\n d=\"M214.797 73.8114C214.797 72.2054 216.099 70.9034 217.705 70.9034C219.311 70.9034 220.613 72.2054 220.613 73.8114V85.4433C220.613 87.0493 219.311 88.3512 217.705 88.3512C216.099 88.3512 214.797 87.0493 214.797 85.4433V73.8114Z\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.87729\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M214.797 99.0139C214.797 100.62 216.099 101.922 217.705 101.922C219.311 101.922 220.613 100.62 220.613 99.0139C220.613 97.4079 219.311 96.1059 217.705 96.1059C216.099 96.1059 214.797 97.4079 214.797 99.0139Z\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.87729\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n","import React, { useState } from \"react\";\nimport TableRow from \"@mui/material/TableRow\";\nimport TableCell from \"@mui/material/TableCell\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Collapse from \"@mui/material/Collapse\";\nimport Box from \"@mui/material/Box\";\nimport KeyboardArrowDownIcon from \"@mui/icons-material/KeyboardArrowDown\";\nimport KeyboardArrowRightIcon from \"@mui/icons-material/KeyboardArrowRight\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport interface DataTableExpandableRowProps {\n /** Number of data columns — used for the detail row colspan. */\n colSpan: number;\n expandedContent: React.ReactNode;\n children: React.ReactNode;\n expanded?: boolean;\n onToggle?: (expanded: boolean) => void;\n onClick?: () => void;\n sx?: SxProps<Theme>;\n /** When true, hides the built-in left chevron cell. Use when a column drives expansion. */\n hideChevron?: boolean;\n}\n\nexport const DataTableExpandableRow: React.FC<DataTableExpandableRowProps> = ({\n colSpan,\n expandedContent,\n children,\n expanded: controlledExpanded,\n onToggle,\n onClick,\n sx,\n hideChevron = false,\n}) => {\n const [internalExpanded, setInternalExpanded] = useState(false);\n const isExpanded = controlledExpanded ?? internalExpanded;\n\n const handleToggle = (e: React.MouseEvent) => {\n e.stopPropagation();\n const next = !isExpanded;\n setInternalExpanded(next);\n onToggle?.(next);\n };\n\n return (\n <React.Fragment>\n <TableRow\n onClick={onClick}\n sx={{\n cursor: onClick ? \"pointer\" : \"default\",\n \"&:hover\": { bgcolor: \"rgba(31,95,242,.03)\" },\n ...(isExpanded && { \"& .MuiTableCell-root\": { borderBottom: 0 } }),\n ...sx,\n }}\n >\n {!hideChevron && (\n <TableCell\n sx={{ width: 48, py: \"14px\", px: \"8px\", color: \"rgba(21,35,86,.5)\" }}\n >\n <IconButton\n size=\"small\"\n onClick={handleToggle}\n sx={{ color: \"inherit\", width: 28, height: 28 }}\n >\n {isExpanded ? (\n <KeyboardArrowDownIcon fontSize=\"small\" />\n ) : (\n <KeyboardArrowRightIcon fontSize=\"small\" />\n )}\n </IconButton>\n </TableCell>\n )}\n {children}\n </TableRow>\n <TableRow>\n {!hideChevron && (\n <TableCell\n sx={{ p: 0, borderBottom: isExpanded ? undefined : 0, bgcolor: \"#FAFBFD\" }}\n />\n )}\n <TableCell\n colSpan={colSpan}\n sx={{ p: 0, borderBottom: isExpanded ? undefined : 0, bgcolor: \"#FAFBFD\" }}\n >\n <Collapse in={isExpanded} unmountOnExit>\n <Box sx={{ py: 1.5, px: 2 }}>{expandedContent}</Box>\n </Collapse>\n </TableCell>\n </TableRow>\n </React.Fragment>\n );\n};\n","import React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport TablePagination from \"@mui/material/TablePagination\";\n\nexport interface DataTablePaginationProps {\n count: number;\n page: number;\n rowsPerPage: number;\n onPageChange: (page: number) => void;\n onRowsPerPageChange?: (rowsPerPage: number) => void;\n rowsPerPageOptions?: number[];\n}\n\nexport const DataTablePagination: React.FC<DataTablePaginationProps> = ({\n count,\n page,\n rowsPerPage,\n onPageChange,\n onRowsPerPageChange,\n rowsPerPageOptions = [10, 25, 50],\n}) => (\n <Box sx={{ borderTop: \"1px solid rgba(21,35,86,.12)\" }}>\n <TablePagination\n component=\"div\"\n count={count}\n page={page}\n rowsPerPage={rowsPerPage}\n rowsPerPageOptions={rowsPerPageOptions}\n onPageChange={(_, newPage) => onPageChange(newPage)}\n onRowsPerPageChange={(e) => onRowsPerPageChange?.(parseInt(e.target.value, 10))}\n sx={{\n color: \"rgba(21,35,86,.6)\",\n \"& .MuiTablePagination-toolbar\": {\n px: \"20px\",\n minHeight: \"auto\",\n py: \"14px\",\n },\n \"& .MuiTablePagination-selectLabel\": {\n fontSize: \"0.8125rem\",\n color: \"rgba(21,35,86,.6)\",\n my: 0,\n },\n \"& .MuiTablePagination-select\": {\n fontSize: \"0.8125rem\",\n fontWeight: 500,\n color: \"rgba(21,35,86,.87)\",\n },\n \"& .MuiTablePagination-displayedRows\": {\n fontSize: \"0.8125rem\",\n color: \"rgba(21,35,86,.6)\",\n my: 0,\n },\n \"& .MuiTablePagination-actions\": {\n display: \"flex\",\n gap: 0.5,\n ml: 1,\n },\n \"& .MuiTablePagination-actions button\": {\n width: 28,\n height: 28,\n borderRadius: \"50%\",\n color: \"rgba(21,35,86,.6)\",\n \"&:hover\": { bgcolor: \"rgba(31,95,242,.06)\" },\n },\n }}\n />\n </Box>\n);\n","import React from \"react\";\nimport Table from \"@mui/material/Table\";\nimport TableBody from \"@mui/material/TableBody\";\nimport TableCell from \"@mui/material/TableCell\";\nimport TableContainer from \"@mui/material/TableContainer\";\nimport TableHead from \"@mui/material/TableHead\";\nimport TableRow from \"@mui/material/TableRow\";\nimport TableSortLabel from \"@mui/material/TableSortLabel\";\nimport Paper from \"@mui/material/Paper\";\nimport LinearProgress from \"@mui/material/LinearProgress\";\nimport Checkbox from \"@mui/material/Checkbox\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\nimport { EmptyState } from \"../EmptyState\";\nimport { DataTableExpandableRow } from \"./DataTableExpandableRow\";\nimport { DataTablePagination } from \"./DataTablePagination\";\n\nexport type SortDirection = \"asc\" | \"desc\";\n\nexport interface Column<T = Record<string, unknown>> {\n id: string;\n label: string;\n minWidth?: number;\n width?: number | string;\n align?: \"left\" | \"right\" | \"center\";\n sortable?: boolean;\n render?: (value: unknown, row: T, index: number) => React.ReactNode;\n}\n\nexport interface DataTableProps<T = Record<string, unknown>> {\n columns: Column<T>[];\n rows: T[];\n keyField?: string;\n loading?: boolean;\n emptyTitle?: string;\n emptyDescription?: string;\n emptyIcon?: React.ReactNode;\n /** Renders expandable detail content below a row. */\n getExpandedContent?: (row: T) => React.ReactNode;\n /**\n * Controlled set of expanded row keys. When provided together with\n * `getExpandedContent`, the built-in left-side chevron column is hidden —\n * drive expansion from a column's `render` instead.\n */\n expandedKeys?: Set<string>;\n /**\n * Return true for rows that should show a checkbox. When provided a\n * selection column is prepended automatically.\n */\n selectable?: (row: T) => boolean;\n selectedKeys?: Set<string>;\n onSelectionChange?: (keys: Set<string>) => void;\n page?: number;\n rowsPerPage?: number;\n totalCount?: number;\n onPageChange?: (page: number) => void;\n onRowsPerPageChange?: (rowsPerPage: number) => void;\n sortBy?: string;\n sortDirection?: SortDirection;\n onSort?: (columnId: string, direction: SortDirection) => void;\n onRowClick?: (row: T) => void;\n rowsPerPageOptions?: number[];\n stickyHeader?: boolean;\n maxHeight?: number | string;\n sx?: SxProps<Theme>;\n}\n\nexport function DataTable<T = Record<string, unknown>>({\n columns,\n rows,\n keyField = \"id\",\n loading = false,\n emptyTitle = \"No data available\",\n emptyDescription,\n emptyIcon,\n getExpandedContent,\n expandedKeys,\n selectable,\n selectedKeys,\n onSelectionChange,\n page,\n rowsPerPage = 10,\n totalCount,\n onPageChange,\n onRowsPerPageChange,\n sortBy,\n sortDirection = \"asc\",\n onSort,\n onRowClick,\n rowsPerPageOptions = [10, 25, 50],\n stickyHeader = false,\n maxHeight,\n sx,\n}: DataTableProps<T>) {\n const hasPagination =\n onPageChange !== undefined && totalCount !== undefined && page !== undefined;\n\n // Controlled expansion: caller supplies expandedKeys and drives toggles from a column render.\n // In this mode the built-in left chevron column is omitted.\n const useControlledExpand =\n getExpandedContent !== undefined && expandedKeys !== undefined;\n const hasSelectCol = selectable !== undefined;\n\n const selectableKeys = hasSelectCol\n ? rows\n .map((row, i) => ({\n key: String((row as Record<string, unknown>)[keyField] ?? i),\n row,\n }))\n .filter(({ row }) => selectable(row))\n .map(({ key }) => key)\n : [];\n const allSelected =\n selectableKeys.length > 0 && selectableKeys.every((k) => selectedKeys?.has(k));\n const someSelected = selectableKeys.some((k) => selectedKeys?.has(k));\n\n // colspan passed to DataTableExpandableRow = all columns the row owns (no chevron).\n const expandColSpan = columns.length + (hasSelectCol ? 1 : 0);\n // total header/body columns (used for empty-state colspan).\n const totalCols = expandColSpan + (getExpandedContent && !useControlledExpand ? 1 : 0);\n\n const handleSort = (columnId: string) => {\n const newDirection = sortBy === columnId && sortDirection === \"asc\" ? \"desc\" : \"asc\";\n onSort?.(columnId, newDirection);\n };\n\n const renderDataCells = (row: T, rowIndex: number) =>\n columns.map((col) => {\n const value = (row as Record<string, unknown>)[col.id];\n return (\n <TableCell\n key={col.id}\n align={col.align ?? \"left\"}\n sx={{\n py: \"14px\",\n px: \"16px\",\n fontSize: \"0.875rem\",\n color: \"rgba(21,35,86,.87)\",\n }}\n >\n {col.render ? col.render(value, row, rowIndex) : String(value ?? \"\")}\n </TableCell>\n );\n });\n\n const renderSelectCell = (row: T, rowKey: string) => {\n if (!hasSelectCol) return null;\n return (\n <TableCell sx={{ width: 40, py: \"14px\", px: \"8px\" }}>\n {selectable(row) && (\n <Checkbox\n size=\"small\"\n checked={selectedKeys?.has(rowKey) ?? false}\n onChange={() => {\n if (!onSelectionChange) return;\n const next = new Set(selectedKeys ?? []);\n if (next.has(rowKey)) {\n next.delete(rowKey);\n } else {\n next.add(rowKey);\n }\n onSelectionChange(next);\n }}\n onClick={(e) => e.stopPropagation()}\n sx={{\n p: 0,\n color: \"rgba(21,35,86,.4)\",\n \"&.Mui-checked\": { color: \"#1F5FF2\" },\n }}\n />\n )}\n </TableCell>\n );\n };\n\n const headerCellSx = {\n background: \"#FAFBFD\",\n color: \"rgba(21,35,86,.6)\",\n fontWeight: 500,\n fontSize: \"0.75rem\",\n textTransform: \"uppercase\" as const,\n letterSpacing: \"0.6px\",\n py: \"14px\",\n px: \"16px\",\n borderBottom: \"1px solid rgba(21,35,86,.12)\",\n };\n\n return (\n <Paper sx={{ overflow: \"hidden\", borderRadius: 4, ...sx }}>\n {loading && (\n <LinearProgress sx={{ borderRadius: 0, position: \"relative\", zIndex: 1 }} />\n )}\n <TableContainer sx={{ maxHeight }}>\n <Table stickyHeader={stickyHeader} size=\"medium\">\n <TableHead>\n <TableRow>\n {/* Left chevron header — only in auto-expand mode */}\n {getExpandedContent && !useControlledExpand && (\n <TableCell sx={{ ...headerCellSx, width: 48, px: \"8px\" }} />\n )}\n {/* Selection column header — select-all checkbox */}\n {hasSelectCol && (\n <TableCell sx={{ ...headerCellSx, width: 40, px: \"8px\" }}>\n {onSelectionChange && selectableKeys.length > 0 && (\n <Checkbox\n size=\"small\"\n checked={allSelected}\n indeterminate={someSelected && !allSelected}\n onChange={() => {\n const next = new Set(selectedKeys ?? []);\n if (allSelected) {\n selectableKeys.forEach((k) => next.delete(k));\n } else {\n selectableKeys.forEach((k) => next.add(k));\n }\n onSelectionChange(next);\n }}\n sx={{\n p: 0,\n color: \"rgba(21,35,86,.4)\",\n \"&.Mui-checked, &.MuiCheckbox-indeterminate\": {\n color: \"#1F5FF2\",\n },\n }}\n />\n )}\n </TableCell>\n )}\n {columns.map((col) => (\n <TableCell\n key={col.id}\n align={col.align ?? \"left\"}\n style={{ minWidth: col.minWidth, width: col.width }}\n sx={headerCellSx}\n >\n {col.sortable && onSort ? (\n <TableSortLabel\n active={sortBy === col.id}\n direction={sortBy === col.id ? sortDirection : \"asc\"}\n onClick={() => handleSort(col.id)}\n >\n {col.label}\n </TableSortLabel>\n ) : (\n col.label\n )}\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n <TableBody\n sx={{\n \"& .MuiTableRow-root:last-child .MuiTableCell-root\": { borderBottom: 0 },\n }}\n >\n {rows.length === 0 && !loading ? (\n <TableRow>\n <TableCell colSpan={totalCols} sx={{ border: 0, p: 0 }}>\n <EmptyState\n icon={emptyIcon}\n title={emptyTitle}\n description={emptyDescription}\n />\n </TableCell>\n </TableRow>\n ) : (\n rows.map((row, rowIndex) => {\n const rowKey = String(\n (row as Record<string, unknown>)[keyField] ?? rowIndex\n );\n const isSelected = selectedKeys?.has(rowKey) ?? false;\n const selectedSx = isSelected\n ? {\n bgcolor: \"rgba(31,95,242,.06)\",\n \"&:hover\": { bgcolor: \"rgba(31,95,242,.08)\" },\n }\n : {};\n\n if (getExpandedContent) {\n return (\n <DataTableExpandableRow\n key={rowKey}\n colSpan={expandColSpan}\n expandedContent={getExpandedContent(row)}\n expanded={\n useControlledExpand ? expandedKeys?.has(rowKey) : undefined\n }\n hideChevron={useControlledExpand}\n onClick={onRowClick ? () => onRowClick(row) : undefined}\n sx={selectedSx}\n >\n {renderSelectCell(row, rowKey)}\n {renderDataCells(row, rowIndex)}\n </DataTableExpandableRow>\n );\n }\n\n return (\n <TableRow\n key={rowKey}\n onClick={() => onRowClick?.(row)}\n sx={{\n cursor: onRowClick ? \"pointer\" : \"default\",\n \"&:hover\": { bgcolor: \"rgba(31,95,242,.03)\" },\n ...selectedSx,\n }}\n >\n {renderSelectCell(row, rowKey)}\n {renderDataCells(row, rowIndex)}\n </TableRow>\n );\n })\n )}\n </TableBody>\n </Table>\n </TableContainer>\n {hasPagination && (\n <DataTablePagination\n count={totalCount}\n page={page}\n rowsPerPage={rowsPerPage}\n onPageChange={onPageChange}\n onRowsPerPageChange={onRowsPerPageChange}\n rowsPerPageOptions={rowsPerPageOptions}\n />\n )}\n </Paper>\n );\n}\n","import React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport DescriptionIcon from \"@mui/icons-material/Description\";\n\nexport interface DataTableExpandedItemProps {\n label: string;\n icon?: React.ReactNode;\n chip?: React.ReactNode;\n}\n\nexport const DataTableExpandedItem: React.FC<DataTableExpandedItemProps> = ({\n label,\n icon = (\n <DescriptionIcon sx={{ fontSize: 18, color: \"rgba(21,35,86,.4)\", flexShrink: 0 }} />\n ),\n chip,\n}) => (\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 1.5,\n fontSize: \"0.8125rem\",\n color: \"rgba(21,35,86,.87)\",\n width: \"100%\",\n }}\n >\n {icon}\n <Box sx={{ flex: 1 }}>{label}</Box>\n {chip}\n </Box>\n);\n","import React from \"react\";\nimport NotificationsNoneIcon from \"@mui/icons-material/NotificationsNone\";\nimport WbSunnyIcon from \"@mui/icons-material/WbSunny\";\nimport Box from \"@mui/material/Box\";\nimport MuiIconButton from \"@mui/material/IconButton\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport interface AppBarProps {\n appLogo?: React.ReactNode;\n greeting: string;\n userInitials: string;\n hasNotification?: boolean;\n sx?: SxProps<Theme>;\n}\n\nexport const AppBar: React.FC<AppBarProps> = ({\n appLogo,\n greeting,\n userInitials,\n hasNotification = false,\n sx,\n}) => {\n return (\n <Box\n sx={{\n height: 70,\n bgcolor: \"#fff\",\n display: \"flex\",\n alignItems: \"center\",\n px: \"32px\",\n gap: \"16px\",\n borderBottom: \"2px solid #00F0FF\",\n position: \"sticky\",\n top: 0,\n zIndex: 10,\n ...sx,\n }}\n >\n {appLogo && (\n <Box sx={{ display: \"flex\", alignItems: \"center\", flexShrink: 0 }}>{appLogo}</Box>\n )}\n\n <Box\n sx={{\n width: \"1px\",\n height: \"28px\",\n bgcolor: \"rgba(21,35,86,.12)\",\n flexShrink: 0,\n }}\n />\n\n <Box\n sx={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"6px\",\n fontSize: \"14px\",\n fontWeight: 400,\n color: \"rgba(21,35,86,.87)\",\n fontFamily: \"Roboto, sans-serif\",\n }}\n >\n {greeting}\n <WbSunnyIcon sx={{ color: \"#FFE082\", fontSize: \"20px\" }} />\n </Box>\n\n <Box sx={{ flex: 1 }} />\n\n <Box sx={{ position: \"relative\", display: \"inline-flex\" }}>\n <MuiIconButton\n title=\"Notifications\"\n sx={{\n width: 40,\n height: 40,\n color: \"rgba(21,35,86,.56)\",\n \"&:hover\": { bgcolor: \"rgba(21,35,86,.04)\" },\n }}\n >\n <NotificationsNoneIcon />\n </MuiIconButton>\n {hasNotification && (\n <Box\n data-testid=\"notification-dot\"\n sx={{\n position: \"absolute\",\n top: \"10px\",\n right: \"10px\",\n width: \"8px\",\n height: \"8px\",\n borderRadius: \"50%\",\n bgcolor: \"#D32F2F\",\n border: \"2px solid #fff\",\n pointerEvents: \"none\",\n }}\n />\n )}\n </Box>\n\n <Box\n sx={{\n width: 36,\n height: 36,\n borderRadius: \"50%\",\n background: \"linear-gradient(135deg, #1F5FF2, #00A8C0)\",\n color: \"#fff\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontWeight: 500,\n fontSize: \"13px\",\n fontFamily: \"Roboto, sans-serif\",\n flexShrink: 0,\n }}\n >\n {userInitials}\n </Box>\n </Box>\n );\n};\n","import React, { useState } from \"react\";\nimport Drawer from \"@mui/material/Drawer\";\nimport Box from \"@mui/material/Box\";\nimport List from \"@mui/material/List\";\nimport ListItemButton from \"@mui/material/ListItemButton\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport MuiIconButton from \"@mui/material/IconButton\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport Typography from \"@mui/material/Typography\";\nimport Divider from \"@mui/material/Divider\";\nimport FirstPageIcon from \"@mui/icons-material/FirstPage\";\nimport LastPageIcon from \"@mui/icons-material/LastPage\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\nimport type { MenuItemProps } from \"../../molecules/MenuItem\";\n\nexport interface SidebarSection {\n title?: string;\n items: MenuItemProps[];\n}\n\nexport interface SidebarProps {\n sections: SidebarSection[];\n width?: number;\n collapsedWidth?: number;\n logo?: React.ReactNode;\n collapsedLogo?: React.ReactNode;\n title?: string;\n footer?: React.ReactNode;\n open?: boolean;\n variant?: \"permanent\" | \"persistent\" | \"temporary\";\n onClose?: () => void;\n collapsible?: boolean;\n collapsed?: boolean;\n onCollapsedChange?: (collapsed: boolean) => void;\n sx?: SxProps<Theme>;\n}\n\nconst ITEM_SX = {\n height: 44,\n borderRadius: \"100px\",\n mb: \"2px\",\n color: \"#fff\",\n transition: \"background 0.15s\",\n \"&.Mui-selected\": {\n bgcolor: \"#fff\",\n boxShadow:\n \"0 1px 3px 0 rgba(0,0,0,0.12), 0 1px 1px 0 rgba(0,0,0,0.14), 0 2px 1px -1px rgba(0,0,0,0.20)\",\n color: \"#1F5FF2\",\n \"& .MuiListItemIcon-root\": { color: \"#1F5FF2\" },\n \"&:hover\": { bgcolor: \"#fff\" },\n },\n \"&:hover\": { bgcolor: \"rgba(255,255,255,.1)\" },\n};\n\nexport const Sidebar: React.FC<SidebarProps> = ({\n sections,\n width = 190,\n collapsedWidth = 72,\n logo,\n collapsedLogo,\n title,\n footer,\n open = true,\n variant = \"permanent\",\n onClose,\n collapsible = false,\n collapsed: controlledCollapsed,\n onCollapsedChange,\n sx,\n}) => {\n const [internalCollapsed, setInternalCollapsed] = useState(false);\n const isCollapsed = controlledCollapsed ?? internalCollapsed;\n\n const handleToggle = () => {\n const next = !isCollapsed;\n setInternalCollapsed(next);\n onCollapsedChange?.(next);\n };\n\n const currentWidth = collapsible && isCollapsed ? collapsedWidth : width;\n const activeLogo = isCollapsed ? (collapsedLogo ?? logo) : logo;\n\n const renderItem = (item: MenuItemProps) => {\n if (isCollapsed) {\n return (\n <Tooltip key={item.label} title={item.label} placement=\"right\">\n <Box component=\"span\" sx={{ display: \"block\" }}>\n <ListItemButton\n selected={item.selected}\n disabled={item.disabled}\n onClick={item.onClick}\n sx={{ ...ITEM_SX, px: 0, justifyContent: \"center\" }}\n >\n <ListItemIcon\n sx={{ minWidth: 0, color: \"inherit\", justifyContent: \"center\" }}\n >\n {item.icon}\n </ListItemIcon>\n </ListItemButton>\n </Box>\n </Tooltip>\n );\n }\n\n return (\n <ListItemButton\n key={item.label}\n selected={item.selected}\n disabled={item.disabled}\n onClick={item.onClick}\n sx={{ ...ITEM_SX, px: \"14px\", gap: 1.5 }}\n >\n {item.icon && (\n <ListItemIcon sx={{ minWidth: 0, color: \"inherit\" }}>{item.icon}</ListItemIcon>\n )}\n <ListItemText\n primary={item.label}\n slotProps={{\n primary: { fontSize: \"0.875rem\", fontWeight: item.selected ? 500 : 400 },\n }}\n />\n </ListItemButton>\n );\n };\n\n const content = (\n <Box\n sx={{\n width: currentWidth,\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n overflow: \"hidden\",\n color: \"#fff\",\n }}\n >\n {(activeLogo || title || collapsible) && (\n <Box\n sx={{\n height: 70,\n px: isCollapsed ? 0 : \"14px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: isCollapsed ? \"center\" : \"space-between\",\n flexShrink: 0,\n }}\n >\n {!isCollapsed && (\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1.5, minWidth: 0 }}>\n {activeLogo}\n {title && (\n <Typography variant=\"h6\" fontWeight={700} noWrap sx={{ color: \"#fff\" }}>\n {title}\n </Typography>\n )}\n </Box>\n )}\n {isCollapsed && activeLogo && (\n <Box sx={{ display: \"flex\", alignItems: \"center\" }}>{activeLogo}</Box>\n )}\n {collapsible && !isCollapsed && (\n <MuiIconButton\n size=\"small\"\n onClick={handleToggle}\n aria-label=\"Collapse sidebar\"\n sx={{\n flexShrink: 0,\n color: \"#fff\",\n width: 28,\n height: 28,\n borderRadius: \"6px\",\n }}\n >\n <FirstPageIcon />\n </MuiIconButton>\n )}\n </Box>\n )}\n\n {collapsible && isCollapsed && (\n <Box sx={{ display: \"flex\", justifyContent: \"center\", mb: 1 }}>\n <MuiIconButton\n size=\"small\"\n onClick={handleToggle}\n aria-label=\"Expand sidebar\"\n sx={{ color: \"#fff\" }}\n >\n <LastPageIcon />\n </MuiIconButton>\n </Box>\n )}\n\n <Box sx={{ flex: 1, overflowY: \"auto\", px: \"10px\", py: 1 }}>\n {sections.map((section, sectionIndex) => (\n <Box key={section.title ?? section.items.map((i) => i.label).join(\",\")}>\n {sectionIndex > 0 && (\n <Divider sx={{ my: 1, borderColor: \"rgba(255,255,255,.15)\" }} />\n )}\n {section.title && !isCollapsed && (\n <Typography\n variant=\"overline\"\n sx={{\n px: \"14px\",\n py: 0.5,\n display: \"block\",\n color: \"rgba(255,255,255,.6)\",\n fontSize: \"0.6875rem\",\n fontWeight: 600,\n letterSpacing: \"0.08em\",\n }}\n >\n {section.title}\n </Typography>\n )}\n <List dense disablePadding>\n {section.items.map((item) => renderItem(item))}\n </List>\n </Box>\n ))}\n </Box>\n\n {footer && !isCollapsed && (\n <Box\n sx={{\n p: 2,\n borderTop: \"1px solid rgba(255,255,255,.15)\",\n flexShrink: 0,\n color: \"#fff\",\n }}\n >\n {footer}\n </Box>\n )}\n </Box>\n );\n\n return (\n <Drawer\n variant={variant}\n open={open}\n onClose={onClose}\n sx={{\n width: currentWidth,\n flexShrink: 0,\n transition: \"width 0.3s ease-in-out\",\n \"& .MuiDrawer-paper\": {\n width: currentWidth,\n boxSizing: \"border-box\",\n overflowX: \"hidden\",\n transition: \"width 0.3s ease-in-out\",\n background: \"linear-gradient(180deg, #1649DF 0%, #152356 100%)\",\n border: \"none\",\n },\n ...sx,\n }}\n >\n {content}\n </Drawer>\n );\n};\n","import React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport MuiIconButton from \"@mui/material/IconButton\";\nimport LogoutIcon from \"@mui/icons-material/Logout\";\nimport { Avatar } from \"../../atoms/Avatar\";\n\nexport interface SidebarUserFooterProps {\n name: string;\n email: string;\n onSignOut?: () => void;\n}\n\nexport const SidebarUserFooter: React.FC<SidebarUserFooterProps> = ({\n name,\n email,\n onSignOut,\n}) => (\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 1.25,\n px: 1.25,\n py: 1,\n borderRadius: \"12px\",\n }}\n >\n <Avatar\n name={name}\n sx={{ width: 32, height: 32, fontSize: \"0.75rem\", flexShrink: 0 }}\n />\n <Box sx={{ minWidth: 0, flex: 1 }}>\n <Box\n sx={{\n fontSize: \"0.8125rem\",\n fontWeight: 500,\n lineHeight: 1.2,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n }}\n >\n {name}\n </Box>\n <Box\n sx={{\n fontSize: \"0.6875rem\",\n opacity: 0.7,\n lineHeight: 1.2,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n }}\n >\n {email}\n </Box>\n </Box>\n {onSignOut && (\n <MuiIconButton\n size=\"small\"\n title=\"Sign out\"\n onClick={onSignOut}\n sx={{\n color: \"inherit\",\n width: 30,\n height: 30,\n borderRadius: \"8px\",\n opacity: 0.7,\n flexShrink: 0,\n \"&:hover\": { opacity: 1, bgcolor: \"rgba(255,255,255,.1)\" },\n }}\n >\n <LogoutIcon sx={{ fontSize: 18 }} />\n </MuiIconButton>\n )}\n </Box>\n);\n","import React from \"react\";\n\nexport function AlchemyIcon({ style, ...props }: React.SVGProps<SVGSVGElement>) {\n return (\n <svg\n viewBox=\"0 0 66 78\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ height: 32, width: 32, display: \"block\", flexShrink: 0, ...style }}\n aria-label=\"Alchemy\"\n {...props}\n >\n <path\n d=\"M64.4357 28.2977L44.2898 2.80381C42.8879 1.03845 40.7591 0 38.4745 0C36.1899 0 37.2284 0.103845 36.6053 0.259612L22.7939 3.89418C21.392 4.25764 20.1459 4.98455 19.2113 6.07492L1.92113 25.0785C0.674991 26.4285 0 28.1939 0 30.0631V53.2204C0 55.505 1.09037 57.6858 2.85573 59.0877L25.0266 76.1701C26.3247 77.1567 27.9342 77.7278 29.5438 77.7278C31.1534 77.7278 31.9842 77.4163 33.0226 76.8451L62.0992 61.2684C64.4876 59.9704 65.9934 57.4781 65.9934 54.7781V32.9188C65.9934 31.2573 65.4222 29.6477 64.3838 28.3496H64.4357V28.2977ZM61.1646 54.7262C61.1646 55.6608 60.6453 56.4916 59.8665 56.9069L30.79 72.4837C30.4265 72.6913 30.0111 72.7952 29.5958 72.7952C29.1804 72.7952 28.5054 72.6394 28.09 72.276L5.91915 55.1935C5.29608 54.7262 4.93263 53.9993 4.93263 53.2204V30.0631C4.93263 29.44 5.14032 28.8688 5.5557 28.4015L22.8459 9.39795C23.1574 9.0345 23.5728 8.77488 24.0401 8.67104L37.8514 5.03647C38.0591 5.03647 38.2668 4.93263 38.4745 4.93263C39.2014 4.93263 39.9283 5.29608 40.4475 5.86723L60.5934 31.3611C60.9569 31.7765 61.1126 32.3476 61.1126 32.9188V54.7781H61.1646V54.7262Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M20.0422 45.7956L29.9074 65.3703L41.2784 48.5994L20.0422 45.7956Z\"\n fill=\"#1649DF\"\n />\n <path d=\"M9.9173 51.9744L22.4306 61.6319L9.9173 38.4745V51.9744Z\" fill=\"#5BA2FF\" />\n <path\n d=\"M37.3323 63.3453L53.6878 54.5704L46.3148 50.0532L37.3323 63.3453Z\"\n fill=\"#1649DF\"\n />\n <path\n d=\"M19.3671 20.6133L10.5922 30.3228L14.7979 36.7611L19.3671 20.6133Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M25.9614 15.8883L19.6269 37.9034L38.319 28.4535L25.9614 15.8883Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M56.1802 50.2609V33.7496L42.7323 16.8229L47.8726 45.1206L56.1802 50.2609Z\"\n fill=\"#1649DF\"\n />\n <path\n d=\"M42.5765 43.7186L40.6035 32.8668L23.9883 41.2782L42.5765 43.7186Z\"\n fill=\"#5BA2FF\"\n />\n <path\n d=\"M29.4922 12.3576L38.5786 21.5998L36.5536 10.5403L29.4922 12.3576Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M60.5935 31.361L40.4476 5.8671C39.9803 5.24403 39.2533 4.9325 38.4745 4.9325C37.6957 4.9325 38.0591 4.9325 37.8514 5.03634L24.0401 8.67091C23.5728 8.77475 23.1574 9.03436 22.8459 9.39782L5.55572 28.4014C5.14034 28.8687 4.93265 29.4399 4.93265 30.0629V53.2203C4.93265 53.9992 5.2961 54.7261 5.91917 55.1934L28.09 72.2758C28.5573 72.6393 29.0766 72.7951 29.5958 72.7951C30.115 72.7951 30.4265 72.6912 30.79 72.4835L59.8665 56.9068C60.6973 56.4914 61.1646 55.6088 61.1646 54.7261V32.8667C61.1646 32.2956 60.9569 31.7764 60.6454 31.3091H60.5935V31.361ZM9.9172 51.9742V38.4224L22.4305 61.5798L9.9172 51.9742ZM36.5534 10.5401L38.5784 21.5996L29.4919 12.3574L36.5534 10.4882V10.5401ZM38.3187 28.4533L19.6267 37.9032L25.9093 15.8881L38.2668 28.5053L38.3187 28.4533ZM40.6033 32.8667L42.5245 43.7185L23.9882 41.2782L40.6033 32.8667ZM19.3671 20.6131L14.746 36.7609L10.5403 30.3225L19.3671 20.6131ZM20.0421 45.7954L41.2783 48.5992L29.9073 65.3702L20.0421 45.7954ZM46.3148 50.0531L53.6359 54.6222L37.2803 63.3452L46.2629 50.0531H46.3148ZM56.18 50.2607L47.8725 45.1204L42.7322 16.8227L56.1281 33.8013V50.3127H56.18V50.2607Z\"\n fill=\"#152356\"\n />\n </svg>\n );\n}\n\nexport function AlchemyLogo({ style, ...props }: React.SVGProps<SVGSVGElement>) {\n return (\n <svg\n viewBox=\"0 0 138 38\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ height: 28, display: \"block\", maxWidth: \"100%\", ...style }}\n aria-label=\"Alchemy\"\n {...props}\n >\n <g clipPath=\"url(#alchemylogo-clip)\">\n <path\n d=\"M50.2562 15.3223H40.562V17.8016H48.6942V19.3388H40.562C40.1157 19.3388 39.7438 19.4876 39.4463 19.7851C39.124 20.0826 38.9752 20.4793 38.9752 20.9256V24.4463C38.9752 24.9173 39.124 25.2892 39.4463 25.5868C39.7686 25.8843 40.1405 26.0331 40.562 26.0331H50.2562C50.7025 26.0331 51.0744 25.8843 51.3719 25.562C51.6942 25.2645 51.843 24.8678 51.843 24.4215V16.8843C51.843 16.438 51.6942 16.0413 51.3719 15.7438C51.0496 15.4463 50.6777 15.2727 50.2562 15.2727V15.3223ZM48.6942 23.5785H42.0992V21.8182H48.6942V23.5785Z\"\n fill=\"#152356\"\n />\n <path d=\"M57.6199 10.7355H54.4711V26.0578H57.6199V10.7355Z\" fill=\"#152356\" />\n <path\n d=\"M60.719 15.7934C60.3967 16.0909 60.2479 16.4876 60.2479 16.9339V24.4711C60.2479 24.9421 60.3967 25.314 60.719 25.6116C61.0413 25.9091 61.4132 26.0578 61.8347 26.0578H73.1157V23.0082H63.3719V18.3719H73.1157V15.3223H61.8347C61.3884 15.3223 61.0165 15.4711 60.719 15.7686V15.7934Z\"\n fill=\"#152356\"\n />\n <path\n d=\"M86.5042 15.3223H78.5951V10.7355H75.4463V26.0578H78.5951V18.3719H84.967V26.0578H88.1158V16.9339C88.1158 16.4876 87.967 16.1157 87.6447 15.8182C87.3472 15.4959 86.9505 15.3471 86.5042 15.3471V15.3223Z\"\n fill=\"#152356\"\n />\n <path\n d=\"M101.876 15.3223H91.9091C91.4629 15.3223 91.091 15.4711 90.7934 15.7934C90.4711 16.0909 90.3224 16.4876 90.3224 16.9339V24.4711C90.3224 24.9173 90.4711 25.314 90.7934 25.6116C91.1158 25.9091 91.4877 26.0826 91.9091 26.0826H103.364V23.5785H93.4463V22.0661H101.876C102.322 22.0661 102.694 21.9173 102.992 21.595C103.314 21.2975 103.463 20.9008 103.463 20.4545V16.9339C103.463 16.4876 103.314 16.0909 102.992 15.7934C102.669 15.4959 102.298 15.3223 101.876 15.3223ZM100.314 19.6116H93.4463V17.8264H100.314V19.6116Z\"\n fill=\"#152356\"\n />\n <path\n d=\"M121.19 15.3223H107.033C106.587 15.3223 106.19 15.4711 105.893 15.7934C105.595 16.1157 105.421 16.4876 105.421 16.9339V26.0578H108.57V18.3719H112.537V26.0578H115.686V18.3719H119.628V26.0578H122.777V16.9339C122.777 16.4876 122.628 16.0909 122.306 15.7934C121.983 15.4959 121.612 15.3223 121.165 15.3223H121.19Z\"\n fill=\"#152356\"\n />\n <path\n d=\"M134.826 15.3223V19.562H127.736V15.3223H124.587V20.4545C124.587 20.9008 124.736 21.2975 125.058 21.595C125.38 21.8925 125.752 22.0661 126.198 22.0661H134.851V23.6033H125.207V26.0826H136.413C136.86 26.0826 137.231 25.9339 137.529 25.6116C137.851 25.314 138 24.9173 138 24.4711V15.3471H134.826V15.3223Z\"\n fill=\"#152356\"\n />\n <path\n d=\"M30.7686 13.5124L21.1488 1.33884C20.4793 0.495868 19.4628 0 18.3719 0C17.281 0 17.7769 0.0495868 17.4793 0.123967L10.8843 1.8595C10.2149 2.03306 9.61983 2.38017 9.17355 2.90083L0.917355 11.9752C0.322314 12.6198 0 13.4628 0 14.3554V25.4132C0 26.5041 0.520661 27.5455 1.36364 28.2149L11.9504 36.3719C12.5702 36.843 13.3388 37.1157 14.1074 37.1157C14.876 37.1157 15.2727 36.9669 15.7686 36.6942L29.6529 29.2562C30.7934 28.6364 31.5124 27.4463 31.5124 26.157V15.719C31.5124 14.9256 31.2397 14.157 30.7438 13.5372H30.7686V13.5124ZM29.2066 26.1322C29.2066 26.5785 28.9587 26.9752 28.5868 27.1736L14.7025 34.6116C14.5289 34.7107 14.3306 34.7603 14.1322 34.7603C13.9339 34.7603 13.6116 34.686 13.4132 34.5124L2.82645 26.3554C2.52893 26.1322 2.35537 25.7851 2.35537 25.4132V14.3554C2.35537 14.0579 2.45455 13.7851 2.65289 13.562L10.9091 4.4876C11.0579 4.31405 11.2562 4.19008 11.4793 4.1405L18.0744 2.40496C18.1736 2.40496 18.2727 2.35537 18.3719 2.35537C18.719 2.35537 19.0661 2.52893 19.3141 2.80165L28.9339 14.9752C29.1074 15.1736 29.1818 15.4463 29.1818 15.719V26.157H29.2066V26.1322Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M9.5703 21.8678L14.281 31.2149L19.7108 23.2066L9.5703 21.8678Z\"\n fill=\"#1649DF\"\n />\n <path\n d=\"M4.7356 24.8182L10.7108 29.4298L4.7356 18.3719V24.8182Z\"\n fill=\"#5BA2FF\"\n />\n <path\n d=\"M17.8265 30.2479L25.6364 26.0579L22.1157 23.9008L17.8265 30.2479Z\"\n fill=\"#1649DF\"\n />\n <path\n d=\"M9.24794 9.84298L5.05786 14.4793L7.06613 17.5537L9.24794 9.84298Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M12.3968 7.58676L9.372 18.0992L18.2976 13.5868L12.3968 7.58676Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M26.8266 24V16.1157L20.4051 8.03306L22.8596 21.5455L26.8266 24Z\"\n fill=\"#1649DF\"\n />\n <path\n d=\"M20.3307 20.876L19.3885 15.6942L11.4546 19.7107L20.3307 20.876Z\"\n fill=\"#5BA2FF\"\n />\n <path\n d=\"M14.0828 5.90082L18.4216 10.314L17.4547 5.03305L14.0828 5.90082Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M28.9339 14.9752L19.3141 2.80165C19.0909 2.50413 18.7438 2.35537 18.3719 2.35537C18 2.35537 18.1736 2.35537 18.0744 2.40496L11.4793 4.14049C11.2562 4.19008 11.0579 4.31405 10.9091 4.4876L2.65289 13.562C2.45455 13.7851 2.35537 14.0579 2.35537 14.3554V25.4132C2.35537 25.7851 2.52893 26.1322 2.82645 26.3554L13.4132 34.5124C13.6364 34.686 13.8843 34.7603 14.1322 34.7603C14.3802 34.7603 14.5289 34.7107 14.7025 34.6116L28.5868 27.1736C28.9835 26.9752 29.2066 26.5537 29.2066 26.1322V15.6942C29.2066 15.4215 29.1074 15.1736 28.9587 14.9504H28.9339V14.9752ZM4.73554 24.8182V18.3471L10.7107 29.405L4.73554 24.8182ZM17.4545 5.03306L18.4215 10.314L14.0826 5.90083L17.4545 5.00826V5.03306ZM18.2975 13.5868L9.3719 18.0992L12.3719 7.58678L18.2727 13.6116L18.2975 13.5868ZM19.3884 15.6942L20.3058 20.876L11.4545 19.7107L19.3884 15.6942ZM9.24794 9.84297L7.04132 17.5537L5.03306 14.4793L9.24794 9.84297ZM9.57025 21.8678L19.7107 23.2066L14.281 31.2149L9.57025 21.8678ZM22.1157 23.9008L25.6116 26.0826L17.8017 30.2479L22.0909 23.9008H22.1157ZM26.8265 24L22.8595 21.5455L20.405 8.03306L26.8017 16.1405V24.0248H26.8265V24Z\"\n fill=\"#152356\"\n />\n <path\n d=\"M50.2562 15.3223H40.562V17.8016H48.6942V19.3388H40.562C40.1157 19.3388 39.7438 19.4876 39.4463 19.7851C39.124 20.0826 38.9752 20.4793 38.9752 20.9256V24.4463C38.9752 24.9173 39.124 25.2892 39.4463 25.5868C39.7686 25.8843 40.1405 26.0331 40.562 26.0331H50.2562C50.7025 26.0331 51.0744 25.8843 51.3719 25.562C51.6942 25.2645 51.843 24.8678 51.843 24.4215V16.8843C51.843 16.438 51.6942 16.0413 51.3719 15.7438C51.0496 15.4463 50.6777 15.2727 50.2562 15.2727V15.3223ZM48.6942 23.5785H42.0992V21.8182H48.6942V23.5785Z\"\n fill=\"white\"\n />\n <path d=\"M57.6199 10.7355H54.4711V26.0578H57.6199V10.7355Z\" fill=\"white\" />\n <path\n d=\"M60.719 15.7934C60.3967 16.0909 60.2479 16.4876 60.2479 16.9339V24.4711C60.2479 24.9421 60.3967 25.314 60.719 25.6116C61.0413 25.9091 61.4132 26.0578 61.8347 26.0578H73.1157V23.0082H63.3719V18.3719H73.1157V15.3223H61.8347C61.3884 15.3223 61.0165 15.4711 60.719 15.7686V15.7934Z\"\n fill=\"white\"\n />\n <path\n d=\"M86.5042 15.3223H78.5951V10.7355H75.4463V26.0578H78.5951V18.3719H84.967V26.0578H88.1158V16.9339C88.1158 16.4876 87.967 16.1157 87.6447 15.8182C87.3472 15.4959 86.9505 15.3471 86.5042 15.3471V15.3223Z\"\n fill=\"white\"\n />\n <path\n d=\"M101.876 15.3223H91.9091C91.4629 15.3223 91.091 15.4711 90.7934 15.7934C90.4711 16.0909 90.3224 16.4876 90.3224 16.9339V24.4711C90.3224 24.9173 90.4711 25.314 90.7934 25.6116C91.1158 25.9091 91.4877 26.0826 91.9091 26.0826H103.364V23.5785H93.4463V22.0661H101.876C102.322 22.0661 102.694 21.9173 102.992 21.595C103.314 21.2975 103.463 20.9008 103.463 20.4545V16.9339C103.463 16.4876 103.314 16.0909 102.992 15.7934C102.669 15.4959 102.298 15.3223 101.876 15.3223ZM100.314 19.6116H93.4463V17.8264H100.314V19.6116Z\"\n fill=\"white\"\n />\n <path\n d=\"M121.19 15.3223H107.033C106.587 15.3223 106.19 15.4711 105.893 15.7934C105.595 16.1157 105.421 16.4876 105.421 16.9339V26.0578H108.57V18.3719H112.537V26.0578H115.686V18.3719H119.628V26.0578H122.777V16.9339C122.777 16.4876 122.628 16.0909 122.306 15.7934C121.983 15.4959 121.612 15.3223 121.165 15.3223H121.19Z\"\n fill=\"white\"\n />\n <path\n d=\"M134.826 15.3223V19.562H127.736V15.3223H124.587V20.4545C124.587 20.9008 124.736 21.2975 125.058 21.595C125.38 21.8925 125.752 22.0661 126.198 22.0661H134.851V23.6033H125.207V26.0826H136.413C136.86 26.0826 137.231 25.9339 137.529 25.6116C137.851 25.314 138 24.9173 138 24.4711V15.3471H134.826V15.3223Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <clipPath id=\"alchemylogo-clip\">\n <rect width=\"138\" height=\"37.1157\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n}\n\nexport function AlchemyLogoWhite({ style, ...props }: React.SVGProps<SVGSVGElement>) {\n return (\n <svg\n viewBox=\"0 0 289 78\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ height: 28, display: \"block\", maxWidth: \"100%\", ...style }}\n aria-label=\"Alchemy\"\n {...props}\n >\n <g clipPath=\"url(#alchemylogowhite-clip)\">\n <path\n d=\"M105.247 32.088H84.945V37.2802H101.976V40.4994H84.945C84.0104 40.4994 83.2315 40.8109 82.6085 41.434C81.9335 42.0571 81.6219 42.8878 81.6219 43.8224V51.1954C81.6219 52.1819 81.9335 52.9608 82.6085 53.5838C83.2835 54.2069 84.0623 54.5185 84.945 54.5185H105.247C106.181 54.5185 106.96 54.2069 107.583 53.5319C108.258 52.9089 108.57 52.0781 108.57 51.1435V35.3591C108.57 34.4245 108.258 33.5937 107.583 32.9707C106.908 32.3476 106.129 31.9841 105.247 31.9841V32.088ZM101.976 49.3781H88.1642V45.6916H101.976V49.3781Z\"\n fill=\"white\"\n />\n <path d=\"M120.668 22.4824H114.073V54.5704H120.668V22.4824Z\" fill=\"white\" />\n <path\n d=\"M127.158 33.0745C126.483 33.6976 126.171 34.5284 126.171 35.463V51.2474C126.171 52.2339 126.483 53.0127 127.158 53.6358C127.833 54.2589 128.612 54.5704 129.494 54.5704H153.119V48.184H132.714V38.4745H153.119V32.088H129.494C128.56 32.088 127.781 32.3995 127.158 33.0226V33.0745Z\"\n fill=\"white\"\n />\n <path\n d=\"M181.157 32.088H164.594V22.4824H158V54.5704H164.594V38.4745H177.938V54.5704H184.532V35.463C184.532 34.5284 184.221 33.7495 183.546 33.1265C182.923 32.4515 182.092 32.1399 181.157 32.1399V32.088Z\"\n fill=\"white\"\n />\n <path\n d=\"M213.349 32.088H192.476C191.542 32.088 190.763 32.3995 190.14 33.0745C189.465 33.6976 189.153 34.5284 189.153 35.463V51.2474C189.153 52.182 189.465 53.0127 190.14 53.6358C190.815 54.2589 191.594 54.6223 192.476 54.6223H216.464V49.3782H195.695V46.2109H213.349C214.284 46.2109 215.063 45.8994 215.686 45.2244C216.361 44.6013 216.672 43.7706 216.672 42.8359V35.463C216.672 34.5284 216.361 33.6976 215.686 33.0745C215.011 32.4515 214.232 32.088 213.349 32.088ZM210.078 41.0706H195.695V37.3322H210.078V41.0706Z\"\n fill=\"white\"\n />\n <path\n d=\"M253.797 32.088H224.149C223.214 32.088 222.384 32.3995 221.76 33.0745C221.137 33.7495 220.774 34.5284 220.774 35.463V54.5704H227.368V38.4745H235.676V54.5704H242.27V38.4745H250.525V54.5704H257.12V35.463C257.12 34.5284 256.808 33.6976 256.133 33.0745C255.458 32.4515 254.679 32.088 253.745 32.088H253.797Z\"\n fill=\"white\"\n />\n <path\n d=\"M282.354 32.088V40.9667H267.504V32.088H260.91V42.8359C260.91 43.7706 261.221 44.6013 261.896 45.2244C262.571 45.8474 263.35 46.2109 264.285 46.2109H282.406V49.4301H262.208V54.6223H285.677C286.612 54.6223 287.39 54.3108 288.013 53.6358C288.688 53.0127 289 52.182 289 51.2474V32.1399H282.354V32.088Z\"\n fill=\"white\"\n />\n <path\n d=\"M64.4357 28.2977L44.2898 2.80381C42.8879 1.03845 40.7591 0 38.4745 0C36.1899 0 37.2284 0.103845 36.6053 0.259612L22.7939 3.89418C21.392 4.25764 20.1459 4.98455 19.2113 6.07492L1.92113 25.0785C0.674991 26.4285 0 28.1939 0 30.0631V53.2204C0 55.505 1.09037 57.6858 2.85573 59.0877L25.0266 76.1701C26.3247 77.1567 27.9342 77.7278 29.5438 77.7278C31.1534 77.7278 31.9842 77.4163 33.0226 76.8451L62.0992 61.2684C64.4876 59.9704 65.9934 57.4781 65.9934 54.7781V32.9188C65.9934 31.2573 65.4222 29.6477 64.3838 28.3496H64.4357V28.2977ZM61.1646 54.7262C61.1646 55.6608 60.6453 56.4916 59.8665 56.9069L30.79 72.4837C30.4265 72.6913 30.0111 72.7952 29.5958 72.7952C29.1804 72.7952 28.5054 72.6394 28.09 72.276L5.91915 55.1935C5.29608 54.7262 4.93263 53.9993 4.93263 53.2204V30.0631C4.93263 29.44 5.14032 28.8688 5.5557 28.4015L22.8459 9.39795C23.1574 9.0345 23.5728 8.77488 24.0401 8.67104L37.8514 5.03647C38.0591 5.03647 38.2668 4.93263 38.4745 4.93263C39.2014 4.93263 39.9283 5.29608 40.4475 5.86723L60.5934 31.3611C60.9569 31.7765 61.1126 32.3476 61.1126 32.9188V54.7781H61.1646V54.7262Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M20.0422 45.7956L29.9074 65.3703L41.2784 48.5994L20.0422 45.7956Z\"\n fill=\"#1649DF\"\n />\n <path\n d=\"M9.9173 51.9744L22.4306 61.6319L9.9173 38.4745V51.9744Z\"\n fill=\"#5BA2FF\"\n />\n <path\n d=\"M37.3323 63.3453L53.6878 54.5704L46.3148 50.0532L37.3323 63.3453Z\"\n fill=\"#1649DF\"\n />\n <path\n d=\"M19.3671 20.6133L10.5922 30.3228L14.7979 36.7611L19.3671 20.6133Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M25.9614 15.8883L19.6269 37.9034L38.319 28.4535L25.9614 15.8883Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M56.1802 50.2609V33.7496L42.7323 16.8229L47.8726 45.1206L56.1802 50.2609Z\"\n fill=\"#1649DF\"\n />\n <path\n d=\"M42.5765 43.7186L40.6035 32.8668L23.9883 41.2782L42.5765 43.7186Z\"\n fill=\"#5BA2FF\"\n />\n <path\n d=\"M29.4922 12.3576L38.5786 21.5998L36.5536 10.5403L29.4922 12.3576Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M60.5935 31.361L40.4476 5.8671C39.9803 5.24403 39.2533 4.9325 38.4745 4.9325C37.6957 4.9325 38.0591 4.9325 37.8514 5.03634L24.0401 8.67091C23.5728 8.77475 23.1574 9.03436 22.8459 9.39782L5.55572 28.4014C5.14034 28.8687 4.93265 29.4399 4.93265 30.0629V53.2203C4.93265 53.9992 5.2961 54.7261 5.91917 55.1934L28.09 72.2758C28.5573 72.6393 29.0766 72.7951 29.5958 72.7951C30.115 72.7951 30.4265 72.6912 30.79 72.4835L59.8665 56.9068C60.6973 56.4914 61.1646 55.6088 61.1646 54.7261V32.8667C61.1646 32.2956 60.9569 31.7764 60.6454 31.3091H60.5935V31.361ZM9.9172 51.9742V38.4224L22.4305 61.5798L9.9172 51.9742ZM36.5534 10.5401L38.5784 21.5996L29.4919 12.3574L36.5534 10.4882V10.5401ZM38.3187 28.4533L19.6267 37.9032L25.9093 15.8881L38.2668 28.5053L38.3187 28.4533ZM40.6033 32.8667L42.5245 43.7185L23.9882 41.2782L40.6033 32.8667ZM19.3671 20.6131L14.746 36.7609L10.5403 30.3225L19.3671 20.6131ZM20.0421 45.7954L41.2783 48.5992L29.9073 65.3702L20.0421 45.7954ZM46.3148 50.0531L53.6359 54.6222L37.2803 63.3452L46.2629 50.0531H46.3148ZM56.18 50.2607L47.8725 45.1204L42.7322 16.8227L56.1281 33.8013V50.3127H56.18V50.2607Z\"\n fill=\"#152356\"\n />\n </g>\n <defs>\n <clipPath id=\"alchemylogowhite-clip\">\n <rect width=\"289\" height=\"77.7278\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n}\n","import React from \"react\";\nimport MuiDialog, { type DialogProps as MuiDialogProps } from \"@mui/material/Dialog\";\nimport DialogTitle from \"@mui/material/DialogTitle\";\nimport DialogContent from \"@mui/material/DialogContent\";\nimport DialogActions from \"@mui/material/DialogActions\";\nimport Typography from \"@mui/material/Typography\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\nimport Box from \"@mui/material/Box\";\n\nexport interface DialogProps extends Omit<MuiDialogProps, \"title\"> {\n title?: string;\n subtitle?: string;\n footer?: React.ReactNode;\n loading?: boolean;\n}\n\nexport const Dialog = React.forwardRef<HTMLDivElement, DialogProps>(\n ({ title, subtitle, children, footer, loading = false, ...props }, ref) => {\n return (\n <MuiDialog ref={ref} {...props}>\n {title && (\n <DialogTitle>\n {title}\n {subtitle && (\n <Typography variant=\"body2\" color=\"text.secondary\" sx={{ mt: 0.5 }}>\n {subtitle}\n </Typography>\n )}\n </DialogTitle>\n )}\n <DialogContent>\n {loading ? (\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n minHeight={120}\n >\n <CircularProgress />\n </Box>\n ) : (\n children\n )}\n </DialogContent>\n {footer && <DialogActions>{footer}</DialogActions>}\n </MuiDialog>\n );\n }\n);\n\nDialog.displayName = \"Dialog\";\n","import React from \"react\";\nimport MuiStepper from \"@mui/material/Stepper\";\nimport Step from \"@mui/material/Step\";\nimport StepLabel from \"@mui/material/StepLabel\";\nimport StepContent from \"@mui/material/StepContent\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport { Button } from \"../../atoms/Button\";\n\nexport interface StepItem {\n label: string;\n description?: string;\n content?: React.ReactNode;\n optional?: boolean;\n}\n\nexport interface StepperProps {\n steps: StepItem[];\n activeStep?: number;\n orientation?: \"horizontal\" | \"vertical\";\n alternativeLabel?: boolean;\n showNavigation?: boolean;\n onNext?: (nextStep: number) => void;\n onBack?: (prevStep: number) => void;\n onComplete?: () => void;\n}\n\nexport const Stepper = React.forwardRef<HTMLDivElement, StepperProps>(\n (\n {\n steps,\n activeStep = 0,\n orientation = \"horizontal\",\n alternativeLabel = false,\n showNavigation = true,\n onNext,\n onBack,\n onComplete,\n },\n ref\n ) => {\n const isLast = activeStep === steps.length - 1;\n const activeStepData = steps[activeStep];\n\n return (\n <Box ref={ref}>\n <MuiStepper\n activeStep={activeStep}\n orientation={orientation}\n alternativeLabel={alternativeLabel}\n >\n {steps.map((step, index) => (\n <Step key={index}>\n <StepLabel\n optional={\n step.optional ? (\n <Typography variant=\"caption\">Optional</Typography>\n ) : undefined\n }\n >\n {step.label}\n </StepLabel>\n {orientation === \"vertical\" && (\n <StepContent>\n {step.description && (\n <Typography variant=\"body2\" color=\"text.secondary\" sx={{ mb: 1 }}>\n {step.description}\n </Typography>\n )}\n {step.content}\n </StepContent>\n )}\n </Step>\n ))}\n </MuiStepper>\n\n {orientation === \"horizontal\" && activeStepData && (\n <Box sx={{ mt: 2 }}>\n {activeStepData.description && (\n <Typography variant=\"body2\" color=\"text.secondary\">\n {activeStepData.description}\n </Typography>\n )}\n {activeStepData.content && <Box sx={{ mt: 1 }}>{activeStepData.content}</Box>}\n </Box>\n )}\n\n {showNavigation && (\n <Box sx={{ display: \"flex\", gap: 1, mt: 2 }}>\n <Button\n variant=\"outlined\"\n disabled={activeStep === 0}\n onClick={() => onBack?.(activeStep - 1)}\n >\n Back\n </Button>\n {isLast ? (\n <Button variant=\"contained\" onClick={() => onComplete?.()}>\n Finish\n </Button>\n ) : (\n <Button variant=\"contained\" onClick={() => onNext?.(activeStep + 1)}>\n Next\n </Button>\n )}\n </Box>\n )}\n </Box>\n );\n }\n);\n\nStepper.displayName = \"Stepper\";\n","import type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport const textFieldSx: SxProps<Theme> = {\n \"& .MuiInputBase-input\": {\n fontSize: \"14px\",\n lineHeight: \"20px\",\n cursor: \"pointer\",\n },\n \"& .MuiInputAdornment-root .MuiSvgIcon-root\": {\n color: \"#9CA3AF\",\n fontSize: \"20px\",\n },\n};\n\nexport const popoverContentSx: SxProps<Theme> = {\n userSelect: \"none\",\n p: \"32px\",\n gap: \"48px\",\n borderRadius: \"16px\",\n backgroundColor: \"#FFFFFF\",\n position: \"relative\",\n};\n\nexport const popoverPaperSx: SxProps<Theme> = {\n borderRadius: \"16px\",\n border: \"1px solid #E5E7EB\",\n boxShadow: \"0px 24px 48px rgba(17, 24, 39, 0.10)\",\n overflow: \"visible\",\n};\n\nexport const monthContainerSx: SxProps<Theme> = {\n minWidth: \"300px\",\n flex: \"1 1 0\",\n};\n\nexport const monthTitleSx: SxProps<Theme> = {\n height: \"40px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n marginBottom: \"24px\",\n fontWeight: 500,\n color: \"#111827\",\n letterSpacing: \"-0.01em\",\n};\n\nexport const weekHeaderRowSx: SxProps<Theme> = {\n display: \"grid\",\n gridTemplateColumns: \"repeat(7, minmax(0, 1fr))\",\n gap: 0,\n};\n\nexport const weekHeaderCellSx: SxProps<Theme> = {\n height: \"48px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontSize: \"14px\",\n lineHeight: \"20px\",\n fontWeight: 500,\n color: \"#6B7280\",\n};\n\nexport const daysGridSx: SxProps<Theme> = {\n display: \"grid\",\n gridTemplateColumns: \"repeat(7, minmax(0, 1fr))\",\n columnGap: 0,\n rowGap: \"2px\",\n};\n\nexport const navButtonSx = (side: \"left\" | \"right\"): SxProps<Theme> => ({\n position: \"absolute\",\n top: 0,\n [side]: 0,\n width: \"40px\",\n height: \"40px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: \"999px\",\n color: \"#4B5563\",\n cursor: \"pointer\",\n transition: \"all 0.2s ease\",\n \"&:hover\": {\n backgroundColor: \"#F3F4F6\",\n color: \"#111827\",\n },\n});\n","import React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport MuiIconButton from \"@mui/material/IconButton\";\nimport Popover from \"@mui/material/Popover\";\nimport Typography from \"@mui/material/Typography\";\nimport CalendarMonthIcon from \"@mui/icons-material/CalendarMonth\";\nimport { Controller } from \"react-hook-form\";\nimport type { Control, FieldValues, Path } from \"react-hook-form\";\nimport { TextField } from \"../../atoms/TextField\";\nimport * as styles from \"./styles\";\n\n// ─── Internal date utilities (no external dependency) ─────────────────────────\n\nfunction getDaysInMonth(date: Date): number {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate();\n}\n\nfunction startOfMonth(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth(), 1);\n}\n\nfunction addMonths(date: Date, amount: number): Date {\n const result = new Date(date);\n result.setMonth(result.getMonth() + amount);\n return result;\n}\n\nfunction subMonths(date: Date, amount: number): Date {\n return addMonths(date, -amount);\n}\n\nfunction isSameDay(a: Date, b: Date): boolean {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n}\n\nfunction isAfterDate(date: Date, dateToCompare: Date): boolean {\n return date.getTime() > dateToCompare.getTime();\n}\n\nfunction isBeforeDate(date: Date, dateToCompare: Date): boolean {\n return date.getTime() < dateToCompare.getTime();\n}\n\nfunction differenceInCalendarDays(dateLeft: Date, dateRight: Date): number {\n const normalize = (d: Date) =>\n new Date(d.getFullYear(), d.getMonth(), d.getDate()).getTime();\n return Math.round((normalize(dateLeft) - normalize(dateRight)) / 86400000);\n}\n\nconst MONTH_NAMES = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nfunction formatDate(date: Date, fmt: \"MM/dd/yyyy\" | \"MMMM yyyy\"): string {\n if (fmt === \"MM/dd/yyyy\") {\n const mm = String(date.getMonth() + 1).padStart(2, \"0\");\n const dd = String(date.getDate()).padStart(2, \"0\");\n return `${mm}/${dd}/${date.getFullYear()}`;\n }\n return `${MONTH_NAMES[date.getMonth()]} ${date.getFullYear()}`;\n}\n\n// ─── Public types ──────────────────────────────────────────────────────────────\n\nexport type DatePickerMode = \"range\" | \"single\";\n\nexport interface DateRangeValue {\n startDate?: Date | null;\n endDate?: Date | null;\n}\n\nexport interface DatePickerFieldDef<T extends FieldValues> {\n name: Path<T>;\n control: Control<T>;\n label: string;\n required?: boolean;\n disabled?: boolean;\n}\n\n// Uncontrolled single-date picker\ninterface SingleProps {\n mode?: \"single\";\n label?: string;\n value?: Date | null;\n onChange?: (date: Date | null) => void;\n error?: boolean;\n helperText?: string;\n disabled?: boolean;\n}\n\n// Uncontrolled range picker\ninterface RangeProps {\n mode: \"range\";\n label?: string;\n value?: DateRangeValue;\n onChange?: (range: DateRangeValue) => void;\n error?: boolean;\n helperText?: string;\n disabled?: boolean;\n maxRangeDays?: number;\n}\n\n// Controlled single-date picker (react-hook-form)\ninterface ControlledSingleProps<T extends FieldValues> {\n mode?: \"single\";\n dateField: DatePickerFieldDef<T>;\n disabled?: boolean;\n}\n\n// Controlled range picker (react-hook-form)\ninterface ControlledRangeProps<T extends FieldValues> {\n mode: \"range\";\n startDateField: DatePickerFieldDef<T>;\n endDateField: DatePickerFieldDef<T>;\n disabled?: boolean;\n maxRangeDays?: number;\n}\n\nexport type DatePickerProps<T extends FieldValues = FieldValues> =\n | SingleProps\n | RangeProps\n | ControlledSingleProps<T>\n | ControlledRangeProps<T>;\n\n// ─── Shared day cell renderer ─────────────────────────────────────────────────\n\ninterface DayCellProps {\n day: number;\n date: Date;\n isSelected: boolean;\n inRange: boolean;\n rangeBorderRadius: string;\n disabled: boolean;\n onClick: () => void;\n onMouseEnter?: () => void;\n onMouseLeave?: () => void;\n}\n\nfunction DayCell({\n day,\n isSelected,\n inRange,\n rangeBorderRadius,\n disabled,\n onClick,\n onMouseEnter,\n onMouseLeave,\n}: DayCellProps) {\n return (\n <Box\n component=\"button\"\n type=\"button\"\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n disabled={disabled}\n sx={{\n height: \"48px\",\n position: \"relative\",\n border: \"none\",\n padding: 0,\n margin: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: \"transparent\",\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n opacity: disabled ? 0.35 : 1,\n }}\n >\n {inRange && (\n <Box\n sx={{\n position: \"absolute\",\n inset: 0,\n backgroundColor: \"#DBEAFE\",\n borderRadius: rangeBorderRadius || 0,\n }}\n />\n )}\n <Box\n component=\"span\"\n sx={{\n position: \"relative\",\n zIndex: 1,\n width: \"40px\",\n height: \"40px\",\n borderRadius: \"999px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n color: isSelected ? \"#FFFFFF\" : \"#374151\",\n backgroundColor: isSelected ? \"#2563EB\" : \"transparent\",\n fontSize: \"16px\",\n fontWeight: isSelected ? 500 : 400,\n transition: \"all 0.2s ease\",\n boxShadow: isSelected ? \"0px 8px 16px rgba(37, 99, 235, 0.3)\" : \"none\",\n \"&:hover\":\n !isSelected && !disabled ? { backgroundColor: \"#EFF6FF\" } : undefined,\n }}\n >\n {day}\n </Box>\n </Box>\n );\n}\n\n// ─── Nav chevron SVGs ─────────────────────────────────────────────────────────\n\nconst ChevronLeft = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M12.5 15L7.5 10L12.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nconst ChevronRight = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M7.5 15L12.5 10L7.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\n// ─── Single-date picker UI ────────────────────────────────────────────────────\n\nfunction SingleDatePickerUI(props: SingleProps) {\n const [anchorEl, setAnchorEl] = React.useState<HTMLElement | null>(null);\n const [currentMonth, setCurrentMonth] = React.useState<Date>(new Date());\n const triggerRef = React.useRef<HTMLDivElement>(null);\n\n const open = Boolean(anchorEl);\n const selected = props.value ?? null;\n\n const openPicker = () => {\n if (props.disabled || !triggerRef.current) return;\n setAnchorEl(triggerRef.current);\n };\n\n const closePicker = () => setAnchorEl(null);\n\n const handleDayClick = (date: Date) => {\n if (selected && isSameDay(date, selected)) {\n props.onChange?.(null);\n } else {\n props.onChange?.(date);\n }\n closePicker();\n };\n\n const renderMonth = () => {\n const firstDay = startOfMonth(currentMonth);\n const monthName = formatDate(currentMonth, \"MMMM yyyy\");\n const daysInMonth = getDaysInMonth(currentMonth);\n const startingDayOfWeek = firstDay.getDay();\n const dayCells: React.ReactNode[] = [];\n\n for (let i = 0; i < startingDayOfWeek; i++) {\n dayCells.push(<Box key={`empty-${i}`} sx={{ height: \"48px\" }} />);\n }\n\n for (let day = 1; day <= daysInMonth; day++) {\n const date = new Date(currentMonth.getFullYear(), currentMonth.getMonth(), day);\n const isSelected = !!selected && isSameDay(date, selected);\n\n dayCells.push(\n <DayCell\n key={day}\n day={day}\n date={date}\n isSelected={isSelected}\n inRange={false}\n rangeBorderRadius=\"\"\n disabled={!!props.disabled}\n onClick={() => handleDayClick(date)}\n />\n );\n }\n\n return (\n <Box sx={styles.monthContainerSx}>\n <Typography sx={styles.monthTitleSx}>{monthName}</Typography>\n <Box sx={styles.weekHeaderRowSx}>\n {[\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"].map((d, i) => (\n <Box key={i} sx={styles.weekHeaderCellSx}>\n {d}\n </Box>\n ))}\n </Box>\n <Box sx={styles.daysGridSx}>{dayCells}</Box>\n </Box>\n );\n };\n\n const displayValue = selected ? formatDate(selected, \"MM/dd/yyyy\") : \"\";\n\n return (\n <Box>\n <Box ref={triggerRef} onClick={openPicker} sx={{ cursor: \"pointer\" }}>\n <TextField\n fullWidth\n label={props.label}\n value={displayValue}\n placeholder=\"Select date\"\n variant=\"outlined\"\n sx={styles.textFieldSx}\n disabled={props.disabled}\n error={props.error}\n slotProps={{\n htmlInput: {\n readOnly: true,\n style: {\n cursor: props.disabled ? \"not-allowed\" : \"pointer\",\n pointerEvents: \"none\",\n },\n },\n }}\n endAdornment={<CalendarMonthIcon fontSize=\"small\" />}\n />\n </Box>\n\n <Popover\n open={open}\n anchorEl={anchorEl}\n onClose={closePicker}\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"left\" }}\n transformOrigin={{ vertical: \"top\", horizontal: \"left\" }}\n slotProps={{\n paper: {\n sx: {\n ...styles.popoverPaperSx,\n width: \"360px\",\n maxWidth: \"calc(100vw - 32px)\",\n mt: 1.5,\n },\n },\n }}\n >\n <Box sx={styles.popoverContentSx}>\n <MuiIconButton\n onClick={() => setCurrentMonth(subMonths(currentMonth, 1))}\n sx={styles.navButtonSx(\"left\")}\n aria-label=\"Previous month\"\n >\n <ChevronLeft />\n </MuiIconButton>\n\n {renderMonth()}\n\n <MuiIconButton\n onClick={() => setCurrentMonth(addMonths(currentMonth, 1))}\n sx={styles.navButtonSx(\"right\")}\n aria-label=\"Next month\"\n >\n <ChevronRight />\n </MuiIconButton>\n </Box>\n </Popover>\n\n {props.error && props.helperText && (\n <Typography color=\"error\" variant=\"caption\">\n {props.helperText}\n </Typography>\n )}\n </Box>\n );\n}\n\n// ─── Range date picker UI ─────────────────────────────────────────────────────\n\nfunction RangeDatePickerUI(props: RangeProps) {\n const [anchorEl, setAnchorEl] = React.useState<HTMLElement | null>(null);\n const [hoverDate, setHoverDate] = React.useState<Date | null>(null);\n const [currentMonth, setCurrentMonth] = React.useState<Date>(new Date());\n const triggerRef = React.useRef<HTMLDivElement>(null);\n\n const open = Boolean(anchorEl);\n const start = props.value?.startDate ?? null;\n const end = props.value?.endDate ?? null;\n\n const isDateDisabled = (day: Date): boolean => {\n if (props.disabled) return true;\n if (!props.maxRangeDays) return false;\n if (!start || end) return false;\n return Math.abs(differenceInCalendarDays(day, start)) > props.maxRangeDays - 1;\n };\n\n const openPicker = () => {\n if (props.disabled || !triggerRef.current) return;\n setAnchorEl(triggerRef.current);\n };\n\n const closePicker = () => {\n setAnchorEl(null);\n setHoverDate(null);\n };\n\n const handleDayClick = (day: Date) => {\n if (isDateDisabled(day)) return;\n\n let newStart = start;\n let newEnd = end;\n\n if (!start || (start && end)) {\n newStart = day;\n newEnd = null;\n } else {\n if (isBeforeDate(day, start)) {\n newStart = day;\n newEnd = start;\n } else {\n newEnd = day;\n }\n }\n\n if (start && !end && isSameDay(day, start)) {\n props.onChange?.({ startDate: null, endDate: null });\n return;\n }\n\n if (newStart && newEnd) closePicker();\n\n props.onChange?.({ startDate: newStart, endDate: newEnd });\n };\n\n const getActiveRangeEnd = () => {\n if (end) return end;\n if (start && hoverDate) return hoverDate;\n return null;\n };\n\n const isDateInRange = (day: Date): boolean => {\n if (!start) return false;\n const activeEnd = getActiveRangeEnd();\n if (!activeEnd) return false;\n\n if (isBeforeDate(activeEnd, start)) {\n return (\n (isAfterDate(day, activeEnd) || isSameDay(day, activeEnd)) &&\n (isBeforeDate(day, start) || isSameDay(day, start))\n );\n }\n return (\n (isAfterDate(day, start) || isSameDay(day, start)) &&\n (isBeforeDate(day, activeEnd) || isSameDay(day, activeEnd))\n );\n };\n\n const isDateSelected = (day: Date): boolean =>\n (!!start && isSameDay(day, start)) || (!!end && isSameDay(day, end));\n\n const renderMonth = (monthOffset: number) => {\n const month = addMonths(currentMonth, monthOffset);\n const firstDay = startOfMonth(month);\n const monthName = formatDate(month, \"MMMM yyyy\");\n const daysInMonth = getDaysInMonth(month);\n const startingDayOfWeek = firstDay.getDay();\n const dayCells: React.ReactNode[] = [];\n\n for (let i = 0; i < startingDayOfWeek; i++) {\n dayCells.push(<Box key={`empty-${monthOffset}-${i}`} sx={{ height: \"48px\" }} />);\n }\n\n for (let day = 1; day <= daysInMonth; day++) {\n const date = new Date(month.getFullYear(), month.getMonth(), day);\n const disabled = isDateDisabled(date);\n const inRange = isDateInRange(date);\n const isSelected = isDateSelected(date);\n const isStart = !!start && isSameDay(date, start);\n const isEnd = !!end && isSameDay(date, end);\n const dayOfWeek = date.getDay();\n const isFirstDayOfMonth = day === 1;\n const isLastDayOfMonth = day === daysInMonth;\n const isStartOfWeek = dayOfWeek === 0;\n const isEndOfWeek = dayOfWeek === 6;\n\n let borderRadius = \"\";\n if (inRange) {\n const roundLeft = (isStartOfWeek && !isFirstDayOfMonth) || isStart;\n const roundRight = (isEndOfWeek && !isLastDayOfMonth) || isEnd;\n if (roundLeft && roundRight) borderRadius = \"999px\";\n else if (roundLeft) borderRadius = \"999px 0 0 999px\";\n else if (roundRight) borderRadius = \"0 999px 999px 0\";\n }\n\n dayCells.push(\n <DayCell\n key={`${monthOffset}-${day}`}\n day={day}\n date={date}\n isSelected={isSelected}\n inRange={inRange}\n rangeBorderRadius={borderRadius}\n disabled={disabled}\n onClick={() => handleDayClick(date)}\n onMouseEnter={() => {\n if (!disabled && start && !end) setHoverDate(date);\n }}\n onMouseLeave={() => {\n if (!end) setHoverDate(null);\n }}\n />\n );\n }\n\n return (\n <Box sx={styles.monthContainerSx}>\n <Typography sx={styles.monthTitleSx}>{monthName}</Typography>\n <Box sx={styles.weekHeaderRowSx}>\n {[\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"].map((weekday, index) => (\n <Box key={`${weekday}-${index}`} sx={styles.weekHeaderCellSx}>\n {weekday}\n </Box>\n ))}\n </Box>\n <Box sx={styles.daysGridSx}>{dayCells}</Box>\n </Box>\n );\n };\n\n const formatRange = () => {\n if (start && end) {\n return `${formatDate(start, \"MM/dd/yyyy\")} - ${formatDate(end, \"MM/dd/yyyy\")}`;\n }\n if (start) return `${formatDate(start, \"MM/dd/yyyy\")} -`;\n return \"\";\n };\n\n return (\n <Box>\n <Box ref={triggerRef} onClick={openPicker} sx={{ cursor: \"pointer\" }}>\n <TextField\n fullWidth\n label={props.label}\n value={formatRange()}\n placeholder=\"Select date range\"\n variant=\"outlined\"\n sx={styles.textFieldSx}\n disabled={props.disabled}\n error={props.error}\n slotProps={{\n htmlInput: {\n readOnly: true,\n style: {\n cursor: props.disabled ? \"not-allowed\" : \"pointer\",\n pointerEvents: \"none\",\n },\n },\n }}\n endAdornment={<CalendarMonthIcon fontSize=\"small\" />}\n />\n </Box>\n\n <Popover\n open={open}\n anchorEl={anchorEl}\n onClose={closePicker}\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"left\" }}\n transformOrigin={{ vertical: \"top\", horizontal: \"left\" }}\n slotProps={{\n paper: {\n sx: {\n ...styles.popoverPaperSx,\n width: \"720px\",\n maxWidth: \"calc(100vw - 32px)\",\n mt: 1.5,\n },\n },\n }}\n >\n <Box sx={styles.popoverContentSx}>\n <MuiIconButton\n onClick={() => setCurrentMonth(subMonths(currentMonth, 1))}\n sx={styles.navButtonSx(\"left\")}\n aria-label=\"Previous month\"\n >\n <ChevronLeft />\n </MuiIconButton>\n\n <Box display=\"flex\" gap=\"48px\">\n {renderMonth(0)}\n {renderMonth(1)}\n </Box>\n\n <MuiIconButton\n onClick={() => setCurrentMonth(addMonths(currentMonth, 1))}\n sx={styles.navButtonSx(\"right\")}\n aria-label=\"Next month\"\n >\n <ChevronRight />\n </MuiIconButton>\n </Box>\n </Popover>\n\n {props.error && props.helperText && (\n <Typography color=\"error\" variant=\"caption\">\n {props.helperText}\n </Typography>\n )}\n </Box>\n );\n}\n\n// ─── Main exported component ──────────────────────────────────────────────────\n\nexport function DatePicker<T extends FieldValues = FieldValues>(\n props: DatePickerProps<T>\n) {\n const mode = props.mode ?? \"single\";\n\n if (mode === \"range\") {\n if (\"startDateField\" in props && props.startDateField) {\n const { startDateField, endDateField, disabled, maxRangeDays } =\n props as ControlledRangeProps<T>;\n\n return (\n <Controller\n name={startDateField.name}\n control={startDateField.control}\n render={({ field: startF, fieldState: startState }) => (\n <Controller\n name={endDateField.name}\n control={endDateField.control}\n render={({ field: endF, fieldState: endState }) => {\n const value: DateRangeValue = {\n startDate: startF.value ? new Date(startF.value) : null,\n endDate: endF.value ? new Date(endF.value) : null,\n };\n const handleChange = (newValue: DateRangeValue) => {\n startF.onChange(newValue.startDate);\n endF.onChange(newValue.endDate);\n };\n return (\n <RangeDatePickerUI\n mode=\"range\"\n label={startDateField.label}\n value={value}\n onChange={handleChange}\n error={!!startState.error || !!endState.error}\n helperText={startState.error?.message ?? endState.error?.message}\n disabled={disabled ?? startDateField.disabled}\n maxRangeDays={maxRangeDays}\n />\n );\n }}\n />\n )}\n />\n );\n }\n\n return <RangeDatePickerUI {...(props as RangeProps)} />;\n }\n\n // Single mode\n if (\"dateField\" in props && props.dateField) {\n const { dateField, disabled } = props as ControlledSingleProps<T>;\n\n return (\n <Controller\n name={dateField.name}\n control={dateField.control}\n render={({ field, fieldState }) => (\n <SingleDatePickerUI\n label={dateField.label}\n value={field.value ? new Date(field.value) : null}\n onChange={(date) => field.onChange(date)}\n error={!!fieldState.error}\n helperText={fieldState.error?.message}\n disabled={disabled ?? dateField.disabled}\n />\n )}\n />\n );\n }\n\n return <SingleDatePickerUI {...(props as SingleProps)} />;\n}\n\nDatePicker.displayName = \"DatePicker\";\n","import React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Paper from \"@mui/material/Paper\";\nimport Typography from \"@mui/material/Typography\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport interface AuthLayoutProps {\n /** Content rendered over the left hero panel (logo, headline, feature list, etc.) */\n backgroundContent?: React.ReactNode;\n /** Cover image URL for the left panel */\n backgroundImage?: string;\n /** Logo rendered above the title in the form panel */\n logo?: React.ReactNode;\n /** Form panel heading */\n title?: string;\n /** Form panel sub-heading */\n subtitle?: string;\n /** Form fields and controls */\n children: React.ReactNode;\n /** Small note pinned below the form (legal copy, SSO notice, etc.) */\n footer?: React.ReactNode;\n /** Max-width of the inner form column. Defaults to 440. */\n maxWidth?: number | string;\n sx?: SxProps<Theme>;\n}\n\nexport const AuthLayout: React.FC<AuthLayoutProps> = ({\n backgroundContent,\n backgroundImage,\n logo,\n title,\n subtitle,\n children,\n footer,\n maxWidth = 440,\n sx,\n}) => {\n const hasLeft = !!(backgroundImage || backgroundContent);\n\n return (\n <Box\n sx={{\n minHeight: \"100vh\",\n display: \"flex\",\n fontFamily: \"Roboto, sans-serif\",\n ...sx,\n }}\n >\n {hasLeft && (\n <Box\n sx={{\n flex: 1,\n position: \"relative\",\n overflow: \"hidden\",\n display: { xs: \"none\", md: \"flex\" },\n alignItems: \"center\",\n px: \"80px\",\n py: \"24px\",\n color: \"#fff\",\n }}\n >\n {backgroundImage && (\n <Box\n component=\"img\"\n src={backgroundImage}\n alt=\"\"\n sx={{\n position: \"absolute\",\n inset: 0,\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n }}\n />\n )}\n <Box\n sx={{\n position: \"absolute\",\n inset: 0,\n background:\n \"linear-gradient(135deg, rgba(21,35,86,.72), rgba(22,73,223,.55))\",\n }}\n />\n {backgroundContent && (\n <Box\n sx={{\n position: \"relative\",\n zIndex: 1,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 3,\n alignItems: \"flex-start\",\n }}\n >\n {backgroundContent}\n </Box>\n )}\n </Box>\n )}\n\n <Box\n sx={{\n flex: 1,\n bgcolor: \"#fff\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n px: \"10%\",\n py: \"80px\",\n overflowY: \"auto\",\n }}\n >\n <Paper\n elevation={0}\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n gap: 3,\n maxWidth,\n width: \"100%\",\n mx: \"auto\",\n bgcolor: \"transparent\",\n }}\n >\n {(logo || title || subtitle) && (\n <Box>\n {logo}\n {title && (\n <Typography\n component=\"h2\"\n sx={{\n m: 0,\n fontSize: \"2rem\",\n fontWeight: 400,\n lineHeight: 1.2,\n letterSpacing: \"-0.3px\",\n color: \"rgba(21,35,86,.92)\",\n }}\n >\n {title}\n </Typography>\n )}\n {subtitle && (\n <Typography\n sx={{\n mt: 0.75,\n fontSize: \"0.9375rem\",\n lineHeight: 1.6,\n color: \"rgba(15,23,56,.6)\",\n }}\n >\n {subtitle}\n </Typography>\n )}\n </Box>\n )}\n\n {children}\n\n {footer && (\n <Box\n sx={{\n fontSize: \"0.75rem\",\n lineHeight: 1.5,\n color: \"rgba(15,23,56,.5)\",\n textAlign: \"center\",\n mt: 0.5,\n }}\n >\n {footer}\n </Box>\n )}\n </Paper>\n </Box>\n </Box>\n );\n};\n","import React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\n\nexport interface AuthLayoutHeroContentProps {\n /** Logo rendered at the top of the hero panel */\n logo?: React.ReactNode;\n /** Text before the highlighted word in the heading */\n headingStart?: string;\n /** Highlighted word rendered in accent color */\n headingHighlight?: string;\n /** Text after the highlighted word in the heading */\n headingEnd?: string;\n /** Supporting description below the heading */\n description?: string;\n /** Small copyright/legal line at the bottom */\n copyright?: string;\n}\n\nexport const AuthLayoutHeroContent: React.FC<AuthLayoutHeroContentProps> = ({\n logo,\n headingStart,\n headingHighlight,\n headingEnd,\n description,\n copyright,\n}) => (\n <>\n {logo}\n {(headingStart || headingHighlight || headingEnd) && (\n <Typography\n component=\"h1\"\n sx={{\n m: 0,\n fontSize: \"2.75rem\",\n fontWeight: 300,\n lineHeight: 1.15,\n letterSpacing: \"-0.8px\",\n color: \"#fff\",\n }}\n >\n {headingStart}{\" \"}\n {headingHighlight && (\n <Box component=\"strong\" sx={{ fontWeight: 600, color: \"#00F0FF\" }}>\n {headingHighlight}\n </Box>\n )}{\" \"}\n {headingEnd}\n </Typography>\n )}\n {description && (\n <Typography\n sx={{\n m: 0,\n fontSize: \"1rem\",\n lineHeight: 1.6,\n color: \"rgba(255,255,255,.85)\",\n }}\n >\n {description}\n </Typography>\n )}\n {copyright && (\n <Typography sx={{ fontSize: \"0.75rem\", color: \"rgba(255,255,255,.6)\" }}>\n {copyright}\n </Typography>\n )}\n </>\n);\n\nAuthLayoutHeroContent.displayName = \"AuthLayoutHeroContent\";\n","import React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport interface DashboardLayoutProps {\n sidebar?: React.ReactNode;\n appBar?: React.ReactNode;\n children: React.ReactNode;\n sidebarWidth?: number;\n contentMaxWidth?: number | string;\n sx?: SxProps<Theme>;\n}\n\nexport const DashboardLayout: React.FC<DashboardLayoutProps> = ({\n sidebar,\n appBar,\n children,\n sidebarWidth = 264,\n contentMaxWidth,\n sx,\n}) => {\n return (\n <Box\n sx={{\n display: \"flex\",\n minHeight: \"100vh\",\n bgcolor: \"grey.50\",\n ...sx,\n }}\n >\n {sidebar && (\n <Box\n component=\"nav\"\n sx={{\n width: sidebarWidth,\n flexShrink: 0,\n }}\n >\n {sidebar}\n </Box>\n )}\n\n <Box\n sx={{\n flex: 1,\n display: \"flex\",\n flexDirection: \"column\",\n minWidth: 0,\n overflow: \"hidden\",\n }}\n >\n {appBar && <Box component=\"header\">{appBar}</Box>}\n\n <Box\n component=\"main\"\n sx={{\n flex: 1,\n p: 3,\n overflowY: \"auto\",\n }}\n >\n <Box\n sx={{\n maxWidth: contentMaxWidth,\n mx: contentMaxWidth ? \"auto\" : undefined,\n height: \"100%\",\n }}\n >\n {children}\n </Box>\n </Box>\n </Box>\n </Box>\n );\n};\n","import React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Paper from \"@mui/material/Paper\";\nimport SaveIcon from \"@mui/icons-material/Save\";\nimport DragIndicatorIcon from \"@mui/icons-material/DragIndicator\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\nimport { Button } from \"../../atoms/Button\";\nimport { DashboardLayout } from \"../DashboardLayout\";\n\n// ─── Field types ─────────────────────────────────────────────────────────────\n\nexport interface DocumentEditorField {\n id: string;\n label: string;\n key: string;\n type: string;\n source: string;\n}\n\n// ─── Sub-components (also exported for use inside document content) ───────────\n\nexport interface FieldTokenProps {\n icon?: React.ReactNode;\n label: string;\n}\n\nexport const FieldToken: React.FC<FieldTokenProps> = ({ icon, label }) => (\n <Box\n component=\"span\"\n contentEditable={false}\n sx={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"4px\",\n background: \"rgba(31,95,242,.1)\",\n color: \"#1F5FF2\",\n px: \"8px\",\n py: \"2px\",\n borderRadius: \"6px\",\n fontWeight: 500,\n fontSize: \"13px\",\n border: \"1px dashed rgba(31,95,242,.3)\",\n verticalAlign: \"middle\",\n userSelect: \"none\",\n \"& .MuiSvgIcon-root\": { fontSize: \"14px\" },\n }}\n >\n {icon}\n {label}\n </Box>\n);\n\nexport interface TypeChipProps {\n type: string;\n source: string;\n}\n\nexport const TypeChip: React.FC<TypeChipProps> = ({ source, type }) => (\n <Box\n component=\"span\"\n sx={{\n display: \"inline-flex\",\n alignItems: \"center\",\n px: \"12px\",\n py: \"3px\",\n borderRadius: \"100px\",\n fontSize: \"12px\",\n fontWeight: 500,\n lineHeight: \"1.4\",\n border: \"1px solid transparent\",\n ...(source === \"system\"\n ? { background: \"#E0F7FA\", color: \"#03859B\", borderColor: \"#B2EBF2\" }\n : { background: \"#FFF8E1\", color: \"#EF6C00\", borderColor: \"#FFE082\" }),\n }}\n >\n {type}\n </Box>\n);\n\nconst editableFocus = {\n \"&:focus\": {\n outline: \"2px solid rgba(31,95,242,.18)\",\n borderRadius: \"4px\",\n outlineOffset: \"3px\",\n },\n};\n\nexport interface DocSectionHeadingProps {\n children: React.ReactNode;\n sx?: SxProps<Theme>;\n}\n\nexport const DocSectionHeading: React.FC<DocSectionHeadingProps> = ({ children, sx }) => (\n <Box\n component=\"h2\"\n contentEditable\n suppressContentEditableWarning\n sx={{\n fontFamily: \"'Roboto', sans-serif\",\n fontSize: \"16px\",\n fontWeight: 600,\n lineHeight: 1.4,\n color: \"rgba(21,35,86,1)\",\n m: 0,\n mt: \"24px\",\n mb: \"12px\",\n textTransform: \"uppercase\",\n letterSpacing: \".5px\",\n outline: \"none\",\n cursor: \"text\",\n ...editableFocus,\n ...sx,\n }}\n >\n {children}\n </Box>\n);\n\nexport interface DocParagraphProps {\n children: React.ReactNode;\n sx?: SxProps<Theme>;\n}\n\nexport const DocParagraph: React.FC<DocParagraphProps> = ({ children, sx }) => (\n <Box\n component=\"p\"\n contentEditable\n suppressContentEditableWarning\n sx={{\n m: 0,\n mb: \"12px\",\n lineHeight: 1.7,\n outline: \"none\",\n cursor: \"text\",\n ...editableFocus,\n ...sx,\n }}\n >\n {children}\n </Box>\n);\n\n// ─── Main component ───────────────────────────────────────────────────────────\n\nexport interface DocumentEditorProps {\n /** Document title shown in the page header and passed as editable h1 inside the canvas */\n title: string;\n /** Optional badge rendered after the title (e.g. version / draft indicator) */\n versionBadge?: React.ReactNode;\n /** Parent label shown in the breadcrumb */\n breadcrumbParent?: string;\n /** Subtitle rendered below the title in the page header */\n subtitle?: string;\n /** Fields listed in the left-hand Field Registry panel */\n fields?: DocumentEditorField[];\n /** Label for the registry panel */\n registryTitle?: string;\n /** Subtext below the registry label */\n registrySubtitle?: string;\n /** Document canvas content — use DocParagraph / DocSectionHeading / FieldToken */\n children: React.ReactNode;\n /** Called when \"Preview\" is clicked */\n onPreview?: () => void;\n /** Called when \"Save version\" is clicked */\n onSave?: () => void;\n /** Sidebar node passed to DashboardLayout */\n sidebar?: React.ReactNode;\n /** Sidebar width in px (must match the sidebar component's own width prop) */\n sidebarWidth?: number;\n /** AppBar node passed to DashboardLayout */\n appBar?: React.ReactNode;\n /** sx overrides for the outer wrapper Box */\n sx?: SxProps<Theme>;\n}\n\nexport const DocumentEditor: React.FC<DocumentEditorProps> = ({\n title,\n versionBadge,\n breadcrumbParent = \"Documents\",\n subtitle = \"Insert fields from the registry by dragging them into the document.\",\n fields = [],\n registryTitle = \"Field Registry\",\n registrySubtitle = \"Drag to insert\",\n children,\n onPreview,\n onSave,\n sidebar,\n sidebarWidth = 250,\n appBar,\n sx,\n}) => (\n <DashboardLayout sidebar={sidebar} sidebarWidth={sidebarWidth} appBar={appBar}>\n <Box sx={{ m: -3, p: 4, ...sx }}>\n {/* Page header */}\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"flex-start\",\n gap: 3,\n mb: 3,\n flexWrap: \"wrap\",\n }}\n >\n <Box>\n <Box\n sx={{\n fontSize: \"12px\",\n color: \"rgba(21,35,86,.6)\",\n mb: \"4px\",\n display: \"flex\",\n gap: \"6px\",\n alignItems: \"center\",\n }}\n >\n <Box component=\"span\" sx={{ color: \"#1F5FF2\", cursor: \"pointer\" }}>\n {breadcrumbParent}\n </Box>\n <Box component=\"span\">/</Box>\n <Box component=\"span\">{title}</Box>\n </Box>\n <Box\n component=\"h1\"\n sx={{\n fontFamily: \"'Roboto', sans-serif\",\n fontSize: \"28px\",\n fontWeight: 400,\n lineHeight: 1.2,\n color: \"rgba(21,35,86,1)\",\n m: 0,\n mb: \"6px\",\n letterSpacing: \"-0.2px\",\n }}\n >\n {title}\n {versionBadge}\n </Box>\n <Box\n component=\"p\"\n sx={{ fontSize: \"14px\", color: \"rgba(21,35,86,.6)\", m: 0, maxWidth: 560 }}\n >\n {subtitle}\n </Box>\n </Box>\n\n <Box sx={{ display: \"flex\", gap: \"10px\" }}>\n <Button variant=\"outlined\" onClick={onPreview}>\n Preview\n </Button>\n <Button variant=\"contained\" startIcon={<SaveIcon />} onClick={onSave}>\n Save version\n </Button>\n </Box>\n </Box>\n\n {/* Editor grid */}\n <Box\n sx={{\n display: \"grid\",\n gridTemplateColumns: \"300px 1fr\",\n gap: 3,\n alignItems: \"start\",\n }}\n >\n {/* Field registry */}\n {fields.length > 0 && (\n <Paper\n sx={{ bgcolor: \"#fff\", borderRadius: 4, boxShadow: 1, overflow: \"hidden\" }}\n >\n <Box sx={{ px: 3, pt: \"20px\", pb: \"12px\" }}>\n <Box\n sx={{\n fontSize: \"18px\",\n fontWeight: 500,\n lineHeight: 1.4,\n color: \"rgba(21,35,86,.87)\",\n }}\n >\n {registryTitle}\n </Box>\n <Box sx={{ fontSize: \"13px\", color: \"rgba(21,35,86,.6)\", mt: \"4px\" }}>\n {registrySubtitle}\n </Box>\n </Box>\n <Box sx={{ px: 3, pb: 3, display: \"flex\", flexDirection: \"column\", gap: 1 }}>\n {fields.map((f) => (\n <Box\n key={f.id}\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"10px\",\n p: \"10px 12px\",\n border: \"1px solid rgba(21,35,86,.12)\",\n borderRadius: \"10px\",\n bgcolor: \"#fff\",\n cursor: \"grab\",\n transition: \"all .15s\",\n \"&:hover\": {\n borderColor: \"#1F5FF2\",\n boxShadow: \"0 0 0 2px rgba(31,95,242,.08)\",\n },\n }}\n >\n <DragIndicatorIcon\n sx={{ fontSize: 18, color: \"rgba(21,35,86,.4)\", flexShrink: 0 }}\n />\n <Box sx={{ flex: 1, minWidth: 0 }}>\n <Box\n sx={{\n fontSize: \"13px\",\n fontWeight: 500,\n color: \"rgba(21,35,86,.87)\",\n }}\n >\n {f.label}\n </Box>\n <Box\n sx={{\n fontSize: \"11px\",\n lineHeight: 1,\n color: \"rgba(21,35,86,.6)\",\n fontFamily: \"monospace\",\n mt: \"2px\",\n }}\n >\n {f.key}\n </Box>\n </Box>\n <TypeChip source={f.source} type={f.type} />\n </Box>\n ))}\n </Box>\n </Paper>\n )}\n\n {/* Document canvas */}\n <Paper\n sx={{\n bgcolor: \"#fff\",\n borderRadius: 4,\n boxShadow: 1,\n px: \"80px\",\n py: \"64px\",\n minHeight: 720,\n fontSize: \"14px\",\n lineHeight: 1.7,\n color: \"rgba(21,35,86,.87)\",\n }}\n >\n <Box\n component=\"h1\"\n contentEditable\n suppressContentEditableWarning\n sx={{\n fontFamily: \"'Roboto', sans-serif\",\n fontSize: \"26px\",\n fontWeight: 600,\n lineHeight: 1.3,\n color: \"rgba(21,35,86,1)\",\n m: 0,\n mb: \"24px\",\n textAlign: \"center\",\n outline: \"none\",\n cursor: \"text\",\n ...editableFocus,\n }}\n >\n {title}\n </Box>\n {children}\n </Paper>\n </Box>\n </Box>\n </DashboardLayout>\n);\n","import React, { useState } from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Button from \"@mui/material/Button\";\nimport FilterAltIcon from \"@mui/icons-material/FilterAlt\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport interface FilterBarProps {\n /** Array of filter field elements — each becomes one grid cell. */\n filters: React.ReactNode[];\n /** Whether the filter panel is open (controlled mode). */\n open?: boolean;\n /** Initial open state in uncontrolled mode (default: false). */\n defaultOpen?: boolean;\n /** Called when the toggle button is clicked. */\n onOpenChange?: (open: boolean) => void;\n /** Called when the \"Clear\" button is clicked. Enables the Clear button. */\n onClearAll?: () => void;\n /** Show the Clear button. Defaults to true when onClearAll is provided. */\n showClearButton?: boolean;\n /** Max filter fields per row (default: 4). */\n maxPerRow?: number;\n /** Toggle button label when panel is hidden (default: \"Show Filters\"). */\n showLabel?: string;\n /** Toggle button label when panel is visible (default: \"Hide Filters\"). */\n hideLabel?: string;\n /** Optional content rendered to the left of the toggle button (e.g., a search bar). */\n toolbarStart?: React.ReactNode;\n /**\n * Renders filters inline in a single row alongside toolbarStart and a Clear button.\n * Hides the show/hide toggle button and the collapsible panel.\n */\n inline?: boolean;\n /** Sx props for the root container. */\n sx?: SxProps<Theme>;\n}\n\nexport const FilterBar = React.forwardRef<HTMLDivElement, FilterBarProps>(\n (\n {\n filters,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n onClearAll,\n showClearButton = true,\n maxPerRow = 4,\n showLabel = \"Show Filters\",\n hideLabel = \"Hide Filters\",\n toolbarStart,\n inline = false,\n sx,\n },\n ref\n ) => {\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n const isOpen = openProp !== undefined ? openProp : internalOpen;\n\n const handleToggle = () => {\n const next = !isOpen;\n if (openProp === undefined) setInternalOpen(next);\n onOpenChange?.(next);\n };\n\n const showClear = showClearButton && Boolean(onClearAll);\n\n if (inline) {\n return (\n <Box\n ref={ref}\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 2,\n flexWrap: \"nowrap\",\n ...sx,\n }}\n >\n {toolbarStart && <Box sx={{ flex: 1, minWidth: 0 }}>{toolbarStart}</Box>}\n {filters.map((filter, index) => (\n <Box key={index} sx={{ minWidth: \"160px\" }}>\n {filter}\n </Box>\n ))}\n {showClear && (\n <Button\n variant=\"outlined\"\n type=\"button\"\n onClick={onClearAll}\n sx={{ flexShrink: 0 }}\n >\n Clear\n </Button>\n )}\n </Box>\n );\n }\n\n // Split filters into rows of maxPerRow\n const rows: React.ReactNode[][] = [];\n for (let i = 0; i < filters.length; i += maxPerRow) {\n rows.push(filters.slice(i, i + maxPerRow));\n }\n\n return (\n <Box ref={ref} sx={sx}>\n {/* Toolbar: optional leading content + toggle button */}\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 2,\n }}\n >\n {toolbarStart && <Box sx={{ flex: 1, minWidth: 0 }}>{toolbarStart}</Box>}\n <Button\n variant=\"outlined\"\n startIcon={<FilterAltIcon />}\n onClick={handleToggle}\n sx={{ fontWeight: \"bold\", flexShrink: 0 }}\n >\n {isOpen ? hideLabel : showLabel}\n </Button>\n </Box>\n\n {/* Collapsible filter panel */}\n <Box\n sx={{\n transition:\n \"max-height 0.4s ease-in-out, padding 0.4s ease-in-out, opacity 0.3s ease-in-out\",\n overflow: \"hidden\",\n maxHeight: isOpen ? \"800px\" : \"0px\",\n opacity: isOpen ? 1 : 0,\n px: 1,\n py: isOpen ? 2 : 0,\n }}\n >\n <Box\n sx={{\n py: \"16px\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: 2,\n }}\n >\n {rows.map((row, rowIndex) => {\n const isLastRow = rowIndex === rows.length - 1;\n const shouldGrow = !isLastRow || row.length < maxPerRow;\n\n return (\n <Box\n key={rowIndex}\n sx={{\n display: \"flex\",\n flexWrap: \"nowrap\",\n justifyContent: isLastRow ? \"flex-start\" : \"space-between\",\n alignItems: \"flex-end\",\n width: \"100%\",\n }}\n >\n {row.map((item, itemIndex) => (\n <Box\n key={itemIndex}\n sx={{\n flexGrow: shouldGrow ? 1 : 0,\n minWidth: \"200px\",\n flexBasis: shouldGrow ? \"auto\" : \"200px\",\n mr: itemIndex !== row.length - 1 ? 2 : 0,\n }}\n >\n {item}\n </Box>\n ))}\n\n {/* Clear button: right-aligned on the last row */}\n {isLastRow && showClear && (\n <Box sx={{ flexShrink: 0, ml: \"auto\", pl: 2 }}>\n <Button variant=\"outlined\" type=\"button\" onClick={onClearAll}>\n Clear\n </Button>\n </Box>\n )}\n </Box>\n );\n })}\n </Box>\n </Box>\n </Box>\n );\n }\n);\n\nFilterBar.displayName = \"FilterBar\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/theme/palette.ts","../src/theme/typography.ts","../src/theme/shape.ts","../src/theme/transitions.ts","../src/theme/components.ts","../src/theme/shadows.ts","../src/theme/spacing.ts","../src/theme/createAlchemyTheme.ts","../src/theme/zIndex.ts","../src/theme/index.ts","../src/AlchemyProvider.tsx","../src/theme/dark.ts","../src/hooks/useColorMode.ts","../src/hooks/ColorModeProvider.tsx","../src/atoms/Button/Button.tsx","../src/atoms/Select/Select.tsx","../src/atoms/Switch/Switch.tsx","../src/atoms/TextField/TextField.tsx","../src/atoms/Typography/Typography.tsx","../src/atoms/Avatar/Avatar.tsx","../src/atoms/Chip/Chip.tsx","../src/atoms/IconButton/IconButton.tsx","../src/atoms/Badge/Badge.tsx","../src/atoms/Divider/Divider.tsx","../src/atoms/Skeleton/Skeleton.tsx","../src/atoms/Progress/Progress.tsx","../src/atoms/Tooltip/Tooltip.tsx","../src/atoms/Checkbox/Checkbox.tsx","../src/atoms/RadioGroup/RadioGroup.tsx","../src/atoms/Slider/Slider.tsx","../src/atoms/Rating/Rating.tsx","../src/atoms/Link/Link.tsx","../src/atoms/ToggleButton/ToggleButton.tsx","../src/atoms/Fab/Fab.tsx","../src/molecules/FormField/FormField.tsx","../src/molecules/SearchBar/SearchBar.tsx","../src/molecules/StatusChip/StatusChip.tsx","../src/molecules/AlertBanner/AlertBanner.tsx","../src/molecules/MenuItem/MenuItem.tsx","../src/molecules/Tabs/Tabs.tsx","../src/molecules/Breadcrumb/Breadcrumb.tsx","../src/molecules/Toast/Toast.tsx","../src/molecules/Accordion/Accordion.tsx","../src/molecules/accordion-group/accordion-group.tsx","../src/molecules/Autocomplete/Autocomplete.tsx","../src/molecules/FileUpload/FileUpload.tsx","../src/molecules/Menu/Menu.tsx","../src/molecules/Pagination/Pagination.tsx","../src/molecules/List/List.tsx","../src/molecules/AvatarGroup/AvatarGroup.tsx","../src/molecules/ButtonGroup/ButtonGroup.tsx","../src/organisms/Card/Card.tsx","../src/organisms/EmptyState/EmptyState.tsx","../src/organisms/EmptyState/illustrations/EmptyStateIllustration.tsx","../src/organisms/EmptyState/illustrations/NoUsersIllustration.tsx","../src/organisms/EmptyState/illustrations/NoFilesIllustration.tsx","../src/organisms/DataTable/DataTableExpandableRow.tsx","../src/organisms/DataTable/DataTablePagination.tsx","../src/organisms/DataTable/DataTable.tsx","../src/organisms/DataTable/DataTableExpandedItem.tsx","../src/organisms/AppBar/AppBar.tsx","../src/organisms/Sidebar/Sidebar.tsx","../src/organisms/Sidebar/SidebarUserFooter.tsx","../src/organisms/Sidebar/AlchemyLogos.tsx","../src/organisms/Dialog/Dialog.tsx","../src/organisms/Stepper/Stepper.tsx","../src/organisms/DatePicker/styles.ts","../src/organisms/DatePicker/DatePicker.tsx","../src/templates/AuthLayout/AuthLayout.tsx","../src/templates/AuthLayout/AuthLayoutHeroContent.tsx","../src/templates/DashboardLayout/DashboardLayout.tsx","../src/templates/DocumentEditor/DocumentEditor.tsx","../src/templates/FilterBar/FilterBar.tsx"],"names":["borderRadius","createTheme","useMemo","jsxs","ThemeProvider","CssBaseline","useState","useEffect","useCallback","createContext","jsx","useContext","React","MuiButton","CircularProgress","FormControl","InputLabel","MuiSelect","MenuItem","FormHelperText","FormControlLabel","MuiSwitch","InputAdornment","MuiTextField","MuiTypography","MuiAvatar","MuiChip","MuiIconButton","Tooltip","MuiBadge","MuiDivider","MuiSkeleton","MuiCircularProgress","MuiLinearProgress","MuiTooltip","MuiCheckbox","FormLabel","MuiRadioGroup","MuiRadio","MuiSlider","MuiRating","MuiLink","MuiToggleButton","MuiToggleButtonGroup","MuiFab","OutlinedInput","SearchIcon","ClearIcon","Alert","AlertTitle","Collapse","ListItemButton","ListItemIcon","ListItemText","useTheme","Box","MuiTabs","Tab","MuiBreadcrumbs","Typography","Link","SonnerToaster","MuiAccordion","AccordionSummary","ExpandMoreIcon","AccordionDetails","MuiAutocomplete","TextField","useRef","UploadFileIcon","MuiMenu","MuiMenuItem","MuiPagination","MuiList","MuiListSubheader","MuiListItem","MuiListItemButton","MuiListItemIcon","MuiListItemText","MuiAvatarGroup","MuiButtonGroup","MuiCard","Fragment","CardHeader","Divider","CardContent","CardActions","TableRow","TableCell","IconButton","KeyboardArrowDownIcon","KeyboardArrowRightIcon","TablePagination","Checkbox","Paper","LinearProgress","TableContainer","Table","TableHead","TableSortLabel","TableBody","DescriptionIcon","WbSunnyIcon","NotificationsNoneIcon","FirstPageIcon","LastPageIcon","List","Drawer","LogoutIcon","MuiDialog","DialogTitle","DialogContent","DialogActions","MuiStepper","Step","StepLabel","StepContent","CalendarMonthIcon","Popover","Controller","SaveIcon","DragIndicatorIcon","Button","FilterAltIcon"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { PaletteOptions } from \"@mui/material/styles\";\n\nexport const customColors = {\n blue: {\n 50: \"#EEF6FF\",\n 100: \"#DAEAFF\",\n 200: \"#BDDAFF\",\n 300: \"#5BA2FF\",\n 400: \"#347EFD\",\n 500: \"#1649DF\",\n 600: \"#1649DF\",\n 700: \"#1F5FF2\",\n 800: \"#193BB4\",\n 900: \"#152356\",\n A100: \"#82B1FF\",\n A200: \"#448AFF\",\n A400: \"#2979FF\",\n A700: \"#2962FF\",\n },\n lightBlue: {\n 50: \"#EAFFFD\",\n 100: \"#CBFFFD\",\n 200: \"#5BFDFF\",\n 300: \"#00D3E5\",\n 400: \"#00F0FF\",\n 500: \"#00A8C0\",\n 600: \"#00A8C0\",\n 700: \"#03859B\",\n 800: \"#105869\",\n 900: \"#033A49\",\n A100: \"#00A8C0\",\n A200: \"#00D3E5\",\n },\n grey: {\n 50: \"#FAFAFA\",\n 100: \"#F5F5F5\",\n 200: \"#EEEEEE\",\n 300: \"#E0E0E0\",\n 400: \"#BDBDBD\",\n 500: \"#9E9E9E\",\n 600: \"#757575\",\n 700: \"#616161\",\n 800: \"#424242\",\n 900: \"#212121\",\n A100: \"#F5F5F5\",\n A200: \"#EEEEEE\",\n A400: \"#BDBDBD\",\n A700: \"#616161\",\n },\n amber: {\n 50: \"#FFF8E1\",\n 100: \"#FFECB3\",\n 200: \"#FFE082\",\n 300: \"#FFD54F\",\n 400: \"#FFCA28\",\n 500: \"#FFC107\",\n 600: \"#FFB300\",\n 700: \"#FFA000\",\n 800: \"#FF8F00\",\n 900: \"#FF6F00\",\n A100: \"#FFE57F\",\n A200: \"#FFD740\",\n A400: \"#FFC400\",\n A700: \"#FFAB00\",\n },\n folderTitle: \"rgba(21, 35, 86, 0.87)\",\n};\n\nexport const palette: PaletteOptions = {\n primary: {\n main: \"#1F5FF2\",\n dark: \"#1565C0\",\n light: \"#00F0FF\",\n contrastText: \"#FFFFFF\",\n },\n secondary: {\n main: \"#00A8C0\",\n dark: \"#03859B\",\n light: \"#00F0FF\",\n contrastText: \"#FFFFFF\",\n },\n error: {\n main: \"#D32F2F\",\n dark: \"#C62828\",\n light: \"#EF5350\",\n },\n warning: {\n main: \"#EF6C00\",\n dark: \"#E65100\",\n light: \"#FF9800\",\n },\n info: {\n main: \"#03859B\",\n dark: \"#033A49\",\n light: \"#00A8C0\",\n },\n success: {\n main: \"#2E7D32\",\n dark: \"#1B5E20\",\n light: \"#4CAF50\",\n },\n background: {\n default: \"#FFFFFF\",\n paper: \"#FFFFFF\",\n },\n text: {\n primary: \"#171A1C\",\n secondary: \"rgba(15, 23, 56, 0.6)\",\n disabled: \"rgba(21, 35, 86, 0.38)\",\n },\n divider: \"rgba(21, 35, 86, 0.12)\",\n action: {\n active: \"rgba(21, 35, 86, 0.56)\",\n hover: \"rgba(21, 35, 86, 0.04)\",\n selected: \"rgba(21, 35, 86, 0.08)\",\n disabled: \"rgba(21, 35, 86, 0.38)\",\n disabledBackground: \"rgba(21, 35, 86, 0.12)\",\n focus: \"rgba(21, 35, 86, 0.12)\",\n },\n common: {\n black: \"rgba(21, 35, 86, 0.87)\",\n white: \"#FFFFFF\",\n },\n};\n","import type { ThemeOptions } from \"@mui/material/styles\";\n\ntype TypographyOptions = NonNullable<ThemeOptions[\"typography\"]>;\n\nexport const typography: TypographyOptions = {\n fontFamily: \"Roboto, Helvetica, Arial, sans-serif\",\n h1: {\n fontSize: \"6rem\",\n fontWeight: 600,\n letterSpacing: \"-1.5px\",\n lineHeight: 1.167,\n },\n h2: {\n fontSize: \"3.75rem\",\n fontWeight: 300,\n letterSpacing: \"-0.5px\",\n lineHeight: 1.2,\n },\n h3: {\n fontSize: \"3rem\",\n fontWeight: 400,\n letterSpacing: \"0px\",\n lineHeight: 1.167,\n },\n h4: {\n fontSize: \"2.125rem\",\n fontWeight: 400,\n letterSpacing: \"0.25px\",\n lineHeight: 1.235,\n },\n h5: {\n fontSize: \"1.5rem\",\n fontWeight: 400,\n letterSpacing: \"0px\",\n lineHeight: 1.334,\n },\n h6: {\n fontSize: \"1.25rem\",\n fontWeight: 500,\n letterSpacing: \"0.15px\",\n lineHeight: 1.6,\n },\n subtitle1: {\n fontSize: \"1rem\",\n fontWeight: 400,\n letterSpacing: \"0.15px\",\n lineHeight: 1.75,\n },\n subtitle2: {\n fontSize: \"0.875rem\",\n fontWeight: 500,\n letterSpacing: \"0.1px\",\n lineHeight: 1.57,\n },\n body1: {\n fontSize: \"1rem\",\n fontWeight: 400,\n letterSpacing: \"0.5px\",\n lineHeight: 1.5,\n },\n body2: {\n fontSize: \"0.875rem\",\n fontWeight: 400,\n letterSpacing: \"0.17px\",\n lineHeight: 1.43,\n },\n caption: {\n fontSize: \"0.875rem\",\n fontWeight: 400,\n letterSpacing: \"0.4px\",\n lineHeight: 1.66,\n },\n overline: {\n fontSize: \"0.75rem\",\n fontWeight: 400,\n letterSpacing: \"1px\",\n lineHeight: 2.66,\n textTransform: \"uppercase\",\n },\n button: {\n fontSize: \"0.9375rem\",\n fontWeight: 400,\n letterSpacing: \"0.46px\",\n lineHeight: 1.75,\n textTransform: \"none\",\n },\n};\n","export const borderRadius = {\n none: 0,\n xs: 4,\n sm: 8,\n md: 12,\n lg: 16,\n xl: 24,\n pill: 100,\n} as const;\n\nexport const shapeConfig = {\n borderRadius: borderRadius.sm,\n} as const;\n","export const transitionsConfig = {\n easing: {\n easeInOut: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n easeOut: \"cubic-bezier(0.0, 0, 0.2, 1)\",\n easeIn: \"cubic-bezier(0.4, 0, 1, 1)\",\n sharp: \"cubic-bezier(0.4, 0, 0.6, 1)\",\n },\n duration: {\n shortest: 150,\n shorter: 200,\n short: 250,\n standard: 300,\n complex: 375,\n enteringScreen: 225,\n leavingScreen: 195,\n },\n} as const;\n","import type { Theme, Components } from \"@mui/material/styles\";\nimport { borderRadius } from \"./shape\";\nimport { transitionsConfig } from \"./transitions\";\n\nconst { shorter } = transitionsConfig.duration;\nconst { easeInOut } = transitionsConfig.easing;\n\nexport const components: Components<Theme> = {\n MuiButton: {\n styleOverrides: {\n root: ({ theme }) => ({\n borderRadius: borderRadius.xl,\n fontWeight: 400,\n fontSize: \"0.9375rem\",\n textTransform: \"none\",\n boxShadow: \"none\",\n padding: \"6px 16px\",\n minHeight: 40,\n transition: `background-color ${shorter}ms ${easeInOut}, box-shadow ${shorter}ms ${easeInOut}, border-color ${shorter}ms ${easeInOut}`,\n \"&:focus-visible\": {\n boxShadow: `0 0 0 4px rgba(1, 117, 253, 0.20)`,\n },\n \"&.MuiButton-containedPrimary:hover\": {\n boxShadow: \"0 4px 12px 0 rgba(1, 117, 253, 0.16)\",\n },\n \"&.Mui-disabled\": {\n color: theme.palette.action.disabled,\n backgroundColor: theme.palette.action.disabledBackground,\n },\n }),\n sizeLarge: {\n padding: \"10px 22px\",\n fontSize: \"1rem\",\n minHeight: 48,\n },\n sizeSmall: {\n padding: \"4px 10px\",\n fontSize: \"0.8125rem\",\n minHeight: 32,\n },\n },\n },\n MuiIconButton: {\n styleOverrides: {\n root: {\n borderRadius: borderRadius.md,\n transition: `background-color ${shorter}ms ${easeInOut}, box-shadow ${shorter}ms ${easeInOut}`,\n \"&:focus-visible\": {\n boxShadow: \"0 0 0 4px rgba(1, 117, 253, 0.20)\",\n },\n },\n },\n },\n MuiTextField: {\n styleOverrides: {\n root: {\n \"& .MuiOutlinedInput-root\": {\n borderRadius: borderRadius.lg,\n minHeight: 48,\n },\n },\n },\n },\n MuiOutlinedInput: {\n styleOverrides: {\n root: ({ theme }) => ({\n borderRadius: borderRadius.lg,\n minHeight: 48,\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"rgba(21, 35, 86, 0.23)\",\n },\n \"&:hover .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"#152356\",\n },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderWidth: 2,\n borderColor: theme.palette.primary.main,\n },\n \"&.Mui-error .MuiOutlinedInput-notchedOutline\": {\n borderColor: theme.palette.error.main,\n },\n \"&.Mui-disabled .MuiOutlinedInput-notchedOutline\": {\n borderColor: theme.palette.action.disabledBackground,\n },\n }),\n },\n },\n MuiInputLabel: {\n styleOverrides: {\n root: ({ theme }) => ({\n fontWeight: 500,\n color: theme.palette.text.secondary,\n \"&.Mui-focused\": {\n color: theme.palette.primary.main,\n },\n \"&.Mui-error\": {\n color: theme.palette.error.main,\n },\n \"&.Mui-disabled\": {\n color: theme.palette.action.disabled,\n },\n }),\n },\n },\n MuiFormHelperText: {\n styleOverrides: {\n root: ({ theme }) => ({\n fontSize: \"0.85rem\",\n marginLeft: 0,\n \"&.Mui-error\": {\n color: theme.palette.error.main,\n },\n \"&.Mui-disabled\": {\n color: theme.palette.action.disabled,\n },\n }),\n },\n },\n MuiListItemButton: {\n styleOverrides: {\n root: ({ theme }) => ({\n borderRadius: borderRadius.xl,\n minHeight: 32,\n gap: 8,\n \"&.Mui-selected\": {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.common.white,\n boxShadow:\n \"0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.20)\",\n \"&:hover\": {\n backgroundColor: theme.palette.primary.dark,\n },\n \"& .MuiListItemIcon-root\": {\n color: theme.palette.common.white,\n },\n },\n }),\n },\n },\n MuiCard: {\n styleOverrides: {\n root: {\n borderRadius: borderRadius.lg,\n boxShadow: \"0px 4px 14px rgba(22, 73, 223, 0.08)\",\n },\n },\n },\n MuiCardContent: {\n styleOverrides: {\n root: {\n padding: 24,\n \"&:last-child\": {\n paddingBottom: 24,\n },\n },\n },\n },\n MuiChip: {\n styleOverrides: {\n root: {\n borderRadius: borderRadius.sm,\n fontWeight: 500,\n fontSize: \"0.8125rem\",\n },\n sizeSmall: {\n height: 24,\n fontSize: \"0.75rem\",\n },\n },\n },\n MuiBackdrop: {\n styleOverrides: {\n root: {\n backgroundColor: \"#2962FF4D\",\n },\n },\n },\n MuiAppBar: {\n styleOverrides: {\n root: {\n boxShadow: \"0px 1px 2px rgba(0, 0, 0, 0.04)\",\n },\n },\n },\n MuiDrawer: {\n styleOverrides: {\n paper: {\n borderRight: \"1px solid rgba(21, 35, 86, 0.12)\",\n boxShadow: \"none\",\n },\n },\n },\n MuiPaper: {\n styleOverrides: {\n root: {\n backgroundImage: \"none\",\n },\n rounded: {\n borderRadius: borderRadius.lg,\n },\n elevation1: {\n boxShadow: \"0px 1px 2px rgba(0, 0, 0, 0.04), 0px 1px 4px rgba(0, 0, 0, 0.04)\",\n },\n elevation2: {\n boxShadow: \"0px 4px 14px rgba(22, 73, 223, 0.08)\",\n },\n elevation4: {\n boxShadow: \"0px 10px 20px rgba(0, 0, 0, 0.1)\",\n },\n },\n },\n MuiDivider: {\n styleOverrides: {\n root: {\n borderColor: \"rgba(21, 35, 86, 0.12)\",\n },\n },\n },\n MuiTooltip: {\n styleOverrides: {\n tooltip: {\n borderRadius: borderRadius.sm,\n fontSize: \"0.75rem\",\n },\n },\n },\n MuiAvatar: {\n styleOverrides: {\n root: {\n fontWeight: 600,\n fontSize: \"0.875rem\",\n },\n },\n },\n MuiTableHead: {\n styleOverrides: {\n root: {\n \"& .MuiTableCell-root\": {\n fontWeight: 600,\n fontSize: \"0.875rem\",\n color: \"rgba(15, 23, 56, 0.6)\",\n borderBottom: \"2px solid rgba(21, 35, 86, 0.12)\",\n },\n },\n },\n },\n MuiTableCell: {\n styleOverrides: {\n root: {\n borderBottom: \"1px solid rgba(21, 35, 86, 0.08)\",\n fontSize: \"0.875rem\",\n },\n },\n },\n MuiTableRow: {\n styleOverrides: {\n root: {\n \"&:hover\": {\n backgroundColor: \"rgba(21, 35, 86, 0.02)\",\n },\n \"&.Mui-selected\": {\n backgroundColor: \"rgba(31, 95, 242, 0.06)\",\n \"&:hover\": {\n backgroundColor: \"rgba(31, 95, 242, 0.08)\",\n },\n },\n },\n },\n },\n MuiLinearProgress: {\n styleOverrides: {\n root: {\n borderRadius: borderRadius.xs,\n height: 6,\n },\n },\n },\n MuiCircularProgress: {\n defaultProps: {\n size: 24,\n thickness: 4,\n },\n },\n MuiSkeleton: {\n styleOverrides: {\n root: {\n borderRadius: borderRadius.sm,\n },\n },\n },\n MuiAlert: {\n styleOverrides: {\n root: {\n borderRadius: borderRadius.md,\n },\n },\n },\n MuiBadge: {\n styleOverrides: {\n badge: {\n fontWeight: 600,\n fontSize: \"0.6875rem\",\n },\n },\n },\n};\n","import type { Shadows } from \"@mui/material/styles\";\n\nexport const shadows: Shadows = [\n \"none\",\n \"0px 1px 2px rgba(0,0,0,0.04), 0px 1px 4px rgba(0,0,0,0.04)\",\n \"0px 2px 6px rgba(0,0,0,0.06), 0px 2px 4px rgba(0,0,0,0.04)\",\n \"0px 3px 8px rgba(0,0,0,0.08), 0px 3px 6px rgba(0,0,0,0.04)\",\n \"0px 4px 10px rgba(0,0,0,0.10), 0px 4px 6px rgba(0,0,0,0.05)\",\n \"0px 5px 12px rgba(0,0,0,0.10), 0px 5px 8px rgba(0,0,0,0.05)\",\n \"0px 6px 14px rgba(0,0,0,0.10), 0px 6px 9px rgba(0,0,0,0.06)\",\n \"0px 7px 16px rgba(0,0,0,0.10), 0px 7px 10px rgba(0,0,0,0.06)\",\n \"0px 8px 18px rgba(0,0,0,0.11), 0px 8px 11px rgba(0,0,0,0.06)\",\n \"0px 9px 20px rgba(0,0,0,0.11), 0px 9px 12px rgba(0,0,0,0.06)\",\n \"0px 10px 20px rgba(0,0,0,0.10), 0px 10px 14px rgba(0,0,0,0.06)\",\n \"0px 11px 22px rgba(0,0,0,0.12), 0px 11px 15px rgba(0,0,0,0.06)\",\n \"0px 12px 24px rgba(0,0,0,0.12), 0px 12px 16px rgba(0,0,0,0.07)\",\n \"0px 13px 26px rgba(0,0,0,0.12), 0px 13px 18px rgba(0,0,0,0.07)\",\n \"0px 14px 28px rgba(0,0,0,0.13), 0px 14px 20px rgba(0,0,0,0.07)\",\n \"0px 15px 30px rgba(0,0,0,0.13), 0px 15px 22px rgba(0,0,0,0.07)\",\n \"0px 16px 32px rgba(0,0,0,0.14), 0px 16px 24px rgba(0,0,0,0.07)\",\n \"0px 17px 34px rgba(0,0,0,0.14), 0px 17px 26px rgba(0,0,0,0.08)\",\n \"0px 18px 36px rgba(0,0,0,0.14), 0px 18px 28px rgba(0,0,0,0.08)\",\n \"0px 19px 38px rgba(0,0,0,0.15), 0px 19px 30px rgba(0,0,0,0.08)\",\n \"0px 20px 40px rgba(0,0,0,0.15), 0px 20px 32px rgba(0,0,0,0.08)\",\n \"0px 21px 42px rgba(0,0,0,0.16), 0px 21px 34px rgba(0,0,0,0.09)\",\n \"0px 22px 44px rgba(0,0,0,0.16), 0px 22px 36px rgba(0,0,0,0.09)\",\n \"0px 23px 46px rgba(0,0,0,0.17), 0px 23px 38px rgba(0,0,0,0.09)\",\n \"0px 24px 48px rgba(0,0,0,0.17), 0px 24px 40px rgba(0,0,0,0.09)\",\n];\n","export const spacingUnit = 8;\n\nexport const spacingTokens = {\n 0: 0,\n 1: 4,\n 2: 8,\n 3: 12,\n 4: 16,\n 5: 20,\n 6: 24,\n 7: 28,\n 8: 32,\n 9: 36,\n 10: 40,\n 11: 44,\n 12: 48,\n 14: 56,\n 16: 64,\n 20: 80,\n 24: 96,\n 32: 128,\n} as const;\n","import { createTheme } from \"@mui/material/styles\";\nimport { alchemyTheme } from \"./index\";\nimport type { Theme, ThemeOptions } from \"@mui/material/styles\";\n\nexport interface BrandTokens {\n primary?: string;\n secondary?: string;\n fontFamily?: string;\n borderRadius?: number;\n error?: string;\n warning?: string;\n info?: string;\n success?: string;\n background?: {\n default?: string;\n paper?: string;\n };\n overrides?: ThemeOptions;\n}\n\nexport function createAlchemyTheme(tokens: BrandTokens = {}): Theme {\n const {\n primary,\n secondary,\n fontFamily,\n borderRadius,\n error,\n warning,\n info,\n success,\n background,\n overrides = {},\n } = tokens;\n\n const paletteOverrides: ThemeOptions[\"palette\"] = {};\n if (primary) paletteOverrides.primary = { main: primary };\n if (secondary) paletteOverrides.secondary = { main: secondary };\n if (error) paletteOverrides.error = { main: error };\n if (warning) paletteOverrides.warning = { main: warning };\n if (info) paletteOverrides.info = { main: info };\n if (success) paletteOverrides.success = { main: success };\n if (background) paletteOverrides.background = background;\n\n const typographyOverrides: ThemeOptions[\"typography\"] = fontFamily\n ? ({ fontFamily } as ThemeOptions[\"typography\"])\n : {};\n\n const shapeOverrides: ThemeOptions[\"shape\"] =\n borderRadius !== undefined ? { borderRadius } : {};\n\n return createTheme(alchemyTheme, {\n palette: paletteOverrides,\n typography: typographyOverrides,\n shape: shapeOverrides,\n ...overrides,\n });\n}\n","export const zIndex = {\n mobileStepper: 1000,\n fab: 1050,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500,\n} as const;\n","import { createTheme } from \"@mui/material/styles\";\nimport { palette, customColors } from \"./palette\";\nimport { typography } from \"./typography\";\nimport { components } from \"./components\";\nimport { shapeConfig } from \"./shape\";\nimport { shadows } from \"./shadows\";\nimport { transitionsConfig } from \"./transitions\";\nimport { spacingUnit } from \"./spacing\";\nimport \"./types\";\n\nconst opacities = {\n 4: 0.04,\n 8: 0.08,\n 12: 0.12,\n 16: 0.16,\n 20: 0.2,\n 24: 0.24,\n 32: 0.32,\n 40: 0.4,\n 48: 0.48,\n 56: 0.56,\n 60: 0.6,\n 64: 0.64,\n 72: 0.72,\n 80: 0.8,\n 88: 0.88,\n 96: 0.96,\n 100: 1,\n};\n\nexport const alchemyTheme = createTheme({\n palette: {\n ...palette,\n shadow: {\n light: \"rgba(0, 0, 0, 0.12)\",\n medium: \"rgba(0, 0, 0, 0.14)\",\n dark: \"rgba(0, 0, 0, 0.20)\",\n },\n },\n typography,\n components,\n shape: shapeConfig,\n shadows,\n transitions: transitionsConfig,\n spacing: spacingUnit,\n customColors,\n opacities,\n} as Parameters<typeof createTheme>[0]);\n\nexport { customColors, palette, typography, components, opacities };\nexport { borderRadius, shapeConfig } from \"./shape\";\nexport { shadows } from \"./shadows\";\nexport { transitionsConfig } from \"./transitions\";\nexport { spacingTokens, spacingUnit } from \"./spacing\";\nexport { createAlchemyTheme } from \"./createAlchemyTheme\";\nexport type { BrandTokens } from \"./createAlchemyTheme\";\nexport { zIndex } from \"./zIndex\";\nexport type { Theme } from \"@mui/material/styles\";\n","import React, { useMemo } from \"react\";\nimport { ThemeProvider, createTheme } from \"@mui/material/styles\";\nimport CssBaseline from \"@mui/material/CssBaseline\";\nimport { alchemyTheme } from \"./theme\";\nimport type { Theme, ThemeOptions } from \"@mui/material/styles\";\n\nexport interface AlchemyProviderProps {\n children: React.ReactNode;\n /** Completely replaces the default Alchemy theme. Takes priority over themeOverrides. */\n theme?: Theme;\n /** Partial theme options merged on top of alchemyTheme. Use this to customize colors, typography, etc. */\n themeOverrides?: ThemeOptions;\n disableCssBaseline?: boolean;\n}\n\nexport const AlchemyProvider: React.FC<AlchemyProviderProps> = ({\n children,\n theme,\n themeOverrides,\n disableCssBaseline = false,\n}) => {\n const resolvedTheme = useMemo(() => {\n if (theme) return theme;\n if (themeOverrides) return createTheme(alchemyTheme, themeOverrides);\n return alchemyTheme;\n }, [theme, themeOverrides]);\n\n return (\n <ThemeProvider theme={resolvedTheme}>\n {!disableCssBaseline && <CssBaseline />}\n {children}\n </ThemeProvider>\n );\n};\n","import { createTheme } from \"@mui/material/styles\";\nimport { alchemyTheme } from \"./index\";\n\nexport const alchemyDarkTheme = createTheme(alchemyTheme, {\n palette: {\n mode: \"dark\",\n primary: {\n main: \"#4D82F5\",\n light: \"#7AA3F7\",\n dark: \"#1F5FF2\",\n contrastText: \"#FFFFFF\",\n },\n secondary: {\n main: \"#00BCD4\",\n light: \"#33C9DC\",\n dark: \"#00A8C0\",\n contrastText: \"#FFFFFF\",\n },\n background: {\n default: \"#0B0F19\",\n paper: \"#131929\",\n },\n text: {\n primary: \"#E8EAF6\",\n secondary: \"#9FA8DA\",\n disabled: \"rgba(232,234,246,0.38)\",\n },\n divider: \"rgba(255,255,255,0.12)\",\n action: {\n active: \"rgba(255,255,255,0.7)\",\n hover: \"rgba(255,255,255,0.08)\",\n selected: \"rgba(77,130,245,0.16)\",\n disabled: \"rgba(255,255,255,0.3)\",\n disabledBackground: \"rgba(255,255,255,0.12)\",\n },\n },\n components: {\n MuiCard: {\n styleOverrides: {\n root: {\n boxShadow: \"0px 4px 24px rgba(0,0,0,0.4)\",\n },\n },\n },\n MuiOutlinedInput: {\n styleOverrides: {\n root: {\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"rgba(255,255,255,0.23)\",\n },\n },\n },\n },\n },\n});\n","import { useState, useEffect, useCallback } from \"react\";\nimport { alchemyTheme } from \"../theme\";\nimport { alchemyDarkTheme } from \"../theme/dark\";\nimport type { Theme } from \"@mui/material/styles\";\n\nexport type ColorMode = \"light\" | \"dark\" | \"system\";\nexport type ResolvedColorMode = \"light\" | \"dark\";\n\nexport interface ColorModeState {\n mode: ColorMode;\n resolvedMode: ResolvedColorMode;\n isDark: boolean;\n theme: Theme;\n toggle: () => void;\n setMode: (mode: ColorMode) => void;\n}\n\nconst STORAGE_KEY = \"alchemy-color-mode\";\n\nfunction getSystemMode(): ResolvedColorMode {\n /* v8 ignore start */\n if (typeof window === \"undefined\") return \"light\";\n /* v8 ignore stop */\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\n}\n\nfunction readStoredMode(): ColorMode {\n try {\n const stored = localStorage.getItem(STORAGE_KEY);\n if (stored === \"light\" || stored === \"dark\" || stored === \"system\") return stored;\n } catch {\n // localStorage unavailable (SSR, private mode)\n }\n return \"system\";\n}\n\nfunction writeStoredMode(mode: ColorMode): void {\n try {\n localStorage.setItem(STORAGE_KEY, mode);\n } catch {\n // ignore\n }\n}\n\nexport function useColorMode(): ColorModeState {\n const [mode, setModeState] = useState<ColorMode>(() => readStoredMode());\n const [systemMode, setSystemMode] = useState<ResolvedColorMode>(() => getSystemMode());\n\n useEffect(() => {\n /* v8 ignore start */\n if (typeof window === \"undefined\") return;\n /* v8 ignore stop */\n const mq = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const handler = (e: MediaQueryListEvent) => {\n setSystemMode(e.matches ? \"dark\" : \"light\");\n };\n mq.addEventListener(\"change\", handler);\n return () => mq.removeEventListener(\"change\", handler);\n }, []);\n\n const resolvedMode: ResolvedColorMode = mode === \"system\" ? systemMode : mode;\n const isDark = resolvedMode === \"dark\";\n const theme = isDark ? alchemyDarkTheme : alchemyTheme;\n\n const setMode = useCallback((next: ColorMode) => {\n setModeState(next);\n writeStoredMode(next);\n }, []);\n\n const toggle = useCallback(() => {\n setMode(resolvedMode === \"dark\" ? \"light\" : \"dark\");\n }, [resolvedMode, setMode]);\n\n return { mode, resolvedMode, isDark, theme, toggle, setMode };\n}\n","import React, { createContext, useContext, useMemo } from \"react\";\nimport { ThemeProvider } from \"@mui/material/styles\";\nimport CssBaseline from \"@mui/material/CssBaseline\";\nimport { useColorMode } from \"./useColorMode\";\nimport type { ColorModeState, ColorMode } from \"./useColorMode\";\n\nconst ColorModeContext = createContext<ColorModeState | null>(null);\n\nexport interface ColorModeProviderProps {\n children: React.ReactNode;\n defaultMode?: ColorMode;\n disableCssBaseline?: boolean;\n}\n\nexport function ColorModeProvider({\n children,\n disableCssBaseline = false,\n}: ColorModeProviderProps) {\n const colorMode = useColorMode();\n const value = useMemo(() => colorMode, [colorMode]);\n\n return (\n <ColorModeContext.Provider value={value}>\n <ThemeProvider theme={colorMode.theme}>\n {!disableCssBaseline && <CssBaseline />}\n {children}\n </ThemeProvider>\n </ColorModeContext.Provider>\n );\n}\n\nexport function useColorModeContext(): ColorModeState {\n const ctx = useContext(ColorModeContext);\n if (!ctx) {\n throw new Error(\"useColorModeContext must be used inside <ColorModeProvider>\");\n }\n return ctx;\n}\n","import React from \"react\";\nimport MuiButton, { type ButtonProps as MuiButtonProps } from \"@mui/material/Button\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\n\nexport interface ButtonProps extends Omit<MuiButtonProps, \"children\"> {\n children?: React.ReactNode;\n loading?: boolean;\n loadingText?: string;\n}\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ children, loading = false, loadingText, disabled, startIcon, ...props }, ref) => {\n return (\n <MuiButton\n ref={ref}\n disabled={disabled || loading}\n startIcon={loading ? <CircularProgress size={16} color=\"inherit\" /> : startIcon}\n {...props}\n >\n {loading && loadingText ? loadingText : children}\n </MuiButton>\n );\n }\n);\n\nButton.displayName = \"Button\";\n","import React from \"react\";\nimport MuiSelect, { type SelectProps as MuiSelectProps } from \"@mui/material/Select\";\nimport FormControl from \"@mui/material/FormControl\";\nimport InputLabel from \"@mui/material/InputLabel\";\nimport FormHelperText from \"@mui/material/FormHelperText\";\nimport MenuItem from \"@mui/material/MenuItem\";\n\nexport interface SelectOption {\n value: string | number;\n label: string;\n disabled?: boolean;\n}\n\nexport interface SelectProps extends Omit<MuiSelectProps, \"label\"> {\n label?: string;\n options?: SelectOption[];\n helperText?: string;\n error?: boolean;\n fullWidth?: boolean;\n}\n\nexport const Select = React.forwardRef<HTMLDivElement, SelectProps>(\n (\n { label, options = [], helperText, error = false, fullWidth = false, size, ...props },\n ref\n ) => {\n const labelId = label\n ? `${label.toLowerCase().replace(/\\s+/g, \"-\")}-label`\n : undefined;\n\n return (\n <FormControl\n ref={ref}\n fullWidth={fullWidth}\n error={error}\n size={size as \"small\" | \"medium\" | undefined}\n >\n {label && <InputLabel id={labelId}>{label}</InputLabel>}\n <MuiSelect label={label} labelId={labelId} {...props}>\n {options.map((option) => (\n <MenuItem key={option.value} value={option.value} disabled={option.disabled}>\n {option.label}\n </MenuItem>\n ))}\n </MuiSelect>\n {helperText && <FormHelperText>{helperText}</FormHelperText>}\n </FormControl>\n );\n }\n);\n\nSelect.displayName = \"Select\";\n","import React from \"react\";\nimport MuiSwitch, { type SwitchProps as MuiSwitchProps } from \"@mui/material/Switch\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\n\nexport interface SwitchProps extends MuiSwitchProps {\n label?: string;\n labelPlacement?: \"start\" | \"end\" | \"top\" | \"bottom\";\n}\n\nexport const Switch = React.forwardRef<HTMLButtonElement, SwitchProps>(\n ({ label, labelPlacement = \"end\", ...props }, ref) => {\n if (label) {\n return (\n <FormControlLabel\n control={<MuiSwitch ref={ref} {...props} />}\n label={label}\n labelPlacement={labelPlacement}\n />\n );\n }\n\n return <MuiSwitch ref={ref} {...props} />;\n }\n);\n\nSwitch.displayName = \"Switch\";\n","import React from \"react\";\nimport MuiTextField from \"@mui/material/TextField\";\nimport type { OutlinedTextFieldProps } from \"@mui/material/TextField\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\n\nexport interface TextFieldProps extends Omit<OutlinedTextFieldProps, \"variant\"> {\n variant?: \"outlined\" | \"filled\" | \"standard\";\n startAdornment?: React.ReactNode;\n endAdornment?: React.ReactNode;\n}\n\nexport const TextField = React.forwardRef<HTMLDivElement, TextFieldProps>(\n ({ startAdornment, endAdornment, slotProps, ...props }, ref) => {\n const inputSlotProps: Record<string, unknown> = {\n ...(slotProps?.input as Record<string, unknown> | undefined),\n };\n\n if (startAdornment) {\n inputSlotProps.startAdornment = (\n <InputAdornment position=\"start\">{startAdornment}</InputAdornment>\n );\n }\n if (endAdornment) {\n inputSlotProps.endAdornment = (\n <InputAdornment position=\"end\">{endAdornment}</InputAdornment>\n );\n }\n\n return (\n <MuiTextField\n ref={ref}\n variant={props.variant ?? \"outlined\"}\n slotProps={{\n ...slotProps,\n input: inputSlotProps,\n }}\n {...props}\n />\n );\n }\n);\n\nTextField.displayName = \"TextField\";\n","import React from \"react\";\nimport MuiTypography, {\n type TypographyProps as MuiTypographyProps,\n} from \"@mui/material/Typography\";\n\nexport type TypographyProps = MuiTypographyProps;\n\nexport const Typography = React.forwardRef<HTMLElement, TypographyProps>((props, ref) => {\n return <MuiTypography ref={ref} {...props} />;\n});\n\nTypography.displayName = \"Typography\";\n","import React from \"react\";\nimport MuiAvatar, { type AvatarProps as MuiAvatarProps } from \"@mui/material/Avatar\";\n\nexport type AvatarSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nexport const sizeStyles: Record<\n AvatarSize,\n { width: number; height: number; fontSize: number }\n> = {\n sm: { width: 24, height: 24, fontSize: 12 },\n md: { width: 40, height: 40, fontSize: 20 },\n lg: { width: 56, height: 56, fontSize: 24 },\n xl: { width: 72, height: 72, fontSize: 32 },\n};\n\nexport interface AvatarProps extends MuiAvatarProps {\n name?: string;\n size?: AvatarSize | number;\n}\n\nfunction getInitials(name: string): string {\n return name\n .split(\" \")\n .map((part) => part[0])\n .join(\"\")\n .toUpperCase()\n .slice(0, 2);\n}\n\nfunction stringToColor(str: string): string {\n const colors = [\n \"#1F5FF2\", // primary.main\n \"#00A8C0\", // secondary.main\n \"#2E7D32\", // success.main\n \"#EF6C00\", // warning.main\n \"#D32F2F\", // error.main\n \"#152356\", // blue.900 (ink)\n \"#1565C0\", // primary.dark\n \"#03859B\", // info.main\n ];\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n hash = str.charCodeAt(i) + ((hash << 5) - hash);\n }\n return colors[Math.abs(hash) % colors.length];\n}\n\nexport const Avatar = React.forwardRef<HTMLDivElement, AvatarProps>(\n ({ name, children, sx, size, ...props }, ref) => {\n const initials = name ? getInitials(name) : undefined;\n const bgColor = name ? stringToColor(name) : undefined;\n\n const resolvedSize =\n size !== undefined\n ? typeof size === \"number\"\n ? { width: size, height: size, fontSize: Math.round(size * 0.45) }\n : sizeStyles[size]\n : undefined;\n\n return (\n <MuiAvatar\n ref={ref}\n sx={{\n bgcolor: bgColor,\n ...resolvedSize,\n ...sx,\n }}\n {...props}\n >\n {children ?? initials}\n </MuiAvatar>\n );\n }\n);\n\nAvatar.displayName = \"Avatar\";\n","import React from \"react\";\nimport MuiChip, { type ChipProps as MuiChipProps } from \"@mui/material/Chip\";\nimport type { SxProps, Theme } from \"@mui/material\";\n\nexport const ALCHEMY_CHIP_PRESETS = {\n sent: { backgroundColor: \"#FFF3E0\", color: \"#E65100\", border: \"1px solid #FFE0B2\" },\n viewed: { backgroundColor: \"#E3F2FD\", color: \"#1565C0\", border: \"1px solid #BBDEFB\" },\n signed: { backgroundColor: \"#E8F5E9\", color: \"#1B5E20\", border: \"1px solid #C8E6C9\" },\n expired: { backgroundColor: \"#FFEBEE\", color: \"#C62828\", border: \"1px solid #FFCDD2\" },\n admin: { backgroundColor: \"#EEF6FF\", color: \"#1649DF\", border: \"1px solid #DAEAFF\" },\n public: { backgroundColor: \"#F3E5F5\", color: \"#6A1B9A\", border: \"1px solid #E1BEE7\" },\n system: { backgroundColor: \"#E0F7FA\", color: \"#03859B\", border: \"1px solid #B2EBF2\" },\n contractor: {\n backgroundColor: \"#FFF8E1\",\n color: \"#EF6C00\",\n border: \"1px solid #FFE082\",\n },\n active: { backgroundColor: \"#E8F5E9\", color: \"#1B5E20\", border: \"1px solid #C8E6C9\" },\n inactive: { backgroundColor: \"#EEEEEE\", color: \"#616161\", border: \"1px solid #E0E0E0\" },\n version: { backgroundColor: \"#EAFFFD\", color: \"#03859B\", border: \"1px solid #CBFFFD\" },\n} as const;\n\nexport type AlchemyChipPreset = keyof typeof ALCHEMY_CHIP_PRESETS;\n\nexport interface ChipProps extends Omit<MuiChipProps, \"color\"> {\n preset?: AlchemyChipPreset;\n color?: MuiChipProps[\"color\"];\n}\n\nconst presetBaseSx: SxProps<Theme> = {\n borderRadius: \"100px\",\n fontWeight: 500,\n fontSize: \"0.75rem\",\n lineHeight: 1.4,\n};\n\nexport const Chip = React.forwardRef<HTMLDivElement, ChipProps>(\n ({ preset, sx, ...props }, ref) => {\n const resolvedSx: SxProps<Theme> = preset\n ? [\n presetBaseSx,\n ALCHEMY_CHIP_PRESETS[preset],\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ]\n : (sx ?? {});\n\n return <MuiChip ref={ref} sx={resolvedSx} {...props} />;\n }\n);\n\nChip.displayName = \"Chip\";\n","import React from \"react\";\nimport MuiIconButton, {\n type IconButtonProps as MuiIconButtonProps,\n} from \"@mui/material/IconButton\";\nimport Tooltip from \"@mui/material/Tooltip\";\n\nexport interface IconButtonProps extends MuiIconButtonProps {\n tooltip?: string;\n}\n\nexport const IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(\n ({ tooltip, children, ...props }, ref) => {\n const button = (\n <MuiIconButton ref={ref} {...props}>\n {children}\n </MuiIconButton>\n );\n\n if (tooltip) {\n return <Tooltip title={tooltip}>{button}</Tooltip>;\n }\n\n return button;\n }\n);\n\nIconButton.displayName = \"IconButton\";\n","import React from \"react\";\nimport MuiBadge, { type BadgeProps as MuiBadgeProps } from \"@mui/material/Badge\";\n\nexport type BadgeProps = MuiBadgeProps;\n\nexport const Badge = React.forwardRef<HTMLSpanElement, BadgeProps>((props, ref) => {\n return <MuiBadge ref={ref} {...props} />;\n});\n\nBadge.displayName = \"Badge\";\n","import React from \"react\";\nimport MuiDivider, { type DividerProps as MuiDividerProps } from \"@mui/material/Divider\";\n\nexport type DividerProps = MuiDividerProps;\n\nexport const Divider = React.forwardRef<HTMLHRElement, DividerProps>((props, ref) => {\n return <MuiDivider ref={ref} {...props} />;\n});\n\nDivider.displayName = \"Divider\";\n","import React from \"react\";\nimport MuiSkeleton, {\n type SkeletonProps as MuiSkeletonProps,\n} from \"@mui/material/Skeleton\";\n\nexport type SkeletonProps = MuiSkeletonProps;\n\nexport const Skeleton = React.forwardRef<HTMLSpanElement, SkeletonProps>((props, ref) => {\n return <MuiSkeleton ref={ref} {...props} />;\n});\n\nSkeleton.displayName = \"Skeleton\";\n","import React from \"react\";\nimport MuiLinearProgress from \"@mui/material/LinearProgress\";\nimport MuiCircularProgress from \"@mui/material/CircularProgress\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport type ProgressType = \"linear\" | \"circular\";\nexport type ProgressVariant = \"determinate\" | \"indeterminate\" | \"buffer\" | \"query\";\nexport type ProgressColor =\n | \"primary\"\n | \"secondary\"\n | \"error\"\n | \"info\"\n | \"success\"\n | \"warning\"\n | \"inherit\";\n\nexport interface ProgressProps {\n type?: ProgressType;\n variant?: ProgressVariant;\n value?: number;\n color?: ProgressColor;\n size?: number | string;\n thickness?: number;\n sx?: SxProps<Theme>;\n}\n\nexport const Progress = React.forwardRef<HTMLElement, ProgressProps>(\n (\n {\n type = \"linear\",\n variant = \"indeterminate\",\n value,\n color = \"primary\",\n size,\n thickness,\n sx,\n },\n ref\n ) => {\n if (type === \"circular\") {\n const circularVariant =\n variant === \"buffer\" || variant === \"query\" ? \"indeterminate\" : variant;\n return (\n <MuiCircularProgress\n ref={ref as React.Ref<HTMLSpanElement>}\n variant={circularVariant}\n value={value}\n color={color}\n size={size}\n thickness={thickness}\n sx={sx}\n />\n );\n }\n\n return (\n <MuiLinearProgress\n ref={ref as React.Ref<HTMLDivElement>}\n variant={variant}\n value={value}\n color={color}\n sx={sx}\n />\n );\n }\n);\n\nProgress.displayName = \"Progress\";\n","import React from \"react\";\nimport MuiTooltip, { type TooltipProps as MuiTooltipProps } from \"@mui/material/Tooltip\";\n\nexport type TooltipProps = MuiTooltipProps;\n\nexport const Tooltip = React.forwardRef<HTMLDivElement, TooltipProps>((props, ref) => {\n return <MuiTooltip ref={ref} {...props} />;\n});\n\nTooltip.displayName = \"Tooltip\";\n","import React from \"react\";\nimport MuiCheckbox, {\n type CheckboxProps as MuiCheckboxProps,\n} from \"@mui/material/Checkbox\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\n\nexport interface CheckboxProps extends MuiCheckboxProps {\n label?: string;\n labelPlacement?: \"start\" | \"end\" | \"top\" | \"bottom\";\n}\n\nexport const Checkbox = React.forwardRef<HTMLButtonElement, CheckboxProps>(\n ({ label, labelPlacement = \"end\", ...props }, ref) => {\n if (label) {\n return (\n <FormControlLabel\n control={<MuiCheckbox ref={ref} {...props} />}\n label={label}\n labelPlacement={labelPlacement}\n />\n );\n }\n\n return <MuiCheckbox ref={ref} {...props} />;\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\n","import React from \"react\";\nimport MuiRadio, { type RadioProps as MuiRadioProps } from \"@mui/material/Radio\";\nimport MuiRadioGroup, {\n type RadioGroupProps as MuiRadioGroupProps,\n} from \"@mui/material/RadioGroup\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport FormControl from \"@mui/material/FormControl\";\nimport FormLabel from \"@mui/material/FormLabel\";\n\nexport interface RadioOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface RadioGroupProps extends Omit<MuiRadioGroupProps, \"children\"> {\n label?: string;\n options: RadioOption[];\n size?: \"small\" | \"medium\" | \"large\";\n radioProps?: MuiRadioProps;\n}\n\nexport const RadioGroup = React.forwardRef<HTMLDivElement, RadioGroupProps>(\n ({ label, options, size, radioProps, ...props }, ref) => {\n const radioSize = size === \"large\" ? \"medium\" : size;\n const effectiveRadioProps: MuiRadioProps =\n radioSize !== undefined ? { size: radioSize, ...radioProps } : { ...radioProps };\n return (\n <FormControl>\n {label && <FormLabel>{label}</FormLabel>}\n <MuiRadioGroup ref={ref} {...props}>\n {options.map((option) => (\n <FormControlLabel\n key={option.value}\n value={option.value}\n label={option.label}\n disabled={option.disabled}\n control={<MuiRadio {...effectiveRadioProps} />}\n />\n ))}\n </MuiRadioGroup>\n </FormControl>\n );\n }\n);\n\nRadioGroup.displayName = \"RadioGroup\";\n","import React from \"react\";\nimport MuiSlider, { type SliderProps as MuiSliderProps } from \"@mui/material/Slider\";\n\nexport type SliderProps = MuiSliderProps;\n\nexport const Slider = React.forwardRef<HTMLSpanElement, SliderProps>((props, ref) => {\n return <MuiSlider ref={ref} {...props} />;\n});\n\nSlider.displayName = \"Slider\";\n","import React from \"react\";\nimport MuiRating, { type RatingProps as MuiRatingProps } from \"@mui/material/Rating\";\n\nexport type RatingProps = MuiRatingProps;\n\nexport const Rating = React.forwardRef<HTMLSpanElement, RatingProps>((props, ref) => {\n return <MuiRating ref={ref} {...props} />;\n});\n\nRating.displayName = \"Rating\";\n","import React from \"react\";\nimport MuiLink, { type LinkProps as MuiLinkProps } from \"@mui/material/Link\";\n\nexport type LinkProps = MuiLinkProps;\n\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>((props, ref) => {\n return <MuiLink ref={ref} {...props} />;\n});\n\nLink.displayName = \"Link\";\n","import React from \"react\";\nimport MuiToggleButton, {\n type ToggleButtonProps as MuiToggleButtonProps,\n} from \"@mui/material/ToggleButton\";\nimport MuiToggleButtonGroup, {\n type ToggleButtonGroupProps as MuiToggleButtonGroupProps,\n} from \"@mui/material/ToggleButtonGroup\";\n\nexport type ToggleButtonProps = MuiToggleButtonProps;\nexport type ToggleButtonGroupProps = MuiToggleButtonGroupProps;\n\nexport const ToggleButton = React.forwardRef<HTMLButtonElement, ToggleButtonProps>(\n (props, ref) => {\n return <MuiToggleButton ref={ref} {...props} />;\n }\n);\nToggleButton.displayName = \"ToggleButton\";\n\nexport const ToggleButtonGroup = React.forwardRef<HTMLDivElement, ToggleButtonGroupProps>(\n (props, ref) => {\n return <MuiToggleButtonGroup ref={ref} {...props} />;\n }\n);\nToggleButtonGroup.displayName = \"ToggleButtonGroup\";\n","import React from \"react\";\nimport MuiFab, { type FabProps as MuiFabProps } from \"@mui/material/Fab\";\n\nexport type FabProps = MuiFabProps;\n\nexport const Fab = React.forwardRef<HTMLButtonElement, FabProps>((props, ref) => {\n return <MuiFab ref={ref} {...props} />;\n});\n\nFab.displayName = \"Fab\";\n","import React from \"react\";\nimport FormControl from \"@mui/material/FormControl\";\nimport FormLabel from \"@mui/material/FormLabel\";\nimport FormHelperText from \"@mui/material/FormHelperText\";\nimport { TextField, type TextFieldProps } from \"../../atoms/TextField\";\n\nexport interface FormFieldProps extends TextFieldProps {\n label?: string;\n hint?: string;\n}\n\nexport const FormField = React.forwardRef<HTMLDivElement, FormFieldProps>(\n ({ label, hint, required, error, helperText, fullWidth = true, ...props }, ref) => {\n return (\n <FormControl fullWidth={fullWidth} error={error}>\n {label && (\n <FormLabel\n required={required}\n sx={{\n mb: 0.75,\n fontSize: \"0.875rem\",\n fontWeight: 500,\n color: \"text.primary\",\n \"&.Mui-focused\": { color: \"text.primary\" },\n \"&.Mui-error\": { color: \"error.main\" },\n }}\n >\n {label}\n </FormLabel>\n )}\n <TextField\n ref={ref}\n required={required}\n error={error}\n fullWidth={fullWidth}\n {...props}\n />\n {(helperText || hint) && (\n <FormHelperText error={error} sx={{ mt: 0.5 }}>\n {helperText ?? hint}\n </FormHelperText>\n )}\n </FormControl>\n );\n }\n);\n\nFormField.displayName = \"FormField\";\n","import React from \"react\";\nimport SearchIcon from \"@mui/icons-material/Search\";\nimport ClearIcon from \"@mui/icons-material/Clear\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport MuiIconButton from \"@mui/material/IconButton\";\nimport OutlinedInput from \"@mui/material/OutlinedInput\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport interface SearchBarProps {\n value?: string;\n defaultValue?: string;\n placeholder?: string;\n onChange?: (value: string) => void;\n onClear?: () => void;\n onSearch?: (value: string) => void;\n disabled?: boolean;\n fullWidth?: boolean;\n size?: \"small\" | \"medium\";\n sx?: SxProps<Theme>;\n}\n\nexport const SearchBar = React.forwardRef<HTMLInputElement, SearchBarProps>(\n (\n {\n value,\n defaultValue,\n placeholder = \"Search...\",\n onChange,\n onClear,\n onSearch,\n disabled,\n fullWidth = true,\n size = \"medium\",\n sx,\n },\n ref\n ) => {\n const [internalValue, setInternalValue] = React.useState(defaultValue ?? \"\");\n const isControlled = value !== undefined;\n const currentValue = isControlled ? value : internalValue;\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value;\n if (!isControlled) setInternalValue(newValue);\n onChange?.(newValue);\n };\n\n const handleClear = () => {\n if (!isControlled) setInternalValue(\"\");\n onChange?.(\"\");\n onClear?.();\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") {\n onSearch?.(currentValue);\n }\n };\n\n return (\n <OutlinedInput\n inputRef={ref}\n value={currentValue}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n disabled={disabled}\n fullWidth={fullWidth}\n size={size}\n startAdornment={\n <InputAdornment position=\"start\">\n <SearchIcon fontSize=\"small\" sx={{ color: \"text.secondary\" }} />\n </InputAdornment>\n }\n endAdornment={\n currentValue ? (\n <InputAdornment position=\"end\">\n <MuiIconButton\n size=\"small\"\n onClick={handleClear}\n edge=\"end\"\n aria-label=\"clear search\"\n >\n <ClearIcon fontSize=\"small\" />\n </MuiIconButton>\n </InputAdornment>\n ) : null\n }\n sx={{\n borderRadius: \"100px\",\n bgcolor: \"action.hover\",\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"transparent\",\n },\n \"&:hover .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"divider\",\n },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"primary.main\",\n bgcolor: \"transparent\",\n },\n ...sx,\n }}\n />\n );\n }\n);\n\nSearchBar.displayName = \"SearchBar\";\n","import React from \"react\";\nimport MuiChip from \"@mui/material/Chip\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport type StatusVariant =\n | \"active\"\n | \"inactive\"\n | \"pending\"\n | \"completed\"\n | \"cancelled\"\n | \"in_progress\"\n | \"on_hold\"\n | \"error\"\n | \"draft\"\n | \"sent\"\n | \"viewed\"\n | \"signed\"\n | \"expired\"\n | \"admin\"\n | \"public\";\n\ninterface StatusConfig {\n label: string;\n color: string;\n bgcolor: string;\n}\n\nconst STATUS_CONFIG: Record<StatusVariant, StatusConfig> = {\n active: { label: \"Active\", color: \"#2E7D32\", bgcolor: \"#E8F5E9\" },\n inactive: { label: \"Inactive\", color: \"#616161\", bgcolor: \"#F5F5F5\" },\n pending: { label: \"Pending\", color: \"#EF6C00\", bgcolor: \"#FFF3E0\" },\n completed: { label: \"Completed\", color: \"#1B5E20\", bgcolor: \"#C8E6C9\" },\n cancelled: { label: \"Cancelled\", color: \"#C62828\", bgcolor: \"#FFEBEE\" },\n in_progress: { label: \"In Progress\", color: \"#1F5FF2\", bgcolor: \"#EEF6FF\" },\n on_hold: { label: \"On Hold\", color: \"#EF6C00\", bgcolor: \"#FFF8E1\" },\n error: { label: \"Error\", color: \"#D32F2F\", bgcolor: \"#FFEBEE\" },\n draft: { label: \"Draft\", color: \"#03859B\", bgcolor: \"#EAFFFD\" },\n sent: { label: \"Sent\", color: \"#E65100\", bgcolor: \"#FFF3E0\" },\n viewed: { label: \"Viewed\", color: \"#1565C0\", bgcolor: \"#E3F2FD\" },\n signed: { label: \"Signed\", color: \"#1B5E20\", bgcolor: \"#E8F5E9\" },\n expired: { label: \"Expired\", color: \"#C62828\", bgcolor: \"#FFEBEE\" },\n admin: { label: \"Admin\", color: \"#1649DF\", bgcolor: \"#EEF6FF\" },\n public: { label: \"Public\", color: \"#6A1B9A\", bgcolor: \"#F3E5F5\" },\n};\n\nexport interface StatusChipProps {\n status: StatusVariant;\n label?: string;\n size?: \"small\" | \"medium\";\n sx?: SxProps<Theme>;\n}\n\nexport const StatusChip: React.FC<StatusChipProps> = ({\n status,\n label,\n size = \"small\",\n sx,\n}) => {\n const config = STATUS_CONFIG[status];\n\n return (\n <MuiChip\n label={label ?? config.label}\n size={size}\n sx={{\n color: config.color,\n bgcolor: config.bgcolor,\n fontWeight: 600,\n borderRadius: \"6px\",\n border: \"none\",\n ...sx,\n }}\n />\n );\n};\n","import React from \"react\";\nimport Alert, { type AlertProps } from \"@mui/material/Alert\";\nimport AlertTitle from \"@mui/material/AlertTitle\";\nimport Collapse from \"@mui/material/Collapse\";\n\nexport interface AlertBannerProps extends Omit<AlertProps, \"title\"> {\n title?: string;\n message: React.ReactNode;\n open?: boolean;\n onClose?: () => void;\n animate?: boolean;\n}\n\nexport const AlertBanner: React.FC<AlertBannerProps> = ({\n title,\n message,\n open = true,\n onClose,\n animate = true,\n severity = \"info\",\n ...props\n}) => {\n const content = (\n <Alert severity={severity} onClose={onClose} sx={{ borderRadius: 3 }} {...props}>\n {title && <AlertTitle sx={{ fontWeight: 600 }}>{title}</AlertTitle>}\n {message}\n </Alert>\n );\n\n if (animate) {\n return <Collapse in={open}>{content}</Collapse>;\n }\n\n return open ? content : null;\n};\n","import React from \"react\";\nimport ListItemButton from \"@mui/material/ListItemButton\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport interface MenuItemProps {\n label: string;\n icon?: React.ReactNode;\n selected?: boolean;\n disabled?: boolean;\n onClick?: () => void;\n endContent?: React.ReactNode;\n sx?: SxProps<Theme>;\n}\n\nexport const MenuItem: React.FC<MenuItemProps> = ({\n label,\n icon,\n selected,\n disabled,\n onClick,\n endContent,\n sx,\n}) => {\n return (\n <ListItemButton\n selected={selected}\n disabled={disabled}\n onClick={onClick}\n sx={{ px: 2, py: 0.75, ...sx }}\n >\n {icon && (\n <ListItemIcon sx={{ minWidth: 36, color: \"inherit\" }}>{icon}</ListItemIcon>\n )}\n <ListItemText\n primary={label}\n slotProps={{\n primary: {\n fontSize: \"0.875rem\",\n fontWeight: selected ? 600 : 400,\n },\n }}\n />\n {endContent}\n </ListItemButton>\n );\n};\n","import React, { useState } from \"react\";\nimport MuiTabs, { type TabsProps as MuiTabsProps } from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport Box from \"@mui/material/Box\";\nimport { useTheme } from \"@mui/material/styles\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport interface TabItem {\n label: string;\n content: React.ReactNode;\n disabled?: boolean;\n icon?: React.ReactElement;\n}\n\nexport interface TabsProps extends Omit<MuiTabsProps, \"onChange\" | \"value\"> {\n tabs: TabItem[];\n defaultTab?: number;\n onChange?: (index: number) => void;\n /**\n * Visual style variant.\n * - `\"default\"` — standard MUI underline indicator.\n * - `\"pill\"` — active tab gets a filled rounded pill; no underline indicator.\n */\n styleVariant?: \"default\" | \"pill\";\n}\n\nexport const Tabs = React.forwardRef<HTMLDivElement, TabsProps>(\n (\n {\n tabs,\n defaultTab = 0,\n onChange,\n styleVariant = \"default\",\n sx: userSx,\n slotProps: userSlotProps,\n ...props\n },\n ref\n ) => {\n const theme = useTheme();\n const [activeTab, setActiveTab] = useState(defaultTab);\n\n const handleChange = (_event: React.SyntheticEvent, newValue: number) => {\n setActiveTab(newValue);\n onChange?.(newValue);\n };\n\n const pillSx: SxProps<Theme> =\n styleVariant === \"pill\"\n ? {\n \"& .MuiTabs-flexContainer\": { width: \"100%\" },\n \"& .MuiTab-root\": {\n textTransform: \"none\",\n borderRadius: \"20px\",\n minHeight: \"36px\",\n px: 2,\n py: 1,\n fontWeight: 500,\n flexGrow: 1,\n maxWidth: \"none\",\n },\n \"& .Mui-selected\": {\n backgroundColor: theme.customColors.blue[800],\n color: \"white !important\",\n },\n }\n : {};\n\n const pillSlotProps =\n styleVariant === \"pill\"\n ? { indicator: { sx: { display: \"none\" } }, ...userSlotProps }\n : userSlotProps;\n\n return (\n <Box ref={ref}>\n <MuiTabs\n value={activeTab}\n onChange={handleChange}\n slotProps={pillSlotProps}\n sx={[pillSx, ...(Array.isArray(userSx) ? userSx : [userSx])] as SxProps<Theme>}\n {...props}\n >\n {tabs.map((tab, index) => (\n <Tab\n key={index}\n label={tab.label}\n disabled={tab.disabled}\n icon={tab.icon}\n iconPosition=\"start\"\n />\n ))}\n </MuiTabs>\n {tabs.map((tab, index) => (\n <Box\n key={index}\n role=\"tabpanel\"\n hidden={activeTab !== index}\n aria-labelledby={`tab-${index}`}\n >\n {activeTab === index && tab.content}\n </Box>\n ))}\n </Box>\n );\n }\n);\n\nTabs.displayName = \"Tabs\";\n","import React from \"react\";\nimport MuiBreadcrumbs, {\n type BreadcrumbsProps as MuiBreadcrumbsProps,\n} from \"@mui/material/Breadcrumbs\";\nimport Link from \"@mui/material/Link\";\nimport Typography from \"@mui/material/Typography\";\n\nexport interface BreadcrumbItem {\n label: string;\n href?: string;\n onClick?: () => void;\n}\n\nexport interface BreadcrumbProps extends Omit<MuiBreadcrumbsProps, \"children\"> {\n items: BreadcrumbItem[];\n}\n\nexport const Breadcrumb = React.forwardRef<HTMLElement, BreadcrumbProps>(\n ({ items, ...props }, ref) => {\n return (\n <MuiBreadcrumbs ref={ref} aria-label=\"breadcrumb\" {...props}>\n {items.map((item, index) => {\n const isLast = index === items.length - 1;\n\n if (isLast) {\n return (\n <Typography key={index} color=\"text.primary\" aria-current=\"page\">\n {item.label}\n </Typography>\n );\n }\n\n if (item.href) {\n return (\n <Link key={index} href={item.href} underline=\"hover\" color=\"inherit\">\n {item.label}\n </Link>\n );\n }\n\n return (\n <Link\n key={index}\n component=\"button\"\n underline=\"hover\"\n color=\"inherit\"\n onClick={item.onClick}\n sx={{\n cursor: \"pointer\",\n background: \"none\",\n border: \"none\",\n font: \"inherit\",\n }}\n >\n {item.label}\n </Link>\n );\n })}\n </MuiBreadcrumbs>\n );\n }\n);\n\nBreadcrumb.displayName = \"Breadcrumb\";\n","import React from \"react\";\nimport {\n Toaster as SonnerToaster,\n type ToasterProps as SonnerToasterProps,\n} from \"sonner\";\n\nexport { toast } from \"sonner\";\n\nexport interface ToasterProps extends SonnerToasterProps {\n position?: SonnerToasterProps[\"position\"];\n richColors?: boolean;\n closeButton?: boolean;\n duration?: number;\n}\n\n/**\n * Mount once at the root of your app (or layout). Triggers are fired imperatively\n * via the exported `toast` utility:\n *\n * ```tsx\n * import { toast } from \"@alchemy/ui\";\n *\n * toast.success(\"Project saved.\");\n * toast.error(\"Could not save changes.\");\n * toast.warning(\"Unsaved changes.\");\n * toast.info(\"New version available.\");\n * toast.promise(saveProject(), { loading: \"Saving...\", success: \"Saved.\", error: \"Failed.\" });\n * ```\n */\nexport const Toaster = React.forwardRef<HTMLElement, ToasterProps>(\n (\n {\n position = \"bottom-right\",\n richColors = true,\n closeButton = false,\n duration = 4000,\n ...props\n },\n _ref\n ) => {\n return (\n <SonnerToaster\n position={position}\n richColors={richColors}\n closeButton={closeButton}\n duration={duration}\n toastOptions={{\n style: {\n fontFamily: \"Roboto, sans-serif\",\n borderRadius: \"10px\",\n },\n }}\n {...props}\n />\n );\n }\n);\n\nToaster.displayName = \"Toaster\";\n","import React from \"react\";\nimport MuiAccordion from \"@mui/material/Accordion\";\nimport AccordionSummary from \"@mui/material/AccordionSummary\";\nimport AccordionDetails from \"@mui/material/AccordionDetails\";\nimport Typography from \"@mui/material/Typography\";\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { Checkbox } from \"../../atoms/Checkbox\";\n\nexport interface AccordionProps {\n summary: React.ReactNode;\n details: React.ReactNode;\n disabled?: boolean;\n expanded?: boolean;\n defaultExpanded?: boolean;\n onChange?: (expanded: boolean) => void;\n /** Renders a checkbox on the left of the summary row. */\n checkable?: boolean;\n /** Controlled checked state of the header checkbox. */\n checked?: boolean;\n /** Initial checked state in uncontrolled mode. */\n defaultChecked?: boolean;\n /** Shows a dash (−) when some but not all children are selected. */\n indeterminate?: boolean;\n /** Fired when the header checkbox is toggled: `(checked: boolean) => void`. */\n onCheckChange?: (checked: boolean) => void;\n sx?: SxProps<Theme>;\n}\n\nexport const Accordion = React.forwardRef<HTMLDivElement, AccordionProps>(\n (\n {\n summary,\n details,\n disabled,\n expanded,\n defaultExpanded = false,\n onChange,\n checkable = false,\n checked,\n defaultChecked = false,\n indeterminate = false,\n onCheckChange,\n sx,\n },\n ref\n ) => {\n const theme = useTheme();\n const isControlled = typeof expanded === \"boolean\";\n const [internalExpanded, setInternalExpanded] = React.useState(defaultExpanded);\n const isExpanded = isControlled ? expanded : internalExpanded;\n\n const isCheckedControlled = typeof checked === \"boolean\";\n const [internalChecked, setInternalChecked] = React.useState(defaultChecked);\n const isChecked = isCheckedControlled ? checked : internalChecked;\n\n const handleCheckboxChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n e.stopPropagation();\n const next = e.target.checked;\n if (!isCheckedControlled) setInternalChecked(next);\n onCheckChange?.(next);\n };\n const borderColor = theme.customColors.blue[100];\n const baseSx: SxProps<Theme> = {\n overflow: \"hidden\",\n \"&:before\": { display: \"none\" },\n borderRadius: 2,\n border: `1px solid ${borderColor}`,\n backgroundColor: \"#fff\",\n };\n const composedSx = [\n baseSx,\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ] as SxProps<Theme>;\n\n const handleChange = (_: React.SyntheticEvent, nextExpanded: boolean) => {\n if (!isControlled) {\n setInternalExpanded(nextExpanded);\n }\n onChange?.(nextExpanded);\n };\n\n return (\n <MuiAccordion\n ref={ref}\n expanded={isExpanded}\n onChange={handleChange}\n disabled={disabled}\n disableGutters\n elevation={0}\n square={false}\n sx={composedSx}\n >\n <AccordionSummary\n expandIcon={<ExpandMoreIcon />}\n sx={{\n minHeight: 56,\n px: 2,\n backgroundColor: isExpanded\n ? `${theme.customColors.blue[700]}0A`\n : theme.palette.background.default,\n borderBottom: isExpanded ? \"none\" : `1px solid ${borderColor}`,\n \"&.Mui-expanded\": { minHeight: 56 },\n \"& .MuiAccordionSummary-content\": {\n my: 0,\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n gap: 0.5,\n },\n \"& .MuiAccordionSummary-content.Mui-expanded\": { my: 0 },\n \"&:hover\": {\n backgroundColor: theme.customColors.blue[50],\n },\n }}\n >\n {checkable && (\n <Checkbox\n checked={isChecked}\n indeterminate={indeterminate}\n onChange={handleCheckboxChange}\n onClick={(e) => e.stopPropagation()}\n disabled={disabled}\n size=\"small\"\n sx={{ p: 0.5, mr: 0.5 }}\n />\n )}\n {typeof summary === \"string\" ? (\n <Typography variant=\"body1\">{summary}</Typography>\n ) : (\n summary\n )}\n </AccordionSummary>\n <AccordionDetails\n sx={{\n p: 3,\n borderTop: \"none\",\n borderBottomLeftRadius: 8,\n borderBottomRightRadius: 8,\n }}\n >\n {details}\n </AccordionDetails>\n </MuiAccordion>\n );\n }\n);\n\nAccordion.displayName = \"Accordion\";\n","import React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\nimport { Accordion } from \"../Accordion\";\n\nexport interface AccordionGroupItem {\n id: string;\n title: React.ReactNode;\n content: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface AccordionGroupProps {\n items: AccordionGroupItem[];\n allowMultiple?: boolean;\n expandedIds?: string[];\n defaultExpandedIds?: string[];\n onChangeExpanded?: (expandedIds: string[]) => void;\n sx?: SxProps<Theme>;\n}\n\nexport const AccordionGroup = React.forwardRef<HTMLDivElement, AccordionGroupProps>(\n (\n {\n items,\n allowMultiple = true,\n expandedIds,\n defaultExpandedIds,\n onChangeExpanded,\n sx,\n },\n ref\n ) => {\n const isControlled = Array.isArray(expandedIds);\n const initialExpanded = React.useMemo(\n () => (Array.isArray(defaultExpandedIds) ? defaultExpandedIds : []),\n [defaultExpandedIds]\n );\n const [internalExpandedIds, setInternalExpandedIds] =\n React.useState<string[]>(initialExpanded);\n const activeExpandedIds = isControlled\n ? (expandedIds as string[])\n : internalExpandedIds;\n\n React.useEffect(() => {\n if (!isControlled) {\n setInternalExpandedIds(initialExpanded);\n }\n }, [initialExpanded, isControlled]);\n\n const handleAccordionChange = (id: string, isExpanded: boolean) => {\n const nextExpandedIds = isExpanded\n ? allowMultiple\n ? [...activeExpandedIds, id]\n : [id]\n : activeExpandedIds.filter((expandedId) => expandedId !== id);\n\n if (!isControlled) {\n setInternalExpandedIds(nextExpandedIds);\n }\n onChangeExpanded?.(nextExpandedIds);\n };\n\n return (\n <Box ref={ref}>\n {items.map((item, index) => {\n const isLast = index === items.length - 1;\n const itemSpacingSx: SxProps<Theme> = {\n mb: isLast ? 0 : 1.5,\n \"&.Mui-expanded\": {\n my: 0,\n mb: isLast ? 0 : 1.5,\n },\n };\n const itemSx = [\n itemSpacingSx,\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ] as SxProps<Theme>;\n return (\n <Accordion\n key={item.id}\n summary={item.title}\n details={item.content}\n disabled={item.disabled}\n expanded={activeExpandedIds.includes(item.id)}\n onChange={(nextExpanded) => handleAccordionChange(item.id, nextExpanded)}\n sx={itemSx}\n />\n );\n })}\n </Box>\n );\n }\n);\n\nAccordionGroup.displayName = \"AccordionGroup\";\n","import React from \"react\";\nimport MuiAutocomplete, {\n type AutocompleteProps as MuiAutocompleteProps,\n type AutocompleteRenderInputParams,\n} from \"@mui/material/Autocomplete\";\nimport TextField from \"@mui/material/TextField\";\n\nexport interface AutocompleteProps<T> extends Omit<\n MuiAutocompleteProps<T, boolean | undefined, boolean | undefined, boolean | undefined>,\n \"renderInput\"\n> {\n label?: string;\n placeholder?: string;\n error?: boolean;\n helperText?: string;\n}\n\nexport function Autocomplete<T = string>({\n label,\n placeholder,\n error,\n helperText,\n size,\n multiple,\n defaultValue,\n ...props\n}: Readonly<AutocompleteProps<T>>) {\n const resolvedDefaultValue =\n defaultValue === undefined && multiple\n ? ([] as unknown as typeof defaultValue)\n : defaultValue;\n return (\n <MuiAutocomplete\n size={size}\n multiple={multiple}\n defaultValue={resolvedDefaultValue}\n {...props}\n renderInput={(params: AutocompleteRenderInputParams) => (\n <TextField\n {...params}\n label={label}\n placeholder={placeholder}\n error={error}\n helperText={helperText}\n size={size}\n />\n )}\n />\n );\n}\n","import React, { useRef, useState } from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport UploadFileIcon from \"@mui/icons-material/UploadFile\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport interface FileUploadProps {\n accept?: string;\n multiple?: boolean;\n maxSize?: number;\n onFileSelect: (files: File[]) => void;\n onError?: (message: string) => void;\n label?: string;\n helperText?: string;\n error?: boolean;\n errorMessage?: string;\n disabled?: boolean;\n sx?: SxProps<Theme>;\n}\n\nexport const FileUpload = React.forwardRef<HTMLDivElement, FileUploadProps>(\n (\n {\n accept,\n multiple = false,\n maxSize,\n onFileSelect,\n onError,\n label = \"Drop files here or click to upload\",\n helperText,\n error = false,\n errorMessage,\n disabled = false,\n sx,\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const [isDragging, setIsDragging] = useState(false);\n\n const processFiles = (files: FileList | null) => {\n if (!files || files.length === 0) return;\n const fileArray = Array.from(files);\n\n if (maxSize) {\n const oversized = fileArray.find((f) => f.size > maxSize);\n if (oversized) {\n onError?.(`File \"${oversized.name}\" exceeds the maximum allowed size.`);\n return;\n }\n }\n\n onFileSelect(multiple ? fileArray : [fileArray[0]]);\n };\n\n const handleDragOver = (e: React.DragEvent) => {\n e.preventDefault();\n if (!disabled) setIsDragging(true);\n };\n\n const handleDragLeave = () => {\n setIsDragging(false);\n };\n\n const handleDrop = (e: React.DragEvent) => {\n e.preventDefault();\n setIsDragging(false);\n if (!disabled) processFiles(e.dataTransfer.files);\n };\n\n const handleClick = () => {\n if (!disabled) inputRef.current?.click();\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n processFiles(e.target.files);\n e.target.value = \"\";\n };\n\n const borderColor = error ? \"error.main\" : isDragging ? \"primary.main\" : \"divider\";\n\n return (\n <Box ref={ref} sx={sx}>\n <Box\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-disabled={disabled}\n onClick={handleClick}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n sx={{\n border: \"2px dashed\",\n borderColor,\n borderRadius: 2,\n p: 4,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: 1,\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n bgcolor: isDragging ? \"action.hover\" : \"transparent\",\n opacity: disabled ? 0.5 : 1,\n transition: \"border-color 0.2s, background-color 0.2s\",\n }}\n >\n <UploadFileIcon\n sx={{ fontSize: 40, color: error ? \"error.main\" : \"text.secondary\" }}\n />\n <Typography\n variant=\"body2\"\n color={error ? \"error\" : \"text.secondary\"}\n align=\"center\"\n >\n {label}\n </Typography>\n {helperText && !error && (\n <Typography variant=\"caption\" color=\"text.disabled\">\n {helperText}\n </Typography>\n )}\n {error && errorMessage && (\n <Typography variant=\"caption\" color=\"error\">\n {errorMessage}\n </Typography>\n )}\n </Box>\n <input\n ref={inputRef}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n onChange={handleInputChange}\n style={{ display: \"none\" }}\n data-testid=\"file-input\"\n />\n </Box>\n );\n }\n);\n\nFileUpload.displayName = \"FileUpload\";\n","import React from \"react\";\nimport MuiMenu, { type MenuProps as MuiMenuProps } from \"@mui/material/Menu\";\nimport MuiMenuItem from \"@mui/material/MenuItem\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport MuiDivider from \"@mui/material/Divider\";\n\nexport interface MenuAction {\n label: string;\n onClick?: () => void;\n icon?: React.ReactElement;\n disabled?: boolean;\n divider?: boolean;\n}\n\nexport interface MenuProps extends Omit<MuiMenuProps, \"children\"> {\n items: MenuAction[];\n}\n\nexport const Menu = React.forwardRef<HTMLDivElement, MenuProps>(\n ({ items, ...props }, ref) => {\n return (\n <MuiMenu ref={ref} {...props}>\n {items.flatMap((item, index) => {\n const elements = [];\n if (item.divider) {\n elements.push(<MuiDivider key={`divider-${index}`} />);\n }\n elements.push(\n <MuiMenuItem\n key={`item-${index}`}\n onClick={item.onClick}\n disabled={item.disabled}\n >\n {item.icon && <ListItemIcon>{item.icon}</ListItemIcon>}\n <ListItemText>{item.label}</ListItemText>\n </MuiMenuItem>\n );\n return elements;\n })}\n </MuiMenu>\n );\n }\n);\n\nMenu.displayName = \"Menu\";\n","import React from \"react\";\nimport MuiPagination, {\n type PaginationProps as MuiPaginationProps,\n} from \"@mui/material/Pagination\";\n\nexport type PaginationProps = MuiPaginationProps;\n\nexport const Pagination = React.forwardRef<HTMLElement, PaginationProps>((props, ref) => {\n return <MuiPagination ref={ref} {...props} />;\n});\n\nPagination.displayName = \"Pagination\";\n","import React from \"react\";\nimport MuiList, { type ListProps as MuiListProps } from \"@mui/material/List\";\nimport MuiListItem from \"@mui/material/ListItem\";\nimport MuiListItemButton from \"@mui/material/ListItemButton\";\nimport MuiListItemIcon from \"@mui/material/ListItemIcon\";\nimport MuiListItemText from \"@mui/material/ListItemText\";\nimport MuiListSubheader from \"@mui/material/ListSubheader\";\nimport MuiDivider from \"@mui/material/Divider\";\n\nexport interface ListItemDef {\n id?: string | number;\n primary: React.ReactNode;\n secondary?: React.ReactNode;\n icon?: React.ReactNode;\n onClick?: () => void;\n disabled?: boolean;\n divider?: boolean;\n selected?: boolean;\n}\n\nexport interface ListProps extends Omit<MuiListProps, \"children\"> {\n items: ListItemDef[];\n subheader?: string;\n}\n\nexport const List = React.forwardRef<HTMLUListElement, ListProps>(\n ({ items, subheader, dense, disablePadding, ...props }, ref) => {\n return (\n <MuiList\n ref={ref}\n dense={dense}\n disablePadding={disablePadding}\n subheader={\n subheader ? <MuiListSubheader>{subheader}</MuiListSubheader> : undefined\n }\n {...props}\n >\n {items.map((item, index) => (\n <React.Fragment key={item.id ?? index}>\n {item.onClick ? (\n <MuiListItem disablePadding>\n <MuiListItemButton\n onClick={item.onClick}\n disabled={item.disabled}\n selected={item.selected}\n >\n {item.icon && <MuiListItemIcon>{item.icon}</MuiListItemIcon>}\n <MuiListItemText primary={item.primary} secondary={item.secondary} />\n </MuiListItemButton>\n </MuiListItem>\n ) : (\n <MuiListItem\n sx={item.disabled ? { opacity: 0.5, pointerEvents: \"none\" } : undefined}\n >\n {item.icon && <MuiListItemIcon>{item.icon}</MuiListItemIcon>}\n <MuiListItemText primary={item.primary} secondary={item.secondary} />\n </MuiListItem>\n )}\n {item.divider && <MuiDivider />}\n </React.Fragment>\n ))}\n </MuiList>\n );\n }\n);\n\nList.displayName = \"List\";\n","import React from \"react\";\nimport MuiAvatarGroup, {\n type AvatarGroupProps as MuiAvatarGroupProps,\n} from \"@mui/material/AvatarGroup\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport { Avatar, type AvatarSize, sizeStyles } from \"../../atoms/Avatar\";\n\nexport interface AvatarGroupItem {\n name: string;\n src?: string;\n alt?: string;\n}\n\nexport interface AvatarGroupProps extends Omit<MuiAvatarGroupProps, \"children\"> {\n avatars?: AvatarGroupItem[];\n showTooltips?: boolean;\n size?: AvatarSize | number;\n}\n\nexport const AvatarGroup = React.forwardRef<HTMLDivElement, AvatarGroupProps>(\n ({ avatars = [], showTooltips = true, size, sx, ...props }, ref) => {\n const resolvedSize =\n size !== undefined\n ? typeof size === \"number\"\n ? { width: size, height: size, fontSize: Math.round(size * 0.45) }\n : sizeStyles[size]\n : undefined;\n\n const mergedSx: SxProps<Theme> | undefined = resolvedSize\n ? [\n { \"& .MuiAvatar-root\": resolvedSize },\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ]\n : sx;\n\n return (\n <MuiAvatarGroup ref={ref} sx={mergedSx} {...props}>\n {avatars.map((avatar, index) => {\n const el = (\n <Avatar\n key={index}\n name={avatar.name}\n src={avatar.src}\n alt={avatar.alt ?? avatar.name}\n />\n );\n\n return showTooltips ? (\n <Tooltip key={index} title={avatar.name}>\n {el}\n </Tooltip>\n ) : (\n el\n );\n })}\n </MuiAvatarGroup>\n );\n }\n);\n\nAvatarGroup.displayName = \"AvatarGroup\";\n","import React from \"react\";\nimport MuiButtonGroup, {\n type ButtonGroupProps as MuiButtonGroupProps,\n} from \"@mui/material/ButtonGroup\";\nimport MuiButton from \"@mui/material/Button\";\n\nexport interface ButtonGroupItem {\n label: React.ReactNode;\n onClick?: () => void;\n disabled?: boolean;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n}\n\nexport interface ButtonGroupProps extends Omit<MuiButtonGroupProps, \"children\"> {\n buttons: ButtonGroupItem[];\n}\n\nexport const ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(\n ({ buttons, ...props }, ref) => {\n return (\n <MuiButtonGroup ref={ref} {...props}>\n {buttons.map((btn, index) => (\n <MuiButton\n key={index}\n onClick={btn.onClick}\n disabled={btn.disabled}\n startIcon={btn.startIcon}\n endIcon={btn.endIcon}\n >\n {btn.label}\n </MuiButton>\n ))}\n </MuiButtonGroup>\n );\n }\n);\n\nButtonGroup.displayName = \"ButtonGroup\";\n","import React from \"react\";\nimport MuiCard from \"@mui/material/Card\";\nimport type { CardProps as MuiCardProps } from \"@mui/material/Card\";\nimport CardContent from \"@mui/material/CardContent\";\nimport CardActions from \"@mui/material/CardActions\";\nimport CardHeader from \"@mui/material/CardHeader\";\nimport Divider from \"@mui/material/Divider\";\nimport Typography from \"@mui/material/Typography\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport interface CardProps extends Omit<MuiCardProps, \"title\"> {\n title?: React.ReactNode;\n subtitle?: React.ReactNode;\n headerAction?: React.ReactNode;\n footer?: React.ReactNode;\n noPadding?: boolean;\n dividerAfterHeader?: boolean;\n dividerBeforeFooter?: boolean;\n contentSx?: SxProps<Theme>;\n}\n\nexport const Card = React.forwardRef<HTMLDivElement, CardProps>(\n (\n {\n title,\n subtitle,\n headerAction,\n footer,\n noPadding,\n dividerAfterHeader = false,\n dividerBeforeFooter = true,\n contentSx,\n children,\n ...props\n },\n ref\n ) => {\n return (\n <MuiCard ref={ref} {...props}>\n {(title || subtitle || headerAction) && (\n <>\n <CardHeader\n disableTypography\n title={\n title != null ? (\n <Typography variant=\"h6\" sx={{ fontWeight: 600 }}>\n {title}\n </Typography>\n ) : undefined\n }\n subheader={\n subtitle != null ? (\n <Typography variant=\"body2\">{subtitle}</Typography>\n ) : undefined\n }\n action={headerAction}\n sx={{ pb: dividerAfterHeader ? 2 : 0 }}\n />\n {dividerAfterHeader && <Divider />}\n </>\n )}\n <CardContent\n sx={{\n ...(noPadding && { p: \"0 !important\" }),\n ...contentSx,\n }}\n >\n {children}\n </CardContent>\n {footer && (\n <>\n {dividerBeforeFooter && <Divider />}\n <CardActions sx={{ px: 3, py: 2 }}>{footer}</CardActions>\n </>\n )}\n </MuiCard>\n );\n }\n);\n\nCard.displayName = \"Card\";\n","import React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport interface EmptyStateProps {\n illustration?: React.ReactNode;\n icon?: React.ReactNode;\n title: string;\n description?: string;\n action?: React.ReactNode;\n sx?: SxProps<Theme>;\n}\n\nexport const EmptyState: React.FC<EmptyStateProps> = ({\n illustration,\n icon,\n title,\n description,\n action,\n sx,\n}) => {\n return (\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n textAlign: \"center\",\n py: 8,\n px: 3,\n ...sx,\n }}\n >\n {illustration && <Box sx={{ mb: 3 }}>{illustration}</Box>}\n {icon && !illustration && (\n <Box\n sx={{\n width: 72,\n height: 72,\n borderRadius: \"50%\",\n bgcolor: \"action.hover\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n mb: 3,\n color: \"text.secondary\",\n \"& svg\": { fontSize: 36 },\n }}\n >\n {icon}\n </Box>\n )}\n <Typography variant=\"h6\" fontWeight={600} gutterBottom>\n {title}\n </Typography>\n {description && (\n <Typography\n variant=\"body2\"\n color=\"text.secondary\"\n sx={{ maxWidth: 360, mb: action ? 3 : 0 }}\n >\n {description}\n </Typography>\n )}\n {action}\n </Box>\n );\n};\n","import React from \"react\";\n\nexport const EmptyStateIllustration: React.FC<React.SVGProps<SVGSVGElement>> = (\n props\n) => (\n <svg\n width=\"252\"\n height=\"142\"\n viewBox=\"0 0 252 142\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M136.706 26.1041C140.587 26.1041 143.734 29.251 143.734 33.1324C143.734 37.0138 140.587 40.1598 136.706 40.1598H200.963C204.844 40.16 207.99 43.3068 207.99 47.1881C207.99 51.0694 204.844 54.2162 200.963 54.2164H223.051C226.932 54.2166 230.078 57.3626 230.078 61.2438C230.078 65.1251 226.932 68.2719 223.051 68.2721H203.974C200.093 68.2721 196.946 71.419 196.946 75.3004C196.946 79.1817 200.093 82.3278 203.974 82.3278H209.998C213.879 82.3278 217.026 85.4746 217.026 89.3561C217.026 93.2375 213.879 96.3844 209.998 96.3844H157.79C157.273 96.3844 156.769 96.3282 156.284 96.2223C155.799 96.3282 155.295 96.3844 154.778 96.3844H63.4138C59.5326 96.3842 56.3865 93.2374 56.3865 89.3561C56.3865 85.4748 59.5326 82.328 63.4138 82.3278H24.2585C20.3772 82.3278 17.2304 79.1817 17.2302 75.3004C17.2302 71.419 20.3771 68.2721 24.2585 68.2721H64.4187C68.2999 68.2718 71.446 65.1251 71.446 61.2438C71.4459 57.3626 68.2998 54.2167 64.4187 54.2164H39.3181C35.4367 54.2164 32.2898 51.0695 32.2898 47.1881C32.2898 43.3067 35.4367 40.1599 39.3181 40.1598H79.4783C75.5969 40.1598 72.4501 37.0138 72.45 33.1324C72.45 29.251 75.5968 26.1041 79.4783 26.1041H136.706ZM227.066 82.3287C230.948 82.3287 234.094 85.4748 234.094 89.3561C234.094 93.2375 230.948 96.3844 227.066 96.3844C223.185 96.3844 220.038 93.2375 220.038 89.3561C220.038 85.4748 223.185 82.3288 227.066 82.3287Z\"\n fill=\"#F3F7FF\"\n />\n <rect\n x=\"66.7097\"\n y=\"30.6906\"\n width=\"104.361\"\n height=\"83.7461\"\n rx=\"11.0608\"\n fill=\"white\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.16023\"\n />\n <circle\n cx=\"174.158\"\n cy=\"79.6741\"\n r=\"20.5415\"\n fill=\"white\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.16023\"\n />\n <path\n d=\"M171.787 69.4033C171.787 68.0943 172.849 67.0331 174.158 67.0331C175.467 67.0331 176.528 68.0943 176.528 69.4033V78.884C176.528 80.193 175.467 81.2542 174.158 81.2542C172.849 81.2542 171.787 80.193 171.787 78.884V69.4033Z\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.16023\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M171.787 89.9451C171.787 91.2541 172.849 92.3153 174.158 92.3153C175.467 92.3153 176.528 91.2541 176.528 89.9451C176.528 88.6361 175.467 87.575 174.158 87.575C172.849 87.575 171.787 88.6361 171.787 89.9451Z\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.16023\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M67.3542 50.017H170.426\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.16023\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <circle cx=\"80.1407\" cy=\"40.9612\" r=\"3.95029\" fill=\"#1F5FF2\" />\n <circle cx=\"91.2015\" cy=\"40.9612\" r=\"3.95029\" fill=\"#1F5FF2\" />\n <path\n d=\"M77.7705 67.8234C77.7705 66.5144 78.8317 65.4532 80.1407 65.4532H103.842C105.151 65.4532 106.213 66.5144 106.213 67.8234C106.213 69.1324 105.151 70.1936 103.842 70.1936H80.1407C78.8317 70.1936 77.7705 69.1324 77.7705 67.8234Z\"\n fill=\"#1F5FF2\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.16023\"\n strokeLinejoin=\"round\"\n />\n <rect\n x=\"77.7705\"\n y=\"78.0942\"\n width=\"52.1438\"\n height=\"4.74035\"\n rx=\"2.37017\"\n fill=\"#1F5FF2\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.16023\"\n strokeLinejoin=\"round\"\n />\n <rect\n x=\"77.7705\"\n y=\"90.7352\"\n width=\"52.1438\"\n height=\"4.74035\"\n rx=\"2.37017\"\n fill=\"#1F5FF2\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.16023\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M115.116 17.2595C113.689 17.2595 112.533 18.4159 112.533 19.8424C112.533 21.2688 113.689 22.4252 115.116 22.4252L123.68 22.4252C125.106 22.4252 126.263 21.2688 126.263 19.8424C126.263 18.4159 125.106 17.2595 123.68 17.2595L115.116 17.2595Z\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.16023\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n","import React from \"react\";\n\nexport const NoUsersIllustration: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"324\"\n height=\"183\"\n viewBox=\"0 0 324 183\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <rect y=\"14.25\" width=\"324\" height=\"168\" fill=\"white\" />\n <path\n d=\"M176.237 33.6525C181.241 33.6525 185.298 37.7092 185.298 42.713C185.298 47.7167 181.241 51.7726 176.237 51.7726H259.074C264.078 51.7726 268.135 55.8294 268.135 60.8331C268.135 65.837 264.078 69.8937 259.074 69.8937H287.55C292.554 69.8937 296.61 73.9504 296.61 78.9542C296.61 83.9579 292.553 88.0138 287.55 88.0138H262.958C257.954 88.0138 253.897 92.0705 253.897 97.0743C253.897 102.078 257.954 106.135 262.958 106.135H270.724C275.727 106.135 279.784 110.192 279.784 115.195C279.784 120.199 275.727 124.255 270.724 124.255H203.419C202.753 124.255 202.103 124.183 201.477 124.047C200.852 124.184 200.201 124.255 199.535 124.255H81.7518C76.7481 124.255 72.6915 120.199 72.6913 115.195C72.6913 110.192 76.748 106.135 81.7518 106.135H31.2733C26.2695 106.135 22.2128 102.078 22.2128 97.0743C22.2128 92.0705 26.2695 88.0138 31.2733 88.0138H83.0458C88.0495 88.0138 92.1061 83.9579 92.1063 78.9542C92.1063 73.9504 88.0496 69.8937 83.0458 69.8937H50.6884C45.6845 69.8937 41.6278 65.837 41.6278 60.8331C41.6279 55.8294 45.6846 51.7726 50.6884 51.7726H102.461C97.4571 51.7725 93.4004 47.7167 93.4003 42.713C93.4003 37.7092 97.457 33.6526 102.461 33.6525H176.237ZM292.727 106.135C297.731 106.135 301.787 110.192 301.787 115.195C301.787 120.199 297.731 124.255 292.727 124.255C287.724 124.255 283.667 120.199 283.667 115.195C283.667 110.192 287.724 106.135 292.727 106.135Z\"\n fill=\"#F3F7FF\"\n />\n <path\n d=\"M91.6651 42.8373C91.6651 35.6966 97.4538 29.908 104.594 29.908H200.641C207.782 29.908 213.571 35.6966 213.571 42.8373V124.662C213.571 131.802 207.782 137.591 200.641 137.591H104.594C97.4538 137.591 91.6651 131.802 91.6651 124.662V42.8373Z\"\n fill=\"white\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"4.30979\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M111.982 63.1541C111.982 56.0134 117.771 50.2247 124.911 50.2247H220.958C228.099 50.2247 233.887 56.0134 233.887 63.1541V144.979C233.887 152.119 228.099 157.908 220.958 157.908H124.911C117.771 157.908 111.982 152.119 111.982 144.979V63.1541Z\"\n fill=\"white\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"4.30979\"\n strokeLinejoin=\"round\"\n />\n <mask id=\"path-5-inside-1_1399_27036\" fill=\"white\">\n <path d=\"M202.991 114.544C211.323 114.544 218.077 121.299 218.077 129.63C218.077 132.13 216.051 134.156 213.551 134.156H171.613C169.113 134.156 167.087 132.13 167.087 129.63C167.087 121.299 173.841 114.544 182.173 114.544H202.991ZM192.449 84.7632C198.948 84.7633 204.216 90.0313 204.216 96.5298C204.216 103.028 198.948 108.297 192.449 108.297C185.951 108.297 180.682 103.029 180.682 96.5298C180.682 90.0312 185.951 84.7632 192.449 84.7632Z\" />\n </mask>\n <path\n d=\"M202.991 114.544V110.235V114.544ZM218.077 129.63L222.387 129.63V129.63H218.077ZM171.613 134.156L171.612 138.466H171.613V134.156ZM167.087 129.63H162.777V129.63L167.087 129.63ZM192.449 84.7632L192.45 80.4535H192.449V84.7632ZM204.216 96.5298H208.526V96.5298L204.216 96.5298ZM192.449 108.297V112.607L192.45 112.607L192.449 108.297ZM180.682 96.5298L176.372 96.5298V96.5298H180.682ZM202.991 114.544V118.854C208.943 118.854 213.768 123.679 213.768 129.63H218.077H222.387C222.387 118.919 213.703 110.235 202.991 110.235V114.544ZM218.077 129.63L213.768 129.63C213.768 129.749 213.671 129.846 213.551 129.846V134.156V138.466C218.43 138.466 222.387 134.511 222.387 129.63L218.077 129.63ZM213.551 134.156V129.846H171.613V134.156V138.466H213.551V134.156ZM171.613 134.156L171.613 129.846C171.493 129.846 171.397 129.749 171.397 129.63L167.087 129.63L162.777 129.63C162.777 134.51 166.733 138.465 171.612 138.466L171.613 134.156ZM167.087 129.63H171.397C171.397 123.679 176.222 118.854 182.173 118.854V114.544V110.235C171.461 110.235 162.777 118.919 162.777 129.63H167.087ZM182.173 114.544V118.854H202.991V114.544V110.235H182.173V114.544ZM192.449 84.7632L192.449 89.073C196.568 89.0731 199.906 92.4115 199.906 96.5299L204.216 96.5298L208.526 96.5298C208.526 87.6511 201.328 80.4536 192.45 80.4535L192.449 84.7632ZM204.216 96.5298H199.906C199.906 100.649 196.567 103.988 192.449 103.988L192.449 108.297L192.45 112.607C201.329 112.607 208.526 105.408 208.526 96.5298H204.216ZM192.449 108.297V103.988C188.331 103.988 184.992 100.648 184.992 96.5298H180.682H176.372C176.372 105.409 183.571 112.607 192.449 112.607V108.297ZM180.682 96.5298L184.992 96.5299C184.992 92.4119 188.331 89.073 192.449 89.073V84.7632V80.4535C183.571 80.4535 176.372 87.6506 176.372 96.5298L180.682 96.5298Z\"\n fill=\"#1F5FF2\"\n mask=\"url(#path-5-inside-1_1399_27036)\"\n />\n <path\n d=\"M174.26 110.549C184.883 110.549 193.495 119.161 193.495 129.784C193.495 132.971 190.911 135.555 187.724 135.555H134.25C131.063 135.555 128.479 132.971 128.479 129.784C128.479 119.161 137.091 110.549 147.715 110.549H174.26ZM160.822 72.5704C169.108 72.5704 175.826 79.2881 175.826 87.5743C175.826 95.8604 169.108 102.577 160.822 102.577C152.536 102.577 145.819 95.8603 145.819 87.5743C145.819 79.2882 152.536 72.5706 160.822 72.5704Z\"\n fill=\"#1F5FF2\"\n />\n <path\n d=\"M86.5684 157.628C84.6231 157.628 83.0461 156.051 83.0461 154.105C83.0461 152.16 84.6231 150.583 86.5684 150.583L98.2476 150.583C100.193 150.583 101.77 152.16 101.77 154.105C101.77 156.051 100.193 157.628 98.2476 157.628L86.5684 157.628Z\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"4.30979\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M236.928 27.1808C238.874 27.1808 240.451 28.7579 240.451 30.7032C240.451 32.6486 238.874 34.2256 236.928 34.2256L225.249 34.2256C223.304 34.2256 221.727 32.6486 221.727 30.7032C221.727 28.7579 223.304 27.1808 225.249 27.1808L236.928 27.1808Z\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"4.30979\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n","import React from \"react\";\n\nexport const NoFilesIllustration: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"324\"\n height=\"169\"\n viewBox=\"0 0 324 169\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <rect width=\"324\" height=\"168\" fill=\"white\" />\n <path\n d=\"M176.237 19.4025C181.241 19.4025 185.298 23.4592 185.298 28.463C185.298 33.4667 181.241 37.5226 176.237 37.5226H259.074C264.078 37.5226 268.135 41.5794 268.135 46.5831C268.135 51.587 264.078 55.6437 259.074 55.6437H287.55C292.554 55.6437 296.61 59.7004 296.61 64.7042C296.61 69.7079 292.553 73.7638 287.55 73.7638H262.958C257.954 73.7638 253.897 77.8205 253.897 82.8243C253.897 87.8282 257.954 91.8849 262.958 91.8849H270.724C275.727 91.8849 279.784 95.9416 279.784 100.945C279.784 105.949 275.727 110.005 270.724 110.005H203.419C202.753 110.005 202.103 109.933 201.477 109.797C200.852 109.934 200.201 110.005 199.535 110.005H81.7518C76.7481 110.005 72.6915 105.949 72.6913 100.945C72.6913 95.9416 76.748 91.8849 81.7518 91.8849H31.2733C26.2695 91.8849 22.2128 87.8282 22.2128 82.8243C22.2128 77.8205 26.2695 73.7638 31.2733 73.7638H83.0458C88.0495 73.7638 92.1061 69.7079 92.1063 64.7042C92.1063 59.7004 88.0496 55.6437 83.0458 55.6437H50.6884C45.6845 55.6437 41.6278 51.587 41.6278 46.5831C41.6279 41.5794 45.6846 37.5226 50.6884 37.5226H102.461C97.4571 37.5225 93.4004 33.4667 93.4003 28.463C93.4003 23.4592 97.457 19.4026 102.461 19.4025H176.237ZM292.727 91.8849C297.731 91.8851 301.787 95.9417 301.787 100.945C301.787 105.949 297.731 110.005 292.727 110.005C287.724 110.005 283.667 105.949 283.667 100.945C283.667 95.9416 287.724 91.8849 292.727 91.8849Z\"\n fill=\"#F3F7FF\"\n />\n <path\n d=\"M194.074 71.2153H197.385C203.809 71.2153 209.017 76.423 209.017 82.8471V134.879C209.017 141.303 203.809 146.511 197.385 146.511H99.6413H93.6319C87.2078 146.511 82 141.303 82 134.879V45.7013C82 39.2772 87.2078 34.0695 93.6319 34.0695H129.36C132.518 34.0695 135.539 35.353 137.732 37.6253L145.399 45.5728C147.591 47.8451 150.613 49.1286 153.77 49.1286H182.442C188.866 49.1286 194.074 54.3363 194.074 60.7604V71.2153Z\"\n fill=\"white\"\n />\n <path\n d=\"M99.6413 146.511V82.8471C99.6413 76.423 104.849 71.2153 111.273 71.2153H197.385C203.809 71.2153 209.017 76.423 209.017 82.8471V134.879C209.017 141.303 203.809 146.511 197.385 146.511H93.6319C87.2078 146.511 82 141.303 82 134.879V45.7013C82 39.2772 87.2078 34.0695 93.6319 34.0695H129.36C132.518 34.0695 135.539 35.353 137.732 37.6253L145.399 45.5728C147.591 47.8451 150.613 49.1286 153.77 49.1286H182.442C188.866 49.1286 194.074 54.3363 194.074 60.7604V71.2153\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.87729\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M102.105 57.9441H176.419C181.237 57.9441 185.143 61.8496 185.143 66.6677V70.5808H106.556C102.809 70.581 99.7707 73.6187 99.7706 77.366V144.573H93.381V66.6677C93.381 61.8496 97.2865 57.9441 102.105 57.9441Z\"\n fill=\"#1F5FF2\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"1.93864\"\n />\n <path\n d=\"M152.502 29.9189C153.771 31.1242 153.822 33.13 152.617 34.3989C151.412 35.6678 149.406 35.7193 148.137 34.514L140.519 27.2776C139.25 26.0722 139.199 24.0665 140.404 22.7976C141.609 21.5287 143.615 21.4771 144.884 22.6825L152.502 29.9189Z\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.87729\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M162.714 34.2455C160.964 34.268 159.564 35.7048 159.586 37.4548C159.609 39.2047 161.046 40.6052 162.796 40.5828L173.302 40.4481C175.052 40.4257 176.452 38.9889 176.43 37.2389C176.407 35.4889 174.971 34.0885 173.221 34.1109L162.714 34.2455Z\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.87729\"\n strokeLinejoin=\"round\"\n />\n <circle\n cx=\"217.705\"\n cy=\"86.4126\"\n r=\"25.2024\"\n fill=\"white\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.87729\"\n />\n <path\n d=\"M214.797 73.8114C214.797 72.2054 216.099 70.9034 217.705 70.9034C219.311 70.9034 220.613 72.2054 220.613 73.8114V85.4433C220.613 87.0493 219.311 88.3512 217.705 88.3512C216.099 88.3512 214.797 87.0493 214.797 85.4433V73.8114Z\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.87729\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M214.797 99.0139C214.797 100.62 216.099 101.922 217.705 101.922C219.311 101.922 220.613 100.62 220.613 99.0139C220.613 97.4079 219.311 96.1059 217.705 96.1059C216.099 96.1059 214.797 97.4079 214.797 99.0139Z\"\n stroke=\"#1F5FF2\"\n strokeWidth=\"3.87729\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n","import React, { useState } from \"react\";\nimport TableRow from \"@mui/material/TableRow\";\nimport TableCell from \"@mui/material/TableCell\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Collapse from \"@mui/material/Collapse\";\nimport Box from \"@mui/material/Box\";\nimport KeyboardArrowDownIcon from \"@mui/icons-material/KeyboardArrowDown\";\nimport KeyboardArrowRightIcon from \"@mui/icons-material/KeyboardArrowRight\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport interface DataTableExpandableRowProps {\n /** Number of data columns — used for the detail row colspan. */\n colSpan: number;\n expandedContent: React.ReactNode;\n children: React.ReactNode;\n expanded?: boolean;\n onToggle?: (expanded: boolean) => void;\n onClick?: () => void;\n sx?: SxProps<Theme>;\n /** When true, hides the built-in left chevron cell. Use when a column drives expansion. */\n hideChevron?: boolean;\n}\n\nexport const DataTableExpandableRow: React.FC<DataTableExpandableRowProps> = ({\n colSpan,\n expandedContent,\n children,\n expanded: controlledExpanded,\n onToggle,\n onClick,\n sx,\n hideChevron = false,\n}) => {\n const [internalExpanded, setInternalExpanded] = useState(false);\n const isExpanded = controlledExpanded ?? internalExpanded;\n\n const handleToggle = (e: React.MouseEvent) => {\n e.stopPropagation();\n const next = !isExpanded;\n setInternalExpanded(next);\n onToggle?.(next);\n };\n\n return (\n <React.Fragment>\n <TableRow\n onClick={onClick}\n sx={{\n cursor: onClick ? \"pointer\" : \"default\",\n \"&:hover\": { bgcolor: \"rgba(31,95,242,.03)\" },\n ...(isExpanded && { \"& .MuiTableCell-root\": { borderBottom: 0 } }),\n ...sx,\n }}\n >\n {!hideChevron && (\n <TableCell\n sx={{ width: 48, py: \"14px\", px: \"8px\", color: \"rgba(21,35,86,.5)\" }}\n >\n <IconButton\n size=\"small\"\n onClick={handleToggle}\n sx={{ color: \"inherit\", width: 28, height: 28 }}\n >\n {isExpanded ? (\n <KeyboardArrowDownIcon fontSize=\"small\" />\n ) : (\n <KeyboardArrowRightIcon fontSize=\"small\" />\n )}\n </IconButton>\n </TableCell>\n )}\n {children}\n </TableRow>\n <TableRow>\n {!hideChevron && (\n <TableCell\n sx={{ p: 0, borderBottom: isExpanded ? undefined : 0, bgcolor: \"#FAFBFD\" }}\n />\n )}\n <TableCell\n colSpan={colSpan}\n sx={{ p: 0, borderBottom: isExpanded ? undefined : 0, bgcolor: \"#FAFBFD\" }}\n >\n <Collapse in={isExpanded} unmountOnExit>\n <Box sx={{ py: 1.5, px: 2 }}>{expandedContent}</Box>\n </Collapse>\n </TableCell>\n </TableRow>\n </React.Fragment>\n );\n};\n","import React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport TablePagination from \"@mui/material/TablePagination\";\n\nexport interface DataTablePaginationProps {\n count: number;\n page: number;\n rowsPerPage: number;\n onPageChange: (page: number) => void;\n onRowsPerPageChange?: (rowsPerPage: number) => void;\n rowsPerPageOptions?: number[];\n}\n\nexport const DataTablePagination: React.FC<DataTablePaginationProps> = ({\n count,\n page,\n rowsPerPage,\n onPageChange,\n onRowsPerPageChange,\n rowsPerPageOptions = [10, 25, 50],\n}) => (\n <Box sx={{ borderTop: \"1px solid rgba(21,35,86,.12)\" }}>\n <TablePagination\n component=\"div\"\n count={count}\n page={page}\n rowsPerPage={rowsPerPage}\n rowsPerPageOptions={rowsPerPageOptions}\n onPageChange={(_, newPage) => onPageChange(newPage)}\n onRowsPerPageChange={(e) => onRowsPerPageChange?.(parseInt(e.target.value, 10))}\n sx={{\n color: \"rgba(21,35,86,.6)\",\n \"& .MuiTablePagination-toolbar\": {\n px: \"20px\",\n minHeight: \"auto\",\n py: \"14px\",\n },\n \"& .MuiTablePagination-selectLabel\": {\n fontSize: \"0.8125rem\",\n color: \"rgba(21,35,86,.6)\",\n my: 0,\n },\n \"& .MuiTablePagination-select\": {\n fontSize: \"0.8125rem\",\n fontWeight: 500,\n color: \"rgba(21,35,86,.87)\",\n },\n \"& .MuiTablePagination-displayedRows\": {\n fontSize: \"0.8125rem\",\n color: \"rgba(21,35,86,.6)\",\n my: 0,\n },\n \"& .MuiTablePagination-actions\": {\n display: \"flex\",\n gap: 0.5,\n ml: 1,\n },\n \"& .MuiTablePagination-actions button\": {\n width: 28,\n height: 28,\n borderRadius: \"50%\",\n color: \"rgba(21,35,86,.6)\",\n \"&:hover\": { bgcolor: \"rgba(31,95,242,.06)\" },\n },\n }}\n />\n </Box>\n);\n","import React from \"react\";\nimport Table from \"@mui/material/Table\";\nimport TableBody from \"@mui/material/TableBody\";\nimport TableCell from \"@mui/material/TableCell\";\nimport TableContainer from \"@mui/material/TableContainer\";\nimport TableHead from \"@mui/material/TableHead\";\nimport TableRow from \"@mui/material/TableRow\";\nimport TableSortLabel from \"@mui/material/TableSortLabel\";\nimport Paper from \"@mui/material/Paper\";\nimport LinearProgress from \"@mui/material/LinearProgress\";\nimport Checkbox from \"@mui/material/Checkbox\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\nimport { EmptyState } from \"../EmptyState\";\nimport { DataTableExpandableRow } from \"./DataTableExpandableRow\";\nimport { DataTablePagination } from \"./DataTablePagination\";\n\nexport type SortDirection = \"asc\" | \"desc\";\n\nexport interface Column<T = Record<string, unknown>> {\n id: string;\n label: string;\n minWidth?: number;\n width?: number | string;\n align?: \"left\" | \"right\" | \"center\";\n sortable?: boolean;\n render?: (value: unknown, row: T, index: number) => React.ReactNode;\n}\n\nexport interface DataTableProps<T = Record<string, unknown>> {\n columns: Column<T>[];\n rows: T[];\n keyField?: string;\n loading?: boolean;\n emptyTitle?: string;\n emptyDescription?: string;\n emptyIcon?: React.ReactNode;\n /** Renders expandable detail content below a row. */\n getExpandedContent?: (row: T) => React.ReactNode;\n /**\n * Controlled set of expanded row keys. When provided together with\n * `getExpandedContent`, the built-in left-side chevron column is hidden —\n * drive expansion from a column's `render` instead.\n */\n expandedKeys?: Set<string>;\n /**\n * Return true for rows that should show a checkbox. When provided a\n * selection column is prepended automatically.\n */\n selectable?: (row: T) => boolean;\n selectedKeys?: Set<string>;\n onSelectionChange?: (keys: Set<string>) => void;\n page?: number;\n rowsPerPage?: number;\n totalCount?: number;\n onPageChange?: (page: number) => void;\n onRowsPerPageChange?: (rowsPerPage: number) => void;\n sortBy?: string;\n sortDirection?: SortDirection;\n onSort?: (columnId: string, direction: SortDirection) => void;\n onRowClick?: (row: T) => void;\n rowsPerPageOptions?: number[];\n stickyHeader?: boolean;\n maxHeight?: number | string;\n sx?: SxProps<Theme>;\n}\n\nexport function DataTable<T = Record<string, unknown>>({\n columns,\n rows,\n keyField = \"id\",\n loading = false,\n emptyTitle = \"No data available\",\n emptyDescription,\n emptyIcon,\n getExpandedContent,\n expandedKeys,\n selectable,\n selectedKeys,\n onSelectionChange,\n page,\n rowsPerPage = 10,\n totalCount,\n onPageChange,\n onRowsPerPageChange,\n sortBy,\n sortDirection = \"asc\",\n onSort,\n onRowClick,\n rowsPerPageOptions = [10, 25, 50],\n stickyHeader = false,\n maxHeight,\n sx,\n}: DataTableProps<T>) {\n const hasPagination =\n onPageChange !== undefined && totalCount !== undefined && page !== undefined;\n\n // Controlled expansion: caller supplies expandedKeys and drives toggles from a column render.\n // In this mode the built-in left chevron column is omitted.\n const useControlledExpand =\n getExpandedContent !== undefined && expandedKeys !== undefined;\n const hasSelectCol = selectable !== undefined;\n\n const selectableKeys = hasSelectCol\n ? rows\n .map((row, i) => ({\n key: String((row as Record<string, unknown>)[keyField] ?? i),\n row,\n }))\n .filter(({ row }) => selectable(row))\n .map(({ key }) => key)\n : [];\n const allSelected =\n selectableKeys.length > 0 && selectableKeys.every((k) => selectedKeys?.has(k));\n const someSelected = selectableKeys.some((k) => selectedKeys?.has(k));\n\n // colspan passed to DataTableExpandableRow = all columns the row owns (no chevron).\n const expandColSpan = columns.length + (hasSelectCol ? 1 : 0);\n // total header/body columns (used for empty-state colspan).\n const totalCols = expandColSpan + (getExpandedContent && !useControlledExpand ? 1 : 0);\n\n const handleSort = (columnId: string) => {\n const newDirection = sortBy === columnId && sortDirection === \"asc\" ? \"desc\" : \"asc\";\n onSort?.(columnId, newDirection);\n };\n\n const renderDataCells = (row: T, rowIndex: number) =>\n columns.map((col) => {\n const value = (row as Record<string, unknown>)[col.id];\n return (\n <TableCell\n key={col.id}\n align={col.align ?? \"left\"}\n sx={{\n py: \"14px\",\n px: \"16px\",\n fontSize: \"0.875rem\",\n color: \"rgba(21,35,86,.87)\",\n }}\n >\n {col.render ? col.render(value, row, rowIndex) : String(value ?? \"\")}\n </TableCell>\n );\n });\n\n const renderSelectCell = (row: T, rowKey: string) => {\n if (!hasSelectCol) return null;\n return (\n <TableCell sx={{ width: 40, py: \"14px\", px: \"8px\" }}>\n {selectable(row) && (\n <Checkbox\n size=\"small\"\n checked={selectedKeys?.has(rowKey) ?? false}\n onChange={() => {\n if (!onSelectionChange) return;\n const next = new Set(selectedKeys ?? []);\n if (next.has(rowKey)) {\n next.delete(rowKey);\n } else {\n next.add(rowKey);\n }\n onSelectionChange(next);\n }}\n onClick={(e) => e.stopPropagation()}\n sx={{\n p: 0,\n color: \"rgba(21,35,86,.4)\",\n \"&.Mui-checked\": { color: \"#1F5FF2\" },\n }}\n />\n )}\n </TableCell>\n );\n };\n\n const headerCellSx = {\n background: \"#FAFBFD\",\n color: \"rgba(21,35,86,.6)\",\n fontWeight: 500,\n fontSize: \"0.75rem\",\n textTransform: \"uppercase\" as const,\n letterSpacing: \"0.6px\",\n py: \"14px\",\n px: \"16px\",\n borderBottom: \"1px solid rgba(21,35,86,.12)\",\n };\n\n return (\n <Paper sx={{ overflow: \"hidden\", borderRadius: 4, ...sx }}>\n {loading && (\n <LinearProgress sx={{ borderRadius: 0, position: \"relative\", zIndex: 1 }} />\n )}\n <TableContainer sx={{ maxHeight }}>\n <Table stickyHeader={stickyHeader} size=\"medium\">\n <TableHead>\n <TableRow>\n {/* Left chevron header — only in auto-expand mode */}\n {getExpandedContent && !useControlledExpand && (\n <TableCell sx={{ ...headerCellSx, width: 48, px: \"8px\" }} />\n )}\n {/* Selection column header — select-all checkbox */}\n {hasSelectCol && (\n <TableCell sx={{ ...headerCellSx, width: 40, px: \"8px\" }}>\n {onSelectionChange && selectableKeys.length > 0 && (\n <Checkbox\n size=\"small\"\n checked={allSelected}\n indeterminate={someSelected && !allSelected}\n onChange={() => {\n const next = new Set(selectedKeys ?? []);\n if (allSelected) {\n selectableKeys.forEach((k) => next.delete(k));\n } else {\n selectableKeys.forEach((k) => next.add(k));\n }\n onSelectionChange(next);\n }}\n sx={{\n p: 0,\n color: \"rgba(21,35,86,.4)\",\n \"&.Mui-checked, &.MuiCheckbox-indeterminate\": {\n color: \"#1F5FF2\",\n },\n }}\n />\n )}\n </TableCell>\n )}\n {columns.map((col) => (\n <TableCell\n key={col.id}\n align={col.align ?? \"left\"}\n style={{ minWidth: col.minWidth, width: col.width }}\n sx={headerCellSx}\n >\n {col.sortable && onSort ? (\n <TableSortLabel\n active={sortBy === col.id}\n direction={sortBy === col.id ? sortDirection : \"asc\"}\n onClick={() => handleSort(col.id)}\n >\n {col.label}\n </TableSortLabel>\n ) : (\n col.label\n )}\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n <TableBody\n sx={{\n \"& .MuiTableRow-root:last-child .MuiTableCell-root\": { borderBottom: 0 },\n }}\n >\n {rows.length === 0 && !loading ? (\n <TableRow>\n <TableCell colSpan={totalCols} sx={{ border: 0, p: 0 }}>\n <EmptyState\n icon={emptyIcon}\n title={emptyTitle}\n description={emptyDescription}\n />\n </TableCell>\n </TableRow>\n ) : (\n rows.map((row, rowIndex) => {\n const rowKey = String(\n (row as Record<string, unknown>)[keyField] ?? rowIndex\n );\n const isSelected = selectedKeys?.has(rowKey) ?? false;\n const selectedSx = isSelected\n ? {\n bgcolor: \"rgba(31,95,242,.06)\",\n \"&:hover\": { bgcolor: \"rgba(31,95,242,.08)\" },\n }\n : {};\n\n if (getExpandedContent) {\n return (\n <DataTableExpandableRow\n key={rowKey}\n colSpan={expandColSpan}\n expandedContent={getExpandedContent(row)}\n expanded={\n useControlledExpand ? expandedKeys?.has(rowKey) : undefined\n }\n hideChevron={useControlledExpand}\n onClick={onRowClick ? () => onRowClick(row) : undefined}\n sx={selectedSx}\n >\n {renderSelectCell(row, rowKey)}\n {renderDataCells(row, rowIndex)}\n </DataTableExpandableRow>\n );\n }\n\n return (\n <TableRow\n key={rowKey}\n onClick={() => onRowClick?.(row)}\n sx={{\n cursor: onRowClick ? \"pointer\" : \"default\",\n \"&:hover\": { bgcolor: \"rgba(31,95,242,.03)\" },\n ...selectedSx,\n }}\n >\n {renderSelectCell(row, rowKey)}\n {renderDataCells(row, rowIndex)}\n </TableRow>\n );\n })\n )}\n </TableBody>\n </Table>\n </TableContainer>\n {hasPagination && (\n <DataTablePagination\n count={totalCount}\n page={page}\n rowsPerPage={rowsPerPage}\n onPageChange={onPageChange}\n onRowsPerPageChange={onRowsPerPageChange}\n rowsPerPageOptions={rowsPerPageOptions}\n />\n )}\n </Paper>\n );\n}\n","import React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport DescriptionIcon from \"@mui/icons-material/Description\";\n\nexport interface DataTableExpandedItemProps {\n label: string;\n icon?: React.ReactNode;\n chip?: React.ReactNode;\n}\n\nexport const DataTableExpandedItem: React.FC<DataTableExpandedItemProps> = ({\n label,\n icon = (\n <DescriptionIcon sx={{ fontSize: 18, color: \"rgba(21,35,86,.4)\", flexShrink: 0 }} />\n ),\n chip,\n}) => (\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 1.5,\n fontSize: \"0.8125rem\",\n color: \"rgba(21,35,86,.87)\",\n width: \"100%\",\n }}\n >\n {icon}\n <Box sx={{ flex: 1 }}>{label}</Box>\n {chip}\n </Box>\n);\n","import React from \"react\";\nimport NotificationsNoneIcon from \"@mui/icons-material/NotificationsNone\";\nimport WbSunnyIcon from \"@mui/icons-material/WbSunny\";\nimport Box from \"@mui/material/Box\";\nimport MuiIconButton from \"@mui/material/IconButton\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport interface AppBarProps {\n appLogo?: React.ReactNode;\n greeting: string;\n userInitials: string;\n hasNotification?: boolean;\n sx?: SxProps<Theme>;\n}\n\nexport const AppBar: React.FC<AppBarProps> = ({\n appLogo,\n greeting,\n userInitials,\n hasNotification = false,\n sx,\n}) => {\n return (\n <Box\n sx={{\n height: 70,\n bgcolor: \"#fff\",\n display: \"flex\",\n alignItems: \"center\",\n px: \"32px\",\n gap: \"16px\",\n borderBottom: \"2px solid #00F0FF\",\n position: \"sticky\",\n top: 0,\n zIndex: 10,\n ...sx,\n }}\n >\n {appLogo && (\n <Box sx={{ display: \"flex\", alignItems: \"center\", flexShrink: 0 }}>{appLogo}</Box>\n )}\n\n <Box\n sx={{\n width: \"1px\",\n height: \"28px\",\n bgcolor: \"rgba(21,35,86,.12)\",\n flexShrink: 0,\n }}\n />\n\n <Box\n sx={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"6px\",\n fontSize: \"14px\",\n fontWeight: 400,\n color: \"rgba(21,35,86,.87)\",\n fontFamily: \"Roboto, sans-serif\",\n }}\n >\n {greeting}\n <WbSunnyIcon sx={{ color: \"#FFE082\", fontSize: \"20px\" }} />\n </Box>\n\n <Box sx={{ flex: 1 }} />\n\n <Box sx={{ position: \"relative\", display: \"inline-flex\" }}>\n <MuiIconButton\n title=\"Notifications\"\n sx={{\n width: 40,\n height: 40,\n color: \"rgba(21,35,86,.56)\",\n \"&:hover\": { bgcolor: \"rgba(21,35,86,.04)\" },\n }}\n >\n <NotificationsNoneIcon />\n </MuiIconButton>\n {hasNotification && (\n <Box\n data-testid=\"notification-dot\"\n sx={{\n position: \"absolute\",\n top: \"10px\",\n right: \"10px\",\n width: \"8px\",\n height: \"8px\",\n borderRadius: \"50%\",\n bgcolor: \"#D32F2F\",\n border: \"2px solid #fff\",\n pointerEvents: \"none\",\n }}\n />\n )}\n </Box>\n\n <Box\n sx={{\n width: 36,\n height: 36,\n borderRadius: \"50%\",\n background: \"linear-gradient(135deg, #1F5FF2, #00A8C0)\",\n color: \"#fff\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontWeight: 500,\n fontSize: \"13px\",\n fontFamily: \"Roboto, sans-serif\",\n flexShrink: 0,\n }}\n >\n {userInitials}\n </Box>\n </Box>\n );\n};\n","import React, { useState } from \"react\";\nimport Drawer from \"@mui/material/Drawer\";\nimport Box from \"@mui/material/Box\";\nimport List from \"@mui/material/List\";\nimport ListItemButton from \"@mui/material/ListItemButton\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport MuiIconButton from \"@mui/material/IconButton\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport Typography from \"@mui/material/Typography\";\nimport Divider from \"@mui/material/Divider\";\nimport FirstPageIcon from \"@mui/icons-material/FirstPage\";\nimport LastPageIcon from \"@mui/icons-material/LastPage\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\nimport type { MenuItemProps } from \"../../molecules/MenuItem\";\n\nexport interface SidebarSection {\n title?: string;\n items: MenuItemProps[];\n}\n\nexport interface SidebarProps {\n sections: SidebarSection[];\n width?: number;\n collapsedWidth?: number;\n logo?: React.ReactNode;\n collapsedLogo?: React.ReactNode;\n title?: string;\n footer?: React.ReactNode;\n open?: boolean;\n variant?: \"permanent\" | \"persistent\" | \"temporary\";\n onClose?: () => void;\n collapsible?: boolean;\n collapsed?: boolean;\n onCollapsedChange?: (collapsed: boolean) => void;\n sx?: SxProps<Theme>;\n}\n\nconst ITEM_SX = {\n height: 44,\n borderRadius: \"100px\",\n mb: \"2px\",\n color: \"#fff\",\n transition: \"background 0.15s\",\n \"&.Mui-selected\": {\n bgcolor: \"#fff\",\n boxShadow:\n \"0 1px 3px 0 rgba(0,0,0,0.12), 0 1px 1px 0 rgba(0,0,0,0.14), 0 2px 1px -1px rgba(0,0,0,0.20)\",\n color: \"#1F5FF2\",\n \"& .MuiListItemIcon-root\": { color: \"#1F5FF2\" },\n \"&:hover\": { bgcolor: \"#fff\" },\n },\n \"&:hover\": { bgcolor: \"rgba(255,255,255,.1)\" },\n};\n\nexport const Sidebar: React.FC<SidebarProps> = ({\n sections,\n width = 190,\n collapsedWidth = 72,\n logo,\n collapsedLogo,\n title,\n footer,\n open = true,\n variant = \"permanent\",\n onClose,\n collapsible = false,\n collapsed: controlledCollapsed,\n onCollapsedChange,\n sx,\n}) => {\n const [internalCollapsed, setInternalCollapsed] = useState(false);\n const isCollapsed = controlledCollapsed ?? internalCollapsed;\n\n const handleToggle = () => {\n const next = !isCollapsed;\n setInternalCollapsed(next);\n onCollapsedChange?.(next);\n };\n\n const currentWidth = collapsible && isCollapsed ? collapsedWidth : width;\n const activeLogo = isCollapsed ? (collapsedLogo ?? logo) : logo;\n\n const renderItem = (item: MenuItemProps) => {\n if (isCollapsed) {\n return (\n <Tooltip key={item.label} title={item.label} placement=\"right\">\n <Box component=\"span\" sx={{ display: \"block\" }}>\n <ListItemButton\n selected={item.selected}\n disabled={item.disabled}\n onClick={item.onClick}\n sx={{ ...ITEM_SX, px: 0, justifyContent: \"center\" }}\n >\n <ListItemIcon\n sx={{ minWidth: 0, color: \"inherit\", justifyContent: \"center\" }}\n >\n {item.icon}\n </ListItemIcon>\n </ListItemButton>\n </Box>\n </Tooltip>\n );\n }\n\n return (\n <ListItemButton\n key={item.label}\n selected={item.selected}\n disabled={item.disabled}\n onClick={item.onClick}\n sx={{ ...ITEM_SX, px: \"14px\", gap: 1.5 }}\n >\n {item.icon && (\n <ListItemIcon sx={{ minWidth: 0, color: \"inherit\" }}>{item.icon}</ListItemIcon>\n )}\n <ListItemText\n primary={item.label}\n slotProps={{\n primary: { fontSize: \"0.875rem\", fontWeight: item.selected ? 500 : 400 },\n }}\n />\n </ListItemButton>\n );\n };\n\n const content = (\n <Box\n sx={{\n width: currentWidth,\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n overflow: \"hidden\",\n color: \"#fff\",\n }}\n >\n {(activeLogo || title || collapsible) && (\n <Box\n sx={{\n height: 70,\n px: isCollapsed ? 0 : \"14px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: isCollapsed ? \"center\" : \"space-between\",\n flexShrink: 0,\n }}\n >\n {!isCollapsed && (\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1.5, minWidth: 0 }}>\n {activeLogo}\n {title && (\n <Typography variant=\"h6\" fontWeight={700} noWrap sx={{ color: \"#fff\" }}>\n {title}\n </Typography>\n )}\n </Box>\n )}\n {isCollapsed && activeLogo && (\n <Box sx={{ display: \"flex\", alignItems: \"center\" }}>{activeLogo}</Box>\n )}\n {collapsible && !isCollapsed && (\n <MuiIconButton\n size=\"small\"\n onClick={handleToggle}\n aria-label=\"Collapse sidebar\"\n sx={{\n flexShrink: 0,\n color: \"#fff\",\n width: 28,\n height: 28,\n borderRadius: \"6px\",\n }}\n >\n <FirstPageIcon />\n </MuiIconButton>\n )}\n </Box>\n )}\n\n {collapsible && isCollapsed && (\n <Box sx={{ display: \"flex\", justifyContent: \"center\", mb: 1 }}>\n <MuiIconButton\n size=\"small\"\n onClick={handleToggle}\n aria-label=\"Expand sidebar\"\n sx={{ color: \"#fff\" }}\n >\n <LastPageIcon />\n </MuiIconButton>\n </Box>\n )}\n\n <Box sx={{ flex: 1, overflowY: \"auto\", px: \"10px\", py: 1 }}>\n {sections.map((section, sectionIndex) => (\n <Box key={section.title ?? section.items.map((i) => i.label).join(\",\")}>\n {sectionIndex > 0 && (\n <Divider sx={{ my: 1, borderColor: \"rgba(255,255,255,.15)\" }} />\n )}\n {section.title && !isCollapsed && (\n <Typography\n variant=\"overline\"\n sx={{\n px: \"14px\",\n py: 0.5,\n display: \"block\",\n color: \"rgba(255,255,255,.6)\",\n fontSize: \"0.6875rem\",\n fontWeight: 600,\n letterSpacing: \"0.08em\",\n }}\n >\n {section.title}\n </Typography>\n )}\n <List dense disablePadding>\n {section.items.map((item) => renderItem(item))}\n </List>\n </Box>\n ))}\n </Box>\n\n {footer && !isCollapsed && (\n <Box\n sx={{\n p: 2,\n borderTop: \"1px solid rgba(255,255,255,.15)\",\n flexShrink: 0,\n color: \"#fff\",\n }}\n >\n {footer}\n </Box>\n )}\n </Box>\n );\n\n return (\n <Drawer\n variant={variant}\n open={open}\n onClose={onClose}\n sx={{\n width: currentWidth,\n flexShrink: 0,\n transition: \"width 0.3s ease-in-out\",\n \"& .MuiDrawer-paper\": {\n width: currentWidth,\n boxSizing: \"border-box\",\n overflowX: \"hidden\",\n transition: \"width 0.3s ease-in-out\",\n background: \"linear-gradient(180deg, #1649DF 0%, #152356 100%)\",\n border: \"none\",\n },\n ...sx,\n }}\n >\n {content}\n </Drawer>\n );\n};\n","import React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport MuiIconButton from \"@mui/material/IconButton\";\nimport LogoutIcon from \"@mui/icons-material/Logout\";\nimport { Avatar } from \"../../atoms/Avatar\";\n\nexport interface SidebarUserFooterProps {\n name: string;\n email: string;\n onSignOut?: () => void;\n}\n\nexport const SidebarUserFooter: React.FC<SidebarUserFooterProps> = ({\n name,\n email,\n onSignOut,\n}) => (\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 1.25,\n px: 1.25,\n py: 1,\n borderRadius: \"12px\",\n }}\n >\n <Avatar\n name={name}\n sx={{ width: 32, height: 32, fontSize: \"0.75rem\", flexShrink: 0 }}\n />\n <Box sx={{ minWidth: 0, flex: 1 }}>\n <Box\n sx={{\n fontSize: \"0.8125rem\",\n fontWeight: 500,\n lineHeight: 1.2,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n }}\n >\n {name}\n </Box>\n <Box\n sx={{\n fontSize: \"0.6875rem\",\n opacity: 0.7,\n lineHeight: 1.2,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n }}\n >\n {email}\n </Box>\n </Box>\n {onSignOut && (\n <MuiIconButton\n size=\"small\"\n title=\"Sign out\"\n onClick={onSignOut}\n sx={{\n color: \"inherit\",\n width: 30,\n height: 30,\n borderRadius: \"8px\",\n opacity: 0.7,\n flexShrink: 0,\n \"&:hover\": { opacity: 1, bgcolor: \"rgba(255,255,255,.1)\" },\n }}\n >\n <LogoutIcon sx={{ fontSize: 18 }} />\n </MuiIconButton>\n )}\n </Box>\n);\n","import React from \"react\";\n\nexport function AlchemyIcon({ style, ...props }: React.SVGProps<SVGSVGElement>) {\n return (\n <svg\n viewBox=\"0 0 66 78\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ height: 32, width: 32, display: \"block\", flexShrink: 0, ...style }}\n aria-label=\"Alchemy\"\n {...props}\n >\n <path\n d=\"M64.4357 28.2977L44.2898 2.80381C42.8879 1.03845 40.7591 0 38.4745 0C36.1899 0 37.2284 0.103845 36.6053 0.259612L22.7939 3.89418C21.392 4.25764 20.1459 4.98455 19.2113 6.07492L1.92113 25.0785C0.674991 26.4285 0 28.1939 0 30.0631V53.2204C0 55.505 1.09037 57.6858 2.85573 59.0877L25.0266 76.1701C26.3247 77.1567 27.9342 77.7278 29.5438 77.7278C31.1534 77.7278 31.9842 77.4163 33.0226 76.8451L62.0992 61.2684C64.4876 59.9704 65.9934 57.4781 65.9934 54.7781V32.9188C65.9934 31.2573 65.4222 29.6477 64.3838 28.3496H64.4357V28.2977ZM61.1646 54.7262C61.1646 55.6608 60.6453 56.4916 59.8665 56.9069L30.79 72.4837C30.4265 72.6913 30.0111 72.7952 29.5958 72.7952C29.1804 72.7952 28.5054 72.6394 28.09 72.276L5.91915 55.1935C5.29608 54.7262 4.93263 53.9993 4.93263 53.2204V30.0631C4.93263 29.44 5.14032 28.8688 5.5557 28.4015L22.8459 9.39795C23.1574 9.0345 23.5728 8.77488 24.0401 8.67104L37.8514 5.03647C38.0591 5.03647 38.2668 4.93263 38.4745 4.93263C39.2014 4.93263 39.9283 5.29608 40.4475 5.86723L60.5934 31.3611C60.9569 31.7765 61.1126 32.3476 61.1126 32.9188V54.7781H61.1646V54.7262Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M20.0422 45.7956L29.9074 65.3703L41.2784 48.5994L20.0422 45.7956Z\"\n fill=\"#1649DF\"\n />\n <path d=\"M9.9173 51.9744L22.4306 61.6319L9.9173 38.4745V51.9744Z\" fill=\"#5BA2FF\" />\n <path\n d=\"M37.3323 63.3453L53.6878 54.5704L46.3148 50.0532L37.3323 63.3453Z\"\n fill=\"#1649DF\"\n />\n <path\n d=\"M19.3671 20.6133L10.5922 30.3228L14.7979 36.7611L19.3671 20.6133Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M25.9614 15.8883L19.6269 37.9034L38.319 28.4535L25.9614 15.8883Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M56.1802 50.2609V33.7496L42.7323 16.8229L47.8726 45.1206L56.1802 50.2609Z\"\n fill=\"#1649DF\"\n />\n <path\n d=\"M42.5765 43.7186L40.6035 32.8668L23.9883 41.2782L42.5765 43.7186Z\"\n fill=\"#5BA2FF\"\n />\n <path\n d=\"M29.4922 12.3576L38.5786 21.5998L36.5536 10.5403L29.4922 12.3576Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M60.5935 31.361L40.4476 5.8671C39.9803 5.24403 39.2533 4.9325 38.4745 4.9325C37.6957 4.9325 38.0591 4.9325 37.8514 5.03634L24.0401 8.67091C23.5728 8.77475 23.1574 9.03436 22.8459 9.39782L5.55572 28.4014C5.14034 28.8687 4.93265 29.4399 4.93265 30.0629V53.2203C4.93265 53.9992 5.2961 54.7261 5.91917 55.1934L28.09 72.2758C28.5573 72.6393 29.0766 72.7951 29.5958 72.7951C30.115 72.7951 30.4265 72.6912 30.79 72.4835L59.8665 56.9068C60.6973 56.4914 61.1646 55.6088 61.1646 54.7261V32.8667C61.1646 32.2956 60.9569 31.7764 60.6454 31.3091H60.5935V31.361ZM9.9172 51.9742V38.4224L22.4305 61.5798L9.9172 51.9742ZM36.5534 10.5401L38.5784 21.5996L29.4919 12.3574L36.5534 10.4882V10.5401ZM38.3187 28.4533L19.6267 37.9032L25.9093 15.8881L38.2668 28.5053L38.3187 28.4533ZM40.6033 32.8667L42.5245 43.7185L23.9882 41.2782L40.6033 32.8667ZM19.3671 20.6131L14.746 36.7609L10.5403 30.3225L19.3671 20.6131ZM20.0421 45.7954L41.2783 48.5992L29.9073 65.3702L20.0421 45.7954ZM46.3148 50.0531L53.6359 54.6222L37.2803 63.3452L46.2629 50.0531H46.3148ZM56.18 50.2607L47.8725 45.1204L42.7322 16.8227L56.1281 33.8013V50.3127H56.18V50.2607Z\"\n fill=\"#152356\"\n />\n </svg>\n );\n}\n\nexport function AlchemyLogo({ style, ...props }: React.SVGProps<SVGSVGElement>) {\n return (\n <svg\n viewBox=\"0 0 138 38\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ height: 28, display: \"block\", maxWidth: \"100%\", ...style }}\n aria-label=\"Alchemy\"\n {...props}\n >\n <g clipPath=\"url(#alchemylogo-clip)\">\n <path\n d=\"M50.2562 15.3223H40.562V17.8016H48.6942V19.3388H40.562C40.1157 19.3388 39.7438 19.4876 39.4463 19.7851C39.124 20.0826 38.9752 20.4793 38.9752 20.9256V24.4463C38.9752 24.9173 39.124 25.2892 39.4463 25.5868C39.7686 25.8843 40.1405 26.0331 40.562 26.0331H50.2562C50.7025 26.0331 51.0744 25.8843 51.3719 25.562C51.6942 25.2645 51.843 24.8678 51.843 24.4215V16.8843C51.843 16.438 51.6942 16.0413 51.3719 15.7438C51.0496 15.4463 50.6777 15.2727 50.2562 15.2727V15.3223ZM48.6942 23.5785H42.0992V21.8182H48.6942V23.5785Z\"\n fill=\"#152356\"\n />\n <path d=\"M57.6199 10.7355H54.4711V26.0578H57.6199V10.7355Z\" fill=\"#152356\" />\n <path\n d=\"M60.719 15.7934C60.3967 16.0909 60.2479 16.4876 60.2479 16.9339V24.4711C60.2479 24.9421 60.3967 25.314 60.719 25.6116C61.0413 25.9091 61.4132 26.0578 61.8347 26.0578H73.1157V23.0082H63.3719V18.3719H73.1157V15.3223H61.8347C61.3884 15.3223 61.0165 15.4711 60.719 15.7686V15.7934Z\"\n fill=\"#152356\"\n />\n <path\n d=\"M86.5042 15.3223H78.5951V10.7355H75.4463V26.0578H78.5951V18.3719H84.967V26.0578H88.1158V16.9339C88.1158 16.4876 87.967 16.1157 87.6447 15.8182C87.3472 15.4959 86.9505 15.3471 86.5042 15.3471V15.3223Z\"\n fill=\"#152356\"\n />\n <path\n d=\"M101.876 15.3223H91.9091C91.4629 15.3223 91.091 15.4711 90.7934 15.7934C90.4711 16.0909 90.3224 16.4876 90.3224 16.9339V24.4711C90.3224 24.9173 90.4711 25.314 90.7934 25.6116C91.1158 25.9091 91.4877 26.0826 91.9091 26.0826H103.364V23.5785H93.4463V22.0661H101.876C102.322 22.0661 102.694 21.9173 102.992 21.595C103.314 21.2975 103.463 20.9008 103.463 20.4545V16.9339C103.463 16.4876 103.314 16.0909 102.992 15.7934C102.669 15.4959 102.298 15.3223 101.876 15.3223ZM100.314 19.6116H93.4463V17.8264H100.314V19.6116Z\"\n fill=\"#152356\"\n />\n <path\n d=\"M121.19 15.3223H107.033C106.587 15.3223 106.19 15.4711 105.893 15.7934C105.595 16.1157 105.421 16.4876 105.421 16.9339V26.0578H108.57V18.3719H112.537V26.0578H115.686V18.3719H119.628V26.0578H122.777V16.9339C122.777 16.4876 122.628 16.0909 122.306 15.7934C121.983 15.4959 121.612 15.3223 121.165 15.3223H121.19Z\"\n fill=\"#152356\"\n />\n <path\n d=\"M134.826 15.3223V19.562H127.736V15.3223H124.587V20.4545C124.587 20.9008 124.736 21.2975 125.058 21.595C125.38 21.8925 125.752 22.0661 126.198 22.0661H134.851V23.6033H125.207V26.0826H136.413C136.86 26.0826 137.231 25.9339 137.529 25.6116C137.851 25.314 138 24.9173 138 24.4711V15.3471H134.826V15.3223Z\"\n fill=\"#152356\"\n />\n <path\n d=\"M30.7686 13.5124L21.1488 1.33884C20.4793 0.495868 19.4628 0 18.3719 0C17.281 0 17.7769 0.0495868 17.4793 0.123967L10.8843 1.8595C10.2149 2.03306 9.61983 2.38017 9.17355 2.90083L0.917355 11.9752C0.322314 12.6198 0 13.4628 0 14.3554V25.4132C0 26.5041 0.520661 27.5455 1.36364 28.2149L11.9504 36.3719C12.5702 36.843 13.3388 37.1157 14.1074 37.1157C14.876 37.1157 15.2727 36.9669 15.7686 36.6942L29.6529 29.2562C30.7934 28.6364 31.5124 27.4463 31.5124 26.157V15.719C31.5124 14.9256 31.2397 14.157 30.7438 13.5372H30.7686V13.5124ZM29.2066 26.1322C29.2066 26.5785 28.9587 26.9752 28.5868 27.1736L14.7025 34.6116C14.5289 34.7107 14.3306 34.7603 14.1322 34.7603C13.9339 34.7603 13.6116 34.686 13.4132 34.5124L2.82645 26.3554C2.52893 26.1322 2.35537 25.7851 2.35537 25.4132V14.3554C2.35537 14.0579 2.45455 13.7851 2.65289 13.562L10.9091 4.4876C11.0579 4.31405 11.2562 4.19008 11.4793 4.1405L18.0744 2.40496C18.1736 2.40496 18.2727 2.35537 18.3719 2.35537C18.719 2.35537 19.0661 2.52893 19.3141 2.80165L28.9339 14.9752C29.1074 15.1736 29.1818 15.4463 29.1818 15.719V26.157H29.2066V26.1322Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M9.5703 21.8678L14.281 31.2149L19.7108 23.2066L9.5703 21.8678Z\"\n fill=\"#1649DF\"\n />\n <path\n d=\"M4.7356 24.8182L10.7108 29.4298L4.7356 18.3719V24.8182Z\"\n fill=\"#5BA2FF\"\n />\n <path\n d=\"M17.8265 30.2479L25.6364 26.0579L22.1157 23.9008L17.8265 30.2479Z\"\n fill=\"#1649DF\"\n />\n <path\n d=\"M9.24794 9.84298L5.05786 14.4793L7.06613 17.5537L9.24794 9.84298Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M12.3968 7.58676L9.372 18.0992L18.2976 13.5868L12.3968 7.58676Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M26.8266 24V16.1157L20.4051 8.03306L22.8596 21.5455L26.8266 24Z\"\n fill=\"#1649DF\"\n />\n <path\n d=\"M20.3307 20.876L19.3885 15.6942L11.4546 19.7107L20.3307 20.876Z\"\n fill=\"#5BA2FF\"\n />\n <path\n d=\"M14.0828 5.90082L18.4216 10.314L17.4547 5.03305L14.0828 5.90082Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M28.9339 14.9752L19.3141 2.80165C19.0909 2.50413 18.7438 2.35537 18.3719 2.35537C18 2.35537 18.1736 2.35537 18.0744 2.40496L11.4793 4.14049C11.2562 4.19008 11.0579 4.31405 10.9091 4.4876L2.65289 13.562C2.45455 13.7851 2.35537 14.0579 2.35537 14.3554V25.4132C2.35537 25.7851 2.52893 26.1322 2.82645 26.3554L13.4132 34.5124C13.6364 34.686 13.8843 34.7603 14.1322 34.7603C14.3802 34.7603 14.5289 34.7107 14.7025 34.6116L28.5868 27.1736C28.9835 26.9752 29.2066 26.5537 29.2066 26.1322V15.6942C29.2066 15.4215 29.1074 15.1736 28.9587 14.9504H28.9339V14.9752ZM4.73554 24.8182V18.3471L10.7107 29.405L4.73554 24.8182ZM17.4545 5.03306L18.4215 10.314L14.0826 5.90083L17.4545 5.00826V5.03306ZM18.2975 13.5868L9.3719 18.0992L12.3719 7.58678L18.2727 13.6116L18.2975 13.5868ZM19.3884 15.6942L20.3058 20.876L11.4545 19.7107L19.3884 15.6942ZM9.24794 9.84297L7.04132 17.5537L5.03306 14.4793L9.24794 9.84297ZM9.57025 21.8678L19.7107 23.2066L14.281 31.2149L9.57025 21.8678ZM22.1157 23.9008L25.6116 26.0826L17.8017 30.2479L22.0909 23.9008H22.1157ZM26.8265 24L22.8595 21.5455L20.405 8.03306L26.8017 16.1405V24.0248H26.8265V24Z\"\n fill=\"#152356\"\n />\n <path\n d=\"M50.2562 15.3223H40.562V17.8016H48.6942V19.3388H40.562C40.1157 19.3388 39.7438 19.4876 39.4463 19.7851C39.124 20.0826 38.9752 20.4793 38.9752 20.9256V24.4463C38.9752 24.9173 39.124 25.2892 39.4463 25.5868C39.7686 25.8843 40.1405 26.0331 40.562 26.0331H50.2562C50.7025 26.0331 51.0744 25.8843 51.3719 25.562C51.6942 25.2645 51.843 24.8678 51.843 24.4215V16.8843C51.843 16.438 51.6942 16.0413 51.3719 15.7438C51.0496 15.4463 50.6777 15.2727 50.2562 15.2727V15.3223ZM48.6942 23.5785H42.0992V21.8182H48.6942V23.5785Z\"\n fill=\"white\"\n />\n <path d=\"M57.6199 10.7355H54.4711V26.0578H57.6199V10.7355Z\" fill=\"white\" />\n <path\n d=\"M60.719 15.7934C60.3967 16.0909 60.2479 16.4876 60.2479 16.9339V24.4711C60.2479 24.9421 60.3967 25.314 60.719 25.6116C61.0413 25.9091 61.4132 26.0578 61.8347 26.0578H73.1157V23.0082H63.3719V18.3719H73.1157V15.3223H61.8347C61.3884 15.3223 61.0165 15.4711 60.719 15.7686V15.7934Z\"\n fill=\"white\"\n />\n <path\n d=\"M86.5042 15.3223H78.5951V10.7355H75.4463V26.0578H78.5951V18.3719H84.967V26.0578H88.1158V16.9339C88.1158 16.4876 87.967 16.1157 87.6447 15.8182C87.3472 15.4959 86.9505 15.3471 86.5042 15.3471V15.3223Z\"\n fill=\"white\"\n />\n <path\n d=\"M101.876 15.3223H91.9091C91.4629 15.3223 91.091 15.4711 90.7934 15.7934C90.4711 16.0909 90.3224 16.4876 90.3224 16.9339V24.4711C90.3224 24.9173 90.4711 25.314 90.7934 25.6116C91.1158 25.9091 91.4877 26.0826 91.9091 26.0826H103.364V23.5785H93.4463V22.0661H101.876C102.322 22.0661 102.694 21.9173 102.992 21.595C103.314 21.2975 103.463 20.9008 103.463 20.4545V16.9339C103.463 16.4876 103.314 16.0909 102.992 15.7934C102.669 15.4959 102.298 15.3223 101.876 15.3223ZM100.314 19.6116H93.4463V17.8264H100.314V19.6116Z\"\n fill=\"white\"\n />\n <path\n d=\"M121.19 15.3223H107.033C106.587 15.3223 106.19 15.4711 105.893 15.7934C105.595 16.1157 105.421 16.4876 105.421 16.9339V26.0578H108.57V18.3719H112.537V26.0578H115.686V18.3719H119.628V26.0578H122.777V16.9339C122.777 16.4876 122.628 16.0909 122.306 15.7934C121.983 15.4959 121.612 15.3223 121.165 15.3223H121.19Z\"\n fill=\"white\"\n />\n <path\n d=\"M134.826 15.3223V19.562H127.736V15.3223H124.587V20.4545C124.587 20.9008 124.736 21.2975 125.058 21.595C125.38 21.8925 125.752 22.0661 126.198 22.0661H134.851V23.6033H125.207V26.0826H136.413C136.86 26.0826 137.231 25.9339 137.529 25.6116C137.851 25.314 138 24.9173 138 24.4711V15.3471H134.826V15.3223Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <clipPath id=\"alchemylogo-clip\">\n <rect width=\"138\" height=\"37.1157\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n}\n\nexport function AlchemyLogoWhite({ style, ...props }: React.SVGProps<SVGSVGElement>) {\n return (\n <svg\n viewBox=\"0 0 289 78\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ height: 28, display: \"block\", maxWidth: \"100%\", ...style }}\n aria-label=\"Alchemy\"\n {...props}\n >\n <g clipPath=\"url(#alchemylogowhite-clip)\">\n <path\n d=\"M105.247 32.088H84.945V37.2802H101.976V40.4994H84.945C84.0104 40.4994 83.2315 40.8109 82.6085 41.434C81.9335 42.0571 81.6219 42.8878 81.6219 43.8224V51.1954C81.6219 52.1819 81.9335 52.9608 82.6085 53.5838C83.2835 54.2069 84.0623 54.5185 84.945 54.5185H105.247C106.181 54.5185 106.96 54.2069 107.583 53.5319C108.258 52.9089 108.57 52.0781 108.57 51.1435V35.3591C108.57 34.4245 108.258 33.5937 107.583 32.9707C106.908 32.3476 106.129 31.9841 105.247 31.9841V32.088ZM101.976 49.3781H88.1642V45.6916H101.976V49.3781Z\"\n fill=\"white\"\n />\n <path d=\"M120.668 22.4824H114.073V54.5704H120.668V22.4824Z\" fill=\"white\" />\n <path\n d=\"M127.158 33.0745C126.483 33.6976 126.171 34.5284 126.171 35.463V51.2474C126.171 52.2339 126.483 53.0127 127.158 53.6358C127.833 54.2589 128.612 54.5704 129.494 54.5704H153.119V48.184H132.714V38.4745H153.119V32.088H129.494C128.56 32.088 127.781 32.3995 127.158 33.0226V33.0745Z\"\n fill=\"white\"\n />\n <path\n d=\"M181.157 32.088H164.594V22.4824H158V54.5704H164.594V38.4745H177.938V54.5704H184.532V35.463C184.532 34.5284 184.221 33.7495 183.546 33.1265C182.923 32.4515 182.092 32.1399 181.157 32.1399V32.088Z\"\n fill=\"white\"\n />\n <path\n d=\"M213.349 32.088H192.476C191.542 32.088 190.763 32.3995 190.14 33.0745C189.465 33.6976 189.153 34.5284 189.153 35.463V51.2474C189.153 52.182 189.465 53.0127 190.14 53.6358C190.815 54.2589 191.594 54.6223 192.476 54.6223H216.464V49.3782H195.695V46.2109H213.349C214.284 46.2109 215.063 45.8994 215.686 45.2244C216.361 44.6013 216.672 43.7706 216.672 42.8359V35.463C216.672 34.5284 216.361 33.6976 215.686 33.0745C215.011 32.4515 214.232 32.088 213.349 32.088ZM210.078 41.0706H195.695V37.3322H210.078V41.0706Z\"\n fill=\"white\"\n />\n <path\n d=\"M253.797 32.088H224.149C223.214 32.088 222.384 32.3995 221.76 33.0745C221.137 33.7495 220.774 34.5284 220.774 35.463V54.5704H227.368V38.4745H235.676V54.5704H242.27V38.4745H250.525V54.5704H257.12V35.463C257.12 34.5284 256.808 33.6976 256.133 33.0745C255.458 32.4515 254.679 32.088 253.745 32.088H253.797Z\"\n fill=\"white\"\n />\n <path\n d=\"M282.354 32.088V40.9667H267.504V32.088H260.91V42.8359C260.91 43.7706 261.221 44.6013 261.896 45.2244C262.571 45.8474 263.35 46.2109 264.285 46.2109H282.406V49.4301H262.208V54.6223H285.677C286.612 54.6223 287.39 54.3108 288.013 53.6358C288.688 53.0127 289 52.182 289 51.2474V32.1399H282.354V32.088Z\"\n fill=\"white\"\n />\n <path\n d=\"M64.4357 28.2977L44.2898 2.80381C42.8879 1.03845 40.7591 0 38.4745 0C36.1899 0 37.2284 0.103845 36.6053 0.259612L22.7939 3.89418C21.392 4.25764 20.1459 4.98455 19.2113 6.07492L1.92113 25.0785C0.674991 26.4285 0 28.1939 0 30.0631V53.2204C0 55.505 1.09037 57.6858 2.85573 59.0877L25.0266 76.1701C26.3247 77.1567 27.9342 77.7278 29.5438 77.7278C31.1534 77.7278 31.9842 77.4163 33.0226 76.8451L62.0992 61.2684C64.4876 59.9704 65.9934 57.4781 65.9934 54.7781V32.9188C65.9934 31.2573 65.4222 29.6477 64.3838 28.3496H64.4357V28.2977ZM61.1646 54.7262C61.1646 55.6608 60.6453 56.4916 59.8665 56.9069L30.79 72.4837C30.4265 72.6913 30.0111 72.7952 29.5958 72.7952C29.1804 72.7952 28.5054 72.6394 28.09 72.276L5.91915 55.1935C5.29608 54.7262 4.93263 53.9993 4.93263 53.2204V30.0631C4.93263 29.44 5.14032 28.8688 5.5557 28.4015L22.8459 9.39795C23.1574 9.0345 23.5728 8.77488 24.0401 8.67104L37.8514 5.03647C38.0591 5.03647 38.2668 4.93263 38.4745 4.93263C39.2014 4.93263 39.9283 5.29608 40.4475 5.86723L60.5934 31.3611C60.9569 31.7765 61.1126 32.3476 61.1126 32.9188V54.7781H61.1646V54.7262Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M20.0422 45.7956L29.9074 65.3703L41.2784 48.5994L20.0422 45.7956Z\"\n fill=\"#1649DF\"\n />\n <path\n d=\"M9.9173 51.9744L22.4306 61.6319L9.9173 38.4745V51.9744Z\"\n fill=\"#5BA2FF\"\n />\n <path\n d=\"M37.3323 63.3453L53.6878 54.5704L46.3148 50.0532L37.3323 63.3453Z\"\n fill=\"#1649DF\"\n />\n <path\n d=\"M19.3671 20.6133L10.5922 30.3228L14.7979 36.7611L19.3671 20.6133Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M25.9614 15.8883L19.6269 37.9034L38.319 28.4535L25.9614 15.8883Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M56.1802 50.2609V33.7496L42.7323 16.8229L47.8726 45.1206L56.1802 50.2609Z\"\n fill=\"#1649DF\"\n />\n <path\n d=\"M42.5765 43.7186L40.6035 32.8668L23.9883 41.2782L42.5765 43.7186Z\"\n fill=\"#5BA2FF\"\n />\n <path\n d=\"M29.4922 12.3576L38.5786 21.5998L36.5536 10.5403L29.4922 12.3576Z\"\n fill=\"#00F0FF\"\n />\n <path\n d=\"M60.5935 31.361L40.4476 5.8671C39.9803 5.24403 39.2533 4.9325 38.4745 4.9325C37.6957 4.9325 38.0591 4.9325 37.8514 5.03634L24.0401 8.67091C23.5728 8.77475 23.1574 9.03436 22.8459 9.39782L5.55572 28.4014C5.14034 28.8687 4.93265 29.4399 4.93265 30.0629V53.2203C4.93265 53.9992 5.2961 54.7261 5.91917 55.1934L28.09 72.2758C28.5573 72.6393 29.0766 72.7951 29.5958 72.7951C30.115 72.7951 30.4265 72.6912 30.79 72.4835L59.8665 56.9068C60.6973 56.4914 61.1646 55.6088 61.1646 54.7261V32.8667C61.1646 32.2956 60.9569 31.7764 60.6454 31.3091H60.5935V31.361ZM9.9172 51.9742V38.4224L22.4305 61.5798L9.9172 51.9742ZM36.5534 10.5401L38.5784 21.5996L29.4919 12.3574L36.5534 10.4882V10.5401ZM38.3187 28.4533L19.6267 37.9032L25.9093 15.8881L38.2668 28.5053L38.3187 28.4533ZM40.6033 32.8667L42.5245 43.7185L23.9882 41.2782L40.6033 32.8667ZM19.3671 20.6131L14.746 36.7609L10.5403 30.3225L19.3671 20.6131ZM20.0421 45.7954L41.2783 48.5992L29.9073 65.3702L20.0421 45.7954ZM46.3148 50.0531L53.6359 54.6222L37.2803 63.3452L46.2629 50.0531H46.3148ZM56.18 50.2607L47.8725 45.1204L42.7322 16.8227L56.1281 33.8013V50.3127H56.18V50.2607Z\"\n fill=\"#152356\"\n />\n </g>\n <defs>\n <clipPath id=\"alchemylogowhite-clip\">\n <rect width=\"289\" height=\"77.7278\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n}\n","import React from \"react\";\nimport MuiDialog, { type DialogProps as MuiDialogProps } from \"@mui/material/Dialog\";\nimport DialogTitle from \"@mui/material/DialogTitle\";\nimport DialogContent from \"@mui/material/DialogContent\";\nimport DialogActions from \"@mui/material/DialogActions\";\nimport Typography from \"@mui/material/Typography\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\nimport Box from \"@mui/material/Box\";\n\nexport interface DialogProps extends Omit<MuiDialogProps, \"title\"> {\n title?: string;\n subtitle?: string;\n footer?: React.ReactNode;\n loading?: boolean;\n}\n\nexport const Dialog = React.forwardRef<HTMLDivElement, DialogProps>(\n ({ title, subtitle, children, footer, loading = false, ...props }, ref) => {\n return (\n <MuiDialog ref={ref} {...props}>\n {title && (\n <DialogTitle>\n {title}\n {subtitle && (\n <Typography variant=\"body2\" color=\"text.secondary\" sx={{ mt: 0.5 }}>\n {subtitle}\n </Typography>\n )}\n </DialogTitle>\n )}\n <DialogContent>\n {loading ? (\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n minHeight={120}\n >\n <CircularProgress />\n </Box>\n ) : (\n children\n )}\n </DialogContent>\n {footer && <DialogActions>{footer}</DialogActions>}\n </MuiDialog>\n );\n }\n);\n\nDialog.displayName = \"Dialog\";\n","import React from \"react\";\nimport MuiStepper from \"@mui/material/Stepper\";\nimport Step from \"@mui/material/Step\";\nimport StepLabel from \"@mui/material/StepLabel\";\nimport StepContent from \"@mui/material/StepContent\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport { Button } from \"../../atoms/Button\";\n\nexport interface StepItem {\n label: string;\n description?: string;\n content?: React.ReactNode;\n optional?: boolean;\n}\n\nexport interface StepperProps {\n steps: StepItem[];\n activeStep?: number;\n orientation?: \"horizontal\" | \"vertical\";\n alternativeLabel?: boolean;\n showNavigation?: boolean;\n onNext?: (nextStep: number) => void;\n onBack?: (prevStep: number) => void;\n onComplete?: () => void;\n}\n\nexport const Stepper = React.forwardRef<HTMLDivElement, StepperProps>(\n (\n {\n steps,\n activeStep = 0,\n orientation = \"horizontal\",\n alternativeLabel = false,\n showNavigation = true,\n onNext,\n onBack,\n onComplete,\n },\n ref\n ) => {\n const isLast = activeStep === steps.length - 1;\n const activeStepData = steps[activeStep];\n\n return (\n <Box ref={ref}>\n <MuiStepper\n activeStep={activeStep}\n orientation={orientation}\n alternativeLabel={alternativeLabel}\n >\n {steps.map((step, index) => (\n <Step key={index}>\n <StepLabel\n optional={\n step.optional ? (\n <Typography variant=\"caption\">Optional</Typography>\n ) : undefined\n }\n >\n {step.label}\n </StepLabel>\n {orientation === \"vertical\" && (\n <StepContent>\n {step.description && (\n <Typography variant=\"body2\" color=\"text.secondary\" sx={{ mb: 1 }}>\n {step.description}\n </Typography>\n )}\n {step.content}\n </StepContent>\n )}\n </Step>\n ))}\n </MuiStepper>\n\n {orientation === \"horizontal\" && activeStepData && (\n <Box sx={{ mt: 2 }}>\n {activeStepData.description && (\n <Typography variant=\"body2\" color=\"text.secondary\">\n {activeStepData.description}\n </Typography>\n )}\n {activeStepData.content && <Box sx={{ mt: 1 }}>{activeStepData.content}</Box>}\n </Box>\n )}\n\n {showNavigation && (\n <Box sx={{ display: \"flex\", gap: 1, mt: 2 }}>\n <Button\n variant=\"outlined\"\n disabled={activeStep === 0}\n onClick={() => onBack?.(activeStep - 1)}\n >\n Back\n </Button>\n {isLast ? (\n <Button variant=\"contained\" onClick={() => onComplete?.()}>\n Finish\n </Button>\n ) : (\n <Button variant=\"contained\" onClick={() => onNext?.(activeStep + 1)}>\n Next\n </Button>\n )}\n </Box>\n )}\n </Box>\n );\n }\n);\n\nStepper.displayName = \"Stepper\";\n","import type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport const textFieldSx: SxProps<Theme> = {\n \"& .MuiInputBase-input\": {\n fontSize: \"14px\",\n lineHeight: \"20px\",\n cursor: \"pointer\",\n },\n \"& .MuiInputAdornment-root .MuiSvgIcon-root\": {\n color: \"#9CA3AF\",\n fontSize: \"20px\",\n },\n};\n\nexport const popoverContentSx: SxProps<Theme> = {\n userSelect: \"none\",\n p: \"32px\",\n gap: \"48px\",\n borderRadius: \"16px\",\n backgroundColor: \"#FFFFFF\",\n position: \"relative\",\n};\n\nexport const popoverPaperSx: SxProps<Theme> = {\n borderRadius: \"16px\",\n border: \"1px solid #E5E7EB\",\n boxShadow: \"0px 24px 48px rgba(17, 24, 39, 0.10)\",\n overflow: \"visible\",\n};\n\nexport const monthContainerSx: SxProps<Theme> = {\n minWidth: \"300px\",\n flex: \"1 1 0\",\n};\n\nexport const monthTitleSx: SxProps<Theme> = {\n height: \"40px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n marginBottom: \"24px\",\n fontWeight: 500,\n color: \"#111827\",\n letterSpacing: \"-0.01em\",\n};\n\nexport const weekHeaderRowSx: SxProps<Theme> = {\n display: \"grid\",\n gridTemplateColumns: \"repeat(7, minmax(0, 1fr))\",\n gap: 0,\n};\n\nexport const weekHeaderCellSx: SxProps<Theme> = {\n height: \"48px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontSize: \"14px\",\n lineHeight: \"20px\",\n fontWeight: 500,\n color: \"#6B7280\",\n};\n\nexport const daysGridSx: SxProps<Theme> = {\n display: \"grid\",\n gridTemplateColumns: \"repeat(7, minmax(0, 1fr))\",\n columnGap: 0,\n rowGap: \"2px\",\n};\n\nexport const navButtonSx = (side: \"left\" | \"right\"): SxProps<Theme> => ({\n position: \"absolute\",\n top: 0,\n [side]: 0,\n width: \"40px\",\n height: \"40px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: \"999px\",\n color: \"#4B5563\",\n cursor: \"pointer\",\n transition: \"all 0.2s ease\",\n \"&:hover\": {\n backgroundColor: \"#F3F4F6\",\n color: \"#111827\",\n },\n});\n","import React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport MuiIconButton from \"@mui/material/IconButton\";\nimport Popover from \"@mui/material/Popover\";\nimport Typography from \"@mui/material/Typography\";\nimport CalendarMonthIcon from \"@mui/icons-material/CalendarMonth\";\nimport { Controller } from \"react-hook-form\";\nimport type { Control, FieldValues, Path } from \"react-hook-form\";\nimport { TextField } from \"../../atoms/TextField\";\nimport * as styles from \"./styles\";\n\n// ─── Internal date utilities (no external dependency) ─────────────────────────\n\nfunction getDaysInMonth(date: Date): number {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate();\n}\n\nfunction startOfMonth(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth(), 1);\n}\n\nfunction addMonths(date: Date, amount: number): Date {\n const result = new Date(date);\n result.setMonth(result.getMonth() + amount);\n return result;\n}\n\nfunction subMonths(date: Date, amount: number): Date {\n return addMonths(date, -amount);\n}\n\nfunction isSameDay(a: Date, b: Date): boolean {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n}\n\nfunction isAfterDate(date: Date, dateToCompare: Date): boolean {\n return date.getTime() > dateToCompare.getTime();\n}\n\nfunction isBeforeDate(date: Date, dateToCompare: Date): boolean {\n return date.getTime() < dateToCompare.getTime();\n}\n\nfunction differenceInCalendarDays(dateLeft: Date, dateRight: Date): number {\n const normalize = (d: Date) =>\n new Date(d.getFullYear(), d.getMonth(), d.getDate()).getTime();\n return Math.round((normalize(dateLeft) - normalize(dateRight)) / 86400000);\n}\n\nconst MONTH_NAMES = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nfunction formatDate(date: Date, fmt: \"MM/dd/yyyy\" | \"MMMM yyyy\"): string {\n if (fmt === \"MM/dd/yyyy\") {\n const mm = String(date.getMonth() + 1).padStart(2, \"0\");\n const dd = String(date.getDate()).padStart(2, \"0\");\n return `${mm}/${dd}/${date.getFullYear()}`;\n }\n return `${MONTH_NAMES[date.getMonth()]} ${date.getFullYear()}`;\n}\n\n// ─── Public types ──────────────────────────────────────────────────────────────\n\nexport type DatePickerMode = \"range\" | \"single\";\n\nexport interface DateRangeValue {\n startDate?: Date | null;\n endDate?: Date | null;\n}\n\nexport interface DatePickerFieldDef<T extends FieldValues> {\n name: Path<T>;\n control: Control<T>;\n label: string;\n required?: boolean;\n disabled?: boolean;\n}\n\n// Uncontrolled single-date picker\ninterface SingleProps {\n mode?: \"single\";\n label?: string;\n value?: Date | null;\n onChange?: (date: Date | null) => void;\n error?: boolean;\n helperText?: string;\n disabled?: boolean;\n}\n\n// Uncontrolled range picker\ninterface RangeProps {\n mode: \"range\";\n label?: string;\n value?: DateRangeValue;\n onChange?: (range: DateRangeValue) => void;\n error?: boolean;\n helperText?: string;\n disabled?: boolean;\n maxRangeDays?: number;\n}\n\n// Controlled single-date picker (react-hook-form)\ninterface ControlledSingleProps<T extends FieldValues> {\n mode?: \"single\";\n dateField: DatePickerFieldDef<T>;\n disabled?: boolean;\n}\n\n// Controlled range picker (react-hook-form)\ninterface ControlledRangeProps<T extends FieldValues> {\n mode: \"range\";\n startDateField: DatePickerFieldDef<T>;\n endDateField: DatePickerFieldDef<T>;\n disabled?: boolean;\n maxRangeDays?: number;\n}\n\nexport type DatePickerProps<T extends FieldValues = FieldValues> =\n | SingleProps\n | RangeProps\n | ControlledSingleProps<T>\n | ControlledRangeProps<T>;\n\n// ─── Shared day cell renderer ─────────────────────────────────────────────────\n\ninterface DayCellProps {\n day: number;\n date: Date;\n isSelected: boolean;\n inRange: boolean;\n rangeBorderRadius: string;\n disabled: boolean;\n onClick: () => void;\n onMouseEnter?: () => void;\n onMouseLeave?: () => void;\n}\n\nfunction DayCell({\n day,\n isSelected,\n inRange,\n rangeBorderRadius,\n disabled,\n onClick,\n onMouseEnter,\n onMouseLeave,\n}: DayCellProps) {\n return (\n <Box\n component=\"button\"\n type=\"button\"\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n disabled={disabled}\n sx={{\n height: \"48px\",\n position: \"relative\",\n border: \"none\",\n padding: 0,\n margin: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: \"transparent\",\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n opacity: disabled ? 0.35 : 1,\n }}\n >\n {inRange && (\n <Box\n sx={{\n position: \"absolute\",\n inset: 0,\n backgroundColor: \"#DBEAFE\",\n borderRadius: rangeBorderRadius || 0,\n }}\n />\n )}\n <Box\n component=\"span\"\n sx={{\n position: \"relative\",\n zIndex: 1,\n width: \"40px\",\n height: \"40px\",\n borderRadius: \"999px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n color: isSelected ? \"#FFFFFF\" : \"#374151\",\n backgroundColor: isSelected ? \"#2563EB\" : \"transparent\",\n fontSize: \"16px\",\n fontWeight: isSelected ? 500 : 400,\n transition: \"all 0.2s ease\",\n boxShadow: isSelected ? \"0px 8px 16px rgba(37, 99, 235, 0.3)\" : \"none\",\n \"&:hover\":\n !isSelected && !disabled ? { backgroundColor: \"#EFF6FF\" } : undefined,\n }}\n >\n {day}\n </Box>\n </Box>\n );\n}\n\n// ─── Nav chevron SVGs ─────────────────────────────────────────────────────────\n\nconst ChevronLeft = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M12.5 15L7.5 10L12.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nconst ChevronRight = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M7.5 15L12.5 10L7.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\n// ─── Single-date picker UI ────────────────────────────────────────────────────\n\nfunction SingleDatePickerUI(props: SingleProps) {\n const [anchorEl, setAnchorEl] = React.useState<HTMLElement | null>(null);\n const [currentMonth, setCurrentMonth] = React.useState<Date>(new Date());\n const triggerRef = React.useRef<HTMLDivElement>(null);\n\n const open = Boolean(anchorEl);\n const selected = props.value ?? null;\n\n const openPicker = () => {\n if (props.disabled || !triggerRef.current) return;\n setAnchorEl(triggerRef.current);\n };\n\n const closePicker = () => setAnchorEl(null);\n\n const handleDayClick = (date: Date) => {\n if (selected && isSameDay(date, selected)) {\n props.onChange?.(null);\n } else {\n props.onChange?.(date);\n }\n closePicker();\n };\n\n const renderMonth = () => {\n const firstDay = startOfMonth(currentMonth);\n const monthName = formatDate(currentMonth, \"MMMM yyyy\");\n const daysInMonth = getDaysInMonth(currentMonth);\n const startingDayOfWeek = firstDay.getDay();\n const dayCells: React.ReactNode[] = [];\n\n for (let i = 0; i < startingDayOfWeek; i++) {\n dayCells.push(<Box key={`empty-${i}`} sx={{ height: \"48px\" }} />);\n }\n\n for (let day = 1; day <= daysInMonth; day++) {\n const date = new Date(currentMonth.getFullYear(), currentMonth.getMonth(), day);\n const isSelected = !!selected && isSameDay(date, selected);\n\n dayCells.push(\n <DayCell\n key={day}\n day={day}\n date={date}\n isSelected={isSelected}\n inRange={false}\n rangeBorderRadius=\"\"\n disabled={!!props.disabled}\n onClick={() => handleDayClick(date)}\n />\n );\n }\n\n return (\n <Box sx={styles.monthContainerSx}>\n <Typography sx={styles.monthTitleSx}>{monthName}</Typography>\n <Box sx={styles.weekHeaderRowSx}>\n {[\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"].map((d, i) => (\n <Box key={i} sx={styles.weekHeaderCellSx}>\n {d}\n </Box>\n ))}\n </Box>\n <Box sx={styles.daysGridSx}>{dayCells}</Box>\n </Box>\n );\n };\n\n const displayValue = selected ? formatDate(selected, \"MM/dd/yyyy\") : \"\";\n\n return (\n <Box>\n <Box ref={triggerRef} onClick={openPicker} sx={{ cursor: \"pointer\" }}>\n <TextField\n fullWidth\n label={props.label}\n value={displayValue}\n placeholder=\"Select date\"\n variant=\"outlined\"\n sx={styles.textFieldSx}\n disabled={props.disabled}\n error={props.error}\n slotProps={{\n htmlInput: {\n readOnly: true,\n style: {\n cursor: props.disabled ? \"not-allowed\" : \"pointer\",\n pointerEvents: \"none\",\n },\n },\n }}\n endAdornment={<CalendarMonthIcon fontSize=\"small\" />}\n />\n </Box>\n\n <Popover\n open={open}\n anchorEl={anchorEl}\n onClose={closePicker}\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"left\" }}\n transformOrigin={{ vertical: \"top\", horizontal: \"left\" }}\n slotProps={{\n paper: {\n sx: {\n ...styles.popoverPaperSx,\n width: \"360px\",\n maxWidth: \"calc(100vw - 32px)\",\n mt: 1.5,\n },\n },\n }}\n >\n <Box sx={styles.popoverContentSx}>\n <MuiIconButton\n onClick={() => setCurrentMonth(subMonths(currentMonth, 1))}\n sx={styles.navButtonSx(\"left\")}\n aria-label=\"Previous month\"\n >\n <ChevronLeft />\n </MuiIconButton>\n\n {renderMonth()}\n\n <MuiIconButton\n onClick={() => setCurrentMonth(addMonths(currentMonth, 1))}\n sx={styles.navButtonSx(\"right\")}\n aria-label=\"Next month\"\n >\n <ChevronRight />\n </MuiIconButton>\n </Box>\n </Popover>\n\n {props.error && props.helperText && (\n <Typography color=\"error\" variant=\"caption\">\n {props.helperText}\n </Typography>\n )}\n </Box>\n );\n}\n\n// ─── Range date picker UI ─────────────────────────────────────────────────────\n\nfunction RangeDatePickerUI(props: RangeProps) {\n const [anchorEl, setAnchorEl] = React.useState<HTMLElement | null>(null);\n const [hoverDate, setHoverDate] = React.useState<Date | null>(null);\n const [currentMonth, setCurrentMonth] = React.useState<Date>(new Date());\n const triggerRef = React.useRef<HTMLDivElement>(null);\n\n const open = Boolean(anchorEl);\n const start = props.value?.startDate ?? null;\n const end = props.value?.endDate ?? null;\n\n const isDateDisabled = (day: Date): boolean => {\n if (props.disabled) return true;\n if (!props.maxRangeDays) return false;\n if (!start || end) return false;\n return Math.abs(differenceInCalendarDays(day, start)) > props.maxRangeDays - 1;\n };\n\n const openPicker = () => {\n if (props.disabled || !triggerRef.current) return;\n setAnchorEl(triggerRef.current);\n };\n\n const closePicker = () => {\n setAnchorEl(null);\n setHoverDate(null);\n };\n\n const handleDayClick = (day: Date) => {\n if (isDateDisabled(day)) return;\n\n let newStart = start;\n let newEnd = end;\n\n if (!start || (start && end)) {\n newStart = day;\n newEnd = null;\n } else {\n if (isBeforeDate(day, start)) {\n newStart = day;\n newEnd = start;\n } else {\n newEnd = day;\n }\n }\n\n if (start && !end && isSameDay(day, start)) {\n props.onChange?.({ startDate: null, endDate: null });\n return;\n }\n\n if (newStart && newEnd) closePicker();\n\n props.onChange?.({ startDate: newStart, endDate: newEnd });\n };\n\n const getActiveRangeEnd = () => {\n if (end) return end;\n if (start && hoverDate) return hoverDate;\n return null;\n };\n\n const isDateInRange = (day: Date): boolean => {\n if (!start) return false;\n const activeEnd = getActiveRangeEnd();\n if (!activeEnd) return false;\n\n if (isBeforeDate(activeEnd, start)) {\n return (\n (isAfterDate(day, activeEnd) || isSameDay(day, activeEnd)) &&\n (isBeforeDate(day, start) || isSameDay(day, start))\n );\n }\n return (\n (isAfterDate(day, start) || isSameDay(day, start)) &&\n (isBeforeDate(day, activeEnd) || isSameDay(day, activeEnd))\n );\n };\n\n const isDateSelected = (day: Date): boolean =>\n (!!start && isSameDay(day, start)) || (!!end && isSameDay(day, end));\n\n const renderMonth = (monthOffset: number) => {\n const month = addMonths(currentMonth, monthOffset);\n const firstDay = startOfMonth(month);\n const monthName = formatDate(month, \"MMMM yyyy\");\n const daysInMonth = getDaysInMonth(month);\n const startingDayOfWeek = firstDay.getDay();\n const dayCells: React.ReactNode[] = [];\n\n for (let i = 0; i < startingDayOfWeek; i++) {\n dayCells.push(<Box key={`empty-${monthOffset}-${i}`} sx={{ height: \"48px\" }} />);\n }\n\n for (let day = 1; day <= daysInMonth; day++) {\n const date = new Date(month.getFullYear(), month.getMonth(), day);\n const disabled = isDateDisabled(date);\n const inRange = isDateInRange(date);\n const isSelected = isDateSelected(date);\n const isStart = !!start && isSameDay(date, start);\n const isEnd = !!end && isSameDay(date, end);\n const dayOfWeek = date.getDay();\n const isFirstDayOfMonth = day === 1;\n const isLastDayOfMonth = day === daysInMonth;\n const isStartOfWeek = dayOfWeek === 0;\n const isEndOfWeek = dayOfWeek === 6;\n\n let borderRadius = \"\";\n if (inRange) {\n const roundLeft = (isStartOfWeek && !isFirstDayOfMonth) || isStart;\n const roundRight = (isEndOfWeek && !isLastDayOfMonth) || isEnd;\n if (roundLeft && roundRight) borderRadius = \"999px\";\n else if (roundLeft) borderRadius = \"999px 0 0 999px\";\n else if (roundRight) borderRadius = \"0 999px 999px 0\";\n }\n\n dayCells.push(\n <DayCell\n key={`${monthOffset}-${day}`}\n day={day}\n date={date}\n isSelected={isSelected}\n inRange={inRange}\n rangeBorderRadius={borderRadius}\n disabled={disabled}\n onClick={() => handleDayClick(date)}\n onMouseEnter={() => {\n if (!disabled && start && !end) setHoverDate(date);\n }}\n onMouseLeave={() => {\n if (!end) setHoverDate(null);\n }}\n />\n );\n }\n\n return (\n <Box sx={styles.monthContainerSx}>\n <Typography sx={styles.monthTitleSx}>{monthName}</Typography>\n <Box sx={styles.weekHeaderRowSx}>\n {[\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"].map((weekday, index) => (\n <Box key={`${weekday}-${index}`} sx={styles.weekHeaderCellSx}>\n {weekday}\n </Box>\n ))}\n </Box>\n <Box sx={styles.daysGridSx}>{dayCells}</Box>\n </Box>\n );\n };\n\n const formatRange = () => {\n if (start && end) {\n return `${formatDate(start, \"MM/dd/yyyy\")} - ${formatDate(end, \"MM/dd/yyyy\")}`;\n }\n if (start) return `${formatDate(start, \"MM/dd/yyyy\")} -`;\n return \"\";\n };\n\n return (\n <Box>\n <Box ref={triggerRef} onClick={openPicker} sx={{ cursor: \"pointer\" }}>\n <TextField\n fullWidth\n label={props.label}\n value={formatRange()}\n placeholder=\"Select date range\"\n variant=\"outlined\"\n sx={styles.textFieldSx}\n disabled={props.disabled}\n error={props.error}\n slotProps={{\n htmlInput: {\n readOnly: true,\n style: {\n cursor: props.disabled ? \"not-allowed\" : \"pointer\",\n pointerEvents: \"none\",\n },\n },\n }}\n endAdornment={<CalendarMonthIcon fontSize=\"small\" />}\n />\n </Box>\n\n <Popover\n open={open}\n anchorEl={anchorEl}\n onClose={closePicker}\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"left\" }}\n transformOrigin={{ vertical: \"top\", horizontal: \"left\" }}\n slotProps={{\n paper: {\n sx: {\n ...styles.popoverPaperSx,\n width: \"720px\",\n maxWidth: \"calc(100vw - 32px)\",\n mt: 1.5,\n },\n },\n }}\n >\n <Box sx={styles.popoverContentSx}>\n <MuiIconButton\n onClick={() => setCurrentMonth(subMonths(currentMonth, 1))}\n sx={styles.navButtonSx(\"left\")}\n aria-label=\"Previous month\"\n >\n <ChevronLeft />\n </MuiIconButton>\n\n <Box display=\"flex\" gap=\"48px\">\n {renderMonth(0)}\n {renderMonth(1)}\n </Box>\n\n <MuiIconButton\n onClick={() => setCurrentMonth(addMonths(currentMonth, 1))}\n sx={styles.navButtonSx(\"right\")}\n aria-label=\"Next month\"\n >\n <ChevronRight />\n </MuiIconButton>\n </Box>\n </Popover>\n\n {props.error && props.helperText && (\n <Typography color=\"error\" variant=\"caption\">\n {props.helperText}\n </Typography>\n )}\n </Box>\n );\n}\n\n// ─── Main exported component ──────────────────────────────────────────────────\n\nexport function DatePicker<T extends FieldValues = FieldValues>(\n props: DatePickerProps<T>\n) {\n const mode = props.mode ?? \"single\";\n\n if (mode === \"range\") {\n if (\"startDateField\" in props && props.startDateField) {\n const { startDateField, endDateField, disabled, maxRangeDays } =\n props as ControlledRangeProps<T>;\n\n return (\n <Controller\n name={startDateField.name}\n control={startDateField.control}\n render={({ field: startF, fieldState: startState }) => (\n <Controller\n name={endDateField.name}\n control={endDateField.control}\n render={({ field: endF, fieldState: endState }) => {\n const value: DateRangeValue = {\n startDate: startF.value ? new Date(startF.value) : null,\n endDate: endF.value ? new Date(endF.value) : null,\n };\n const handleChange = (newValue: DateRangeValue) => {\n startF.onChange(newValue.startDate);\n endF.onChange(newValue.endDate);\n };\n return (\n <RangeDatePickerUI\n mode=\"range\"\n label={startDateField.label}\n value={value}\n onChange={handleChange}\n error={!!startState.error || !!endState.error}\n helperText={startState.error?.message ?? endState.error?.message}\n disabled={disabled ?? startDateField.disabled}\n maxRangeDays={maxRangeDays}\n />\n );\n }}\n />\n )}\n />\n );\n }\n\n return <RangeDatePickerUI {...(props as RangeProps)} />;\n }\n\n // Single mode\n if (\"dateField\" in props && props.dateField) {\n const { dateField, disabled } = props as ControlledSingleProps<T>;\n\n return (\n <Controller\n name={dateField.name}\n control={dateField.control}\n render={({ field, fieldState }) => (\n <SingleDatePickerUI\n label={dateField.label}\n value={field.value ? new Date(field.value) : null}\n onChange={(date) => field.onChange(date)}\n error={!!fieldState.error}\n helperText={fieldState.error?.message}\n disabled={disabled ?? dateField.disabled}\n />\n )}\n />\n );\n }\n\n return <SingleDatePickerUI {...(props as SingleProps)} />;\n}\n\nDatePicker.displayName = \"DatePicker\";\n","import React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Paper from \"@mui/material/Paper\";\nimport Typography from \"@mui/material/Typography\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport interface AuthLayoutProps {\n /** Content rendered over the left hero panel (logo, headline, feature list, etc.) */\n backgroundContent?: React.ReactNode;\n /** Cover image URL for the left panel */\n backgroundImage?: string;\n /** Logo rendered above the title in the form panel */\n logo?: React.ReactNode;\n /** Form panel heading */\n title?: string;\n /** Form panel sub-heading */\n subtitle?: string;\n /** Form fields and controls */\n children: React.ReactNode;\n /** Small note pinned below the form (legal copy, SSO notice, etc.) */\n footer?: React.ReactNode;\n /** Max-width of the inner form column. Defaults to 440. */\n maxWidth?: number | string;\n sx?: SxProps<Theme>;\n}\n\nexport const AuthLayout: React.FC<AuthLayoutProps> = ({\n backgroundContent,\n backgroundImage,\n logo,\n title,\n subtitle,\n children,\n footer,\n maxWidth = 440,\n sx,\n}) => {\n const hasLeft = !!(backgroundImage || backgroundContent);\n\n return (\n <Box\n sx={{\n minHeight: \"100vh\",\n display: \"flex\",\n fontFamily: \"Roboto, sans-serif\",\n ...sx,\n }}\n >\n {hasLeft && (\n <Box\n sx={{\n flex: 1,\n position: \"relative\",\n overflow: \"hidden\",\n display: { xs: \"none\", md: \"flex\" },\n alignItems: \"center\",\n px: \"80px\",\n py: \"24px\",\n color: \"#fff\",\n }}\n >\n {backgroundImage && (\n <Box\n component=\"img\"\n src={backgroundImage}\n alt=\"\"\n sx={{\n position: \"absolute\",\n inset: 0,\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n }}\n />\n )}\n <Box\n sx={{\n position: \"absolute\",\n inset: 0,\n background:\n \"linear-gradient(135deg, rgba(21,35,86,.72), rgba(22,73,223,.55))\",\n }}\n />\n {backgroundContent && (\n <Box\n sx={{\n position: \"relative\",\n zIndex: 1,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 3,\n alignItems: \"flex-start\",\n }}\n >\n {backgroundContent}\n </Box>\n )}\n </Box>\n )}\n\n <Box\n sx={{\n flex: 1,\n bgcolor: \"#fff\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n px: \"10%\",\n py: \"80px\",\n overflowY: \"auto\",\n }}\n >\n <Paper\n elevation={0}\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n gap: 3,\n maxWidth,\n width: \"100%\",\n mx: \"auto\",\n bgcolor: \"transparent\",\n }}\n >\n {(logo || title || subtitle) && (\n <Box>\n {logo}\n {title && (\n <Typography\n component=\"h2\"\n sx={{\n m: 0,\n fontSize: \"2rem\",\n fontWeight: 400,\n lineHeight: 1.2,\n letterSpacing: \"-0.3px\",\n color: \"rgba(21,35,86,.92)\",\n }}\n >\n {title}\n </Typography>\n )}\n {subtitle && (\n <Typography\n sx={{\n mt: 0.75,\n fontSize: \"0.9375rem\",\n lineHeight: 1.6,\n color: \"rgba(15,23,56,.6)\",\n }}\n >\n {subtitle}\n </Typography>\n )}\n </Box>\n )}\n\n {children}\n\n {footer && (\n <Box\n sx={{\n fontSize: \"0.75rem\",\n lineHeight: 1.5,\n color: \"rgba(15,23,56,.5)\",\n textAlign: \"center\",\n mt: 0.5,\n }}\n >\n {footer}\n </Box>\n )}\n </Paper>\n </Box>\n </Box>\n );\n};\n","import React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\n\nexport interface AuthLayoutHeroContentProps {\n /** Logo rendered at the top of the hero panel */\n logo?: React.ReactNode;\n /** Text before the highlighted word in the heading */\n headingStart?: string;\n /** Highlighted word rendered in accent color */\n headingHighlight?: string;\n /** Text after the highlighted word in the heading */\n headingEnd?: string;\n /** Supporting description below the heading */\n description?: string;\n /** Small copyright/legal line at the bottom */\n copyright?: string;\n}\n\nexport const AuthLayoutHeroContent: React.FC<AuthLayoutHeroContentProps> = ({\n logo,\n headingStart,\n headingHighlight,\n headingEnd,\n description,\n copyright,\n}) => (\n <>\n {logo}\n {(headingStart || headingHighlight || headingEnd) && (\n <Typography\n component=\"h1\"\n sx={{\n m: 0,\n fontSize: \"2.75rem\",\n fontWeight: 300,\n lineHeight: 1.15,\n letterSpacing: \"-0.8px\",\n color: \"#fff\",\n }}\n >\n {headingStart}{\" \"}\n {headingHighlight && (\n <Box component=\"strong\" sx={{ fontWeight: 600, color: \"#00F0FF\" }}>\n {headingHighlight}\n </Box>\n )}{\" \"}\n {headingEnd}\n </Typography>\n )}\n {description && (\n <Typography\n sx={{\n m: 0,\n fontSize: \"1rem\",\n lineHeight: 1.6,\n color: \"rgba(255,255,255,.85)\",\n }}\n >\n {description}\n </Typography>\n )}\n {copyright && (\n <Typography sx={{ fontSize: \"0.75rem\", color: \"rgba(255,255,255,.6)\" }}>\n {copyright}\n </Typography>\n )}\n </>\n);\n\nAuthLayoutHeroContent.displayName = \"AuthLayoutHeroContent\";\n","import React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport interface DashboardLayoutProps {\n sidebar?: React.ReactNode;\n appBar?: React.ReactNode;\n children: React.ReactNode;\n sidebarWidth?: number;\n contentMaxWidth?: number | string;\n sx?: SxProps<Theme>;\n}\n\nexport const DashboardLayout: React.FC<DashboardLayoutProps> = ({\n sidebar,\n appBar,\n children,\n sidebarWidth = 264,\n contentMaxWidth,\n sx,\n}) => {\n return (\n <Box\n sx={{\n display: \"flex\",\n minHeight: \"100vh\",\n bgcolor: \"grey.50\",\n ...sx,\n }}\n >\n {sidebar && (\n <Box\n component=\"nav\"\n sx={{\n width: sidebarWidth,\n flexShrink: 0,\n }}\n >\n {sidebar}\n </Box>\n )}\n\n <Box\n sx={{\n flex: 1,\n display: \"flex\",\n flexDirection: \"column\",\n minWidth: 0,\n overflow: \"hidden\",\n }}\n >\n {appBar && <Box component=\"header\">{appBar}</Box>}\n\n <Box\n component=\"main\"\n sx={{\n flex: 1,\n p: 3,\n overflowY: \"auto\",\n }}\n >\n <Box\n sx={{\n maxWidth: contentMaxWidth,\n mx: contentMaxWidth ? \"auto\" : undefined,\n height: \"100%\",\n }}\n >\n {children}\n </Box>\n </Box>\n </Box>\n </Box>\n );\n};\n","import React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Paper from \"@mui/material/Paper\";\nimport SaveIcon from \"@mui/icons-material/Save\";\nimport DragIndicatorIcon from \"@mui/icons-material/DragIndicator\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\nimport { Button } from \"../../atoms/Button\";\nimport { DashboardLayout } from \"../DashboardLayout\";\n\n// ─── Field types ─────────────────────────────────────────────────────────────\n\nexport interface DocumentEditorField {\n id: string;\n label: string;\n key: string;\n type: string;\n source: string;\n}\n\n// ─── Sub-components (also exported for use inside document content) ───────────\n\nexport interface FieldTokenProps {\n icon?: React.ReactNode;\n label: string;\n}\n\nexport const FieldToken: React.FC<FieldTokenProps> = ({ icon, label }) => (\n <Box\n component=\"span\"\n contentEditable={false}\n sx={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"4px\",\n background: \"rgba(31,95,242,.1)\",\n color: \"#1F5FF2\",\n px: \"8px\",\n py: \"2px\",\n borderRadius: \"6px\",\n fontWeight: 500,\n fontSize: \"13px\",\n border: \"1px dashed rgba(31,95,242,.3)\",\n verticalAlign: \"middle\",\n userSelect: \"none\",\n \"& .MuiSvgIcon-root\": { fontSize: \"14px\" },\n }}\n >\n {icon}\n {label}\n </Box>\n);\n\nexport interface TypeChipProps {\n type: string;\n source: string;\n}\n\nexport const TypeChip: React.FC<TypeChipProps> = ({ source, type }) => (\n <Box\n component=\"span\"\n sx={{\n display: \"inline-flex\",\n alignItems: \"center\",\n px: \"12px\",\n py: \"3px\",\n borderRadius: \"100px\",\n fontSize: \"12px\",\n fontWeight: 500,\n lineHeight: \"1.4\",\n border: \"1px solid transparent\",\n ...(source === \"system\"\n ? { background: \"#E0F7FA\", color: \"#03859B\", borderColor: \"#B2EBF2\" }\n : { background: \"#FFF8E1\", color: \"#EF6C00\", borderColor: \"#FFE082\" }),\n }}\n >\n {type}\n </Box>\n);\n\nconst editableFocus = {\n \"&:focus\": {\n outline: \"2px solid rgba(31,95,242,.18)\",\n borderRadius: \"4px\",\n outlineOffset: \"3px\",\n },\n};\n\nexport interface DocSectionHeadingProps {\n children: React.ReactNode;\n sx?: SxProps<Theme>;\n}\n\nexport const DocSectionHeading: React.FC<DocSectionHeadingProps> = ({ children, sx }) => (\n <Box\n component=\"h2\"\n contentEditable\n suppressContentEditableWarning\n sx={{\n fontFamily: \"'Roboto', sans-serif\",\n fontSize: \"16px\",\n fontWeight: 600,\n lineHeight: 1.4,\n color: \"rgba(21,35,86,1)\",\n m: 0,\n mt: \"24px\",\n mb: \"12px\",\n textTransform: \"uppercase\",\n letterSpacing: \".5px\",\n outline: \"none\",\n cursor: \"text\",\n ...editableFocus,\n ...sx,\n }}\n >\n {children}\n </Box>\n);\n\nexport interface DocParagraphProps {\n children: React.ReactNode;\n sx?: SxProps<Theme>;\n}\n\nexport const DocParagraph: React.FC<DocParagraphProps> = ({ children, sx }) => (\n <Box\n component=\"p\"\n contentEditable\n suppressContentEditableWarning\n sx={{\n m: 0,\n mb: \"12px\",\n lineHeight: 1.7,\n outline: \"none\",\n cursor: \"text\",\n ...editableFocus,\n ...sx,\n }}\n >\n {children}\n </Box>\n);\n\n// ─── Main component ───────────────────────────────────────────────────────────\n\nexport interface DocumentEditorProps {\n /** Document title shown in the page header and passed as editable h1 inside the canvas */\n title: string;\n /** Optional badge rendered after the title (e.g. version / draft indicator) */\n versionBadge?: React.ReactNode;\n /** Parent label shown in the breadcrumb */\n breadcrumbParent?: string;\n /** Subtitle rendered below the title in the page header */\n subtitle?: string;\n /** Fields listed in the left-hand Field Registry panel */\n fields?: DocumentEditorField[];\n /** Label for the registry panel */\n registryTitle?: string;\n /** Subtext below the registry label */\n registrySubtitle?: string;\n /** Document canvas content — use DocParagraph / DocSectionHeading / FieldToken */\n children: React.ReactNode;\n /** Called when \"Preview\" is clicked */\n onPreview?: () => void;\n /** Called when \"Save version\" is clicked */\n onSave?: () => void;\n /** Sidebar node passed to DashboardLayout */\n sidebar?: React.ReactNode;\n /** Sidebar width in px (must match the sidebar component's own width prop) */\n sidebarWidth?: number;\n /** AppBar node passed to DashboardLayout */\n appBar?: React.ReactNode;\n /** sx overrides for the outer wrapper Box */\n sx?: SxProps<Theme>;\n}\n\nexport const DocumentEditor: React.FC<DocumentEditorProps> = ({\n title,\n versionBadge,\n breadcrumbParent = \"Documents\",\n subtitle = \"Insert fields from the registry by dragging them into the document.\",\n fields = [],\n registryTitle = \"Field Registry\",\n registrySubtitle = \"Drag to insert\",\n children,\n onPreview,\n onSave,\n sidebar,\n sidebarWidth = 250,\n appBar,\n sx,\n}) => (\n <DashboardLayout sidebar={sidebar} sidebarWidth={sidebarWidth} appBar={appBar}>\n <Box sx={{ m: -3, p: 4, ...sx }}>\n {/* Page header */}\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"flex-start\",\n gap: 3,\n mb: 3,\n flexWrap: \"wrap\",\n }}\n >\n <Box>\n <Box\n sx={{\n fontSize: \"12px\",\n color: \"rgba(21,35,86,.6)\",\n mb: \"4px\",\n display: \"flex\",\n gap: \"6px\",\n alignItems: \"center\",\n }}\n >\n <Box component=\"span\" sx={{ color: \"#1F5FF2\", cursor: \"pointer\" }}>\n {breadcrumbParent}\n </Box>\n <Box component=\"span\">/</Box>\n <Box component=\"span\">{title}</Box>\n </Box>\n <Box\n component=\"h1\"\n sx={{\n fontFamily: \"'Roboto', sans-serif\",\n fontSize: \"28px\",\n fontWeight: 400,\n lineHeight: 1.2,\n color: \"rgba(21,35,86,1)\",\n m: 0,\n mb: \"6px\",\n letterSpacing: \"-0.2px\",\n }}\n >\n {title}\n {versionBadge}\n </Box>\n <Box\n component=\"p\"\n sx={{ fontSize: \"14px\", color: \"rgba(21,35,86,.6)\", m: 0, maxWidth: 560 }}\n >\n {subtitle}\n </Box>\n </Box>\n\n <Box sx={{ display: \"flex\", gap: \"10px\" }}>\n <Button variant=\"outlined\" onClick={onPreview}>\n Preview\n </Button>\n <Button variant=\"contained\" startIcon={<SaveIcon />} onClick={onSave}>\n Save version\n </Button>\n </Box>\n </Box>\n\n {/* Editor grid */}\n <Box\n sx={{\n display: \"grid\",\n gridTemplateColumns: \"300px 1fr\",\n gap: 3,\n alignItems: \"start\",\n }}\n >\n {/* Field registry */}\n {fields.length > 0 && (\n <Paper\n sx={{ bgcolor: \"#fff\", borderRadius: 4, boxShadow: 1, overflow: \"hidden\" }}\n >\n <Box sx={{ px: 3, pt: \"20px\", pb: \"12px\" }}>\n <Box\n sx={{\n fontSize: \"18px\",\n fontWeight: 500,\n lineHeight: 1.4,\n color: \"rgba(21,35,86,.87)\",\n }}\n >\n {registryTitle}\n </Box>\n <Box sx={{ fontSize: \"13px\", color: \"rgba(21,35,86,.6)\", mt: \"4px\" }}>\n {registrySubtitle}\n </Box>\n </Box>\n <Box sx={{ px: 3, pb: 3, display: \"flex\", flexDirection: \"column\", gap: 1 }}>\n {fields.map((f) => (\n <Box\n key={f.id}\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"10px\",\n p: \"10px 12px\",\n border: \"1px solid rgba(21,35,86,.12)\",\n borderRadius: \"10px\",\n bgcolor: \"#fff\",\n cursor: \"grab\",\n transition: \"all .15s\",\n \"&:hover\": {\n borderColor: \"#1F5FF2\",\n boxShadow: \"0 0 0 2px rgba(31,95,242,.08)\",\n },\n }}\n >\n <DragIndicatorIcon\n sx={{ fontSize: 18, color: \"rgba(21,35,86,.4)\", flexShrink: 0 }}\n />\n <Box sx={{ flex: 1, minWidth: 0 }}>\n <Box\n sx={{\n fontSize: \"13px\",\n fontWeight: 500,\n color: \"rgba(21,35,86,.87)\",\n }}\n >\n {f.label}\n </Box>\n <Box\n sx={{\n fontSize: \"11px\",\n lineHeight: 1,\n color: \"rgba(21,35,86,.6)\",\n fontFamily: \"monospace\",\n mt: \"2px\",\n }}\n >\n {f.key}\n </Box>\n </Box>\n <TypeChip source={f.source} type={f.type} />\n </Box>\n ))}\n </Box>\n </Paper>\n )}\n\n {/* Document canvas */}\n <Paper\n sx={{\n bgcolor: \"#fff\",\n borderRadius: 4,\n boxShadow: 1,\n px: \"80px\",\n py: \"64px\",\n minHeight: 720,\n fontSize: \"14px\",\n lineHeight: 1.7,\n color: \"rgba(21,35,86,.87)\",\n }}\n >\n <Box\n component=\"h1\"\n contentEditable\n suppressContentEditableWarning\n sx={{\n fontFamily: \"'Roboto', sans-serif\",\n fontSize: \"26px\",\n fontWeight: 600,\n lineHeight: 1.3,\n color: \"rgba(21,35,86,1)\",\n m: 0,\n mb: \"24px\",\n textAlign: \"center\",\n outline: \"none\",\n cursor: \"text\",\n ...editableFocus,\n }}\n >\n {title}\n </Box>\n {children}\n </Paper>\n </Box>\n </Box>\n </DashboardLayout>\n);\n","import React, { useState } from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Button from \"@mui/material/Button\";\nimport FilterAltIcon from \"@mui/icons-material/FilterAlt\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\n\nexport interface FilterBarProps {\n /** Array of filter field elements — each becomes one grid cell. */\n filters: React.ReactNode[];\n /** Whether the filter panel is open (controlled mode). */\n open?: boolean;\n /** Initial open state in uncontrolled mode (default: false). */\n defaultOpen?: boolean;\n /** Called when the toggle button is clicked. */\n onOpenChange?: (open: boolean) => void;\n /** Called when the \"Clear\" button is clicked. Enables the Clear button. */\n onClearAll?: () => void;\n /** Show the Clear button. Defaults to true when onClearAll is provided. */\n showClearButton?: boolean;\n /** Max filter fields per row (default: 4). */\n maxPerRow?: number;\n /** Toggle button label when panel is hidden (default: \"Show Filters\"). */\n showLabel?: string;\n /** Toggle button label when panel is visible (default: \"Hide Filters\"). */\n hideLabel?: string;\n /** Optional content rendered to the left of the toggle button (e.g., a search bar). */\n toolbarStart?: React.ReactNode;\n /**\n * Renders filters inline in a single row alongside toolbarStart and a Clear button.\n * Hides the show/hide toggle button and the collapsible panel.\n */\n inline?: boolean;\n /** Sx props for the root container. */\n sx?: SxProps<Theme>;\n}\n\nexport const FilterBar = React.forwardRef<HTMLDivElement, FilterBarProps>(\n (\n {\n filters,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n onClearAll,\n showClearButton = true,\n maxPerRow = 4,\n showLabel = \"Show Filters\",\n hideLabel = \"Hide Filters\",\n toolbarStart,\n inline = false,\n sx,\n },\n ref\n ) => {\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n const isOpen = openProp !== undefined ? openProp : internalOpen;\n\n const handleToggle = () => {\n const next = !isOpen;\n if (openProp === undefined) setInternalOpen(next);\n onOpenChange?.(next);\n };\n\n const showClear = showClearButton && Boolean(onClearAll);\n\n if (inline) {\n return (\n <Box\n ref={ref}\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 2,\n flexWrap: \"nowrap\",\n ...sx,\n }}\n >\n {toolbarStart && <Box sx={{ flex: 1, minWidth: 0 }}>{toolbarStart}</Box>}\n {filters.map((filter, index) => (\n <Box key={index} sx={{ minWidth: \"160px\" }}>\n {filter}\n </Box>\n ))}\n {showClear && (\n <Button\n variant=\"outlined\"\n type=\"button\"\n onClick={onClearAll}\n sx={{ flexShrink: 0 }}\n >\n Clear\n </Button>\n )}\n </Box>\n );\n }\n\n // Split filters into rows of maxPerRow\n const rows: React.ReactNode[][] = [];\n for (let i = 0; i < filters.length; i += maxPerRow) {\n rows.push(filters.slice(i, i + maxPerRow));\n }\n\n return (\n <Box ref={ref} sx={sx}>\n {/* Toolbar: optional leading content + toggle button */}\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 2,\n }}\n >\n {toolbarStart && <Box sx={{ flex: 1, minWidth: 0 }}>{toolbarStart}</Box>}\n <Button\n variant=\"outlined\"\n startIcon={<FilterAltIcon />}\n onClick={handleToggle}\n sx={{ fontWeight: \"bold\", flexShrink: 0 }}\n >\n {isOpen ? hideLabel : showLabel}\n </Button>\n </Box>\n\n {/* Collapsible filter panel */}\n <Box\n sx={{\n transition:\n \"max-height 0.4s ease-in-out, padding 0.4s ease-in-out, opacity 0.3s ease-in-out\",\n overflow: \"hidden\",\n maxHeight: isOpen ? \"800px\" : \"0px\",\n opacity: isOpen ? 1 : 0,\n px: 1,\n py: isOpen ? 2 : 0,\n }}\n >\n <Box\n sx={{\n py: \"16px\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: 2,\n }}\n >\n {rows.map((row, rowIndex) => {\n const isLastRow = rowIndex === rows.length - 1;\n const shouldGrow = !isLastRow || row.length < maxPerRow;\n\n return (\n <Box\n key={rowIndex}\n sx={{\n display: \"flex\",\n flexWrap: \"nowrap\",\n justifyContent: isLastRow ? \"flex-start\" : \"space-between\",\n alignItems: \"flex-end\",\n width: \"100%\",\n }}\n >\n {row.map((item, itemIndex) => (\n <Box\n key={itemIndex}\n sx={{\n flexGrow: shouldGrow ? 1 : 0,\n minWidth: \"200px\",\n flexBasis: shouldGrow ? \"auto\" : \"200px\",\n mr: itemIndex !== row.length - 1 ? 2 : 0,\n }}\n >\n {item}\n </Box>\n ))}\n\n {/* Clear button: right-aligned on the last row */}\n {isLastRow && showClear && (\n <Box sx={{ flexShrink: 0, ml: \"auto\", pl: 2 }}>\n <Button variant=\"outlined\" type=\"button\" onClick={onClearAll}>\n Clear\n </Button>\n </Box>\n )}\n </Box>\n );\n })}\n </Box>\n </Box>\n </Box>\n );\n }\n);\n\nFilterBar.displayName = \"FilterBar\";\n"]}
|