@verma-consulting/design-library 0.1.42 → 0.1.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +0 -19
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +0 -19
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1411,20 +1411,12 @@ var SearchableSelect = import_react6.default.memo(
|
|
|
1411
1411
|
}
|
|
1412
1412
|
},
|
|
1413
1413
|
slotProps: {
|
|
1414
|
-
popper: {
|
|
1415
|
-
// Open above when there is more room above the field (Popper auto placement).
|
|
1416
|
-
placement: "auto"
|
|
1417
|
-
},
|
|
1418
1414
|
paper: {
|
|
1419
1415
|
sx: {
|
|
1420
1416
|
background: glassBackground,
|
|
1421
1417
|
backdropFilter: "blur(12px) saturate(150%)",
|
|
1422
1418
|
border: `1px solid ${(0, import_styles13.alpha)("#FFFFFF", theme.palette.mode === "dark" ? 0.16 : 0.55)}`,
|
|
1423
1419
|
boxShadow: theme.palette.mode === "dark" ? "rgba(0, 0, 0, 0.34) 0px 10px 26px" : "rgba(15, 23, 42, 0.16) 0px 8px 24px",
|
|
1424
|
-
overflow: "hidden",
|
|
1425
|
-
display: "flex",
|
|
1426
|
-
flexDirection: "column",
|
|
1427
|
-
maxHeight: "min(55vh, calc(100dvh - 96px))",
|
|
1428
1420
|
"& .MuiAutocomplete-option": {
|
|
1429
1421
|
"&[aria-selected='true']": {
|
|
1430
1422
|
backgroundColor: (0, import_styles13.alpha)(
|
|
@@ -1442,17 +1434,6 @@ var SearchableSelect = import_react6.default.memo(
|
|
|
1442
1434
|
}
|
|
1443
1435
|
}
|
|
1444
1436
|
},
|
|
1445
|
-
ListboxProps: {
|
|
1446
|
-
sx: {
|
|
1447
|
-
flex: "1 1 auto",
|
|
1448
|
-
minHeight: 0,
|
|
1449
|
-
maxHeight: "min(50vh, calc(100dvh - 120px))",
|
|
1450
|
-
overflowY: "auto",
|
|
1451
|
-
WebkitOverflowScrolling: "touch",
|
|
1452
|
-
overscrollBehavior: "contain",
|
|
1453
|
-
touchAction: "pan-y"
|
|
1454
|
-
}
|
|
1455
|
-
},
|
|
1456
1437
|
renderInput: (params) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1457
1438
|
import_material13.TextField,
|
|
1458
1439
|
{
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.tsx","../src/TabPanel.tsx","../src/TablePagination.tsx","../src/Logo.tsx","../src/FormDialog.tsx","../src/InputFileUpload.tsx","../src/glassStyles.ts","../src/ImageUploadAvatar.tsx","../src/FormSnackBar.tsx","../src/Loader.tsx","../src/SkeletonBar.tsx","../src/EmptyState.tsx","../src/Pill.tsx","../src/IOSSwitch.tsx","../src/StatusPill.tsx","../src/FormPopover.tsx","../src/SearchableSelect.tsx","../src/FormDrawer.tsx","../src/PhoneNumberField.tsx"],"sourcesContent":["export * from \"@mui/material\";\nexport { default as TabPanel } from \"./TabPanel\";\nexport { default as TablePagination } from \"./TablePagination\";\nexport type { TablePaginationDesignProps } from \"./TablePagination\";\nexport {\n useTheme,\n styled,\n createTheme,\n ThemeProvider,\n} from \"@mui/material/styles\";\nexport { makeStyles } from \"@mui/styles\";\nexport { default as Logo } from \"./Logo\";\nexport { default as FormDialog } from \"./FormDialog\";\nexport { default as InputFileUpload } from \"./InputFileUpload\";\nexport { default as ImageUploadAvatar } from \"./ImageUploadAvatar\";\nexport { default as FormSnackBar } from \"./FormSnackBar\";\nexport { default as Loader } from \"./Loader\";\nexport { default as SkeletonBar } from \"./SkeletonBar\";\nexport { default as EmptyState } from \"./EmptyState\";\nexport { default as Pill } from \"./Pill\";\nexport { default as IOSSwitch } from \"./IOSSwitch\";\nexport { default as StatusPill } from \"./StatusPill\";\nexport { default as FormPopover } from \"./FormPopover\";\nexport { default as SearchableSelect } from \"./SearchableSelect\";\nexport { default as FormDrawer } from \"./FormDrawer\";\nexport { default as PhoneNumberField } from \"./PhoneNumberField\";\n","// @ts-nocheck\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\n\ninterface TabPanelProps {\n children?: React.ReactNode;\n index: number;\n value: number;\n}\n\nconst TabPanel = (props: TabPanelProps) => {\n const { children, value, index, ...other } = props;\n return (\n <div\n role=\"tabpanel\"\n hidden={value !== index}\n id={`simple-tabpanel-${index}`}\n {...other}\n >\n {value === index && <Box sx={{ p: 1 }}>{children}</Box>}\n </div>\n );\n};\n\nexport default TabPanel;\n","import * as React from \"react\";\nimport MuiTablePagination from \"@mui/material/TablePagination\";\nimport type { LabelDisplayedRowsArgs } from \"@mui/material/TablePagination\";\nimport tablePaginationClasses from \"@mui/material/TablePagination/tablePaginationClasses\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\nimport { alpha } from \"@mui/material/styles\";\n\nexport type TablePaginationDesignProps = React.ComponentProps<\n typeof MuiTablePagination\n> & {\n /** Label before the rows-per-page control. Default: \"Per page\". Overrides MUI `labelRowsPerPage` when both are omitted; explicit `labelRowsPerPage` wins. */\n rowsPerPageLabel?: React.ReactNode;\n /** Formats the range summary (e.g. total count). Default: \"1–10 of 47 results\". Overrides MUI `labelDisplayedRows` when both are omitted; explicit `labelDisplayedRows` wins. */\n displayedRangeLabel?: (info: LabelDisplayedRowsArgs) => React.ReactNode;\n};\n\nfunction mergeSx(...parts: (SxProps<Theme> | undefined)[]): SxProps<Theme> {\n const flat: object[] = [];\n for (const p of parts) {\n if (p == null) continue;\n if (Array.isArray(p)) {\n for (const x of p) {\n if (x != null) flat.push(x as object);\n }\n } else {\n flat.push(p as object);\n }\n }\n return flat as SxProps<Theme>;\n}\n\nconst DEFAULT_ROWS_PER_PAGE_LABEL = \"Per page\";\n\nfunction defaultDisplayedRangeLabel({\n from,\n to,\n count,\n}: LabelDisplayedRowsArgs): React.ReactNode {\n if (count === 0) {\n return \"No results\";\n }\n if (count === -1) {\n return `${from}–${to}+`;\n }\n if (from > to) {\n return `0 of ${count} results`;\n }\n return `${from}–${to} of ${count} results`;\n}\n\nfunction defaultGetItemAriaLabel(\n type: \"first\" | \"last\" | \"next\" | \"previous\",\n): string {\n const labels: Record<typeof type, string> = {\n first: \"First page\",\n previous: \"Previous page\",\n next: \"Next page\",\n last: \"Last page\",\n };\n return labels[type];\n}\n\nconst rootSx: SxProps<Theme> = {\n width: \"100%\",\n boxSizing: \"border-box\",\n verticalAlign: \"middle\",\n bgcolor: \"transparent\",\n backdropFilter: \"blur(12px) saturate(150%)\",\n borderRadius: 2,\n py: 0.75,\n px: { xs: 1, sm: 1.5 },\n [`& .${tablePaginationClasses.toolbar}`]: {\n width: \"100%\",\n minHeight: 48,\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n flexWrap: \"nowrap\",\n gap: { xs: 0.75, sm: 1.25 },\n py: 0,\n pr: 0,\n pl: 0,\n maxWidth: \"100%\",\n overflowX: \"auto\",\n },\n [`& .${tablePaginationClasses.spacer}`]: {\n flex: \"1 1 auto\",\n minWidth: 0,\n },\n [`& .${tablePaginationClasses.selectLabel}`]: {\n typography: \"body2\",\n fontWeight: 500,\n textTransform: \"none\",\n color: \"text.secondary\",\n m: 0,\n whiteSpace: \"nowrap\",\n },\n [`& .${tablePaginationClasses.displayedRows}`]: {\n typography: \"body2\",\n fontWeight: 600,\n color: \"text.primary\",\n fontVariantNumeric: \"tabular-nums\",\n m: 0,\n whiteSpace: \"nowrap\",\n },\n [`& .${tablePaginationClasses.input}`]: {\n marginLeft: 0,\n marginRight: 0,\n },\n [`& .${tablePaginationClasses.actions}`]: {\n mx: 1,\n gap: 1,\n display: \"flex\",\n alignItems: \"center\",\n [`& .MuiIconButton-root`]: {\n borderRadius: 2,\n color: \"text.secondary\",\n padding: 0.5,\n border: \"1px solid\",\n borderColor: \"divider\",\n \"&:hover\": {\n bgcolor: \"action.selected\",\n color: \"text.primary\",\n },\n \"&.Mui-disabled\": {\n opacity: 0.36,\n },\n },\n },\n};\n\n/**\n * Design-library TablePagination: forwards MUI props and ref, with a compact\n * toolbar (spacer + `justifyContent: flex-end` so controls stay right),\n * optional `rowsPerPageLabel` / `displayedRangeLabel`, and first/last\n * navigation by default. Use inside `TableFooter` for vertical alignment with\n * table rows.\n */\nconst TablePagination = React.forwardRef(function TablePagination(\n props: TablePaginationDesignProps,\n ref: React.ComponentPropsWithRef<typeof MuiTablePagination>[\"ref\"],\n) {\n const {\n sx,\n slotProps,\n SelectProps,\n showFirstButton = true,\n showLastButton = true,\n labelDisplayedRows: labelDisplayedRowsProp,\n labelRowsPerPage: labelRowsPerPageProp,\n getItemAriaLabel,\n rowsPerPageLabel,\n displayedRangeLabel,\n ...other\n } = props;\n\n const labelRowsPerPageResolved =\n labelRowsPerPageProp ?? rowsPerPageLabel ?? DEFAULT_ROWS_PER_PAGE_LABEL;\n\n const labelDisplayedRowsResolved =\n labelDisplayedRowsProp ?? displayedRangeLabel ?? defaultDisplayedRangeLabel;\n\n const slotSelect = slotProps?.select;\n const { sx: slotSelectSx, ...slotSelectRest } = slotSelect ?? {};\n const { sx: legacySelectSx, ...legacySelectRest } = SelectProps ?? {};\n\n const mergedSelect = {\n variant: \"outlined\" as const,\n size: \"small\" as const,\n ...legacySelectRest,\n ...slotSelectRest,\n sx: mergeSx(\n (theme: Theme) => ({\n borderRadius: 2,\n minWidth: 64,\n fontSize: theme.typography.body2.fontSize,\n backdropFilter: \"blur(10px)\",\n backgroundColor: alpha(\n theme.palette.background.paper,\n theme.palette.mode === \"dark\" ? 0.2 : 0.74,\n ),\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: alpha(\n \"#FFFFFF\",\n theme.palette.mode === \"dark\" ? 0.16 : 0.56,\n ),\n },\n \"&:hover .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"text.disabled\",\n },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"primary.main\",\n },\n \"& .MuiSelect-select\": {\n py: 0.625,\n minHeight: \"unset\",\n display: \"flex\",\n alignItems: \"center\",\n },\n }),\n legacySelectSx,\n slotSelectSx,\n ),\n };\n\n return (\n <MuiTablePagination\n ref={ref}\n showFirstButton={showFirstButton}\n showLastButton={showLastButton}\n labelRowsPerPage={labelRowsPerPageResolved}\n labelDisplayedRows={labelDisplayedRowsResolved}\n getItemAriaLabel={getItemAriaLabel ?? defaultGetItemAriaLabel}\n slotProps={{\n ...slotProps,\n select: mergedSelect,\n }}\n sx={mergeSx(rootSx, sx)}\n {...other}\n />\n );\n});\n\nexport default TablePagination;\n","// @ts-nocheck\nimport React, { memo } from \"react\";\nimport {\n Grid,\n Typography,\n Avatar,\n Tooltip,\n Box,\n useTheme,\n useMediaQuery,\n} from \"@mui/material\";\nimport { capitalizeSentence } from \"@verma-consulting/common-library\";\n\ntype LogoProps = {\n loggedIn?: boolean;\n centered?: boolean;\n organization?: {\n name?: string;\n logo?: { url?: string };\n } | null;\n defaultLogo?: React.ReactNode;\n companyComponent?: React.ReactNode;\n handleClick?: () => void;\n};\n\nconst Logo: React.FC<LogoProps> = memo(\n ({\n loggedIn = false,\n centered = false,\n organization = null,\n defaultLogo = null,\n handleClick = () => null,\n companyComponent = null,\n }) => {\n const theme = useTheme();\n const mdMatches = useMediaQuery(theme.breakpoints.down(\"md\"));\n const maxWidth = mdMatches ? 160 : 320;\n\n const companyName = organization?.name || \"–\";\n const logoUrl = organization?.logo?.url;\n\n if (centered) {\n return (\n <Grid\n container\n direction=\"column\"\n alignItems=\"center\"\n justifyContent=\"center\"\n spacing={1}\n sx={{ cursor: \"pointer\" }}\n onClick={handleClick}\n >\n {(logoUrl || defaultLogo) && (\n <Grid item>\n {logoUrl ? (\n <Avatar\n alt={companyName || \"avatar\"}\n src={logoUrl}\n sx={{\n width: 64, // slightly bigger\n height: 64,\n bgcolor: \"primary.main\",\n fontSize: 20,\n fontWeight: \"bold\",\n }}\n imgProps={{ loading: \"lazy\" }}\n >\n {companyName?.charAt(0) || \"?\"}\n </Avatar>\n ) : (\n defaultLogo\n )}\n </Grid>\n )}\n <Grid item sx={{ maxWidth, textAlign: \"center\" }}>\n {loggedIn ? (\n <Tooltip title={companyName} placement=\"top\" arrow>\n <Typography\n variant=\"h6\"\n sx={{\n fontFamily: \"Courier, monospace\",\n fontWeight: \"bold\",\n color: \"primary.main\",\n }}\n >\n {companyName}\n </Typography>\n </Tooltip>\n ) : (\n <Box sx={{ display: \"flex\", justifyContent: \"center\" }}>\n {companyComponent}\n </Box>\n )}\n </Grid>\n </Grid>\n );\n }\n return (\n <Grid\n container\n alignItems=\"center\"\n wrap=\"nowrap\"\n sx={{\n cursor: \"pointer\",\n \"&:hover\": { opacity: 0.9, transition: \"opacity 0.2s ease-in-out\" },\n }}\n onClick={handleClick}\n >\n {(logoUrl || defaultLogo) && (\n <Box sx={{ mr: 1, display: \"flex\", alignItems: \"center\" }}>\n {logoUrl ? (\n <Avatar\n alt={companyName || \"avatar\"}\n src={logoUrl}\n sx={{\n width: 36,\n height: 36,\n bgcolor: \"primary.main\",\n fontSize: 14,\n fontWeight: \"bold\",\n }}\n imgProps={{ loading: \"lazy\" }}\n >\n {companyName?.charAt(0) || \"?\"}\n </Avatar>\n ) : (\n defaultLogo\n )}\n </Box>\n )}\n\n <Box sx={{ maxWidth, flexShrink: 1, minWidth: 0 }}>\n {loggedIn ? (\n <Tooltip title={companyName} placement=\"top\" arrow>\n <Typography\n variant=\"h6\"\n noWrap\n sx={{\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n fontFamily: \"Courier, monospace\",\n fontWeight: \"bold\",\n color: \"primary.main\",\n }}\n >\n {companyName}\n </Typography>\n </Tooltip>\n ) : (\n companyComponent\n )}\n </Box>\n </Grid>\n );\n },\n);\n\nexport default Logo;\n","// @ts-nocheck\nimport * as React from \"react\";\nimport { styled } from \"@mui/material/styles\";\nimport {\n useTheme,\n useMediaQuery,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n IconButton,\n} from \"@mui/material\";\nexport { useTheme } from \"@mui/material/styles\";\nimport { Close } from \"@mui/icons-material\";\n\nconst BootstrapDialog = styled(Dialog)(({ theme }) => ({\n \"& .MuiDialog-paper\": {\n borderRadius: 24,\n },\n \"& .MuiDialogContent-root\": {\n padding: theme.spacing(4),\n },\n \"& .MuiDialogActions-root\": {\n padding: theme.spacing(4),\n },\n}));\n\nexport interface DialogTitleProps {\n id: string;\n children?: React.ReactNode;\n onClose: () => void;\n}\n\nconst BootstrapDialogTitle = (props: DialogTitleProps) => {\n const { children, onClose, ...other } = props;\n\n return (\n <DialogTitle\n sx={{\n px: 3,\n py: 3,\n pt: 3.5,\n pb: 2.5,\n fontSize: \"1.25rem\",\n fontWeight: 600,\n letterSpacing: \"0.02em\",\n lineHeight: 1.35,\n color: \"primary.main\",\n }}\n {...other}\n >\n {children}\n {onClose ? (\n <IconButton\n onClick={onClose}\n sx={{\n position: \"absolute\",\n right: 16,\n top: 16,\n }}\n >\n <Close color=\"primary\" />\n </IconButton>\n ) : null}\n </DialogTitle>\n );\n};\n\nconst FormDialog = ({\n open = false,\n setOpen,\n title = \"\",\n actions,\n children,\n maxWidth = \"lg\",\n ...props\n}) => {\n const theme = useTheme();\n const mdMatches = useMediaQuery(theme.breakpoints.down(\"md\"));\n return (\n <BootstrapDialog\n fullWidth\n onClose={() => setOpen(false)}\n open={open}\n maxWidth={maxWidth}\n fullScreen={mdMatches}\n >\n <BootstrapDialogTitle onClose={() => setOpen(false)}>\n {title}\n </BootstrapDialogTitle>\n <DialogContent dividers>{children}</DialogContent>\n <DialogActions>{actions}</DialogActions>\n </BootstrapDialog>\n );\n};\n\nexport default FormDialog;\n","// @ts-nocheck\nimport React from \"react\";\nimport { alpha, styled, useTheme } from \"@mui/material/styles\";\nimport { Box, Typography } from \"@mui/material\";\nimport { CloudUpload } from \"@mui/icons-material\";\nimport { glassHover, glassSurface } from \"./glassStyles\";\n\nconst VisuallyHiddenInput = styled(\"input\")({\n clip: \"rect(0 0 0 0)\",\n clipPath: \"inset(50%)\",\n height: 1,\n overflow: \"hidden\",\n position: \"absolute\",\n bottom: 0,\n left: 0,\n whiteSpace: \"nowrap\",\n width: 1,\n});\n\nexport type InputFileUploadProps = {\n name?: string;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n /** Primary label (e.g. “Upload document”). */\n title?: string;\n /** Secondary line under the title (e.g. accepted types). */\n subtitle?: string;\n accept?: string;\n multiple?: boolean;\n disabled?: boolean;\n /** Stretch to the width of the parent container. */\n fullWidth?: boolean;\n};\n\nconst InputFileUpload: React.FC<InputFileUploadProps> = ({\n name = \"\",\n onChange = () => null,\n title = \"Choose file\",\n subtitle = \"Tap to browse\",\n accept,\n multiple,\n disabled = false,\n fullWidth = false,\n}) => {\n const theme = useTheme();\n\n return (\n <Box\n component=\"label\"\n sx={(t) => ({\n ...glassSurface(t),\n display: fullWidth ? \"flex\" : \"inline-flex\",\n alignItems: \"center\",\n gap: 2,\n width: fullWidth ? \"100%\" : \"auto\",\n maxWidth: \"100%\",\n px: 2.25,\n py: 1.75,\n borderRadius: 2.5,\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n opacity: disabled ? 0.52 : 1,\n pointerEvents: disabled ? \"none\" : \"auto\",\n transition: \"box-shadow 0.2s ease, transform 0.2s ease\",\n borderStyle: \"dashed\",\n borderWidth: 1,\n borderColor: alpha(\n t.palette.primary.main,\n t.palette.mode === \"dark\" ? 0.35 : 0.28,\n ),\n \"&:hover\": !disabled\n ? {\n ...glassHover(t),\n borderColor: alpha(t.palette.primary.main, 0.45),\n boxShadow:\n t.palette.mode === \"dark\"\n ? \"0 12px 28px rgba(0,0,0,0.38)\"\n : \"0 12px 28px rgba(15, 23, 42, 0.12)\",\n }\n : undefined,\n \"&:focus-within\": {\n outline: `2px solid ${alpha(t.palette.primary.main, 0.45)}`,\n outlineOffset: 2,\n },\n })}\n >\n <Box\n aria-hidden\n sx={{\n flexShrink: 0,\n width: 44,\n height: 44,\n borderRadius: 2,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n background: alpha(\n theme.palette.primary.main,\n theme.palette.mode === \"dark\" ? 0.22 : 0.12,\n ),\n border: `1px solid ${alpha(theme.palette.primary.main, 0.25)}`,\n color: \"primary.main\",\n }}\n >\n <CloudUpload sx={{ fontSize: 22 }} />\n </Box>\n\n <Box sx={{ flex: 1, minWidth: 0, textAlign: \"left\" }}>\n <Typography\n variant=\"subtitle2\"\n component=\"span\"\n display=\"block\"\n fontWeight={700}\n color=\"text.primary\"\n letterSpacing=\"-0.01em\"\n >\n {title}\n </Typography>\n <Typography\n variant=\"caption\"\n color=\"text.secondary\"\n display=\"block\"\n sx={{ mt: 0.25 }}\n >\n {subtitle}\n </Typography>\n </Box>\n\n <VisuallyHiddenInput\n type=\"file\"\n name={name}\n onChange={onChange}\n accept={accept}\n multiple={multiple}\n disabled={disabled}\n />\n </Box>\n );\n};\n\nexport default InputFileUpload;\n","import { alpha, Theme } from \"@mui/material/styles\";\n\nexport const glassBorder = (theme: Theme) =>\n `1px solid ${alpha(\n \"#FFFFFF\",\n theme.palette.mode === \"dark\" ? 0.16 : 0.62,\n )}`;\n\nexport const glassSurface = (theme: Theme) => ({\n background:\n theme.palette.mode === \"dark\"\n ? `linear-gradient(160deg, ${alpha(\"#1F2937\", 0.78)} 0%, ${alpha(\"#111827\", 0.68)} 100%)`\n : `linear-gradient(160deg, ${alpha(\"#FFFFFF\", 0.88)} 0%, ${alpha(\"#F5F9FF\", 0.72)} 100%)`,\n border: glassBorder(theme),\n backdropFilter: \"blur(18px) saturate(155%)\",\n WebkitBackdropFilter: \"blur(18px) saturate(155%)\",\n boxShadow:\n theme.palette.mode === \"dark\"\n ? \"0 16px 40px rgba(0,0,0,0.34)\"\n : \"0 14px 34px rgba(15, 23, 42, 0.12)\",\n});\n\nexport const glassHover = (theme: Theme) => ({\n background:\n theme.palette.mode === \"dark\"\n ? `linear-gradient(160deg, ${alpha(\"#374151\", 0.8)} 0%, ${alpha(\"#1F2937\", 0.74)} 100%)`\n : `linear-gradient(160deg, ${alpha(\"#FFFFFF\", 0.97)} 0%, ${alpha(\"#EEF5FF\", 0.86)} 100%)`,\n});\n","import React, { useEffect, useRef, useState, ChangeEvent } from \"react\";\nimport { Box, IconButton } from \"@mui/material\";\nimport { alpha, styled } from \"@mui/material/styles\";\nimport { CloudUpload, Close as CloseIcon } from \"@mui/icons-material\";\nimport { glassSurface } from \"./glassStyles\";\n\ntype ImageUploadAvatarProps = {\n name?: string;\n defaultValue?: string | null;\n onChange?: (file: File | null, previewSrc: string | null) => void;\n size?: number;\n variant?: \"circular\" | \"rounded\" | \"square\";\n accept?: string;\n disabled?: boolean;\n allowClear?: boolean;\n};\n\nconst HiddenInput = styled(\"input\")({\n position: \"absolute\",\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0 0 0 0)\",\n border: 0,\n});\n\nconst Wrapper = styled(Box, {\n shouldForwardProp: (prop) => prop !== \"variant\" && prop !== \"size\",\n})<{ size: number; variant: \"circular\" | \"rounded\" | \"square\" }>(({ theme, size, variant }) => ({\n position: \"relative\",\n width: size,\n height: size,\n borderRadius: variant === \"circular\" ? \"50%\" : variant === \"rounded\" ? theme.shape.borderRadius * 2 : 0,\n ...glassSurface(theme),\n border: `1px dashed ${alpha(theme.palette.primary.main, 0.28)}`,\n overflow: \"hidden\",\n cursor: \"pointer\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n}));\n\nconst PreviewImg = styled(\"img\")({\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n display: \"block\",\n});\n\nconst Overlay = styled(Box)(({ theme }) => ({\n position: \"absolute\",\n inset: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n transition: \"background 120ms ease\",\n borderRadius: \"inherit\",\n \"& .uploadIcon\": {\n opacity: 0,\n transition: \"opacity 120ms ease, transform 120ms ease\",\n transform: \"scale(0.95)\",\n },\n \"&.empty .uploadIcon\": {\n opacity: 0.6,\n transform: \"scale(1)\",\n },\n \"&.hover\": {\n background: \"rgba(0,0,0,0.15)\",\n \"& .uploadIcon\": { opacity: 1, transform: \"scale(1)\" },\n },\n}));\n\nconst ClearButton = styled(IconButton)(({ theme }) => ({\n position: \"absolute\",\n top: -8,\n right: -8,\n ...glassSurface(theme),\n boxShadow: theme.shadows[2],\n \"&:hover\": {\n background: alpha(theme.palette.background.paper, 0.9),\n },\n}));\n\nexport const ImageUploadAvatar: React.FC<ImageUploadAvatarProps> = ({\n name = \"image\",\n defaultValue = null,\n onChange,\n size = 128,\n variant = \"rounded\",\n accept = \"image/*\",\n disabled,\n allowClear = true,\n}) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const [internalSrc, setInternalSrc] = useState<string | null>(defaultValue ?? null);\n const [hover, setHover] = useState(false);\n\n useEffect(() => {\n if (!defaultValue) return;\n if (!internalSrc || !internalSrc.startsWith(\"blob:\")) {\n setInternalSrc(defaultValue);\n }\n }, [defaultValue]);\n\n useEffect(() => {\n return () => {\n if (internalSrc?.startsWith(\"blob:\")) {\n URL.revokeObjectURL(internalSrc);\n }\n };\n }, [internalSrc]);\n\n const handlePick = (e: ChangeEvent<HTMLInputElement>) => {\n const selected = e.target.files?.[0] ?? null;\n if (internalSrc?.startsWith(\"blob:\")) {\n URL.revokeObjectURL(internalSrc);\n }\n let preview: string | null = null;\n if (selected) {\n preview = URL.createObjectURL(selected);\n setInternalSrc(preview);\n } else {\n setInternalSrc(null);\n }\n if (inputRef.current) inputRef.current.value = \"\";\n onChange?.(selected, preview);\n };\n\n const triggerPick = () => {\n if (!disabled) inputRef.current?.click();\n };\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (internalSrc?.startsWith(\"blob:\")) {\n URL.revokeObjectURL(internalSrc);\n }\n setInternalSrc(null);\n onChange?.(null, null);\n };\n\n return (\n <Wrapper\n role=\"button\"\n size={size}\n variant={variant}\n onPointerEnter={() => setHover(true)}\n onPointerLeave={() => setHover(false)}\n onClick={triggerPick}\n >\n {internalSrc && <PreviewImg src={internalSrc} />}\n <Overlay className={`${!internalSrc ? \"empty\" : \"\"} ${hover && !disabled ? \"hover\" : \"\"}`}>\n <CloudUpload className=\"uploadIcon\" fontSize=\"large\" />\n </Overlay>\n\n {allowClear && internalSrc && !disabled && (\n <ClearButton size=\"small\" aria-label=\"Clear image\" onClick={handleClear} sx={{ m: 1 }}>\n <CloseIcon fontSize=\"inherit\" />\n </ClearButton>\n )}\n\n <HiddenInput ref={inputRef} type=\"file\" name={name} accept={accept} onChange={handlePick} disabled={disabled} />\n </Wrapper>\n );\n};\n\nexport default ImageUploadAvatar;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { Alert, Grow, IconButton, type AlertProps } from \"@mui/material\";\nimport { alpha, useTheme } from \"@mui/material/styles\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { constants } from \"@verma-consulting/common-library\";\n\nconst SNACKBAR_TYPES = (constants as any)?.SNACKBAR_TYPES;\n\nexport type SnackbarType = \"success\" | \"error\" | \"warning\" | \"info\" | \"\";\n\nconst DULL_SNACKBAR_COLORS = {\n success: \"#6B8E6B\",\n warning: \"#C97B4B\", // dull orange soda\n info: \"#4A5E8A\",\n error: \"#9B4444\",\n} as const;\n\nexport interface FormSnackBarState {\n open?: boolean;\n message?: string;\n type?: SnackbarType;\n}\n\nexport interface FormSnackBarProps {\n snackBar?: FormSnackBarState;\n setSnackBar?: (state: FormSnackBarState) => void;\n autoHideDuration?: number;\n}\n\nfunction isSnackbarType(val: unknown): val is Exclude<SnackbarType, \"\"> {\n if (typeof val !== \"string\") return false;\n if (!SNACKBAR_TYPES) {\n return ([\"success\", \"error\", \"warning\", \"info\"] as const).includes(\n val as any,\n );\n }\n const values = Object.values(SNACKBAR_TYPES) as string[];\n return values.includes(val);\n}\n\nconst FormSnackBar: React.FC<FormSnackBarProps> = ({\n snackBar = {},\n setSnackBar = () => null,\n autoHideDuration = 3500,\n}) => {\n const theme = useTheme();\n\n const [queue, setQueue] = useState<\n Array<{ id: string; type: SnackbarType; message: string }>\n >([]);\n const idRef = useRef(0);\n const prevOpenRef = useRef<boolean>(!!snackBar?.open);\n const prevSignatureRef = useRef<string>(\"\");\n const timersRef = useRef<Record<string, ReturnType<typeof setTimeout>>>({});\n\n const type = (snackBar.type ?? \"\") as SnackbarType;\n const message = snackBar.message ?? \"\";\n\n const severity: AlertProps[\"severity\"] = isSnackbarType(type) ? type : \"info\";\n\n const enqueueFromProp = () => {\n if (!snackBar?.open) return;\n if (!message) return;\n\n const signature = `${type}::${message}`;\n const openRose = !prevOpenRef.current && !!snackBar?.open;\n const signatureChanged = signature !== prevSignatureRef.current;\n\n // Enqueue on a rising edge OR when message/type changes while still open.\n if (!openRose && !signatureChanged) return;\n\n prevSignatureRef.current = signature;\n const id = String(++idRef.current);\n setQueue((q) => [...q, { id, type, message }]);\n\n timersRef.current[id] = setTimeout(() => {\n setQueue((q) => q.filter((item) => item.id !== id));\n delete timersRef.current[id];\n }, autoHideDuration);\n\n // Reset the external trigger immediately so repeated actions can enqueue again.\n setSnackBar({ open: false, message: \"\", type: \"\" });\n };\n\n useEffect(() => {\n const nextOpen = !!snackBar?.open;\n // Enqueue on open change and/or message change while open.\n enqueueFromProp();\n prevOpenRef.current = nextOpen;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [snackBar?.open, snackBar?.message, snackBar?.type]);\n\n const handleDismiss = (id: string) => {\n const t = timersRef.current[id];\n if (t) clearTimeout(t);\n delete timersRef.current[id];\n setQueue((q) => q.filter((item) => item.id !== id));\n };\n\n useEffect(() => {\n return () => {\n Object.values(timersRef.current).forEach((t) => clearTimeout(t));\n timersRef.current = {};\n };\n }, []);\n\n const typeStyles = (severity: AlertProps[\"severity\"]) => {\n // Softer, dull colors so they are visible without being harsh.\n const baseHex =\n severity === \"success\"\n ? DULL_SNACKBAR_COLORS.success\n : severity === \"error\"\n ? DULL_SNACKBAR_COLORS.error\n : severity === \"warning\"\n ? DULL_SNACKBAR_COLORS.warning\n : DULL_SNACKBAR_COLORS.info;\n return {\n bg:\n theme.palette.mode === \"dark\"\n ? alpha(baseHex, 0.34)\n : alpha(baseHex, 0.24),\n text: theme.palette.mode === \"dark\" ? \"rgba(255,255,255,0.94)\" : baseHex,\n icon: baseHex,\n };\n };\n\n return (\n <div\n aria-live=\"polite\"\n aria-atomic=\"true\"\n style={{\n position: \"fixed\",\n top: 12,\n right: 12,\n zIndex: 1400,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 8,\n width: \"min(420px, calc(100vw - 24px))\",\n pointerEvents: \"none\",\n }}\n >\n {queue.map((item) => {\n const localSeverity: AlertProps[\"severity\"] = isSnackbarType(item.type)\n ? item.type\n : \"info\";\n\n const colors = typeStyles(localSeverity);\n\n return (\n <Grow key={item.id} in timeout={280}>\n <Alert\n variant=\"filled\"\n severity={localSeverity}\n sx={{\n width: \"100%\",\n pointerEvents: \"auto\",\n borderRadius: 2,\n px: { xs: 1.25, sm: 1.5 },\n py: 0.875,\n alignItems: \"center\",\n boxShadow: 2,\n backgroundColor: colors.bg,\n color: colors.text,\n backdropFilter: \"blur(14px) saturate(150%)\",\n WebkitBackdropFilter: \"blur(14px) saturate(150%)\",\n border: `1px solid ${alpha(\"#FFFFFF\", theme.palette.mode === \"dark\" ? 0.16 : 0.55)}`,\n \"& .MuiAlert-icon\": {\n color: colors.icon,\n },\n \"& .MuiAlert-message\": {\n m: 0,\n p: 0,\n fontWeight: 600,\n letterSpacing: \"-0.01em\",\n },\n }}\n action={\n <IconButton\n aria-label=\"close\"\n color=\"inherit\"\n size=\"small\"\n onClick={() => handleDismiss(item.id)}\n >\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n }\n >\n {item.message}\n </Alert>\n </Grow>\n );\n })}\n </div>\n );\n};\n\nexport default FormSnackBar;\n","import React from \"react\";\nimport { CircularProgress, Backdrop } from \"@mui/material\";\nimport { makeStyles } from \"@mui/styles\";\nimport { alpha } from \"@mui/material/styles\";\n\ninterface LoaderProps {\n size?: number;\n color?: \"primary\" | \"secondary\" | \"inherit\" | \"success\" | \"error\" | \"info\" | \"warning\";\n}\n\nconst useStyles = makeStyles({\n \"@keyframes pulse\": {\n \"0%\": { transform: \"scale(1)\", opacity: 0.9 },\n \"50%\": { transform: \"scale(1.05)\", opacity: 1 },\n \"100%\": { transform: \"scale(1)\", opacity: 0.9 },\n },\n progress: {\n animation: \"$pulse 1.5s ease-in-out infinite\",\n },\n});\n\nconst Loader: React.FC<LoaderProps> = ({ size = 48, color = \"primary\" }) => {\n const classes = useStyles();\n\n return (\n <Backdrop\n open\n sx={{\n zIndex: (theme) => theme.zIndex.modal + 1,\n backgroundColor: \"transparent\",\n backdropFilter: \"blur(10px) saturate(145%)\",\n }}\n >\n <CircularProgress\n size={size}\n color={color}\n thickness={3.4}\n className={classes.progress}\n sx={{\n p: 1,\n borderRadius: \"50%\",\n backgroundColor: \"transparent\",\n border: (theme) =>\n `1px solid ${alpha(\"#FFFFFF\", theme.palette.mode === \"dark\" ? 0.14 : 0.56)}`,\n boxShadow: (theme) =>\n theme.palette.mode === \"dark\"\n ? \"0 10px 24px rgba(0,0,0,0.32)\"\n : \"0 10px 20px rgba(15,23,42,0.14)\",\n }}\n />\n </Backdrop>\n );\n};\n\nexport default Loader;\n","// @ts-nocheck\nimport React from \"react\";\nimport { Box, useTheme } from \"@mui/material\";\n\nconst SHIMMER_KEYFRAMES = {\n \"@keyframes skeletonShimmer\": {\n \"0%\": { backgroundPosition: \"200% 0\" },\n \"100%\": { backgroundPosition: \"-200% 0\" },\n },\n};\n\nexport interface SkeletonBarProps {\n width?: string | number;\n height?: number;\n sx?: object;\n}\n\n/**\n * Horizontal bar with sideways shimmer loading animation.\n * Use in tables, cards, selects, and any loading placeholder.\n */\nexport const SkeletonBar: React.FC<SkeletonBarProps> = ({\n width = \"100%\",\n height = 24,\n sx = {},\n}) => {\n const theme = useTheme();\n const base =\n theme.palette.mode === \"dark\"\n ? (theme.palette.grey?.[700] ?? \"#424242\")\n : (theme.palette.grey?.[200] ?? \"#e0e0e0\");\n const highlight =\n theme.palette.mode === \"dark\"\n ? (theme.palette.grey?.[600] ?? \"#616161\")\n : (theme.palette.grey?.[100] ?? \"#f5f5f5\");\n\n return (\n <Box\n sx={{\n ...SHIMMER_KEYFRAMES,\n borderRadius: 2,\n height,\n width,\n maxWidth: \"100%\",\n overflow: \"hidden\",\n background: `linear-gradient(90deg, ${base} 0%, ${highlight} 20%, ${base} 40%, ${base} 100%)`,\n backgroundSize: \"200% 100%\",\n animation: \"skeletonShimmer 1.4s ease-in-out infinite\",\n ...sx,\n }}\n />\n );\n};\n\nexport default SkeletonBar;\n","// @ts-nocheck\nimport React from \"react\";\nimport { Box, Typography, useTheme } from \"@mui/material\";\nimport { DatasetOutlined } from \"@mui/icons-material\";\n\nexport interface EmptyStateProps {\n /** Label text to display (e.g. getContent(\"noDataDescription\")) */\n label?: string;\n /** Vertical margin (theme spacing, default 8) */\n m?: number;\n /** Optional custom icon */\n icon?: React.ReactNode;\n}\n\nconst EmptyState: React.FC<EmptyStateProps> = ({ label, m = 8, icon }) => {\n const theme = useTheme();\n const text = label ?? \"No data created yet\";\n\n const iconColor =\n theme.palette.mode === \"dark\"\n ? \"rgba(255,255,255,0.42)\"\n : \"rgba(0,0,0,0.42)\";\n\n const labelColor =\n theme.palette.mode === \"dark\"\n ? \"rgba(255,255,255,0.50)\"\n : \"rgba(0,0,0,0.38)\";\n\n const iconEl =\n icon != null && React.isValidElement(icon) ? (\n icon\n ) : (\n <DatasetOutlined\n sx={{\n fontSize: 48,\n color: iconColor,\n display: \"block\",\n }}\n />\n );\n\n return (\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 1.5,\n minHeight: 160,\n m,\n py: 3,\n px: 2,\n }}\n >\n {iconEl}\n <Typography\n variant=\"body2\"\n align=\"center\"\n sx={{\n fontWeight: 400,\n fontSize: \"0.875rem\",\n letterSpacing: \"0.01em\",\n color: labelColor,\n maxWidth: 320,\n lineHeight: 1.5,\n }}\n >\n {text}\n </Typography>\n </Box>\n );\n};\nexport default EmptyState;\n","// @ts-nocheck\nimport React from \"react\";\nimport { Button, Typography, Icon } from \"@mui/material\";\nimport { alpha, useTheme } from \"@mui/material/styles\";\nimport { glassSurface } from \"./glassStyles\";\n\nexport type PillProps = {\n label?: string;\n leftIcon?: string;\n rightIcon?: string;\n color?: string;\n isSelected?: boolean;\n onClick?: () => void;\n disabled?: boolean;\n};\n\nconst Pill = ({\n variant = \"filter\",\n leftIcon = null,\n rightIcon = null,\n color = null,\n isSelected = false,\n onClick = () => null,\n label = \"\",\n disabled = false,\n}: PillProps) => {\n const theme = useTheme();\n\n return (\n <Button\n variant={isSelected ? \"contained\" : \"outlined\"}\n color={color || \"primary\"}\n sx={{\n ...glassSurface(theme),\n borderRadius: 16,\n padding: \"8px 16px\",\n minHeight: 38,\n textTransform: \"none\",\n borderColor: isSelected\n ? alpha(theme.palette.primary.main, 0.34)\n : alpha(theme.palette.text.primary, 0.18),\n color: isSelected ? \"primary.main\" : \"text.primary\",\n \"&:hover\": {\n borderColor: alpha(theme.palette.primary.main, 0.42),\n boxShadow:\n theme.palette.mode === \"dark\"\n ? \"0 10px 22px rgba(0,0,0,0.34)\"\n : \"0 10px 20px rgba(15,23,42,0.14)\",\n },\n }}\n onClick={onClick}\n disabled={disabled}\n >\n <div style={{ display: \"flex\", alignItems: \"center\" }}>\n {leftIcon && (\n <Icon\n className={leftIcon}\n fontSize={14}\n color=\"inherit\"\n style={{ paddingRight: 8 }}\n data-testid=\"pill-left-icon\"\n />\n )}\n <Typography variant=\"subtitle2\" color=\"inherit\" fontWeight={700}>\n {label}\n </Typography>\n {rightIcon && (\n <Icon\n className={rightIcon}\n fontSize={14}\n color=\"inherit\"\n style={{ marginLeft: 8 }}\n data-testid=\"pill-right-icon\"\n />\n )}\n </div>\n </Button>\n );\n};\n\nexport default Pill;\n","import React from \"react\";\nimport { alpha, styled } from \"@mui/material/styles\";\nimport Switch, { SwitchProps } from \"@mui/material/Switch\";\n\n// explicitly type as FC with SwitchProps\nconst IOSSwitch: React.FC<SwitchProps> = styled((props: SwitchProps) => (\n <Switch focusVisibleClassName=\".Mui-focusVisible\" disableRipple {...props} />\n))(({ theme }) => ({\n width: 46,\n height: 30,\n padding: 0,\n \"& .MuiSwitch-switchBase\": {\n padding: 0,\n margin: 2,\n transitionDuration: \"300ms\",\n \"&.Mui-checked\": {\n transform: \"translateX(16px)\",\n color: \"#fff\",\n \"& + .MuiSwitch-track\": {\n background: `linear-gradient(120deg, ${alpha(theme.palette.primary.light, 0.92)} 0%, ${alpha(theme.palette.primary.main, 0.94)} 100%)`,\n opacity: 1,\n border: 0,\n },\n \"&.Mui-disabled + .MuiSwitch-track\": {\n opacity: 0.5,\n },\n },\n \"&.Mui-focusVisible .MuiSwitch-thumb\": {\n color: \"#33cf4d\",\n border: \"6px solid #fff\",\n },\n \"&.Mui-disabled .MuiSwitch-thumb\": {\n color:\n theme.palette.mode === \"light\"\n ? theme.palette.grey[100]\n : theme.palette.grey[600],\n },\n \"&.Mui-disabled + .MuiSwitch-track\": {\n opacity: theme.palette.mode === \"light\" ? 0.7 : 0.3,\n },\n },\n \"& .MuiSwitch-thumb\": {\n boxSizing: \"border-box\",\n width: 26,\n height: 26,\n boxShadow:\n theme.palette.mode === \"dark\"\n ? \"0 2px 8px rgba(0,0,0,0.38)\"\n : \"0 2px 6px rgba(15,23,42,0.24)\",\n },\n \"& .MuiSwitch-track\": {\n borderRadius: 16,\n background:\n theme.palette.mode === \"light\"\n ? \"linear-gradient(120deg, rgba(245,248,255,0.92) 0%, rgba(224,232,245,0.92) 100%)\"\n : \"linear-gradient(120deg, rgba(55,65,81,0.74) 0%, rgba(31,41,55,0.8) 100%)\",\n border: `1px solid ${alpha(\"#FFFFFF\", theme.palette.mode === \"dark\" ? 0.16 : 0.56)}`,\n backdropFilter: \"blur(10px) saturate(145%)\",\n WebkitBackdropFilter: \"blur(10px) saturate(145%)\",\n opacity: 1,\n transition: theme.transitions.create([\"background-color\"], {\n duration: 500,\n }),\n },\n}));\n\nexport default IOSSwitch;\n","import React from \"react\";\nimport { Chip } from \"@mui/material\";\nimport { alpha, useTheme } from \"@mui/material/styles\";\nimport { userStatus } from \"@verma-consulting/common-library\";\nimport { glassSurface } from \"./glassStyles\";\n\ninterface StatusPillProps {\n status: userStatus;\n}\n\nconst statusColorMap: Record<userStatus, string> = {\n [userStatus.Pending]: \"#B06A00\",\n [userStatus.Active]: \"#087443\",\n [userStatus.Inactive]: \"#B42318\",\n [userStatus.Invited]: \"#175CD3\",\n};\n\nconst StatusPill: React.FC<StatusPillProps> = ({ status }) => {\n const theme = useTheme();\n\n return (\n <Chip\n label={status}\n variant=\"outlined\"\n sx={{\n ...glassSurface(theme),\n minHeight: 38,\n fontWeight: 700,\n borderRadius: 16,\n px: 1.25,\n letterSpacing: \"0.01em\",\n color: statusColorMap[status] ?? theme.palette.text.primary,\n backgroundColor: alpha(\n statusColorMap[status] ?? theme.palette.text.primary,\n theme.palette.mode === \"dark\" ? 0.24 : 0.12,\n ),\n borderColor: alpha(\n statusColorMap[status] ?? theme.palette.text.primary,\n theme.palette.mode === \"dark\" ? 0.36 : 0.28,\n ),\n \"& .MuiChip-label\": {\n px: 1.25,\n },\n }}\n />\n );\n};\n\nexport default StatusPill;\n","import React, { useState, MouseEvent, ReactNode, FC } from \"react\";\nimport { Tooltip, IconButton, Popover } from \"@mui/material\";\nimport { MoreHoriz } from \"@mui/icons-material\";\n\ninterface FormPopoverProps {\n row?: any;\n children: (props: { row: any; handleClose: () => void }) => React.ReactNode;\n title?: string;\n}\n\nconst FormPopover: FC<FormPopoverProps> = ({ row, children, title }) => {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const open = Boolean(anchorEl);\n\n return (\n <>\n <Tooltip title={title}>\n <IconButton\n onClick={handleClick}\n size=\"small\"\n sx={{\n backgroundColor: \"white\",\n boxShadow: 1,\n borderRadius: \"50%\",\n border: \"1px solid transparent\",\n \"&:hover\": {\n border: (theme) => `1px solid ${theme.palette.primary.main}`,\n backgroundColor: \"#f0f0f0\",\n },\n }}\n >\n <MoreHoriz fontSize=\"inherit\" color=\"primary\" />\n </IconButton>\n </Tooltip>\n <Popover\n open={open}\n anchorEl={anchorEl}\n onClose={handleClose}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"left\",\n }}\n >\n {children({ row, handleClose })}\n </Popover>\n </>\n );\n};\n\nexport default FormPopover;\n","// @ts-nocheck\nimport React, { useEffect, useRef, useState, useMemo } from \"react\";\nimport {\n Autocomplete,\n TextField,\n Typography,\n FormLabel,\n FormControl,\n IconButton,\n} from \"@mui/material\";\nimport { alpha, useTheme } from \"@mui/material/styles\";\nimport { Clear } from \"@mui/icons-material\";\nimport { makeStyles } from \"@mui/styles\";\nimport { GenericPayload } from \"@verma-consulting/common-library\";\n\nconst useStyles = makeStyles((theme) => ({\n defaultMode: {\n margin: \"4px\",\n padding: \"14px 8px\",\n cursor: \"pointer\",\n borderRadius: 8,\n border: `1px solid ${alpha(\"#FFFFFF\", theme.palette.mode === \"dark\" ? 0.16 : 0.55)}`,\n backdropFilter: \"blur(14px) saturate(150%)\",\n background:\n theme.palette.mode === \"dark\"\n ? \"linear-gradient(160deg, rgba(31,41,55,0.78), rgba(17,24,39,0.68))\"\n : \"linear-gradient(160deg, rgba(255,255,255,0.9), rgba(245,249,255,0.72))\",\n \"&:hover\": {\n boxShadow:\n theme.palette.mode === \"dark\"\n ? \"rgba(0, 0, 0, 0.34) 0px 10px 26px\"\n : \"rgba(15, 23, 42, 0.16) 0px 8px 24px\",\n },\n },\n formLabel: {\n cursor: \"pointer\",\n },\n formValue: {\n cursor: \"pointer\",\n wordBreak: \"break-word\",\n whiteSpace: \"pre-wrap\",\n },\n}));\n\ninterface SearchableSelectProps {\n name: string;\n label: string;\n value: string;\n onChange: (value: string) => void;\n options: GenericPayload[];\n size?: \"small\" | \"medium\";\n style?: React.CSSProperties;\n disabled?: boolean;\n /** If `null` or omitted, the clear control is not shown. Pass a handler to enable clear. */\n onClear?: (() => void) | null;\n defaultEditMode?: boolean;\n multiple?: boolean;\n}\n\nconst SearchableSelect: React.FC<SearchableSelectProps> = React.memo(\n ({\n name,\n label,\n value,\n onChange,\n options,\n size = \"small\",\n style,\n disabled = false,\n onClear = null,\n defaultEditMode = false,\n multiple = false,\n }) => {\n const theme = useTheme();\n const classes = useStyles();\n const wrapperRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const [editMode, setEditMode] = useState(defaultEditMode);\n const [open, setOpen] = useState(defaultEditMode);\n const glassBackground =\n theme.palette.mode === \"dark\"\n ? \"linear-gradient(160deg, rgba(31,41,55,0.78), rgba(17,24,39,0.68))\"\n : \"linear-gradient(160deg, rgba(255,255,255,0.9), rgba(245,249,255,0.72))\";\n\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (\n wrapperRef.current &&\n !wrapperRef.current.contains(event.target as Node)\n ) {\n setEditMode(false);\n setOpen(false);\n }\n }\n\n if (editMode) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [editMode]);\n\n useEffect(() => {\n if (editMode && open && inputRef.current) {\n inputRef.current.focus();\n }\n }, [editMode, open]);\n\n const handleClear = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n if (onClear) {\n onClear();\n }\n setEditMode(false);\n setOpen(false);\n };\n\n const selected = useMemo(() => {\n if (multiple) {\n if (!value.trim()) return [];\n const selectedValues = value.split(\", \").map((v) => v.trim());\n return options.filter((opt) => selectedValues.includes(opt.value));\n } else {\n return options.find((opt) => opt.value === value) ?? null;\n }\n }, [value, options, multiple]);\n\n const displayValue = useMemo(() => {\n if (multiple) {\n if (!Array.isArray(selected)) return \"\";\n return selected.map((opt) => opt.label).join(\", \");\n } else {\n return (selected as GenericPayload | null)?.label ?? \"\";\n }\n }, [selected, multiple]);\n\n const isValueEmpty = !value.trim();\n const showClear = onClear != null;\n\n return editMode ? (\n <FormControl fullWidth style={style} disabled={disabled} size={size}>\n <Autocomplete\n multiple={multiple}\n disableCloseOnSelect={multiple}\n options={options}\n value={selected}\n open={open}\n onOpen={() => setOpen(true)}\n onClose={() => setOpen(false)}\n onChange={(_, newValue) => {\n if (multiple) {\n if (Array.isArray(newValue)) {\n let vals = newValue?.map((opt) => opt?.value);\n let val = vals?.join(\", \");\n onChange(val);\n } else {\n onChange(\"\");\n }\n setOpen(true);\n } else {\n onChange((newValue as GenericPayload | null)?.value ?? \"\");\n setOpen(false);\n }\n }}\n disableClearable\n autoHighlight\n getOptionLabel={(option) => option.label}\n isOptionEqualToValue={(option, val) => option.value === val.value}\n sx={{\n \"& .MuiAutocomplete-inputRoot\": {\n background: glassBackground,\n color: \"text.primary\",\n },\n \"& .MuiAutocomplete-inputRoot.Mui-focused\": {\n background: glassBackground,\n color: \"text.primary\",\n },\n \"& .MuiAutocomplete-inputRoot:hover\": {\n background: glassBackground,\n },\n \"& .MuiAutocomplete-input\": {\n color: \"text.primary\",\n WebkitTextFillColor: \"currentColor\",\n },\n \"& .MuiInputLabel-root\": {\n color: \"text.secondary\",\n },\n \"& .MuiInputLabel-root.Mui-focused\": {\n color: \"text.primary\",\n },\n \"& .MuiSvgIcon-root\": {\n color: \"text.secondary\",\n },\n }}\n slotProps={{\n popper: {\n // Open above when there is more room above the field (Popper auto placement).\n placement: \"auto\",\n },\n paper: {\n sx: {\n background: glassBackground,\n backdropFilter: \"blur(12px) saturate(150%)\",\n border: `1px solid ${alpha(\"#FFFFFF\", theme.palette.mode === \"dark\" ? 0.16 : 0.55)}`,\n boxShadow:\n theme.palette.mode === \"dark\"\n ? \"rgba(0, 0, 0, 0.34) 0px 10px 26px\"\n : \"rgba(15, 23, 42, 0.16) 0px 8px 24px\",\n overflow: \"hidden\",\n display: \"flex\",\n flexDirection: \"column\",\n maxHeight: \"min(55vh, calc(100dvh - 96px))\",\n \"& .MuiAutocomplete-option\": {\n \"&[aria-selected='true']\": {\n backgroundColor: alpha(\n theme.palette.primary.main,\n theme.palette.mode === \"dark\" ? 0.28 : 0.14,\n ),\n },\n \"&.Mui-focused\": {\n backgroundColor: alpha(\n theme.palette.primary.main,\n theme.palette.mode === \"dark\" ? 0.2 : 0.1,\n ),\n },\n },\n },\n },\n }}\n ListboxProps={{\n sx: {\n flex: \"1 1 auto\",\n minHeight: 0,\n maxHeight: \"min(50vh, calc(100dvh - 120px))\",\n overflowY: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n overscrollBehavior: \"contain\",\n touchAction: \"pan-y\",\n },\n }}\n renderInput={(params) => (\n <TextField\n {...params}\n label={label}\n variant=\"outlined\"\n size={size}\n inputRef={inputRef}\n InputProps={{\n ...params.InputProps,\n sx: {\n borderRadius: 2,\n backdropFilter: \"blur(10px)\",\n pr: 1.5,\n background: glassBackground,\n color: \"text.primary\",\n \"&.Mui-focused\": {\n background: glassBackground,\n },\n \"&:hover\": {\n background: glassBackground,\n },\n \"& .MuiInputBase-input\": {\n color: \"text.primary\",\n WebkitTextFillColor: \"currentColor\",\n },\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: alpha(\n \"#FFFFFF\",\n theme.palette.mode === \"dark\" ? 0.18 : 0.6,\n ),\n },\n },\n endAdornment: (\n <>\n {showClear && !isValueEmpty && (\n <IconButton\n aria-label={`clear ${name}`}\n onClick={handleClear}\n size=\"small\"\n sx={{\n backgroundColor: \"transparent\",\n boxShadow: \"none\",\n mr: 0.25,\n }}\n >\n <Clear fontSize=\"inherit\" />\n </IconButton>\n )}\n {params.InputProps.endAdornment}\n </>\n ),\n }}\n />\n )}\n onBlur={() => {\n setEditMode(false);\n setOpen(false);\n }}\n />\n </FormControl>\n ) : (\n <div\n ref={wrapperRef}\n onClick={() => {\n if (!disabled) {\n setEditMode(true);\n setOpen(true);\n }\n }}\n className={classes.defaultMode}\n style={style}\n >\n <FormLabel\n className={classes.formLabel}\n sx={{ color: \"text.secondary\" }}\n >\n {label}\n </FormLabel>\n <Typography\n className={classes.formValue}\n sx={{ color: \"text.primary\" }}\n >\n {displayValue}\n </Typography>\n </div>\n );\n },\n);\n\nexport default SearchableSelect;\n","import {\n Drawer,\n Typography,\n Box,\n IconButton,\n Grid,\n useTheme,\n useMediaQuery,\n} from \"@mui/material\";\nimport { alpha } from \"@mui/material/styles\";\nimport { Close } from \"@mui/icons-material\";\n\ninterface FormDrawerProps {\n open: boolean;\n setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n title?: string | null;\n actions?: React.ReactNode;\n children: React.ReactNode;\n}\n\nconst FormDrawer: React.FC<FormDrawerProps> = ({\n open,\n setOpen,\n title,\n actions,\n children,\n}) => {\n const theme = useTheme();\n const mdMatches = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n return (\n <Drawer\n anchor={mdMatches ? \"bottom\" : \"right\"}\n open={open}\n onClose={() => setOpen(false)}\n sx={{\n \"& .MuiDrawer-paper\": {\n width: mdMatches ? \"100%\" : \"64%\",\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n borderRadius: mdMatches ? \"24px 24px 0 0\" : \"24px 0 0 24px\",\n },\n }}\n >\n <Box\n p={3}\n borderBottom={`1px solid ${alpha(theme.palette.divider, 0.36)}`}\n >\n <Grid container>\n <Grid item>\n {title && (\n <Typography variant=\"h6\" fontWeight=\"bold\">\n {title}\n </Typography>\n )}\n </Grid>\n <Grid item>\n <IconButton\n size=\"medium\"\n onClick={() => setOpen(false)}\n sx={{\n position: \"absolute\",\n top: 8,\n right: 8,\n zIndex: 2,\n backgroundColor: alpha(theme.palette.background.paper, 0.46),\n }}\n >\n <Close fontSize=\"inherit\" />\n </IconButton>\n </Grid>\n </Grid>\n </Box>\n <Box flex={1} overflow=\"auto\" p={3}>\n {children}\n </Box>\n\n {actions && (\n <Box\n p={2}\n borderTop={`1px solid ${alpha(theme.palette.divider, 0.36)}`}\n sx={{\n position: \"sticky\",\n bottom: 0,\n zIndex: 1,\n backgroundColor: alpha(theme.palette.background.paper, 0.38),\n backdropFilter: \"blur(10px)\",\n }}\n >\n {actions}\n </Box>\n )}\n </Drawer>\n );\n};\n\nexport default FormDrawer;\n","import React, {\n useCallback,\n useEffect,\n useRef,\n useState,\n ChangeEvent,\n FocusEvent,\n} from \"react\";\nimport {\n Box,\n Stack,\n TextField,\n MenuItem,\n useTheme,\n useMediaQuery,\n} from \"@mui/material\";\nimport { alpha } from \"@mui/material/styles\";\nimport { constants } from \"@verma-consulting/common-library\";\n\ninterface PhoneNumberFieldProps {\n value?: string | null;\n onChange: (e164: string) => void;\n defaultCountry?: string;\n label?: string;\n size?: \"small\" | \"medium\";\n disabled?: boolean;\n autoFocus?: boolean;\n onBlur?: () => void;\n}\n\nconst PhoneNumberField: React.FC<PhoneNumberFieldProps> = ({\n value = \"\",\n onChange,\n defaultCountry = \"US\",\n label = \"Phone number\",\n size = \"small\",\n disabled = false,\n autoFocus = false,\n onBlur,\n}) => {\n const theme = useTheme();\n const smMatches = useMediaQuery(theme.breakpoints.down(\"sm\"));\n const countries = (constants.COUNTRIES || []) as any;\n const glassInputSx = {\n backdropFilter: \"blur(10px) saturate(150%)\",\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: alpha(\n \"#FFFFFF\",\n theme.palette.mode === \"dark\" ? 0.16 : 0.58,\n ),\n },\n };\n\n const [country, setCountry] = useState(defaultCountry);\n const [localNumber, setLocalNumber] = useState(\"\");\n const [isFocused, setIsFocused] = useState(false);\n const [selectOpen, setSelectOpen] = useState(false);\n const [ignoreNextOutsideClick, setIgnoreNextOutsideClick] = useState(false);\n\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n\n const parseE164 = useCallback(\n (val: string) => {\n const cleaned = (val || \"\").toString().replace(/\\D/g, \"\");\n if (!cleaned) return { dial: \"\", local: \"\" };\n\n const sorted = [...countries].sort(\n (a, b) => b.phone.length - a.phone.length\n );\n const found = sorted.find((c) => cleaned.startsWith(c.phone));\n if (found) {\n const dial = found.phone;\n const local = cleaned.slice(dial.length);\n return { dial, local: local.slice(-10) };\n }\n return { dial: \"\", local: cleaned.slice(-10) };\n },\n [countries]\n );\n\n useEffect(() => {\n if (isFocused) return;\n if (!value) {\n setLocalNumber(\"\");\n return;\n }\n const { dial, local } = parseE164(String(value));\n if (dial) {\n const found = countries.find((c: any) => c.phone === dial);\n if (found) setCountry(found.code);\n }\n setLocalNumber(local);\n }, [value, parseE164, countries, isFocused]);\n\n const formatLocalNumber = (digits: string) => {\n const cleaned = digits.replace(/\\D/g, \"\").slice(0, 10);\n let formatted = \"\";\n if (cleaned.length > 0) formatted += cleaned.slice(0, 3);\n if (cleaned.length > 3) formatted += \"-\" + cleaned.slice(3, 6);\n if (cleaned.length > 6) formatted += \"-\" + cleaned.slice(6, 10);\n return formatted;\n };\n\n const commitValue = useCallback(() => {\n const sel = countries.find((c: any) => c.code === country);\n const dial = sel?.phone ?? \"\";\n if (dial && localNumber) {\n onChange(`+${dial}${localNumber}`);\n } else {\n onChange(\"\");\n }\n }, [countries, country, localNumber, onChange]);\n\n const handleLocalChange = (e: ChangeEvent<HTMLInputElement>) => {\n const digits = e.target.value.replace(/\\D/g, \"\").slice(0, 10);\n setLocalNumber(digits);\n };\n\n const handleCountryChange = (e: ChangeEvent<HTMLInputElement>) => {\n setCountry(e.target.value);\n };\n\n useEffect(() => {\n const onDocMouseDown = (ev: MouseEvent) => {\n if (!wrapperRef.current) return;\n if (wrapperRef.current.contains(ev.target as Node)) return;\n if (ignoreNextOutsideClick) {\n setIgnoreNextOutsideClick(false);\n return;\n }\n if (isFocused && !selectOpen) {\n commitValue();\n setIsFocused(false);\n onBlur?.();\n }\n };\n document.addEventListener(\"mousedown\", onDocMouseDown);\n return () => document.removeEventListener(\"mousedown\", onDocMouseDown);\n }, [isFocused, selectOpen, ignoreNextOutsideClick, commitValue, onBlur]);\n\n const handleWrapperBlur = (e: FocusEvent<HTMLDivElement>) => {\n const next = e.relatedTarget as Node | null;\n if (wrapperRef.current && next && wrapperRef.current.contains(next)) return;\n if (selectOpen) return;\n if (isFocused) {\n commitValue();\n setIsFocused(false);\n onBlur?.();\n }\n };\n\n return (\n <Box\n ref={wrapperRef}\n onFocusCapture={() => setIsFocused(true)}\n onBlurCapture={handleWrapperBlur}\n sx={{ display: \"flex\", alignItems: \"center\", width: \"100%\" }}\n >\n <Stack\n direction=\"row\"\n spacing={0}\n alignItems=\"center\"\n sx={{ width: \"100%\" }}\n >\n <TextField\n select\n value={country}\n onChange={handleCountryChange}\n disabled={disabled}\n size={size}\n sx={{\n width: 140,\n \"& .MuiOutlinedInput-root\": {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n ...glassInputSx,\n },\n }}\n SelectProps={{\n renderValue: (val: unknown) => {\n const code =\n typeof val === \"string\" ? val : defaultCountry.toUpperCase();\n const c = countries.find((x: any) => x.code === code);\n return c ? `${c.code} (+${c.phone})` : code;\n },\n onOpen: () => {\n setSelectOpen(true);\n setIgnoreNextOutsideClick(true);\n },\n onClose: () => setSelectOpen(false),\n }}\n >\n {countries.map((option: any) => (\n <MenuItem key={option.code} value={option.code}>\n {option.code} (+{option.phone})\n </MenuItem>\n ))}\n </TextField>\n <TextField\n label={label}\n value={localNumber ? formatLocalNumber(localNumber) : \"\"}\n onChange={handleLocalChange}\n placeholder=\" - - \"\n inputProps={{\n inputMode: \"numeric\",\n pattern: \"[0-9]*\",\n maxLength: 12,\n }}\n disabled={disabled}\n size={size}\n autoFocus={autoFocus}\n fullWidth\n sx={{\n \"& .MuiOutlinedInput-root\": {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n ...glassInputSx,\n },\n }}\n />\n </Stack>\n </Box>\n );\n};\n\nexport default PhoneNumberField;\n"],"mappings":"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","names":["import_jsx_runtime","tablePaginationClasses","TablePagination","_a","MuiTablePagination","import_styles","import_material","import_jsx_runtime","_a","import_styles","import_material","import_jsx_runtime","import_styles","import_material","import_icons_material","import_styles","import_jsx_runtime","import_react","import_material","import_styles","import_icons_material","import_jsx_runtime","_a","CloseIcon","import_react","import_material","import_styles","import_jsx_runtime","_a","severity","CloseIcon","import_material","import_styles","import_jsx_runtime","import_material","import_jsx_runtime","_a","import_react","import_material","import_icons_material","import_jsx_runtime","React","import_material","import_styles","import_jsx_runtime","import_styles","import_jsx_runtime","Switch","import_material","import_styles","import_common_library","import_jsx_runtime","_a","import_react","import_material","import_icons_material","import_jsx_runtime","import_react","import_material","import_styles","import_icons_material","import_jsx_runtime","useStyles","React","_a","import_material","import_styles","import_icons_material","import_jsx_runtime","import_react","import_material","import_styles","import_common_library","import_jsx_runtime","_a"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.tsx","../src/TabPanel.tsx","../src/TablePagination.tsx","../src/Logo.tsx","../src/FormDialog.tsx","../src/InputFileUpload.tsx","../src/glassStyles.ts","../src/ImageUploadAvatar.tsx","../src/FormSnackBar.tsx","../src/Loader.tsx","../src/SkeletonBar.tsx","../src/EmptyState.tsx","../src/Pill.tsx","../src/IOSSwitch.tsx","../src/StatusPill.tsx","../src/FormPopover.tsx","../src/SearchableSelect.tsx","../src/FormDrawer.tsx","../src/PhoneNumberField.tsx"],"sourcesContent":["export * from \"@mui/material\";\nexport { default as TabPanel } from \"./TabPanel\";\nexport { default as TablePagination } from \"./TablePagination\";\nexport type { TablePaginationDesignProps } from \"./TablePagination\";\nexport {\n useTheme,\n styled,\n createTheme,\n ThemeProvider,\n} from \"@mui/material/styles\";\nexport { makeStyles } from \"@mui/styles\";\nexport { default as Logo } from \"./Logo\";\nexport { default as FormDialog } from \"./FormDialog\";\nexport { default as InputFileUpload } from \"./InputFileUpload\";\nexport { default as ImageUploadAvatar } from \"./ImageUploadAvatar\";\nexport { default as FormSnackBar } from \"./FormSnackBar\";\nexport { default as Loader } from \"./Loader\";\nexport { default as SkeletonBar } from \"./SkeletonBar\";\nexport { default as EmptyState } from \"./EmptyState\";\nexport { default as Pill } from \"./Pill\";\nexport { default as IOSSwitch } from \"./IOSSwitch\";\nexport { default as StatusPill } from \"./StatusPill\";\nexport { default as FormPopover } from \"./FormPopover\";\nexport { default as SearchableSelect } from \"./SearchableSelect\";\nexport { default as FormDrawer } from \"./FormDrawer\";\nexport { default as PhoneNumberField } from \"./PhoneNumberField\";\n","// @ts-nocheck\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\n\ninterface TabPanelProps {\n children?: React.ReactNode;\n index: number;\n value: number;\n}\n\nconst TabPanel = (props: TabPanelProps) => {\n const { children, value, index, ...other } = props;\n return (\n <div\n role=\"tabpanel\"\n hidden={value !== index}\n id={`simple-tabpanel-${index}`}\n {...other}\n >\n {value === index && <Box sx={{ p: 1 }}>{children}</Box>}\n </div>\n );\n};\n\nexport default TabPanel;\n","import * as React from \"react\";\nimport MuiTablePagination from \"@mui/material/TablePagination\";\nimport type { LabelDisplayedRowsArgs } from \"@mui/material/TablePagination\";\nimport tablePaginationClasses from \"@mui/material/TablePagination/tablePaginationClasses\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\nimport { alpha } from \"@mui/material/styles\";\n\nexport type TablePaginationDesignProps = React.ComponentProps<\n typeof MuiTablePagination\n> & {\n /** Label before the rows-per-page control. Default: \"Per page\". Overrides MUI `labelRowsPerPage` when both are omitted; explicit `labelRowsPerPage` wins. */\n rowsPerPageLabel?: React.ReactNode;\n /** Formats the range summary (e.g. total count). Default: \"1–10 of 47 results\". Overrides MUI `labelDisplayedRows` when both are omitted; explicit `labelDisplayedRows` wins. */\n displayedRangeLabel?: (info: LabelDisplayedRowsArgs) => React.ReactNode;\n};\n\nfunction mergeSx(...parts: (SxProps<Theme> | undefined)[]): SxProps<Theme> {\n const flat: object[] = [];\n for (const p of parts) {\n if (p == null) continue;\n if (Array.isArray(p)) {\n for (const x of p) {\n if (x != null) flat.push(x as object);\n }\n } else {\n flat.push(p as object);\n }\n }\n return flat as SxProps<Theme>;\n}\n\nconst DEFAULT_ROWS_PER_PAGE_LABEL = \"Per page\";\n\nfunction defaultDisplayedRangeLabel({\n from,\n to,\n count,\n}: LabelDisplayedRowsArgs): React.ReactNode {\n if (count === 0) {\n return \"No results\";\n }\n if (count === -1) {\n return `${from}–${to}+`;\n }\n if (from > to) {\n return `0 of ${count} results`;\n }\n return `${from}–${to} of ${count} results`;\n}\n\nfunction defaultGetItemAriaLabel(\n type: \"first\" | \"last\" | \"next\" | \"previous\",\n): string {\n const labels: Record<typeof type, string> = {\n first: \"First page\",\n previous: \"Previous page\",\n next: \"Next page\",\n last: \"Last page\",\n };\n return labels[type];\n}\n\nconst rootSx: SxProps<Theme> = {\n width: \"100%\",\n boxSizing: \"border-box\",\n verticalAlign: \"middle\",\n bgcolor: \"transparent\",\n backdropFilter: \"blur(12px) saturate(150%)\",\n borderRadius: 2,\n py: 0.75,\n px: { xs: 1, sm: 1.5 },\n [`& .${tablePaginationClasses.toolbar}`]: {\n width: \"100%\",\n minHeight: 48,\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n flexWrap: \"nowrap\",\n gap: { xs: 0.75, sm: 1.25 },\n py: 0,\n pr: 0,\n pl: 0,\n maxWidth: \"100%\",\n overflowX: \"auto\",\n },\n [`& .${tablePaginationClasses.spacer}`]: {\n flex: \"1 1 auto\",\n minWidth: 0,\n },\n [`& .${tablePaginationClasses.selectLabel}`]: {\n typography: \"body2\",\n fontWeight: 500,\n textTransform: \"none\",\n color: \"text.secondary\",\n m: 0,\n whiteSpace: \"nowrap\",\n },\n [`& .${tablePaginationClasses.displayedRows}`]: {\n typography: \"body2\",\n fontWeight: 600,\n color: \"text.primary\",\n fontVariantNumeric: \"tabular-nums\",\n m: 0,\n whiteSpace: \"nowrap\",\n },\n [`& .${tablePaginationClasses.input}`]: {\n marginLeft: 0,\n marginRight: 0,\n },\n [`& .${tablePaginationClasses.actions}`]: {\n mx: 1,\n gap: 1,\n display: \"flex\",\n alignItems: \"center\",\n [`& .MuiIconButton-root`]: {\n borderRadius: 2,\n color: \"text.secondary\",\n padding: 0.5,\n border: \"1px solid\",\n borderColor: \"divider\",\n \"&:hover\": {\n bgcolor: \"action.selected\",\n color: \"text.primary\",\n },\n \"&.Mui-disabled\": {\n opacity: 0.36,\n },\n },\n },\n};\n\n/**\n * Design-library TablePagination: forwards MUI props and ref, with a compact\n * toolbar (spacer + `justifyContent: flex-end` so controls stay right),\n * optional `rowsPerPageLabel` / `displayedRangeLabel`, and first/last\n * navigation by default. Use inside `TableFooter` for vertical alignment with\n * table rows.\n */\nconst TablePagination = React.forwardRef(function TablePagination(\n props: TablePaginationDesignProps,\n ref: React.ComponentPropsWithRef<typeof MuiTablePagination>[\"ref\"],\n) {\n const {\n sx,\n slotProps,\n SelectProps,\n showFirstButton = true,\n showLastButton = true,\n labelDisplayedRows: labelDisplayedRowsProp,\n labelRowsPerPage: labelRowsPerPageProp,\n getItemAriaLabel,\n rowsPerPageLabel,\n displayedRangeLabel,\n ...other\n } = props;\n\n const labelRowsPerPageResolved =\n labelRowsPerPageProp ?? rowsPerPageLabel ?? DEFAULT_ROWS_PER_PAGE_LABEL;\n\n const labelDisplayedRowsResolved =\n labelDisplayedRowsProp ?? displayedRangeLabel ?? defaultDisplayedRangeLabel;\n\n const slotSelect = slotProps?.select;\n const { sx: slotSelectSx, ...slotSelectRest } = slotSelect ?? {};\n const { sx: legacySelectSx, ...legacySelectRest } = SelectProps ?? {};\n\n const mergedSelect = {\n variant: \"outlined\" as const,\n size: \"small\" as const,\n ...legacySelectRest,\n ...slotSelectRest,\n sx: mergeSx(\n (theme: Theme) => ({\n borderRadius: 2,\n minWidth: 64,\n fontSize: theme.typography.body2.fontSize,\n backdropFilter: \"blur(10px)\",\n backgroundColor: alpha(\n theme.palette.background.paper,\n theme.palette.mode === \"dark\" ? 0.2 : 0.74,\n ),\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: alpha(\n \"#FFFFFF\",\n theme.palette.mode === \"dark\" ? 0.16 : 0.56,\n ),\n },\n \"&:hover .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"text.disabled\",\n },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"primary.main\",\n },\n \"& .MuiSelect-select\": {\n py: 0.625,\n minHeight: \"unset\",\n display: \"flex\",\n alignItems: \"center\",\n },\n }),\n legacySelectSx,\n slotSelectSx,\n ),\n };\n\n return (\n <MuiTablePagination\n ref={ref}\n showFirstButton={showFirstButton}\n showLastButton={showLastButton}\n labelRowsPerPage={labelRowsPerPageResolved}\n labelDisplayedRows={labelDisplayedRowsResolved}\n getItemAriaLabel={getItemAriaLabel ?? defaultGetItemAriaLabel}\n slotProps={{\n ...slotProps,\n select: mergedSelect,\n }}\n sx={mergeSx(rootSx, sx)}\n {...other}\n />\n );\n});\n\nexport default TablePagination;\n","// @ts-nocheck\nimport React, { memo } from \"react\";\nimport {\n Grid,\n Typography,\n Avatar,\n Tooltip,\n Box,\n useTheme,\n useMediaQuery,\n} from \"@mui/material\";\nimport { capitalizeSentence } from \"@verma-consulting/common-library\";\n\ntype LogoProps = {\n loggedIn?: boolean;\n centered?: boolean;\n organization?: {\n name?: string;\n logo?: { url?: string };\n } | null;\n defaultLogo?: React.ReactNode;\n companyComponent?: React.ReactNode;\n handleClick?: () => void;\n};\n\nconst Logo: React.FC<LogoProps> = memo(\n ({\n loggedIn = false,\n centered = false,\n organization = null,\n defaultLogo = null,\n handleClick = () => null,\n companyComponent = null,\n }) => {\n const theme = useTheme();\n const mdMatches = useMediaQuery(theme.breakpoints.down(\"md\"));\n const maxWidth = mdMatches ? 160 : 320;\n\n const companyName = organization?.name || \"–\";\n const logoUrl = organization?.logo?.url;\n\n if (centered) {\n return (\n <Grid\n container\n direction=\"column\"\n alignItems=\"center\"\n justifyContent=\"center\"\n spacing={1}\n sx={{ cursor: \"pointer\" }}\n onClick={handleClick}\n >\n {(logoUrl || defaultLogo) && (\n <Grid item>\n {logoUrl ? (\n <Avatar\n alt={companyName || \"avatar\"}\n src={logoUrl}\n sx={{\n width: 64, // slightly bigger\n height: 64,\n bgcolor: \"primary.main\",\n fontSize: 20,\n fontWeight: \"bold\",\n }}\n imgProps={{ loading: \"lazy\" }}\n >\n {companyName?.charAt(0) || \"?\"}\n </Avatar>\n ) : (\n defaultLogo\n )}\n </Grid>\n )}\n <Grid item sx={{ maxWidth, textAlign: \"center\" }}>\n {loggedIn ? (\n <Tooltip title={companyName} placement=\"top\" arrow>\n <Typography\n variant=\"h6\"\n sx={{\n fontFamily: \"Courier, monospace\",\n fontWeight: \"bold\",\n color: \"primary.main\",\n }}\n >\n {companyName}\n </Typography>\n </Tooltip>\n ) : (\n <Box sx={{ display: \"flex\", justifyContent: \"center\" }}>\n {companyComponent}\n </Box>\n )}\n </Grid>\n </Grid>\n );\n }\n return (\n <Grid\n container\n alignItems=\"center\"\n wrap=\"nowrap\"\n sx={{\n cursor: \"pointer\",\n \"&:hover\": { opacity: 0.9, transition: \"opacity 0.2s ease-in-out\" },\n }}\n onClick={handleClick}\n >\n {(logoUrl || defaultLogo) && (\n <Box sx={{ mr: 1, display: \"flex\", alignItems: \"center\" }}>\n {logoUrl ? (\n <Avatar\n alt={companyName || \"avatar\"}\n src={logoUrl}\n sx={{\n width: 36,\n height: 36,\n bgcolor: \"primary.main\",\n fontSize: 14,\n fontWeight: \"bold\",\n }}\n imgProps={{ loading: \"lazy\" }}\n >\n {companyName?.charAt(0) || \"?\"}\n </Avatar>\n ) : (\n defaultLogo\n )}\n </Box>\n )}\n\n <Box sx={{ maxWidth, flexShrink: 1, minWidth: 0 }}>\n {loggedIn ? (\n <Tooltip title={companyName} placement=\"top\" arrow>\n <Typography\n variant=\"h6\"\n noWrap\n sx={{\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n fontFamily: \"Courier, monospace\",\n fontWeight: \"bold\",\n color: \"primary.main\",\n }}\n >\n {companyName}\n </Typography>\n </Tooltip>\n ) : (\n companyComponent\n )}\n </Box>\n </Grid>\n );\n },\n);\n\nexport default Logo;\n","// @ts-nocheck\nimport * as React from \"react\";\nimport { styled } from \"@mui/material/styles\";\nimport {\n useTheme,\n useMediaQuery,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n IconButton,\n} from \"@mui/material\";\nexport { useTheme } from \"@mui/material/styles\";\nimport { Close } from \"@mui/icons-material\";\n\nconst BootstrapDialog = styled(Dialog)(({ theme }) => ({\n \"& .MuiDialog-paper\": {\n borderRadius: 24,\n },\n \"& .MuiDialogContent-root\": {\n padding: theme.spacing(4),\n },\n \"& .MuiDialogActions-root\": {\n padding: theme.spacing(4),\n },\n}));\n\nexport interface DialogTitleProps {\n id: string;\n children?: React.ReactNode;\n onClose: () => void;\n}\n\nconst BootstrapDialogTitle = (props: DialogTitleProps) => {\n const { children, onClose, ...other } = props;\n\n return (\n <DialogTitle\n sx={{\n px: 3,\n py: 3,\n pt: 3.5,\n pb: 2.5,\n fontSize: \"1.25rem\",\n fontWeight: 600,\n letterSpacing: \"0.02em\",\n lineHeight: 1.35,\n color: \"primary.main\",\n }}\n {...other}\n >\n {children}\n {onClose ? (\n <IconButton\n onClick={onClose}\n sx={{\n position: \"absolute\",\n right: 16,\n top: 16,\n }}\n >\n <Close color=\"primary\" />\n </IconButton>\n ) : null}\n </DialogTitle>\n );\n};\n\nconst FormDialog = ({\n open = false,\n setOpen,\n title = \"\",\n actions,\n children,\n maxWidth = \"lg\",\n ...props\n}) => {\n const theme = useTheme();\n const mdMatches = useMediaQuery(theme.breakpoints.down(\"md\"));\n return (\n <BootstrapDialog\n fullWidth\n onClose={() => setOpen(false)}\n open={open}\n maxWidth={maxWidth}\n fullScreen={mdMatches}\n >\n <BootstrapDialogTitle onClose={() => setOpen(false)}>\n {title}\n </BootstrapDialogTitle>\n <DialogContent dividers>{children}</DialogContent>\n <DialogActions>{actions}</DialogActions>\n </BootstrapDialog>\n );\n};\n\nexport default FormDialog;\n","// @ts-nocheck\nimport React from \"react\";\nimport { alpha, styled, useTheme } from \"@mui/material/styles\";\nimport { Box, Typography } from \"@mui/material\";\nimport { CloudUpload } from \"@mui/icons-material\";\nimport { glassHover, glassSurface } from \"./glassStyles\";\n\nconst VisuallyHiddenInput = styled(\"input\")({\n clip: \"rect(0 0 0 0)\",\n clipPath: \"inset(50%)\",\n height: 1,\n overflow: \"hidden\",\n position: \"absolute\",\n bottom: 0,\n left: 0,\n whiteSpace: \"nowrap\",\n width: 1,\n});\n\nexport type InputFileUploadProps = {\n name?: string;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n /** Primary label (e.g. “Upload document”). */\n title?: string;\n /** Secondary line under the title (e.g. accepted types). */\n subtitle?: string;\n accept?: string;\n multiple?: boolean;\n disabled?: boolean;\n /** Stretch to the width of the parent container. */\n fullWidth?: boolean;\n};\n\nconst InputFileUpload: React.FC<InputFileUploadProps> = ({\n name = \"\",\n onChange = () => null,\n title = \"Choose file\",\n subtitle = \"Tap to browse\",\n accept,\n multiple,\n disabled = false,\n fullWidth = false,\n}) => {\n const theme = useTheme();\n\n return (\n <Box\n component=\"label\"\n sx={(t) => ({\n ...glassSurface(t),\n display: fullWidth ? \"flex\" : \"inline-flex\",\n alignItems: \"center\",\n gap: 2,\n width: fullWidth ? \"100%\" : \"auto\",\n maxWidth: \"100%\",\n px: 2.25,\n py: 1.75,\n borderRadius: 2.5,\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n opacity: disabled ? 0.52 : 1,\n pointerEvents: disabled ? \"none\" : \"auto\",\n transition: \"box-shadow 0.2s ease, transform 0.2s ease\",\n borderStyle: \"dashed\",\n borderWidth: 1,\n borderColor: alpha(\n t.palette.primary.main,\n t.palette.mode === \"dark\" ? 0.35 : 0.28,\n ),\n \"&:hover\": !disabled\n ? {\n ...glassHover(t),\n borderColor: alpha(t.palette.primary.main, 0.45),\n boxShadow:\n t.palette.mode === \"dark\"\n ? \"0 12px 28px rgba(0,0,0,0.38)\"\n : \"0 12px 28px rgba(15, 23, 42, 0.12)\",\n }\n : undefined,\n \"&:focus-within\": {\n outline: `2px solid ${alpha(t.palette.primary.main, 0.45)}`,\n outlineOffset: 2,\n },\n })}\n >\n <Box\n aria-hidden\n sx={{\n flexShrink: 0,\n width: 44,\n height: 44,\n borderRadius: 2,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n background: alpha(\n theme.palette.primary.main,\n theme.palette.mode === \"dark\" ? 0.22 : 0.12,\n ),\n border: `1px solid ${alpha(theme.palette.primary.main, 0.25)}`,\n color: \"primary.main\",\n }}\n >\n <CloudUpload sx={{ fontSize: 22 }} />\n </Box>\n\n <Box sx={{ flex: 1, minWidth: 0, textAlign: \"left\" }}>\n <Typography\n variant=\"subtitle2\"\n component=\"span\"\n display=\"block\"\n fontWeight={700}\n color=\"text.primary\"\n letterSpacing=\"-0.01em\"\n >\n {title}\n </Typography>\n <Typography\n variant=\"caption\"\n color=\"text.secondary\"\n display=\"block\"\n sx={{ mt: 0.25 }}\n >\n {subtitle}\n </Typography>\n </Box>\n\n <VisuallyHiddenInput\n type=\"file\"\n name={name}\n onChange={onChange}\n accept={accept}\n multiple={multiple}\n disabled={disabled}\n />\n </Box>\n );\n};\n\nexport default InputFileUpload;\n","import { alpha, Theme } from \"@mui/material/styles\";\n\nexport const glassBorder = (theme: Theme) =>\n `1px solid ${alpha(\n \"#FFFFFF\",\n theme.palette.mode === \"dark\" ? 0.16 : 0.62,\n )}`;\n\nexport const glassSurface = (theme: Theme) => ({\n background:\n theme.palette.mode === \"dark\"\n ? `linear-gradient(160deg, ${alpha(\"#1F2937\", 0.78)} 0%, ${alpha(\"#111827\", 0.68)} 100%)`\n : `linear-gradient(160deg, ${alpha(\"#FFFFFF\", 0.88)} 0%, ${alpha(\"#F5F9FF\", 0.72)} 100%)`,\n border: glassBorder(theme),\n backdropFilter: \"blur(18px) saturate(155%)\",\n WebkitBackdropFilter: \"blur(18px) saturate(155%)\",\n boxShadow:\n theme.palette.mode === \"dark\"\n ? \"0 16px 40px rgba(0,0,0,0.34)\"\n : \"0 14px 34px rgba(15, 23, 42, 0.12)\",\n});\n\nexport const glassHover = (theme: Theme) => ({\n background:\n theme.palette.mode === \"dark\"\n ? `linear-gradient(160deg, ${alpha(\"#374151\", 0.8)} 0%, ${alpha(\"#1F2937\", 0.74)} 100%)`\n : `linear-gradient(160deg, ${alpha(\"#FFFFFF\", 0.97)} 0%, ${alpha(\"#EEF5FF\", 0.86)} 100%)`,\n});\n","import React, { useEffect, useRef, useState, ChangeEvent } from \"react\";\nimport { Box, IconButton } from \"@mui/material\";\nimport { alpha, styled } from \"@mui/material/styles\";\nimport { CloudUpload, Close as CloseIcon } from \"@mui/icons-material\";\nimport { glassSurface } from \"./glassStyles\";\n\ntype ImageUploadAvatarProps = {\n name?: string;\n defaultValue?: string | null;\n onChange?: (file: File | null, previewSrc: string | null) => void;\n size?: number;\n variant?: \"circular\" | \"rounded\" | \"square\";\n accept?: string;\n disabled?: boolean;\n allowClear?: boolean;\n};\n\nconst HiddenInput = styled(\"input\")({\n position: \"absolute\",\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0 0 0 0)\",\n border: 0,\n});\n\nconst Wrapper = styled(Box, {\n shouldForwardProp: (prop) => prop !== \"variant\" && prop !== \"size\",\n})<{ size: number; variant: \"circular\" | \"rounded\" | \"square\" }>(({ theme, size, variant }) => ({\n position: \"relative\",\n width: size,\n height: size,\n borderRadius: variant === \"circular\" ? \"50%\" : variant === \"rounded\" ? theme.shape.borderRadius * 2 : 0,\n ...glassSurface(theme),\n border: `1px dashed ${alpha(theme.palette.primary.main, 0.28)}`,\n overflow: \"hidden\",\n cursor: \"pointer\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n}));\n\nconst PreviewImg = styled(\"img\")({\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n display: \"block\",\n});\n\nconst Overlay = styled(Box)(({ theme }) => ({\n position: \"absolute\",\n inset: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n transition: \"background 120ms ease\",\n borderRadius: \"inherit\",\n \"& .uploadIcon\": {\n opacity: 0,\n transition: \"opacity 120ms ease, transform 120ms ease\",\n transform: \"scale(0.95)\",\n },\n \"&.empty .uploadIcon\": {\n opacity: 0.6,\n transform: \"scale(1)\",\n },\n \"&.hover\": {\n background: \"rgba(0,0,0,0.15)\",\n \"& .uploadIcon\": { opacity: 1, transform: \"scale(1)\" },\n },\n}));\n\nconst ClearButton = styled(IconButton)(({ theme }) => ({\n position: \"absolute\",\n top: -8,\n right: -8,\n ...glassSurface(theme),\n boxShadow: theme.shadows[2],\n \"&:hover\": {\n background: alpha(theme.palette.background.paper, 0.9),\n },\n}));\n\nexport const ImageUploadAvatar: React.FC<ImageUploadAvatarProps> = ({\n name = \"image\",\n defaultValue = null,\n onChange,\n size = 128,\n variant = \"rounded\",\n accept = \"image/*\",\n disabled,\n allowClear = true,\n}) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const [internalSrc, setInternalSrc] = useState<string | null>(defaultValue ?? null);\n const [hover, setHover] = useState(false);\n\n useEffect(() => {\n if (!defaultValue) return;\n if (!internalSrc || !internalSrc.startsWith(\"blob:\")) {\n setInternalSrc(defaultValue);\n }\n }, [defaultValue]);\n\n useEffect(() => {\n return () => {\n if (internalSrc?.startsWith(\"blob:\")) {\n URL.revokeObjectURL(internalSrc);\n }\n };\n }, [internalSrc]);\n\n const handlePick = (e: ChangeEvent<HTMLInputElement>) => {\n const selected = e.target.files?.[0] ?? null;\n if (internalSrc?.startsWith(\"blob:\")) {\n URL.revokeObjectURL(internalSrc);\n }\n let preview: string | null = null;\n if (selected) {\n preview = URL.createObjectURL(selected);\n setInternalSrc(preview);\n } else {\n setInternalSrc(null);\n }\n if (inputRef.current) inputRef.current.value = \"\";\n onChange?.(selected, preview);\n };\n\n const triggerPick = () => {\n if (!disabled) inputRef.current?.click();\n };\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (internalSrc?.startsWith(\"blob:\")) {\n URL.revokeObjectURL(internalSrc);\n }\n setInternalSrc(null);\n onChange?.(null, null);\n };\n\n return (\n <Wrapper\n role=\"button\"\n size={size}\n variant={variant}\n onPointerEnter={() => setHover(true)}\n onPointerLeave={() => setHover(false)}\n onClick={triggerPick}\n >\n {internalSrc && <PreviewImg src={internalSrc} />}\n <Overlay className={`${!internalSrc ? \"empty\" : \"\"} ${hover && !disabled ? \"hover\" : \"\"}`}>\n <CloudUpload className=\"uploadIcon\" fontSize=\"large\" />\n </Overlay>\n\n {allowClear && internalSrc && !disabled && (\n <ClearButton size=\"small\" aria-label=\"Clear image\" onClick={handleClear} sx={{ m: 1 }}>\n <CloseIcon fontSize=\"inherit\" />\n </ClearButton>\n )}\n\n <HiddenInput ref={inputRef} type=\"file\" name={name} accept={accept} onChange={handlePick} disabled={disabled} />\n </Wrapper>\n );\n};\n\nexport default ImageUploadAvatar;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { Alert, Grow, IconButton, type AlertProps } from \"@mui/material\";\nimport { alpha, useTheme } from \"@mui/material/styles\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { constants } from \"@verma-consulting/common-library\";\n\nconst SNACKBAR_TYPES = (constants as any)?.SNACKBAR_TYPES;\n\nexport type SnackbarType = \"success\" | \"error\" | \"warning\" | \"info\" | \"\";\n\nconst DULL_SNACKBAR_COLORS = {\n success: \"#6B8E6B\",\n warning: \"#C97B4B\", // dull orange soda\n info: \"#4A5E8A\",\n error: \"#9B4444\",\n} as const;\n\nexport interface FormSnackBarState {\n open?: boolean;\n message?: string;\n type?: SnackbarType;\n}\n\nexport interface FormSnackBarProps {\n snackBar?: FormSnackBarState;\n setSnackBar?: (state: FormSnackBarState) => void;\n autoHideDuration?: number;\n}\n\nfunction isSnackbarType(val: unknown): val is Exclude<SnackbarType, \"\"> {\n if (typeof val !== \"string\") return false;\n if (!SNACKBAR_TYPES) {\n return ([\"success\", \"error\", \"warning\", \"info\"] as const).includes(\n val as any,\n );\n }\n const values = Object.values(SNACKBAR_TYPES) as string[];\n return values.includes(val);\n}\n\nconst FormSnackBar: React.FC<FormSnackBarProps> = ({\n snackBar = {},\n setSnackBar = () => null,\n autoHideDuration = 3500,\n}) => {\n const theme = useTheme();\n\n const [queue, setQueue] = useState<\n Array<{ id: string; type: SnackbarType; message: string }>\n >([]);\n const idRef = useRef(0);\n const prevOpenRef = useRef<boolean>(!!snackBar?.open);\n const prevSignatureRef = useRef<string>(\"\");\n const timersRef = useRef<Record<string, ReturnType<typeof setTimeout>>>({});\n\n const type = (snackBar.type ?? \"\") as SnackbarType;\n const message = snackBar.message ?? \"\";\n\n const severity: AlertProps[\"severity\"] = isSnackbarType(type) ? type : \"info\";\n\n const enqueueFromProp = () => {\n if (!snackBar?.open) return;\n if (!message) return;\n\n const signature = `${type}::${message}`;\n const openRose = !prevOpenRef.current && !!snackBar?.open;\n const signatureChanged = signature !== prevSignatureRef.current;\n\n // Enqueue on a rising edge OR when message/type changes while still open.\n if (!openRose && !signatureChanged) return;\n\n prevSignatureRef.current = signature;\n const id = String(++idRef.current);\n setQueue((q) => [...q, { id, type, message }]);\n\n timersRef.current[id] = setTimeout(() => {\n setQueue((q) => q.filter((item) => item.id !== id));\n delete timersRef.current[id];\n }, autoHideDuration);\n\n // Reset the external trigger immediately so repeated actions can enqueue again.\n setSnackBar({ open: false, message: \"\", type: \"\" });\n };\n\n useEffect(() => {\n const nextOpen = !!snackBar?.open;\n // Enqueue on open change and/or message change while open.\n enqueueFromProp();\n prevOpenRef.current = nextOpen;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [snackBar?.open, snackBar?.message, snackBar?.type]);\n\n const handleDismiss = (id: string) => {\n const t = timersRef.current[id];\n if (t) clearTimeout(t);\n delete timersRef.current[id];\n setQueue((q) => q.filter((item) => item.id !== id));\n };\n\n useEffect(() => {\n return () => {\n Object.values(timersRef.current).forEach((t) => clearTimeout(t));\n timersRef.current = {};\n };\n }, []);\n\n const typeStyles = (severity: AlertProps[\"severity\"]) => {\n // Softer, dull colors so they are visible without being harsh.\n const baseHex =\n severity === \"success\"\n ? DULL_SNACKBAR_COLORS.success\n : severity === \"error\"\n ? DULL_SNACKBAR_COLORS.error\n : severity === \"warning\"\n ? DULL_SNACKBAR_COLORS.warning\n : DULL_SNACKBAR_COLORS.info;\n return {\n bg:\n theme.palette.mode === \"dark\"\n ? alpha(baseHex, 0.34)\n : alpha(baseHex, 0.24),\n text: theme.palette.mode === \"dark\" ? \"rgba(255,255,255,0.94)\" : baseHex,\n icon: baseHex,\n };\n };\n\n return (\n <div\n aria-live=\"polite\"\n aria-atomic=\"true\"\n style={{\n position: \"fixed\",\n top: 12,\n right: 12,\n zIndex: 1400,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 8,\n width: \"min(420px, calc(100vw - 24px))\",\n pointerEvents: \"none\",\n }}\n >\n {queue.map((item) => {\n const localSeverity: AlertProps[\"severity\"] = isSnackbarType(item.type)\n ? item.type\n : \"info\";\n\n const colors = typeStyles(localSeverity);\n\n return (\n <Grow key={item.id} in timeout={280}>\n <Alert\n variant=\"filled\"\n severity={localSeverity}\n sx={{\n width: \"100%\",\n pointerEvents: \"auto\",\n borderRadius: 2,\n px: { xs: 1.25, sm: 1.5 },\n py: 0.875,\n alignItems: \"center\",\n boxShadow: 2,\n backgroundColor: colors.bg,\n color: colors.text,\n backdropFilter: \"blur(14px) saturate(150%)\",\n WebkitBackdropFilter: \"blur(14px) saturate(150%)\",\n border: `1px solid ${alpha(\"#FFFFFF\", theme.palette.mode === \"dark\" ? 0.16 : 0.55)}`,\n \"& .MuiAlert-icon\": {\n color: colors.icon,\n },\n \"& .MuiAlert-message\": {\n m: 0,\n p: 0,\n fontWeight: 600,\n letterSpacing: \"-0.01em\",\n },\n }}\n action={\n <IconButton\n aria-label=\"close\"\n color=\"inherit\"\n size=\"small\"\n onClick={() => handleDismiss(item.id)}\n >\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n }\n >\n {item.message}\n </Alert>\n </Grow>\n );\n })}\n </div>\n );\n};\n\nexport default FormSnackBar;\n","import React from \"react\";\nimport { CircularProgress, Backdrop } from \"@mui/material\";\nimport { makeStyles } from \"@mui/styles\";\nimport { alpha } from \"@mui/material/styles\";\n\ninterface LoaderProps {\n size?: number;\n color?: \"primary\" | \"secondary\" | \"inherit\" | \"success\" | \"error\" | \"info\" | \"warning\";\n}\n\nconst useStyles = makeStyles({\n \"@keyframes pulse\": {\n \"0%\": { transform: \"scale(1)\", opacity: 0.9 },\n \"50%\": { transform: \"scale(1.05)\", opacity: 1 },\n \"100%\": { transform: \"scale(1)\", opacity: 0.9 },\n },\n progress: {\n animation: \"$pulse 1.5s ease-in-out infinite\",\n },\n});\n\nconst Loader: React.FC<LoaderProps> = ({ size = 48, color = \"primary\" }) => {\n const classes = useStyles();\n\n return (\n <Backdrop\n open\n sx={{\n zIndex: (theme) => theme.zIndex.modal + 1,\n backgroundColor: \"transparent\",\n backdropFilter: \"blur(10px) saturate(145%)\",\n }}\n >\n <CircularProgress\n size={size}\n color={color}\n thickness={3.4}\n className={classes.progress}\n sx={{\n p: 1,\n borderRadius: \"50%\",\n backgroundColor: \"transparent\",\n border: (theme) =>\n `1px solid ${alpha(\"#FFFFFF\", theme.palette.mode === \"dark\" ? 0.14 : 0.56)}`,\n boxShadow: (theme) =>\n theme.palette.mode === \"dark\"\n ? \"0 10px 24px rgba(0,0,0,0.32)\"\n : \"0 10px 20px rgba(15,23,42,0.14)\",\n }}\n />\n </Backdrop>\n );\n};\n\nexport default Loader;\n","// @ts-nocheck\nimport React from \"react\";\nimport { Box, useTheme } from \"@mui/material\";\n\nconst SHIMMER_KEYFRAMES = {\n \"@keyframes skeletonShimmer\": {\n \"0%\": { backgroundPosition: \"200% 0\" },\n \"100%\": { backgroundPosition: \"-200% 0\" },\n },\n};\n\nexport interface SkeletonBarProps {\n width?: string | number;\n height?: number;\n sx?: object;\n}\n\n/**\n * Horizontal bar with sideways shimmer loading animation.\n * Use in tables, cards, selects, and any loading placeholder.\n */\nexport const SkeletonBar: React.FC<SkeletonBarProps> = ({\n width = \"100%\",\n height = 24,\n sx = {},\n}) => {\n const theme = useTheme();\n const base =\n theme.palette.mode === \"dark\"\n ? (theme.palette.grey?.[700] ?? \"#424242\")\n : (theme.palette.grey?.[200] ?? \"#e0e0e0\");\n const highlight =\n theme.palette.mode === \"dark\"\n ? (theme.palette.grey?.[600] ?? \"#616161\")\n : (theme.palette.grey?.[100] ?? \"#f5f5f5\");\n\n return (\n <Box\n sx={{\n ...SHIMMER_KEYFRAMES,\n borderRadius: 2,\n height,\n width,\n maxWidth: \"100%\",\n overflow: \"hidden\",\n background: `linear-gradient(90deg, ${base} 0%, ${highlight} 20%, ${base} 40%, ${base} 100%)`,\n backgroundSize: \"200% 100%\",\n animation: \"skeletonShimmer 1.4s ease-in-out infinite\",\n ...sx,\n }}\n />\n );\n};\n\nexport default SkeletonBar;\n","// @ts-nocheck\nimport React from \"react\";\nimport { Box, Typography, useTheme } from \"@mui/material\";\nimport { DatasetOutlined } from \"@mui/icons-material\";\n\nexport interface EmptyStateProps {\n /** Label text to display (e.g. getContent(\"noDataDescription\")) */\n label?: string;\n /** Vertical margin (theme spacing, default 8) */\n m?: number;\n /** Optional custom icon */\n icon?: React.ReactNode;\n}\n\nconst EmptyState: React.FC<EmptyStateProps> = ({ label, m = 8, icon }) => {\n const theme = useTheme();\n const text = label ?? \"No data created yet\";\n\n const iconColor =\n theme.palette.mode === \"dark\"\n ? \"rgba(255,255,255,0.42)\"\n : \"rgba(0,0,0,0.42)\";\n\n const labelColor =\n theme.palette.mode === \"dark\"\n ? \"rgba(255,255,255,0.50)\"\n : \"rgba(0,0,0,0.38)\";\n\n const iconEl =\n icon != null && React.isValidElement(icon) ? (\n icon\n ) : (\n <DatasetOutlined\n sx={{\n fontSize: 48,\n color: iconColor,\n display: \"block\",\n }}\n />\n );\n\n return (\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 1.5,\n minHeight: 160,\n m,\n py: 3,\n px: 2,\n }}\n >\n {iconEl}\n <Typography\n variant=\"body2\"\n align=\"center\"\n sx={{\n fontWeight: 400,\n fontSize: \"0.875rem\",\n letterSpacing: \"0.01em\",\n color: labelColor,\n maxWidth: 320,\n lineHeight: 1.5,\n }}\n >\n {text}\n </Typography>\n </Box>\n );\n};\nexport default EmptyState;\n","// @ts-nocheck\nimport React from \"react\";\nimport { Button, Typography, Icon } from \"@mui/material\";\nimport { alpha, useTheme } from \"@mui/material/styles\";\nimport { glassSurface } from \"./glassStyles\";\n\nexport type PillProps = {\n label?: string;\n leftIcon?: string;\n rightIcon?: string;\n color?: string;\n isSelected?: boolean;\n onClick?: () => void;\n disabled?: boolean;\n};\n\nconst Pill = ({\n variant = \"filter\",\n leftIcon = null,\n rightIcon = null,\n color = null,\n isSelected = false,\n onClick = () => null,\n label = \"\",\n disabled = false,\n}: PillProps) => {\n const theme = useTheme();\n\n return (\n <Button\n variant={isSelected ? \"contained\" : \"outlined\"}\n color={color || \"primary\"}\n sx={{\n ...glassSurface(theme),\n borderRadius: 16,\n padding: \"8px 16px\",\n minHeight: 38,\n textTransform: \"none\",\n borderColor: isSelected\n ? alpha(theme.palette.primary.main, 0.34)\n : alpha(theme.palette.text.primary, 0.18),\n color: isSelected ? \"primary.main\" : \"text.primary\",\n \"&:hover\": {\n borderColor: alpha(theme.palette.primary.main, 0.42),\n boxShadow:\n theme.palette.mode === \"dark\"\n ? \"0 10px 22px rgba(0,0,0,0.34)\"\n : \"0 10px 20px rgba(15,23,42,0.14)\",\n },\n }}\n onClick={onClick}\n disabled={disabled}\n >\n <div style={{ display: \"flex\", alignItems: \"center\" }}>\n {leftIcon && (\n <Icon\n className={leftIcon}\n fontSize={14}\n color=\"inherit\"\n style={{ paddingRight: 8 }}\n data-testid=\"pill-left-icon\"\n />\n )}\n <Typography variant=\"subtitle2\" color=\"inherit\" fontWeight={700}>\n {label}\n </Typography>\n {rightIcon && (\n <Icon\n className={rightIcon}\n fontSize={14}\n color=\"inherit\"\n style={{ marginLeft: 8 }}\n data-testid=\"pill-right-icon\"\n />\n )}\n </div>\n </Button>\n );\n};\n\nexport default Pill;\n","import React from \"react\";\nimport { alpha, styled } from \"@mui/material/styles\";\nimport Switch, { SwitchProps } from \"@mui/material/Switch\";\n\n// explicitly type as FC with SwitchProps\nconst IOSSwitch: React.FC<SwitchProps> = styled((props: SwitchProps) => (\n <Switch focusVisibleClassName=\".Mui-focusVisible\" disableRipple {...props} />\n))(({ theme }) => ({\n width: 46,\n height: 30,\n padding: 0,\n \"& .MuiSwitch-switchBase\": {\n padding: 0,\n margin: 2,\n transitionDuration: \"300ms\",\n \"&.Mui-checked\": {\n transform: \"translateX(16px)\",\n color: \"#fff\",\n \"& + .MuiSwitch-track\": {\n background: `linear-gradient(120deg, ${alpha(theme.palette.primary.light, 0.92)} 0%, ${alpha(theme.palette.primary.main, 0.94)} 100%)`,\n opacity: 1,\n border: 0,\n },\n \"&.Mui-disabled + .MuiSwitch-track\": {\n opacity: 0.5,\n },\n },\n \"&.Mui-focusVisible .MuiSwitch-thumb\": {\n color: \"#33cf4d\",\n border: \"6px solid #fff\",\n },\n \"&.Mui-disabled .MuiSwitch-thumb\": {\n color:\n theme.palette.mode === \"light\"\n ? theme.palette.grey[100]\n : theme.palette.grey[600],\n },\n \"&.Mui-disabled + .MuiSwitch-track\": {\n opacity: theme.palette.mode === \"light\" ? 0.7 : 0.3,\n },\n },\n \"& .MuiSwitch-thumb\": {\n boxSizing: \"border-box\",\n width: 26,\n height: 26,\n boxShadow:\n theme.palette.mode === \"dark\"\n ? \"0 2px 8px rgba(0,0,0,0.38)\"\n : \"0 2px 6px rgba(15,23,42,0.24)\",\n },\n \"& .MuiSwitch-track\": {\n borderRadius: 16,\n background:\n theme.palette.mode === \"light\"\n ? \"linear-gradient(120deg, rgba(245,248,255,0.92) 0%, rgba(224,232,245,0.92) 100%)\"\n : \"linear-gradient(120deg, rgba(55,65,81,0.74) 0%, rgba(31,41,55,0.8) 100%)\",\n border: `1px solid ${alpha(\"#FFFFFF\", theme.palette.mode === \"dark\" ? 0.16 : 0.56)}`,\n backdropFilter: \"blur(10px) saturate(145%)\",\n WebkitBackdropFilter: \"blur(10px) saturate(145%)\",\n opacity: 1,\n transition: theme.transitions.create([\"background-color\"], {\n duration: 500,\n }),\n },\n}));\n\nexport default IOSSwitch;\n","import React from \"react\";\nimport { Chip } from \"@mui/material\";\nimport { alpha, useTheme } from \"@mui/material/styles\";\nimport { userStatus } from \"@verma-consulting/common-library\";\nimport { glassSurface } from \"./glassStyles\";\n\ninterface StatusPillProps {\n status: userStatus;\n}\n\nconst statusColorMap: Record<userStatus, string> = {\n [userStatus.Pending]: \"#B06A00\",\n [userStatus.Active]: \"#087443\",\n [userStatus.Inactive]: \"#B42318\",\n [userStatus.Invited]: \"#175CD3\",\n};\n\nconst StatusPill: React.FC<StatusPillProps> = ({ status }) => {\n const theme = useTheme();\n\n return (\n <Chip\n label={status}\n variant=\"outlined\"\n sx={{\n ...glassSurface(theme),\n minHeight: 38,\n fontWeight: 700,\n borderRadius: 16,\n px: 1.25,\n letterSpacing: \"0.01em\",\n color: statusColorMap[status] ?? theme.palette.text.primary,\n backgroundColor: alpha(\n statusColorMap[status] ?? theme.palette.text.primary,\n theme.palette.mode === \"dark\" ? 0.24 : 0.12,\n ),\n borderColor: alpha(\n statusColorMap[status] ?? theme.palette.text.primary,\n theme.palette.mode === \"dark\" ? 0.36 : 0.28,\n ),\n \"& .MuiChip-label\": {\n px: 1.25,\n },\n }}\n />\n );\n};\n\nexport default StatusPill;\n","import React, { useState, MouseEvent, ReactNode, FC } from \"react\";\nimport { Tooltip, IconButton, Popover } from \"@mui/material\";\nimport { MoreHoriz } from \"@mui/icons-material\";\n\ninterface FormPopoverProps {\n row?: any;\n children: (props: { row: any; handleClose: () => void }) => React.ReactNode;\n title?: string;\n}\n\nconst FormPopover: FC<FormPopoverProps> = ({ row, children, title }) => {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const open = Boolean(anchorEl);\n\n return (\n <>\n <Tooltip title={title}>\n <IconButton\n onClick={handleClick}\n size=\"small\"\n sx={{\n backgroundColor: \"white\",\n boxShadow: 1,\n borderRadius: \"50%\",\n border: \"1px solid transparent\",\n \"&:hover\": {\n border: (theme) => `1px solid ${theme.palette.primary.main}`,\n backgroundColor: \"#f0f0f0\",\n },\n }}\n >\n <MoreHoriz fontSize=\"inherit\" color=\"primary\" />\n </IconButton>\n </Tooltip>\n <Popover\n open={open}\n anchorEl={anchorEl}\n onClose={handleClose}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"left\",\n }}\n >\n {children({ row, handleClose })}\n </Popover>\n </>\n );\n};\n\nexport default FormPopover;\n","// @ts-nocheck\nimport React, { useEffect, useRef, useState, useMemo } from \"react\";\nimport {\n Autocomplete,\n TextField,\n Typography,\n FormLabel,\n FormControl,\n IconButton,\n} from \"@mui/material\";\nimport { alpha, useTheme } from \"@mui/material/styles\";\nimport { Clear } from \"@mui/icons-material\";\nimport { makeStyles } from \"@mui/styles\";\nimport { GenericPayload } from \"@verma-consulting/common-library\";\n\nconst useStyles = makeStyles((theme) => ({\n defaultMode: {\n margin: \"4px\",\n padding: \"14px 8px\",\n cursor: \"pointer\",\n borderRadius: 8,\n border: `1px solid ${alpha(\"#FFFFFF\", theme.palette.mode === \"dark\" ? 0.16 : 0.55)}`,\n backdropFilter: \"blur(14px) saturate(150%)\",\n background:\n theme.palette.mode === \"dark\"\n ? \"linear-gradient(160deg, rgba(31,41,55,0.78), rgba(17,24,39,0.68))\"\n : \"linear-gradient(160deg, rgba(255,255,255,0.9), rgba(245,249,255,0.72))\",\n \"&:hover\": {\n boxShadow:\n theme.palette.mode === \"dark\"\n ? \"rgba(0, 0, 0, 0.34) 0px 10px 26px\"\n : \"rgba(15, 23, 42, 0.16) 0px 8px 24px\",\n },\n },\n formLabel: {\n cursor: \"pointer\",\n },\n formValue: {\n cursor: \"pointer\",\n wordBreak: \"break-word\",\n whiteSpace: \"pre-wrap\",\n },\n}));\n\ninterface SearchableSelectProps {\n name: string;\n label: string;\n value: string;\n onChange: (value: string) => void;\n options: GenericPayload[];\n size?: \"small\" | \"medium\";\n style?: React.CSSProperties;\n disabled?: boolean;\n /** If `null` or omitted, the clear control is not shown. Pass a handler to enable clear. */\n onClear?: (() => void) | null;\n defaultEditMode?: boolean;\n multiple?: boolean;\n}\n\nconst SearchableSelect: React.FC<SearchableSelectProps> = React.memo(\n ({\n name,\n label,\n value,\n onChange,\n options,\n size = \"small\",\n style,\n disabled = false,\n onClear = null,\n defaultEditMode = false,\n multiple = false,\n }) => {\n const theme = useTheme();\n const classes = useStyles();\n const wrapperRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const [editMode, setEditMode] = useState(defaultEditMode);\n const [open, setOpen] = useState(defaultEditMode);\n const glassBackground =\n theme.palette.mode === \"dark\"\n ? \"linear-gradient(160deg, rgba(31,41,55,0.78), rgba(17,24,39,0.68))\"\n : \"linear-gradient(160deg, rgba(255,255,255,0.9), rgba(245,249,255,0.72))\";\n\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (\n wrapperRef.current &&\n !wrapperRef.current.contains(event.target as Node)\n ) {\n setEditMode(false);\n setOpen(false);\n }\n }\n\n if (editMode) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [editMode]);\n\n useEffect(() => {\n if (editMode && open && inputRef.current) {\n inputRef.current.focus();\n }\n }, [editMode, open]);\n\n const handleClear = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n if (onClear) {\n onClear();\n }\n setEditMode(false);\n setOpen(false);\n };\n\n const selected = useMemo(() => {\n if (multiple) {\n if (!value.trim()) return [];\n const selectedValues = value.split(\", \").map((v) => v.trim());\n return options.filter((opt) => selectedValues.includes(opt.value));\n } else {\n return options.find((opt) => opt.value === value) ?? null;\n }\n }, [value, options, multiple]);\n\n const displayValue = useMemo(() => {\n if (multiple) {\n if (!Array.isArray(selected)) return \"\";\n return selected.map((opt) => opt.label).join(\", \");\n } else {\n return (selected as GenericPayload | null)?.label ?? \"\";\n }\n }, [selected, multiple]);\n\n const isValueEmpty = !value.trim();\n const showClear = onClear != null;\n\n return editMode ? (\n <FormControl fullWidth style={style} disabled={disabled} size={size}>\n <Autocomplete\n multiple={multiple}\n disableCloseOnSelect={multiple}\n options={options}\n value={selected}\n open={open}\n onOpen={() => setOpen(true)}\n onClose={() => setOpen(false)}\n onChange={(_, newValue) => {\n if (multiple) {\n if (Array.isArray(newValue)) {\n let vals = newValue?.map((opt) => opt?.value);\n let val = vals?.join(\", \");\n onChange(val);\n } else {\n onChange(\"\");\n }\n setOpen(true);\n } else {\n onChange((newValue as GenericPayload | null)?.value ?? \"\");\n setOpen(false);\n }\n }}\n disableClearable\n autoHighlight\n getOptionLabel={(option) => option.label}\n isOptionEqualToValue={(option, val) => option.value === val.value}\n sx={{\n \"& .MuiAutocomplete-inputRoot\": {\n background: glassBackground,\n color: \"text.primary\",\n },\n \"& .MuiAutocomplete-inputRoot.Mui-focused\": {\n background: glassBackground,\n color: \"text.primary\",\n },\n \"& .MuiAutocomplete-inputRoot:hover\": {\n background: glassBackground,\n },\n \"& .MuiAutocomplete-input\": {\n color: \"text.primary\",\n WebkitTextFillColor: \"currentColor\",\n },\n \"& .MuiInputLabel-root\": {\n color: \"text.secondary\",\n },\n \"& .MuiInputLabel-root.Mui-focused\": {\n color: \"text.primary\",\n },\n \"& .MuiSvgIcon-root\": {\n color: \"text.secondary\",\n },\n }}\n slotProps={{\n paper: {\n sx: {\n background: glassBackground,\n backdropFilter: \"blur(12px) saturate(150%)\",\n border: `1px solid ${alpha(\"#FFFFFF\", theme.palette.mode === \"dark\" ? 0.16 : 0.55)}`,\n boxShadow:\n theme.palette.mode === \"dark\"\n ? \"rgba(0, 0, 0, 0.34) 0px 10px 26px\"\n : \"rgba(15, 23, 42, 0.16) 0px 8px 24px\",\n \"& .MuiAutocomplete-option\": {\n \"&[aria-selected='true']\": {\n backgroundColor: alpha(\n theme.palette.primary.main,\n theme.palette.mode === \"dark\" ? 0.28 : 0.14,\n ),\n },\n \"&.Mui-focused\": {\n backgroundColor: alpha(\n theme.palette.primary.main,\n theme.palette.mode === \"dark\" ? 0.2 : 0.1,\n ),\n },\n },\n },\n },\n }}\n renderInput={(params) => (\n <TextField\n {...params}\n label={label}\n variant=\"outlined\"\n size={size}\n inputRef={inputRef}\n InputProps={{\n ...params.InputProps,\n sx: {\n borderRadius: 2,\n backdropFilter: \"blur(10px)\",\n pr: 1.5,\n background: glassBackground,\n color: \"text.primary\",\n \"&.Mui-focused\": {\n background: glassBackground,\n },\n \"&:hover\": {\n background: glassBackground,\n },\n \"& .MuiInputBase-input\": {\n color: \"text.primary\",\n WebkitTextFillColor: \"currentColor\",\n },\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: alpha(\n \"#FFFFFF\",\n theme.palette.mode === \"dark\" ? 0.18 : 0.6,\n ),\n },\n },\n endAdornment: (\n <>\n {showClear && !isValueEmpty && (\n <IconButton\n aria-label={`clear ${name}`}\n onClick={handleClear}\n size=\"small\"\n sx={{\n backgroundColor: \"transparent\",\n boxShadow: \"none\",\n mr: 0.25,\n }}\n >\n <Clear fontSize=\"inherit\" />\n </IconButton>\n )}\n {params.InputProps.endAdornment}\n </>\n ),\n }}\n />\n )}\n onBlur={() => {\n setEditMode(false);\n setOpen(false);\n }}\n />\n </FormControl>\n ) : (\n <div\n ref={wrapperRef}\n onClick={() => {\n if (!disabled) {\n setEditMode(true);\n setOpen(true);\n }\n }}\n className={classes.defaultMode}\n style={style}\n >\n <FormLabel\n className={classes.formLabel}\n sx={{ color: \"text.secondary\" }}\n >\n {label}\n </FormLabel>\n <Typography\n className={classes.formValue}\n sx={{ color: \"text.primary\" }}\n >\n {displayValue}\n </Typography>\n </div>\n );\n },\n);\n\nexport default SearchableSelect;\n","import {\n Drawer,\n Typography,\n Box,\n IconButton,\n Grid,\n useTheme,\n useMediaQuery,\n} from \"@mui/material\";\nimport { alpha } from \"@mui/material/styles\";\nimport { Close } from \"@mui/icons-material\";\n\ninterface FormDrawerProps {\n open: boolean;\n setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n title?: string | null;\n actions?: React.ReactNode;\n children: React.ReactNode;\n}\n\nconst FormDrawer: React.FC<FormDrawerProps> = ({\n open,\n setOpen,\n title,\n actions,\n children,\n}) => {\n const theme = useTheme();\n const mdMatches = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n return (\n <Drawer\n anchor={mdMatches ? \"bottom\" : \"right\"}\n open={open}\n onClose={() => setOpen(false)}\n sx={{\n \"& .MuiDrawer-paper\": {\n width: mdMatches ? \"100%\" : \"64%\",\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n borderRadius: mdMatches ? \"24px 24px 0 0\" : \"24px 0 0 24px\",\n },\n }}\n >\n <Box\n p={3}\n borderBottom={`1px solid ${alpha(theme.palette.divider, 0.36)}`}\n >\n <Grid container>\n <Grid item>\n {title && (\n <Typography variant=\"h6\" fontWeight=\"bold\">\n {title}\n </Typography>\n )}\n </Grid>\n <Grid item>\n <IconButton\n size=\"medium\"\n onClick={() => setOpen(false)}\n sx={{\n position: \"absolute\",\n top: 8,\n right: 8,\n zIndex: 2,\n backgroundColor: alpha(theme.palette.background.paper, 0.46),\n }}\n >\n <Close fontSize=\"inherit\" />\n </IconButton>\n </Grid>\n </Grid>\n </Box>\n <Box flex={1} overflow=\"auto\" p={3}>\n {children}\n </Box>\n\n {actions && (\n <Box\n p={2}\n borderTop={`1px solid ${alpha(theme.palette.divider, 0.36)}`}\n sx={{\n position: \"sticky\",\n bottom: 0,\n zIndex: 1,\n backgroundColor: alpha(theme.palette.background.paper, 0.38),\n backdropFilter: \"blur(10px)\",\n }}\n >\n {actions}\n </Box>\n )}\n </Drawer>\n );\n};\n\nexport default FormDrawer;\n","import React, {\n useCallback,\n useEffect,\n useRef,\n useState,\n ChangeEvent,\n FocusEvent,\n} from \"react\";\nimport {\n Box,\n Stack,\n TextField,\n MenuItem,\n useTheme,\n useMediaQuery,\n} from \"@mui/material\";\nimport { alpha } from \"@mui/material/styles\";\nimport { constants } from \"@verma-consulting/common-library\";\n\ninterface PhoneNumberFieldProps {\n value?: string | null;\n onChange: (e164: string) => void;\n defaultCountry?: string;\n label?: string;\n size?: \"small\" | \"medium\";\n disabled?: boolean;\n autoFocus?: boolean;\n onBlur?: () => void;\n}\n\nconst PhoneNumberField: React.FC<PhoneNumberFieldProps> = ({\n value = \"\",\n onChange,\n defaultCountry = \"US\",\n label = \"Phone number\",\n size = \"small\",\n disabled = false,\n autoFocus = false,\n onBlur,\n}) => {\n const theme = useTheme();\n const smMatches = useMediaQuery(theme.breakpoints.down(\"sm\"));\n const countries = (constants.COUNTRIES || []) as any;\n const glassInputSx = {\n backdropFilter: \"blur(10px) saturate(150%)\",\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: alpha(\n \"#FFFFFF\",\n theme.palette.mode === \"dark\" ? 0.16 : 0.58,\n ),\n },\n };\n\n const [country, setCountry] = useState(defaultCountry);\n const [localNumber, setLocalNumber] = useState(\"\");\n const [isFocused, setIsFocused] = useState(false);\n const [selectOpen, setSelectOpen] = useState(false);\n const [ignoreNextOutsideClick, setIgnoreNextOutsideClick] = useState(false);\n\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n\n const parseE164 = useCallback(\n (val: string) => {\n const cleaned = (val || \"\").toString().replace(/\\D/g, \"\");\n if (!cleaned) return { dial: \"\", local: \"\" };\n\n const sorted = [...countries].sort(\n (a, b) => b.phone.length - a.phone.length\n );\n const found = sorted.find((c) => cleaned.startsWith(c.phone));\n if (found) {\n const dial = found.phone;\n const local = cleaned.slice(dial.length);\n return { dial, local: local.slice(-10) };\n }\n return { dial: \"\", local: cleaned.slice(-10) };\n },\n [countries]\n );\n\n useEffect(() => {\n if (isFocused) return;\n if (!value) {\n setLocalNumber(\"\");\n return;\n }\n const { dial, local } = parseE164(String(value));\n if (dial) {\n const found = countries.find((c: any) => c.phone === dial);\n if (found) setCountry(found.code);\n }\n setLocalNumber(local);\n }, [value, parseE164, countries, isFocused]);\n\n const formatLocalNumber = (digits: string) => {\n const cleaned = digits.replace(/\\D/g, \"\").slice(0, 10);\n let formatted = \"\";\n if (cleaned.length > 0) formatted += cleaned.slice(0, 3);\n if (cleaned.length > 3) formatted += \"-\" + cleaned.slice(3, 6);\n if (cleaned.length > 6) formatted += \"-\" + cleaned.slice(6, 10);\n return formatted;\n };\n\n const commitValue = useCallback(() => {\n const sel = countries.find((c: any) => c.code === country);\n const dial = sel?.phone ?? \"\";\n if (dial && localNumber) {\n onChange(`+${dial}${localNumber}`);\n } else {\n onChange(\"\");\n }\n }, [countries, country, localNumber, onChange]);\n\n const handleLocalChange = (e: ChangeEvent<HTMLInputElement>) => {\n const digits = e.target.value.replace(/\\D/g, \"\").slice(0, 10);\n setLocalNumber(digits);\n };\n\n const handleCountryChange = (e: ChangeEvent<HTMLInputElement>) => {\n setCountry(e.target.value);\n };\n\n useEffect(() => {\n const onDocMouseDown = (ev: MouseEvent) => {\n if (!wrapperRef.current) return;\n if (wrapperRef.current.contains(ev.target as Node)) return;\n if (ignoreNextOutsideClick) {\n setIgnoreNextOutsideClick(false);\n return;\n }\n if (isFocused && !selectOpen) {\n commitValue();\n setIsFocused(false);\n onBlur?.();\n }\n };\n document.addEventListener(\"mousedown\", onDocMouseDown);\n return () => document.removeEventListener(\"mousedown\", onDocMouseDown);\n }, [isFocused, selectOpen, ignoreNextOutsideClick, commitValue, onBlur]);\n\n const handleWrapperBlur = (e: FocusEvent<HTMLDivElement>) => {\n const next = e.relatedTarget as Node | null;\n if (wrapperRef.current && next && wrapperRef.current.contains(next)) return;\n if (selectOpen) return;\n if (isFocused) {\n commitValue();\n setIsFocused(false);\n onBlur?.();\n }\n };\n\n return (\n <Box\n ref={wrapperRef}\n onFocusCapture={() => setIsFocused(true)}\n onBlurCapture={handleWrapperBlur}\n sx={{ display: \"flex\", alignItems: \"center\", width: \"100%\" }}\n >\n <Stack\n direction=\"row\"\n spacing={0}\n alignItems=\"center\"\n sx={{ width: \"100%\" }}\n >\n <TextField\n select\n value={country}\n onChange={handleCountryChange}\n disabled={disabled}\n size={size}\n sx={{\n width: 140,\n \"& .MuiOutlinedInput-root\": {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n ...glassInputSx,\n },\n }}\n SelectProps={{\n renderValue: (val: unknown) => {\n const code =\n typeof val === \"string\" ? val : defaultCountry.toUpperCase();\n const c = countries.find((x: any) => x.code === code);\n return c ? `${c.code} (+${c.phone})` : code;\n },\n onOpen: () => {\n setSelectOpen(true);\n setIgnoreNextOutsideClick(true);\n },\n onClose: () => setSelectOpen(false),\n }}\n >\n {countries.map((option: any) => (\n <MenuItem key={option.code} value={option.code}>\n {option.code} (+{option.phone})\n </MenuItem>\n ))}\n </TextField>\n <TextField\n label={label}\n value={localNumber ? formatLocalNumber(localNumber) : \"\"}\n onChange={handleLocalChange}\n placeholder=\" - - \"\n inputProps={{\n inputMode: \"numeric\",\n pattern: \"[0-9]*\",\n maxLength: 12,\n }}\n disabled={disabled}\n size={size}\n autoFocus={autoFocus}\n fullWidth\n sx={{\n \"& .MuiOutlinedInput-root\": {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n ...glassInputSx,\n },\n }}\n />\n </Stack>\n </Box>\n );\n};\n\nexport default PhoneNumberField;\n"],"mappings":"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","names":["import_jsx_runtime","tablePaginationClasses","TablePagination","_a","MuiTablePagination","import_styles","import_material","import_jsx_runtime","_a","import_styles","import_material","import_jsx_runtime","import_styles","import_material","import_icons_material","import_styles","import_jsx_runtime","import_react","import_material","import_styles","import_icons_material","import_jsx_runtime","_a","CloseIcon","import_react","import_material","import_styles","import_jsx_runtime","_a","severity","CloseIcon","import_material","import_styles","import_jsx_runtime","import_material","import_jsx_runtime","_a","import_react","import_material","import_icons_material","import_jsx_runtime","React","import_material","import_styles","import_jsx_runtime","import_styles","import_jsx_runtime","Switch","import_material","import_styles","import_common_library","import_jsx_runtime","_a","import_react","import_material","import_icons_material","import_jsx_runtime","import_react","import_material","import_styles","import_icons_material","import_jsx_runtime","useStyles","React","_a","import_material","import_styles","import_icons_material","import_jsx_runtime","import_react","import_material","import_styles","import_common_library","import_jsx_runtime","_a"]}
|
package/dist/index.mjs
CHANGED
|
@@ -1383,20 +1383,12 @@ var SearchableSelect = React7.memo(
|
|
|
1383
1383
|
}
|
|
1384
1384
|
},
|
|
1385
1385
|
slotProps: {
|
|
1386
|
-
popper: {
|
|
1387
|
-
// Open above when there is more room above the field (Popper auto placement).
|
|
1388
|
-
placement: "auto"
|
|
1389
|
-
},
|
|
1390
1386
|
paper: {
|
|
1391
1387
|
sx: {
|
|
1392
1388
|
background: glassBackground,
|
|
1393
1389
|
backdropFilter: "blur(12px) saturate(150%)",
|
|
1394
1390
|
border: `1px solid ${alpha10("#FFFFFF", theme.palette.mode === "dark" ? 0.16 : 0.55)}`,
|
|
1395
1391
|
boxShadow: theme.palette.mode === "dark" ? "rgba(0, 0, 0, 0.34) 0px 10px 26px" : "rgba(15, 23, 42, 0.16) 0px 8px 24px",
|
|
1396
|
-
overflow: "hidden",
|
|
1397
|
-
display: "flex",
|
|
1398
|
-
flexDirection: "column",
|
|
1399
|
-
maxHeight: "min(55vh, calc(100dvh - 96px))",
|
|
1400
1392
|
"& .MuiAutocomplete-option": {
|
|
1401
1393
|
"&[aria-selected='true']": {
|
|
1402
1394
|
backgroundColor: alpha10(
|
|
@@ -1414,17 +1406,6 @@ var SearchableSelect = React7.memo(
|
|
|
1414
1406
|
}
|
|
1415
1407
|
}
|
|
1416
1408
|
},
|
|
1417
|
-
ListboxProps: {
|
|
1418
|
-
sx: {
|
|
1419
|
-
flex: "1 1 auto",
|
|
1420
|
-
minHeight: 0,
|
|
1421
|
-
maxHeight: "min(50vh, calc(100dvh - 120px))",
|
|
1422
|
-
overflowY: "auto",
|
|
1423
|
-
WebkitOverflowScrolling: "touch",
|
|
1424
|
-
overscrollBehavior: "contain",
|
|
1425
|
-
touchAction: "pan-y"
|
|
1426
|
-
}
|
|
1427
|
-
},
|
|
1428
1409
|
renderInput: (params) => /* @__PURE__ */ jsx15(
|
|
1429
1410
|
TextField,
|
|
1430
1411
|
{
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.tsx","../src/TabPanel.tsx","../src/TablePagination.tsx","../src/Logo.tsx","../src/FormDialog.tsx","../src/InputFileUpload.tsx","../src/glassStyles.ts","../src/ImageUploadAvatar.tsx","../src/FormSnackBar.tsx","../src/Loader.tsx","../src/SkeletonBar.tsx","../src/EmptyState.tsx","../src/Pill.tsx","../src/IOSSwitch.tsx","../src/StatusPill.tsx","../src/FormPopover.tsx","../src/SearchableSelect.tsx","../src/FormDrawer.tsx","../src/PhoneNumberField.tsx"],"sourcesContent":["export * from \"@mui/material\";\nexport { default as TabPanel } from \"./TabPanel\";\nexport { default as TablePagination } from \"./TablePagination\";\nexport type { TablePaginationDesignProps } from \"./TablePagination\";\nexport {\n useTheme,\n styled,\n createTheme,\n ThemeProvider,\n} from \"@mui/material/styles\";\nexport { makeStyles } from \"@mui/styles\";\nexport { default as Logo } from \"./Logo\";\nexport { default as FormDialog } from \"./FormDialog\";\nexport { default as InputFileUpload } from \"./InputFileUpload\";\nexport { default as ImageUploadAvatar } from \"./ImageUploadAvatar\";\nexport { default as FormSnackBar } from \"./FormSnackBar\";\nexport { default as Loader } from \"./Loader\";\nexport { default as SkeletonBar } from \"./SkeletonBar\";\nexport { default as EmptyState } from \"./EmptyState\";\nexport { default as Pill } from \"./Pill\";\nexport { default as IOSSwitch } from \"./IOSSwitch\";\nexport { default as StatusPill } from \"./StatusPill\";\nexport { default as FormPopover } from \"./FormPopover\";\nexport { default as SearchableSelect } from \"./SearchableSelect\";\nexport { default as FormDrawer } from \"./FormDrawer\";\nexport { default as PhoneNumberField } from \"./PhoneNumberField\";\n","// @ts-nocheck\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\n\ninterface TabPanelProps {\n children?: React.ReactNode;\n index: number;\n value: number;\n}\n\nconst TabPanel = (props: TabPanelProps) => {\n const { children, value, index, ...other } = props;\n return (\n <div\n role=\"tabpanel\"\n hidden={value !== index}\n id={`simple-tabpanel-${index}`}\n {...other}\n >\n {value === index && <Box sx={{ p: 1 }}>{children}</Box>}\n </div>\n );\n};\n\nexport default TabPanel;\n","import * as React from \"react\";\nimport MuiTablePagination from \"@mui/material/TablePagination\";\nimport type { LabelDisplayedRowsArgs } from \"@mui/material/TablePagination\";\nimport tablePaginationClasses from \"@mui/material/TablePagination/tablePaginationClasses\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\nimport { alpha } from \"@mui/material/styles\";\n\nexport type TablePaginationDesignProps = React.ComponentProps<\n typeof MuiTablePagination\n> & {\n /** Label before the rows-per-page control. Default: \"Per page\". Overrides MUI `labelRowsPerPage` when both are omitted; explicit `labelRowsPerPage` wins. */\n rowsPerPageLabel?: React.ReactNode;\n /** Formats the range summary (e.g. total count). Default: \"1–10 of 47 results\". Overrides MUI `labelDisplayedRows` when both are omitted; explicit `labelDisplayedRows` wins. */\n displayedRangeLabel?: (info: LabelDisplayedRowsArgs) => React.ReactNode;\n};\n\nfunction mergeSx(...parts: (SxProps<Theme> | undefined)[]): SxProps<Theme> {\n const flat: object[] = [];\n for (const p of parts) {\n if (p == null) continue;\n if (Array.isArray(p)) {\n for (const x of p) {\n if (x != null) flat.push(x as object);\n }\n } else {\n flat.push(p as object);\n }\n }\n return flat as SxProps<Theme>;\n}\n\nconst DEFAULT_ROWS_PER_PAGE_LABEL = \"Per page\";\n\nfunction defaultDisplayedRangeLabel({\n from,\n to,\n count,\n}: LabelDisplayedRowsArgs): React.ReactNode {\n if (count === 0) {\n return \"No results\";\n }\n if (count === -1) {\n return `${from}–${to}+`;\n }\n if (from > to) {\n return `0 of ${count} results`;\n }\n return `${from}–${to} of ${count} results`;\n}\n\nfunction defaultGetItemAriaLabel(\n type: \"first\" | \"last\" | \"next\" | \"previous\",\n): string {\n const labels: Record<typeof type, string> = {\n first: \"First page\",\n previous: \"Previous page\",\n next: \"Next page\",\n last: \"Last page\",\n };\n return labels[type];\n}\n\nconst rootSx: SxProps<Theme> = {\n width: \"100%\",\n boxSizing: \"border-box\",\n verticalAlign: \"middle\",\n bgcolor: \"transparent\",\n backdropFilter: \"blur(12px) saturate(150%)\",\n borderRadius: 2,\n py: 0.75,\n px: { xs: 1, sm: 1.5 },\n [`& .${tablePaginationClasses.toolbar}`]: {\n width: \"100%\",\n minHeight: 48,\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n flexWrap: \"nowrap\",\n gap: { xs: 0.75, sm: 1.25 },\n py: 0,\n pr: 0,\n pl: 0,\n maxWidth: \"100%\",\n overflowX: \"auto\",\n },\n [`& .${tablePaginationClasses.spacer}`]: {\n flex: \"1 1 auto\",\n minWidth: 0,\n },\n [`& .${tablePaginationClasses.selectLabel}`]: {\n typography: \"body2\",\n fontWeight: 500,\n textTransform: \"none\",\n color: \"text.secondary\",\n m: 0,\n whiteSpace: \"nowrap\",\n },\n [`& .${tablePaginationClasses.displayedRows}`]: {\n typography: \"body2\",\n fontWeight: 600,\n color: \"text.primary\",\n fontVariantNumeric: \"tabular-nums\",\n m: 0,\n whiteSpace: \"nowrap\",\n },\n [`& .${tablePaginationClasses.input}`]: {\n marginLeft: 0,\n marginRight: 0,\n },\n [`& .${tablePaginationClasses.actions}`]: {\n mx: 1,\n gap: 1,\n display: \"flex\",\n alignItems: \"center\",\n [`& .MuiIconButton-root`]: {\n borderRadius: 2,\n color: \"text.secondary\",\n padding: 0.5,\n border: \"1px solid\",\n borderColor: \"divider\",\n \"&:hover\": {\n bgcolor: \"action.selected\",\n color: \"text.primary\",\n },\n \"&.Mui-disabled\": {\n opacity: 0.36,\n },\n },\n },\n};\n\n/**\n * Design-library TablePagination: forwards MUI props and ref, with a compact\n * toolbar (spacer + `justifyContent: flex-end` so controls stay right),\n * optional `rowsPerPageLabel` / `displayedRangeLabel`, and first/last\n * navigation by default. Use inside `TableFooter` for vertical alignment with\n * table rows.\n */\nconst TablePagination = React.forwardRef(function TablePagination(\n props: TablePaginationDesignProps,\n ref: React.ComponentPropsWithRef<typeof MuiTablePagination>[\"ref\"],\n) {\n const {\n sx,\n slotProps,\n SelectProps,\n showFirstButton = true,\n showLastButton = true,\n labelDisplayedRows: labelDisplayedRowsProp,\n labelRowsPerPage: labelRowsPerPageProp,\n getItemAriaLabel,\n rowsPerPageLabel,\n displayedRangeLabel,\n ...other\n } = props;\n\n const labelRowsPerPageResolved =\n labelRowsPerPageProp ?? rowsPerPageLabel ?? DEFAULT_ROWS_PER_PAGE_LABEL;\n\n const labelDisplayedRowsResolved =\n labelDisplayedRowsProp ?? displayedRangeLabel ?? defaultDisplayedRangeLabel;\n\n const slotSelect = slotProps?.select;\n const { sx: slotSelectSx, ...slotSelectRest } = slotSelect ?? {};\n const { sx: legacySelectSx, ...legacySelectRest } = SelectProps ?? {};\n\n const mergedSelect = {\n variant: \"outlined\" as const,\n size: \"small\" as const,\n ...legacySelectRest,\n ...slotSelectRest,\n sx: mergeSx(\n (theme: Theme) => ({\n borderRadius: 2,\n minWidth: 64,\n fontSize: theme.typography.body2.fontSize,\n backdropFilter: \"blur(10px)\",\n backgroundColor: alpha(\n theme.palette.background.paper,\n theme.palette.mode === \"dark\" ? 0.2 : 0.74,\n ),\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: alpha(\n \"#FFFFFF\",\n theme.palette.mode === \"dark\" ? 0.16 : 0.56,\n ),\n },\n \"&:hover .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"text.disabled\",\n },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"primary.main\",\n },\n \"& .MuiSelect-select\": {\n py: 0.625,\n minHeight: \"unset\",\n display: \"flex\",\n alignItems: \"center\",\n },\n }),\n legacySelectSx,\n slotSelectSx,\n ),\n };\n\n return (\n <MuiTablePagination\n ref={ref}\n showFirstButton={showFirstButton}\n showLastButton={showLastButton}\n labelRowsPerPage={labelRowsPerPageResolved}\n labelDisplayedRows={labelDisplayedRowsResolved}\n getItemAriaLabel={getItemAriaLabel ?? defaultGetItemAriaLabel}\n slotProps={{\n ...slotProps,\n select: mergedSelect,\n }}\n sx={mergeSx(rootSx, sx)}\n {...other}\n />\n );\n});\n\nexport default TablePagination;\n","// @ts-nocheck\nimport React, { memo } from \"react\";\nimport {\n Grid,\n Typography,\n Avatar,\n Tooltip,\n Box,\n useTheme,\n useMediaQuery,\n} from \"@mui/material\";\nimport { capitalizeSentence } from \"@verma-consulting/common-library\";\n\ntype LogoProps = {\n loggedIn?: boolean;\n centered?: boolean;\n organization?: {\n name?: string;\n logo?: { url?: string };\n } | null;\n defaultLogo?: React.ReactNode;\n companyComponent?: React.ReactNode;\n handleClick?: () => void;\n};\n\nconst Logo: React.FC<LogoProps> = memo(\n ({\n loggedIn = false,\n centered = false,\n organization = null,\n defaultLogo = null,\n handleClick = () => null,\n companyComponent = null,\n }) => {\n const theme = useTheme();\n const mdMatches = useMediaQuery(theme.breakpoints.down(\"md\"));\n const maxWidth = mdMatches ? 160 : 320;\n\n const companyName = organization?.name || \"–\";\n const logoUrl = organization?.logo?.url;\n\n if (centered) {\n return (\n <Grid\n container\n direction=\"column\"\n alignItems=\"center\"\n justifyContent=\"center\"\n spacing={1}\n sx={{ cursor: \"pointer\" }}\n onClick={handleClick}\n >\n {(logoUrl || defaultLogo) && (\n <Grid item>\n {logoUrl ? (\n <Avatar\n alt={companyName || \"avatar\"}\n src={logoUrl}\n sx={{\n width: 64, // slightly bigger\n height: 64,\n bgcolor: \"primary.main\",\n fontSize: 20,\n fontWeight: \"bold\",\n }}\n imgProps={{ loading: \"lazy\" }}\n >\n {companyName?.charAt(0) || \"?\"}\n </Avatar>\n ) : (\n defaultLogo\n )}\n </Grid>\n )}\n <Grid item sx={{ maxWidth, textAlign: \"center\" }}>\n {loggedIn ? (\n <Tooltip title={companyName} placement=\"top\" arrow>\n <Typography\n variant=\"h6\"\n sx={{\n fontFamily: \"Courier, monospace\",\n fontWeight: \"bold\",\n color: \"primary.main\",\n }}\n >\n {companyName}\n </Typography>\n </Tooltip>\n ) : (\n <Box sx={{ display: \"flex\", justifyContent: \"center\" }}>\n {companyComponent}\n </Box>\n )}\n </Grid>\n </Grid>\n );\n }\n return (\n <Grid\n container\n alignItems=\"center\"\n wrap=\"nowrap\"\n sx={{\n cursor: \"pointer\",\n \"&:hover\": { opacity: 0.9, transition: \"opacity 0.2s ease-in-out\" },\n }}\n onClick={handleClick}\n >\n {(logoUrl || defaultLogo) && (\n <Box sx={{ mr: 1, display: \"flex\", alignItems: \"center\" }}>\n {logoUrl ? (\n <Avatar\n alt={companyName || \"avatar\"}\n src={logoUrl}\n sx={{\n width: 36,\n height: 36,\n bgcolor: \"primary.main\",\n fontSize: 14,\n fontWeight: \"bold\",\n }}\n imgProps={{ loading: \"lazy\" }}\n >\n {companyName?.charAt(0) || \"?\"}\n </Avatar>\n ) : (\n defaultLogo\n )}\n </Box>\n )}\n\n <Box sx={{ maxWidth, flexShrink: 1, minWidth: 0 }}>\n {loggedIn ? (\n <Tooltip title={companyName} placement=\"top\" arrow>\n <Typography\n variant=\"h6\"\n noWrap\n sx={{\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n fontFamily: \"Courier, monospace\",\n fontWeight: \"bold\",\n color: \"primary.main\",\n }}\n >\n {companyName}\n </Typography>\n </Tooltip>\n ) : (\n companyComponent\n )}\n </Box>\n </Grid>\n );\n },\n);\n\nexport default Logo;\n","// @ts-nocheck\nimport * as React from \"react\";\nimport { styled } from \"@mui/material/styles\";\nimport {\n useTheme,\n useMediaQuery,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n IconButton,\n} from \"@mui/material\";\nexport { useTheme } from \"@mui/material/styles\";\nimport { Close } from \"@mui/icons-material\";\n\nconst BootstrapDialog = styled(Dialog)(({ theme }) => ({\n \"& .MuiDialog-paper\": {\n borderRadius: 24,\n },\n \"& .MuiDialogContent-root\": {\n padding: theme.spacing(4),\n },\n \"& .MuiDialogActions-root\": {\n padding: theme.spacing(4),\n },\n}));\n\nexport interface DialogTitleProps {\n id: string;\n children?: React.ReactNode;\n onClose: () => void;\n}\n\nconst BootstrapDialogTitle = (props: DialogTitleProps) => {\n const { children, onClose, ...other } = props;\n\n return (\n <DialogTitle\n sx={{\n px: 3,\n py: 3,\n pt: 3.5,\n pb: 2.5,\n fontSize: \"1.25rem\",\n fontWeight: 600,\n letterSpacing: \"0.02em\",\n lineHeight: 1.35,\n color: \"primary.main\",\n }}\n {...other}\n >\n {children}\n {onClose ? (\n <IconButton\n onClick={onClose}\n sx={{\n position: \"absolute\",\n right: 16,\n top: 16,\n }}\n >\n <Close color=\"primary\" />\n </IconButton>\n ) : null}\n </DialogTitle>\n );\n};\n\nconst FormDialog = ({\n open = false,\n setOpen,\n title = \"\",\n actions,\n children,\n maxWidth = \"lg\",\n ...props\n}) => {\n const theme = useTheme();\n const mdMatches = useMediaQuery(theme.breakpoints.down(\"md\"));\n return (\n <BootstrapDialog\n fullWidth\n onClose={() => setOpen(false)}\n open={open}\n maxWidth={maxWidth}\n fullScreen={mdMatches}\n >\n <BootstrapDialogTitle onClose={() => setOpen(false)}>\n {title}\n </BootstrapDialogTitle>\n <DialogContent dividers>{children}</DialogContent>\n <DialogActions>{actions}</DialogActions>\n </BootstrapDialog>\n );\n};\n\nexport default FormDialog;\n","// @ts-nocheck\nimport React from \"react\";\nimport { alpha, styled, useTheme } from \"@mui/material/styles\";\nimport { Box, Typography } from \"@mui/material\";\nimport { CloudUpload } from \"@mui/icons-material\";\nimport { glassHover, glassSurface } from \"./glassStyles\";\n\nconst VisuallyHiddenInput = styled(\"input\")({\n clip: \"rect(0 0 0 0)\",\n clipPath: \"inset(50%)\",\n height: 1,\n overflow: \"hidden\",\n position: \"absolute\",\n bottom: 0,\n left: 0,\n whiteSpace: \"nowrap\",\n width: 1,\n});\n\nexport type InputFileUploadProps = {\n name?: string;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n /** Primary label (e.g. “Upload document”). */\n title?: string;\n /** Secondary line under the title (e.g. accepted types). */\n subtitle?: string;\n accept?: string;\n multiple?: boolean;\n disabled?: boolean;\n /** Stretch to the width of the parent container. */\n fullWidth?: boolean;\n};\n\nconst InputFileUpload: React.FC<InputFileUploadProps> = ({\n name = \"\",\n onChange = () => null,\n title = \"Choose file\",\n subtitle = \"Tap to browse\",\n accept,\n multiple,\n disabled = false,\n fullWidth = false,\n}) => {\n const theme = useTheme();\n\n return (\n <Box\n component=\"label\"\n sx={(t) => ({\n ...glassSurface(t),\n display: fullWidth ? \"flex\" : \"inline-flex\",\n alignItems: \"center\",\n gap: 2,\n width: fullWidth ? \"100%\" : \"auto\",\n maxWidth: \"100%\",\n px: 2.25,\n py: 1.75,\n borderRadius: 2.5,\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n opacity: disabled ? 0.52 : 1,\n pointerEvents: disabled ? \"none\" : \"auto\",\n transition: \"box-shadow 0.2s ease, transform 0.2s ease\",\n borderStyle: \"dashed\",\n borderWidth: 1,\n borderColor: alpha(\n t.palette.primary.main,\n t.palette.mode === \"dark\" ? 0.35 : 0.28,\n ),\n \"&:hover\": !disabled\n ? {\n ...glassHover(t),\n borderColor: alpha(t.palette.primary.main, 0.45),\n boxShadow:\n t.palette.mode === \"dark\"\n ? \"0 12px 28px rgba(0,0,0,0.38)\"\n : \"0 12px 28px rgba(15, 23, 42, 0.12)\",\n }\n : undefined,\n \"&:focus-within\": {\n outline: `2px solid ${alpha(t.palette.primary.main, 0.45)}`,\n outlineOffset: 2,\n },\n })}\n >\n <Box\n aria-hidden\n sx={{\n flexShrink: 0,\n width: 44,\n height: 44,\n borderRadius: 2,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n background: alpha(\n theme.palette.primary.main,\n theme.palette.mode === \"dark\" ? 0.22 : 0.12,\n ),\n border: `1px solid ${alpha(theme.palette.primary.main, 0.25)}`,\n color: \"primary.main\",\n }}\n >\n <CloudUpload sx={{ fontSize: 22 }} />\n </Box>\n\n <Box sx={{ flex: 1, minWidth: 0, textAlign: \"left\" }}>\n <Typography\n variant=\"subtitle2\"\n component=\"span\"\n display=\"block\"\n fontWeight={700}\n color=\"text.primary\"\n letterSpacing=\"-0.01em\"\n >\n {title}\n </Typography>\n <Typography\n variant=\"caption\"\n color=\"text.secondary\"\n display=\"block\"\n sx={{ mt: 0.25 }}\n >\n {subtitle}\n </Typography>\n </Box>\n\n <VisuallyHiddenInput\n type=\"file\"\n name={name}\n onChange={onChange}\n accept={accept}\n multiple={multiple}\n disabled={disabled}\n />\n </Box>\n );\n};\n\nexport default InputFileUpload;\n","import { alpha, Theme } from \"@mui/material/styles\";\n\nexport const glassBorder = (theme: Theme) =>\n `1px solid ${alpha(\n \"#FFFFFF\",\n theme.palette.mode === \"dark\" ? 0.16 : 0.62,\n )}`;\n\nexport const glassSurface = (theme: Theme) => ({\n background:\n theme.palette.mode === \"dark\"\n ? `linear-gradient(160deg, ${alpha(\"#1F2937\", 0.78)} 0%, ${alpha(\"#111827\", 0.68)} 100%)`\n : `linear-gradient(160deg, ${alpha(\"#FFFFFF\", 0.88)} 0%, ${alpha(\"#F5F9FF\", 0.72)} 100%)`,\n border: glassBorder(theme),\n backdropFilter: \"blur(18px) saturate(155%)\",\n WebkitBackdropFilter: \"blur(18px) saturate(155%)\",\n boxShadow:\n theme.palette.mode === \"dark\"\n ? \"0 16px 40px rgba(0,0,0,0.34)\"\n : \"0 14px 34px rgba(15, 23, 42, 0.12)\",\n});\n\nexport const glassHover = (theme: Theme) => ({\n background:\n theme.palette.mode === \"dark\"\n ? `linear-gradient(160deg, ${alpha(\"#374151\", 0.8)} 0%, ${alpha(\"#1F2937\", 0.74)} 100%)`\n : `linear-gradient(160deg, ${alpha(\"#FFFFFF\", 0.97)} 0%, ${alpha(\"#EEF5FF\", 0.86)} 100%)`,\n});\n","import React, { useEffect, useRef, useState, ChangeEvent } from \"react\";\nimport { Box, IconButton } from \"@mui/material\";\nimport { alpha, styled } from \"@mui/material/styles\";\nimport { CloudUpload, Close as CloseIcon } from \"@mui/icons-material\";\nimport { glassSurface } from \"./glassStyles\";\n\ntype ImageUploadAvatarProps = {\n name?: string;\n defaultValue?: string | null;\n onChange?: (file: File | null, previewSrc: string | null) => void;\n size?: number;\n variant?: \"circular\" | \"rounded\" | \"square\";\n accept?: string;\n disabled?: boolean;\n allowClear?: boolean;\n};\n\nconst HiddenInput = styled(\"input\")({\n position: \"absolute\",\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0 0 0 0)\",\n border: 0,\n});\n\nconst Wrapper = styled(Box, {\n shouldForwardProp: (prop) => prop !== \"variant\" && prop !== \"size\",\n})<{ size: number; variant: \"circular\" | \"rounded\" | \"square\" }>(({ theme, size, variant }) => ({\n position: \"relative\",\n width: size,\n height: size,\n borderRadius: variant === \"circular\" ? \"50%\" : variant === \"rounded\" ? theme.shape.borderRadius * 2 : 0,\n ...glassSurface(theme),\n border: `1px dashed ${alpha(theme.palette.primary.main, 0.28)}`,\n overflow: \"hidden\",\n cursor: \"pointer\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n}));\n\nconst PreviewImg = styled(\"img\")({\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n display: \"block\",\n});\n\nconst Overlay = styled(Box)(({ theme }) => ({\n position: \"absolute\",\n inset: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n transition: \"background 120ms ease\",\n borderRadius: \"inherit\",\n \"& .uploadIcon\": {\n opacity: 0,\n transition: \"opacity 120ms ease, transform 120ms ease\",\n transform: \"scale(0.95)\",\n },\n \"&.empty .uploadIcon\": {\n opacity: 0.6,\n transform: \"scale(1)\",\n },\n \"&.hover\": {\n background: \"rgba(0,0,0,0.15)\",\n \"& .uploadIcon\": { opacity: 1, transform: \"scale(1)\" },\n },\n}));\n\nconst ClearButton = styled(IconButton)(({ theme }) => ({\n position: \"absolute\",\n top: -8,\n right: -8,\n ...glassSurface(theme),\n boxShadow: theme.shadows[2],\n \"&:hover\": {\n background: alpha(theme.palette.background.paper, 0.9),\n },\n}));\n\nexport const ImageUploadAvatar: React.FC<ImageUploadAvatarProps> = ({\n name = \"image\",\n defaultValue = null,\n onChange,\n size = 128,\n variant = \"rounded\",\n accept = \"image/*\",\n disabled,\n allowClear = true,\n}) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const [internalSrc, setInternalSrc] = useState<string | null>(defaultValue ?? null);\n const [hover, setHover] = useState(false);\n\n useEffect(() => {\n if (!defaultValue) return;\n if (!internalSrc || !internalSrc.startsWith(\"blob:\")) {\n setInternalSrc(defaultValue);\n }\n }, [defaultValue]);\n\n useEffect(() => {\n return () => {\n if (internalSrc?.startsWith(\"blob:\")) {\n URL.revokeObjectURL(internalSrc);\n }\n };\n }, [internalSrc]);\n\n const handlePick = (e: ChangeEvent<HTMLInputElement>) => {\n const selected = e.target.files?.[0] ?? null;\n if (internalSrc?.startsWith(\"blob:\")) {\n URL.revokeObjectURL(internalSrc);\n }\n let preview: string | null = null;\n if (selected) {\n preview = URL.createObjectURL(selected);\n setInternalSrc(preview);\n } else {\n setInternalSrc(null);\n }\n if (inputRef.current) inputRef.current.value = \"\";\n onChange?.(selected, preview);\n };\n\n const triggerPick = () => {\n if (!disabled) inputRef.current?.click();\n };\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (internalSrc?.startsWith(\"blob:\")) {\n URL.revokeObjectURL(internalSrc);\n }\n setInternalSrc(null);\n onChange?.(null, null);\n };\n\n return (\n <Wrapper\n role=\"button\"\n size={size}\n variant={variant}\n onPointerEnter={() => setHover(true)}\n onPointerLeave={() => setHover(false)}\n onClick={triggerPick}\n >\n {internalSrc && <PreviewImg src={internalSrc} />}\n <Overlay className={`${!internalSrc ? \"empty\" : \"\"} ${hover && !disabled ? \"hover\" : \"\"}`}>\n <CloudUpload className=\"uploadIcon\" fontSize=\"large\" />\n </Overlay>\n\n {allowClear && internalSrc && !disabled && (\n <ClearButton size=\"small\" aria-label=\"Clear image\" onClick={handleClear} sx={{ m: 1 }}>\n <CloseIcon fontSize=\"inherit\" />\n </ClearButton>\n )}\n\n <HiddenInput ref={inputRef} type=\"file\" name={name} accept={accept} onChange={handlePick} disabled={disabled} />\n </Wrapper>\n );\n};\n\nexport default ImageUploadAvatar;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { Alert, Grow, IconButton, type AlertProps } from \"@mui/material\";\nimport { alpha, useTheme } from \"@mui/material/styles\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { constants } from \"@verma-consulting/common-library\";\n\nconst SNACKBAR_TYPES = (constants as any)?.SNACKBAR_TYPES;\n\nexport type SnackbarType = \"success\" | \"error\" | \"warning\" | \"info\" | \"\";\n\nconst DULL_SNACKBAR_COLORS = {\n success: \"#6B8E6B\",\n warning: \"#C97B4B\", // dull orange soda\n info: \"#4A5E8A\",\n error: \"#9B4444\",\n} as const;\n\nexport interface FormSnackBarState {\n open?: boolean;\n message?: string;\n type?: SnackbarType;\n}\n\nexport interface FormSnackBarProps {\n snackBar?: FormSnackBarState;\n setSnackBar?: (state: FormSnackBarState) => void;\n autoHideDuration?: number;\n}\n\nfunction isSnackbarType(val: unknown): val is Exclude<SnackbarType, \"\"> {\n if (typeof val !== \"string\") return false;\n if (!SNACKBAR_TYPES) {\n return ([\"success\", \"error\", \"warning\", \"info\"] as const).includes(\n val as any,\n );\n }\n const values = Object.values(SNACKBAR_TYPES) as string[];\n return values.includes(val);\n}\n\nconst FormSnackBar: React.FC<FormSnackBarProps> = ({\n snackBar = {},\n setSnackBar = () => null,\n autoHideDuration = 3500,\n}) => {\n const theme = useTheme();\n\n const [queue, setQueue] = useState<\n Array<{ id: string; type: SnackbarType; message: string }>\n >([]);\n const idRef = useRef(0);\n const prevOpenRef = useRef<boolean>(!!snackBar?.open);\n const prevSignatureRef = useRef<string>(\"\");\n const timersRef = useRef<Record<string, ReturnType<typeof setTimeout>>>({});\n\n const type = (snackBar.type ?? \"\") as SnackbarType;\n const message = snackBar.message ?? \"\";\n\n const severity: AlertProps[\"severity\"] = isSnackbarType(type) ? type : \"info\";\n\n const enqueueFromProp = () => {\n if (!snackBar?.open) return;\n if (!message) return;\n\n const signature = `${type}::${message}`;\n const openRose = !prevOpenRef.current && !!snackBar?.open;\n const signatureChanged = signature !== prevSignatureRef.current;\n\n // Enqueue on a rising edge OR when message/type changes while still open.\n if (!openRose && !signatureChanged) return;\n\n prevSignatureRef.current = signature;\n const id = String(++idRef.current);\n setQueue((q) => [...q, { id, type, message }]);\n\n timersRef.current[id] = setTimeout(() => {\n setQueue((q) => q.filter((item) => item.id !== id));\n delete timersRef.current[id];\n }, autoHideDuration);\n\n // Reset the external trigger immediately so repeated actions can enqueue again.\n setSnackBar({ open: false, message: \"\", type: \"\" });\n };\n\n useEffect(() => {\n const nextOpen = !!snackBar?.open;\n // Enqueue on open change and/or message change while open.\n enqueueFromProp();\n prevOpenRef.current = nextOpen;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [snackBar?.open, snackBar?.message, snackBar?.type]);\n\n const handleDismiss = (id: string) => {\n const t = timersRef.current[id];\n if (t) clearTimeout(t);\n delete timersRef.current[id];\n setQueue((q) => q.filter((item) => item.id !== id));\n };\n\n useEffect(() => {\n return () => {\n Object.values(timersRef.current).forEach((t) => clearTimeout(t));\n timersRef.current = {};\n };\n }, []);\n\n const typeStyles = (severity: AlertProps[\"severity\"]) => {\n // Softer, dull colors so they are visible without being harsh.\n const baseHex =\n severity === \"success\"\n ? DULL_SNACKBAR_COLORS.success\n : severity === \"error\"\n ? DULL_SNACKBAR_COLORS.error\n : severity === \"warning\"\n ? DULL_SNACKBAR_COLORS.warning\n : DULL_SNACKBAR_COLORS.info;\n return {\n bg:\n theme.palette.mode === \"dark\"\n ? alpha(baseHex, 0.34)\n : alpha(baseHex, 0.24),\n text: theme.palette.mode === \"dark\" ? \"rgba(255,255,255,0.94)\" : baseHex,\n icon: baseHex,\n };\n };\n\n return (\n <div\n aria-live=\"polite\"\n aria-atomic=\"true\"\n style={{\n position: \"fixed\",\n top: 12,\n right: 12,\n zIndex: 1400,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 8,\n width: \"min(420px, calc(100vw - 24px))\",\n pointerEvents: \"none\",\n }}\n >\n {queue.map((item) => {\n const localSeverity: AlertProps[\"severity\"] = isSnackbarType(item.type)\n ? item.type\n : \"info\";\n\n const colors = typeStyles(localSeverity);\n\n return (\n <Grow key={item.id} in timeout={280}>\n <Alert\n variant=\"filled\"\n severity={localSeverity}\n sx={{\n width: \"100%\",\n pointerEvents: \"auto\",\n borderRadius: 2,\n px: { xs: 1.25, sm: 1.5 },\n py: 0.875,\n alignItems: \"center\",\n boxShadow: 2,\n backgroundColor: colors.bg,\n color: colors.text,\n backdropFilter: \"blur(14px) saturate(150%)\",\n WebkitBackdropFilter: \"blur(14px) saturate(150%)\",\n border: `1px solid ${alpha(\"#FFFFFF\", theme.palette.mode === \"dark\" ? 0.16 : 0.55)}`,\n \"& .MuiAlert-icon\": {\n color: colors.icon,\n },\n \"& .MuiAlert-message\": {\n m: 0,\n p: 0,\n fontWeight: 600,\n letterSpacing: \"-0.01em\",\n },\n }}\n action={\n <IconButton\n aria-label=\"close\"\n color=\"inherit\"\n size=\"small\"\n onClick={() => handleDismiss(item.id)}\n >\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n }\n >\n {item.message}\n </Alert>\n </Grow>\n );\n })}\n </div>\n );\n};\n\nexport default FormSnackBar;\n","import React from \"react\";\nimport { CircularProgress, Backdrop } from \"@mui/material\";\nimport { makeStyles } from \"@mui/styles\";\nimport { alpha } from \"@mui/material/styles\";\n\ninterface LoaderProps {\n size?: number;\n color?: \"primary\" | \"secondary\" | \"inherit\" | \"success\" | \"error\" | \"info\" | \"warning\";\n}\n\nconst useStyles = makeStyles({\n \"@keyframes pulse\": {\n \"0%\": { transform: \"scale(1)\", opacity: 0.9 },\n \"50%\": { transform: \"scale(1.05)\", opacity: 1 },\n \"100%\": { transform: \"scale(1)\", opacity: 0.9 },\n },\n progress: {\n animation: \"$pulse 1.5s ease-in-out infinite\",\n },\n});\n\nconst Loader: React.FC<LoaderProps> = ({ size = 48, color = \"primary\" }) => {\n const classes = useStyles();\n\n return (\n <Backdrop\n open\n sx={{\n zIndex: (theme) => theme.zIndex.modal + 1,\n backgroundColor: \"transparent\",\n backdropFilter: \"blur(10px) saturate(145%)\",\n }}\n >\n <CircularProgress\n size={size}\n color={color}\n thickness={3.4}\n className={classes.progress}\n sx={{\n p: 1,\n borderRadius: \"50%\",\n backgroundColor: \"transparent\",\n border: (theme) =>\n `1px solid ${alpha(\"#FFFFFF\", theme.palette.mode === \"dark\" ? 0.14 : 0.56)}`,\n boxShadow: (theme) =>\n theme.palette.mode === \"dark\"\n ? \"0 10px 24px rgba(0,0,0,0.32)\"\n : \"0 10px 20px rgba(15,23,42,0.14)\",\n }}\n />\n </Backdrop>\n );\n};\n\nexport default Loader;\n","// @ts-nocheck\nimport React from \"react\";\nimport { Box, useTheme } from \"@mui/material\";\n\nconst SHIMMER_KEYFRAMES = {\n \"@keyframes skeletonShimmer\": {\n \"0%\": { backgroundPosition: \"200% 0\" },\n \"100%\": { backgroundPosition: \"-200% 0\" },\n },\n};\n\nexport interface SkeletonBarProps {\n width?: string | number;\n height?: number;\n sx?: object;\n}\n\n/**\n * Horizontal bar with sideways shimmer loading animation.\n * Use in tables, cards, selects, and any loading placeholder.\n */\nexport const SkeletonBar: React.FC<SkeletonBarProps> = ({\n width = \"100%\",\n height = 24,\n sx = {},\n}) => {\n const theme = useTheme();\n const base =\n theme.palette.mode === \"dark\"\n ? (theme.palette.grey?.[700] ?? \"#424242\")\n : (theme.palette.grey?.[200] ?? \"#e0e0e0\");\n const highlight =\n theme.palette.mode === \"dark\"\n ? (theme.palette.grey?.[600] ?? \"#616161\")\n : (theme.palette.grey?.[100] ?? \"#f5f5f5\");\n\n return (\n <Box\n sx={{\n ...SHIMMER_KEYFRAMES,\n borderRadius: 2,\n height,\n width,\n maxWidth: \"100%\",\n overflow: \"hidden\",\n background: `linear-gradient(90deg, ${base} 0%, ${highlight} 20%, ${base} 40%, ${base} 100%)`,\n backgroundSize: \"200% 100%\",\n animation: \"skeletonShimmer 1.4s ease-in-out infinite\",\n ...sx,\n }}\n />\n );\n};\n\nexport default SkeletonBar;\n","// @ts-nocheck\nimport React from \"react\";\nimport { Box, Typography, useTheme } from \"@mui/material\";\nimport { DatasetOutlined } from \"@mui/icons-material\";\n\nexport interface EmptyStateProps {\n /** Label text to display (e.g. getContent(\"noDataDescription\")) */\n label?: string;\n /** Vertical margin (theme spacing, default 8) */\n m?: number;\n /** Optional custom icon */\n icon?: React.ReactNode;\n}\n\nconst EmptyState: React.FC<EmptyStateProps> = ({ label, m = 8, icon }) => {\n const theme = useTheme();\n const text = label ?? \"No data created yet\";\n\n const iconColor =\n theme.palette.mode === \"dark\"\n ? \"rgba(255,255,255,0.42)\"\n : \"rgba(0,0,0,0.42)\";\n\n const labelColor =\n theme.palette.mode === \"dark\"\n ? \"rgba(255,255,255,0.50)\"\n : \"rgba(0,0,0,0.38)\";\n\n const iconEl =\n icon != null && React.isValidElement(icon) ? (\n icon\n ) : (\n <DatasetOutlined\n sx={{\n fontSize: 48,\n color: iconColor,\n display: \"block\",\n }}\n />\n );\n\n return (\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 1.5,\n minHeight: 160,\n m,\n py: 3,\n px: 2,\n }}\n >\n {iconEl}\n <Typography\n variant=\"body2\"\n align=\"center\"\n sx={{\n fontWeight: 400,\n fontSize: \"0.875rem\",\n letterSpacing: \"0.01em\",\n color: labelColor,\n maxWidth: 320,\n lineHeight: 1.5,\n }}\n >\n {text}\n </Typography>\n </Box>\n );\n};\nexport default EmptyState;\n","// @ts-nocheck\nimport React from \"react\";\nimport { Button, Typography, Icon } from \"@mui/material\";\nimport { alpha, useTheme } from \"@mui/material/styles\";\nimport { glassSurface } from \"./glassStyles\";\n\nexport type PillProps = {\n label?: string;\n leftIcon?: string;\n rightIcon?: string;\n color?: string;\n isSelected?: boolean;\n onClick?: () => void;\n disabled?: boolean;\n};\n\nconst Pill = ({\n variant = \"filter\",\n leftIcon = null,\n rightIcon = null,\n color = null,\n isSelected = false,\n onClick = () => null,\n label = \"\",\n disabled = false,\n}: PillProps) => {\n const theme = useTheme();\n\n return (\n <Button\n variant={isSelected ? \"contained\" : \"outlined\"}\n color={color || \"primary\"}\n sx={{\n ...glassSurface(theme),\n borderRadius: 16,\n padding: \"8px 16px\",\n minHeight: 38,\n textTransform: \"none\",\n borderColor: isSelected\n ? alpha(theme.palette.primary.main, 0.34)\n : alpha(theme.palette.text.primary, 0.18),\n color: isSelected ? \"primary.main\" : \"text.primary\",\n \"&:hover\": {\n borderColor: alpha(theme.palette.primary.main, 0.42),\n boxShadow:\n theme.palette.mode === \"dark\"\n ? \"0 10px 22px rgba(0,0,0,0.34)\"\n : \"0 10px 20px rgba(15,23,42,0.14)\",\n },\n }}\n onClick={onClick}\n disabled={disabled}\n >\n <div style={{ display: \"flex\", alignItems: \"center\" }}>\n {leftIcon && (\n <Icon\n className={leftIcon}\n fontSize={14}\n color=\"inherit\"\n style={{ paddingRight: 8 }}\n data-testid=\"pill-left-icon\"\n />\n )}\n <Typography variant=\"subtitle2\" color=\"inherit\" fontWeight={700}>\n {label}\n </Typography>\n {rightIcon && (\n <Icon\n className={rightIcon}\n fontSize={14}\n color=\"inherit\"\n style={{ marginLeft: 8 }}\n data-testid=\"pill-right-icon\"\n />\n )}\n </div>\n </Button>\n );\n};\n\nexport default Pill;\n","import React from \"react\";\nimport { alpha, styled } from \"@mui/material/styles\";\nimport Switch, { SwitchProps } from \"@mui/material/Switch\";\n\n// explicitly type as FC with SwitchProps\nconst IOSSwitch: React.FC<SwitchProps> = styled((props: SwitchProps) => (\n <Switch focusVisibleClassName=\".Mui-focusVisible\" disableRipple {...props} />\n))(({ theme }) => ({\n width: 46,\n height: 30,\n padding: 0,\n \"& .MuiSwitch-switchBase\": {\n padding: 0,\n margin: 2,\n transitionDuration: \"300ms\",\n \"&.Mui-checked\": {\n transform: \"translateX(16px)\",\n color: \"#fff\",\n \"& + .MuiSwitch-track\": {\n background: `linear-gradient(120deg, ${alpha(theme.palette.primary.light, 0.92)} 0%, ${alpha(theme.palette.primary.main, 0.94)} 100%)`,\n opacity: 1,\n border: 0,\n },\n \"&.Mui-disabled + .MuiSwitch-track\": {\n opacity: 0.5,\n },\n },\n \"&.Mui-focusVisible .MuiSwitch-thumb\": {\n color: \"#33cf4d\",\n border: \"6px solid #fff\",\n },\n \"&.Mui-disabled .MuiSwitch-thumb\": {\n color:\n theme.palette.mode === \"light\"\n ? theme.palette.grey[100]\n : theme.palette.grey[600],\n },\n \"&.Mui-disabled + .MuiSwitch-track\": {\n opacity: theme.palette.mode === \"light\" ? 0.7 : 0.3,\n },\n },\n \"& .MuiSwitch-thumb\": {\n boxSizing: \"border-box\",\n width: 26,\n height: 26,\n boxShadow:\n theme.palette.mode === \"dark\"\n ? \"0 2px 8px rgba(0,0,0,0.38)\"\n : \"0 2px 6px rgba(15,23,42,0.24)\",\n },\n \"& .MuiSwitch-track\": {\n borderRadius: 16,\n background:\n theme.palette.mode === \"light\"\n ? \"linear-gradient(120deg, rgba(245,248,255,0.92) 0%, rgba(224,232,245,0.92) 100%)\"\n : \"linear-gradient(120deg, rgba(55,65,81,0.74) 0%, rgba(31,41,55,0.8) 100%)\",\n border: `1px solid ${alpha(\"#FFFFFF\", theme.palette.mode === \"dark\" ? 0.16 : 0.56)}`,\n backdropFilter: \"blur(10px) saturate(145%)\",\n WebkitBackdropFilter: \"blur(10px) saturate(145%)\",\n opacity: 1,\n transition: theme.transitions.create([\"background-color\"], {\n duration: 500,\n }),\n },\n}));\n\nexport default IOSSwitch;\n","import React from \"react\";\nimport { Chip } from \"@mui/material\";\nimport { alpha, useTheme } from \"@mui/material/styles\";\nimport { userStatus } from \"@verma-consulting/common-library\";\nimport { glassSurface } from \"./glassStyles\";\n\ninterface StatusPillProps {\n status: userStatus;\n}\n\nconst statusColorMap: Record<userStatus, string> = {\n [userStatus.Pending]: \"#B06A00\",\n [userStatus.Active]: \"#087443\",\n [userStatus.Inactive]: \"#B42318\",\n [userStatus.Invited]: \"#175CD3\",\n};\n\nconst StatusPill: React.FC<StatusPillProps> = ({ status }) => {\n const theme = useTheme();\n\n return (\n <Chip\n label={status}\n variant=\"outlined\"\n sx={{\n ...glassSurface(theme),\n minHeight: 38,\n fontWeight: 700,\n borderRadius: 16,\n px: 1.25,\n letterSpacing: \"0.01em\",\n color: statusColorMap[status] ?? theme.palette.text.primary,\n backgroundColor: alpha(\n statusColorMap[status] ?? theme.palette.text.primary,\n theme.palette.mode === \"dark\" ? 0.24 : 0.12,\n ),\n borderColor: alpha(\n statusColorMap[status] ?? theme.palette.text.primary,\n theme.palette.mode === \"dark\" ? 0.36 : 0.28,\n ),\n \"& .MuiChip-label\": {\n px: 1.25,\n },\n }}\n />\n );\n};\n\nexport default StatusPill;\n","import React, { useState, MouseEvent, ReactNode, FC } from \"react\";\nimport { Tooltip, IconButton, Popover } from \"@mui/material\";\nimport { MoreHoriz } from \"@mui/icons-material\";\n\ninterface FormPopoverProps {\n row?: any;\n children: (props: { row: any; handleClose: () => void }) => React.ReactNode;\n title?: string;\n}\n\nconst FormPopover: FC<FormPopoverProps> = ({ row, children, title }) => {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const open = Boolean(anchorEl);\n\n return (\n <>\n <Tooltip title={title}>\n <IconButton\n onClick={handleClick}\n size=\"small\"\n sx={{\n backgroundColor: \"white\",\n boxShadow: 1,\n borderRadius: \"50%\",\n border: \"1px solid transparent\",\n \"&:hover\": {\n border: (theme) => `1px solid ${theme.palette.primary.main}`,\n backgroundColor: \"#f0f0f0\",\n },\n }}\n >\n <MoreHoriz fontSize=\"inherit\" color=\"primary\" />\n </IconButton>\n </Tooltip>\n <Popover\n open={open}\n anchorEl={anchorEl}\n onClose={handleClose}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"left\",\n }}\n >\n {children({ row, handleClose })}\n </Popover>\n </>\n );\n};\n\nexport default FormPopover;\n","// @ts-nocheck\nimport React, { useEffect, useRef, useState, useMemo } from \"react\";\nimport {\n Autocomplete,\n TextField,\n Typography,\n FormLabel,\n FormControl,\n IconButton,\n} from \"@mui/material\";\nimport { alpha, useTheme } from \"@mui/material/styles\";\nimport { Clear } from \"@mui/icons-material\";\nimport { makeStyles } from \"@mui/styles\";\nimport { GenericPayload } from \"@verma-consulting/common-library\";\n\nconst useStyles = makeStyles((theme) => ({\n defaultMode: {\n margin: \"4px\",\n padding: \"14px 8px\",\n cursor: \"pointer\",\n borderRadius: 8,\n border: `1px solid ${alpha(\"#FFFFFF\", theme.palette.mode === \"dark\" ? 0.16 : 0.55)}`,\n backdropFilter: \"blur(14px) saturate(150%)\",\n background:\n theme.palette.mode === \"dark\"\n ? \"linear-gradient(160deg, rgba(31,41,55,0.78), rgba(17,24,39,0.68))\"\n : \"linear-gradient(160deg, rgba(255,255,255,0.9), rgba(245,249,255,0.72))\",\n \"&:hover\": {\n boxShadow:\n theme.palette.mode === \"dark\"\n ? \"rgba(0, 0, 0, 0.34) 0px 10px 26px\"\n : \"rgba(15, 23, 42, 0.16) 0px 8px 24px\",\n },\n },\n formLabel: {\n cursor: \"pointer\",\n },\n formValue: {\n cursor: \"pointer\",\n wordBreak: \"break-word\",\n whiteSpace: \"pre-wrap\",\n },\n}));\n\ninterface SearchableSelectProps {\n name: string;\n label: string;\n value: string;\n onChange: (value: string) => void;\n options: GenericPayload[];\n size?: \"small\" | \"medium\";\n style?: React.CSSProperties;\n disabled?: boolean;\n /** If `null` or omitted, the clear control is not shown. Pass a handler to enable clear. */\n onClear?: (() => void) | null;\n defaultEditMode?: boolean;\n multiple?: boolean;\n}\n\nconst SearchableSelect: React.FC<SearchableSelectProps> = React.memo(\n ({\n name,\n label,\n value,\n onChange,\n options,\n size = \"small\",\n style,\n disabled = false,\n onClear = null,\n defaultEditMode = false,\n multiple = false,\n }) => {\n const theme = useTheme();\n const classes = useStyles();\n const wrapperRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const [editMode, setEditMode] = useState(defaultEditMode);\n const [open, setOpen] = useState(defaultEditMode);\n const glassBackground =\n theme.palette.mode === \"dark\"\n ? \"linear-gradient(160deg, rgba(31,41,55,0.78), rgba(17,24,39,0.68))\"\n : \"linear-gradient(160deg, rgba(255,255,255,0.9), rgba(245,249,255,0.72))\";\n\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (\n wrapperRef.current &&\n !wrapperRef.current.contains(event.target as Node)\n ) {\n setEditMode(false);\n setOpen(false);\n }\n }\n\n if (editMode) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [editMode]);\n\n useEffect(() => {\n if (editMode && open && inputRef.current) {\n inputRef.current.focus();\n }\n }, [editMode, open]);\n\n const handleClear = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n if (onClear) {\n onClear();\n }\n setEditMode(false);\n setOpen(false);\n };\n\n const selected = useMemo(() => {\n if (multiple) {\n if (!value.trim()) return [];\n const selectedValues = value.split(\", \").map((v) => v.trim());\n return options.filter((opt) => selectedValues.includes(opt.value));\n } else {\n return options.find((opt) => opt.value === value) ?? null;\n }\n }, [value, options, multiple]);\n\n const displayValue = useMemo(() => {\n if (multiple) {\n if (!Array.isArray(selected)) return \"\";\n return selected.map((opt) => opt.label).join(\", \");\n } else {\n return (selected as GenericPayload | null)?.label ?? \"\";\n }\n }, [selected, multiple]);\n\n const isValueEmpty = !value.trim();\n const showClear = onClear != null;\n\n return editMode ? (\n <FormControl fullWidth style={style} disabled={disabled} size={size}>\n <Autocomplete\n multiple={multiple}\n disableCloseOnSelect={multiple}\n options={options}\n value={selected}\n open={open}\n onOpen={() => setOpen(true)}\n onClose={() => setOpen(false)}\n onChange={(_, newValue) => {\n if (multiple) {\n if (Array.isArray(newValue)) {\n let vals = newValue?.map((opt) => opt?.value);\n let val = vals?.join(\", \");\n onChange(val);\n } else {\n onChange(\"\");\n }\n setOpen(true);\n } else {\n onChange((newValue as GenericPayload | null)?.value ?? \"\");\n setOpen(false);\n }\n }}\n disableClearable\n autoHighlight\n getOptionLabel={(option) => option.label}\n isOptionEqualToValue={(option, val) => option.value === val.value}\n sx={{\n \"& .MuiAutocomplete-inputRoot\": {\n background: glassBackground,\n color: \"text.primary\",\n },\n \"& .MuiAutocomplete-inputRoot.Mui-focused\": {\n background: glassBackground,\n color: \"text.primary\",\n },\n \"& .MuiAutocomplete-inputRoot:hover\": {\n background: glassBackground,\n },\n \"& .MuiAutocomplete-input\": {\n color: \"text.primary\",\n WebkitTextFillColor: \"currentColor\",\n },\n \"& .MuiInputLabel-root\": {\n color: \"text.secondary\",\n },\n \"& .MuiInputLabel-root.Mui-focused\": {\n color: \"text.primary\",\n },\n \"& .MuiSvgIcon-root\": {\n color: \"text.secondary\",\n },\n }}\n slotProps={{\n popper: {\n // Open above when there is more room above the field (Popper auto placement).\n placement: \"auto\",\n },\n paper: {\n sx: {\n background: glassBackground,\n backdropFilter: \"blur(12px) saturate(150%)\",\n border: `1px solid ${alpha(\"#FFFFFF\", theme.palette.mode === \"dark\" ? 0.16 : 0.55)}`,\n boxShadow:\n theme.palette.mode === \"dark\"\n ? \"rgba(0, 0, 0, 0.34) 0px 10px 26px\"\n : \"rgba(15, 23, 42, 0.16) 0px 8px 24px\",\n overflow: \"hidden\",\n display: \"flex\",\n flexDirection: \"column\",\n maxHeight: \"min(55vh, calc(100dvh - 96px))\",\n \"& .MuiAutocomplete-option\": {\n \"&[aria-selected='true']\": {\n backgroundColor: alpha(\n theme.palette.primary.main,\n theme.palette.mode === \"dark\" ? 0.28 : 0.14,\n ),\n },\n \"&.Mui-focused\": {\n backgroundColor: alpha(\n theme.palette.primary.main,\n theme.palette.mode === \"dark\" ? 0.2 : 0.1,\n ),\n },\n },\n },\n },\n }}\n ListboxProps={{\n sx: {\n flex: \"1 1 auto\",\n minHeight: 0,\n maxHeight: \"min(50vh, calc(100dvh - 120px))\",\n overflowY: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n overscrollBehavior: \"contain\",\n touchAction: \"pan-y\",\n },\n }}\n renderInput={(params) => (\n <TextField\n {...params}\n label={label}\n variant=\"outlined\"\n size={size}\n inputRef={inputRef}\n InputProps={{\n ...params.InputProps,\n sx: {\n borderRadius: 2,\n backdropFilter: \"blur(10px)\",\n pr: 1.5,\n background: glassBackground,\n color: \"text.primary\",\n \"&.Mui-focused\": {\n background: glassBackground,\n },\n \"&:hover\": {\n background: glassBackground,\n },\n \"& .MuiInputBase-input\": {\n color: \"text.primary\",\n WebkitTextFillColor: \"currentColor\",\n },\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: alpha(\n \"#FFFFFF\",\n theme.palette.mode === \"dark\" ? 0.18 : 0.6,\n ),\n },\n },\n endAdornment: (\n <>\n {showClear && !isValueEmpty && (\n <IconButton\n aria-label={`clear ${name}`}\n onClick={handleClear}\n size=\"small\"\n sx={{\n backgroundColor: \"transparent\",\n boxShadow: \"none\",\n mr: 0.25,\n }}\n >\n <Clear fontSize=\"inherit\" />\n </IconButton>\n )}\n {params.InputProps.endAdornment}\n </>\n ),\n }}\n />\n )}\n onBlur={() => {\n setEditMode(false);\n setOpen(false);\n }}\n />\n </FormControl>\n ) : (\n <div\n ref={wrapperRef}\n onClick={() => {\n if (!disabled) {\n setEditMode(true);\n setOpen(true);\n }\n }}\n className={classes.defaultMode}\n style={style}\n >\n <FormLabel\n className={classes.formLabel}\n sx={{ color: \"text.secondary\" }}\n >\n {label}\n </FormLabel>\n <Typography\n className={classes.formValue}\n sx={{ color: \"text.primary\" }}\n >\n {displayValue}\n </Typography>\n </div>\n );\n },\n);\n\nexport default SearchableSelect;\n","import {\n Drawer,\n Typography,\n Box,\n IconButton,\n Grid,\n useTheme,\n useMediaQuery,\n} from \"@mui/material\";\nimport { alpha } from \"@mui/material/styles\";\nimport { Close } from \"@mui/icons-material\";\n\ninterface FormDrawerProps {\n open: boolean;\n setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n title?: string | null;\n actions?: React.ReactNode;\n children: React.ReactNode;\n}\n\nconst FormDrawer: React.FC<FormDrawerProps> = ({\n open,\n setOpen,\n title,\n actions,\n children,\n}) => {\n const theme = useTheme();\n const mdMatches = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n return (\n <Drawer\n anchor={mdMatches ? \"bottom\" : \"right\"}\n open={open}\n onClose={() => setOpen(false)}\n sx={{\n \"& .MuiDrawer-paper\": {\n width: mdMatches ? \"100%\" : \"64%\",\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n borderRadius: mdMatches ? \"24px 24px 0 0\" : \"24px 0 0 24px\",\n },\n }}\n >\n <Box\n p={3}\n borderBottom={`1px solid ${alpha(theme.palette.divider, 0.36)}`}\n >\n <Grid container>\n <Grid item>\n {title && (\n <Typography variant=\"h6\" fontWeight=\"bold\">\n {title}\n </Typography>\n )}\n </Grid>\n <Grid item>\n <IconButton\n size=\"medium\"\n onClick={() => setOpen(false)}\n sx={{\n position: \"absolute\",\n top: 8,\n right: 8,\n zIndex: 2,\n backgroundColor: alpha(theme.palette.background.paper, 0.46),\n }}\n >\n <Close fontSize=\"inherit\" />\n </IconButton>\n </Grid>\n </Grid>\n </Box>\n <Box flex={1} overflow=\"auto\" p={3}>\n {children}\n </Box>\n\n {actions && (\n <Box\n p={2}\n borderTop={`1px solid ${alpha(theme.palette.divider, 0.36)}`}\n sx={{\n position: \"sticky\",\n bottom: 0,\n zIndex: 1,\n backgroundColor: alpha(theme.palette.background.paper, 0.38),\n backdropFilter: \"blur(10px)\",\n }}\n >\n {actions}\n </Box>\n )}\n </Drawer>\n );\n};\n\nexport default FormDrawer;\n","import React, {\n useCallback,\n useEffect,\n useRef,\n useState,\n ChangeEvent,\n FocusEvent,\n} from \"react\";\nimport {\n Box,\n Stack,\n TextField,\n MenuItem,\n useTheme,\n useMediaQuery,\n} from \"@mui/material\";\nimport { alpha } from \"@mui/material/styles\";\nimport { constants } from \"@verma-consulting/common-library\";\n\ninterface PhoneNumberFieldProps {\n value?: string | null;\n onChange: (e164: string) => void;\n defaultCountry?: string;\n label?: string;\n size?: \"small\" | \"medium\";\n disabled?: boolean;\n autoFocus?: boolean;\n onBlur?: () => void;\n}\n\nconst PhoneNumberField: React.FC<PhoneNumberFieldProps> = ({\n value = \"\",\n onChange,\n defaultCountry = \"US\",\n label = \"Phone number\",\n size = \"small\",\n disabled = false,\n autoFocus = false,\n onBlur,\n}) => {\n const theme = useTheme();\n const smMatches = useMediaQuery(theme.breakpoints.down(\"sm\"));\n const countries = (constants.COUNTRIES || []) as any;\n const glassInputSx = {\n backdropFilter: \"blur(10px) saturate(150%)\",\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: alpha(\n \"#FFFFFF\",\n theme.palette.mode === \"dark\" ? 0.16 : 0.58,\n ),\n },\n };\n\n const [country, setCountry] = useState(defaultCountry);\n const [localNumber, setLocalNumber] = useState(\"\");\n const [isFocused, setIsFocused] = useState(false);\n const [selectOpen, setSelectOpen] = useState(false);\n const [ignoreNextOutsideClick, setIgnoreNextOutsideClick] = useState(false);\n\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n\n const parseE164 = useCallback(\n (val: string) => {\n const cleaned = (val || \"\").toString().replace(/\\D/g, \"\");\n if (!cleaned) return { dial: \"\", local: \"\" };\n\n const sorted = [...countries].sort(\n (a, b) => b.phone.length - a.phone.length\n );\n const found = sorted.find((c) => cleaned.startsWith(c.phone));\n if (found) {\n const dial = found.phone;\n const local = cleaned.slice(dial.length);\n return { dial, local: local.slice(-10) };\n }\n return { dial: \"\", local: cleaned.slice(-10) };\n },\n [countries]\n );\n\n useEffect(() => {\n if (isFocused) return;\n if (!value) {\n setLocalNumber(\"\");\n return;\n }\n const { dial, local } = parseE164(String(value));\n if (dial) {\n const found = countries.find((c: any) => c.phone === dial);\n if (found) setCountry(found.code);\n }\n setLocalNumber(local);\n }, [value, parseE164, countries, isFocused]);\n\n const formatLocalNumber = (digits: string) => {\n const cleaned = digits.replace(/\\D/g, \"\").slice(0, 10);\n let formatted = \"\";\n if (cleaned.length > 0) formatted += cleaned.slice(0, 3);\n if (cleaned.length > 3) formatted += \"-\" + cleaned.slice(3, 6);\n if (cleaned.length > 6) formatted += \"-\" + cleaned.slice(6, 10);\n return formatted;\n };\n\n const commitValue = useCallback(() => {\n const sel = countries.find((c: any) => c.code === country);\n const dial = sel?.phone ?? \"\";\n if (dial && localNumber) {\n onChange(`+${dial}${localNumber}`);\n } else {\n onChange(\"\");\n }\n }, [countries, country, localNumber, onChange]);\n\n const handleLocalChange = (e: ChangeEvent<HTMLInputElement>) => {\n const digits = e.target.value.replace(/\\D/g, \"\").slice(0, 10);\n setLocalNumber(digits);\n };\n\n const handleCountryChange = (e: ChangeEvent<HTMLInputElement>) => {\n setCountry(e.target.value);\n };\n\n useEffect(() => {\n const onDocMouseDown = (ev: MouseEvent) => {\n if (!wrapperRef.current) return;\n if (wrapperRef.current.contains(ev.target as Node)) return;\n if (ignoreNextOutsideClick) {\n setIgnoreNextOutsideClick(false);\n return;\n }\n if (isFocused && !selectOpen) {\n commitValue();\n setIsFocused(false);\n onBlur?.();\n }\n };\n document.addEventListener(\"mousedown\", onDocMouseDown);\n return () => document.removeEventListener(\"mousedown\", onDocMouseDown);\n }, [isFocused, selectOpen, ignoreNextOutsideClick, commitValue, onBlur]);\n\n const handleWrapperBlur = (e: FocusEvent<HTMLDivElement>) => {\n const next = e.relatedTarget as Node | null;\n if (wrapperRef.current && next && wrapperRef.current.contains(next)) return;\n if (selectOpen) return;\n if (isFocused) {\n commitValue();\n setIsFocused(false);\n onBlur?.();\n }\n };\n\n return (\n <Box\n ref={wrapperRef}\n onFocusCapture={() => setIsFocused(true)}\n onBlurCapture={handleWrapperBlur}\n sx={{ display: \"flex\", alignItems: \"center\", width: \"100%\" }}\n >\n <Stack\n direction=\"row\"\n spacing={0}\n alignItems=\"center\"\n sx={{ width: \"100%\" }}\n >\n <TextField\n select\n value={country}\n onChange={handleCountryChange}\n disabled={disabled}\n size={size}\n sx={{\n width: 140,\n \"& .MuiOutlinedInput-root\": {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n ...glassInputSx,\n },\n }}\n SelectProps={{\n renderValue: (val: unknown) => {\n const code =\n typeof val === \"string\" ? val : defaultCountry.toUpperCase();\n const c = countries.find((x: any) => x.code === code);\n return c ? `${c.code} (+${c.phone})` : code;\n },\n onOpen: () => {\n setSelectOpen(true);\n setIgnoreNextOutsideClick(true);\n },\n onClose: () => setSelectOpen(false),\n }}\n >\n {countries.map((option: any) => (\n <MenuItem key={option.code} value={option.code}>\n {option.code} (+{option.phone})\n </MenuItem>\n ))}\n </TextField>\n <TextField\n label={label}\n value={localNumber ? formatLocalNumber(localNumber) : \"\"}\n onChange={handleLocalChange}\n placeholder=\" - - \"\n inputProps={{\n inputMode: \"numeric\",\n pattern: \"[0-9]*\",\n maxLength: 12,\n }}\n disabled={disabled}\n size={size}\n autoFocus={autoFocus}\n fullWidth\n sx={{\n \"& .MuiOutlinedInput-root\": {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n ...glassInputSx,\n },\n }}\n />\n </Stack>\n </Box>\n );\n};\n\nexport default PhoneNumberField;\n"],"mappings":"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","names":["jsx","TablePagination","_a","useTheme","styled","makeStyles","Box","jsx","_a","useTheme","useMediaQuery","jsx","jsxs","alpha","styled","useTheme","Box","Typography","alpha","jsx","jsxs","styled","useTheme","Box","alpha","Typography","Box","IconButton","alpha","styled","CloudUpload","jsx","jsxs","styled","Box","alpha","IconButton","_a","CloudUpload","useEffect","useRef","useState","IconButton","alpha","useTheme","CloseIcon","jsx","_a","severity","alpha","jsx","Box","useTheme","jsx","_a","React","Box","Typography","useTheme","jsx","jsxs","Typography","alpha","useTheme","jsx","jsxs","useTheme","alpha","Typography","alpha","styled","jsx","alpha","useTheme","jsx","_a","useTheme","alpha","useState","Tooltip","IconButton","jsx","jsxs","React","useEffect","useRef","useState","Typography","IconButton","alpha","useTheme","makeStyles","Fragment","jsx","jsxs","useStyles","_a","Typography","Box","IconButton","Grid","useTheme","useMediaQuery","alpha","Close","jsx","jsxs","useEffect","useRef","useState","Box","TextField","useTheme","useMediaQuery","alpha","constants","jsx","jsxs","_a"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.tsx","../src/TabPanel.tsx","../src/TablePagination.tsx","../src/Logo.tsx","../src/FormDialog.tsx","../src/InputFileUpload.tsx","../src/glassStyles.ts","../src/ImageUploadAvatar.tsx","../src/FormSnackBar.tsx","../src/Loader.tsx","../src/SkeletonBar.tsx","../src/EmptyState.tsx","../src/Pill.tsx","../src/IOSSwitch.tsx","../src/StatusPill.tsx","../src/FormPopover.tsx","../src/SearchableSelect.tsx","../src/FormDrawer.tsx","../src/PhoneNumberField.tsx"],"sourcesContent":["export * from \"@mui/material\";\nexport { default as TabPanel } from \"./TabPanel\";\nexport { default as TablePagination } from \"./TablePagination\";\nexport type { TablePaginationDesignProps } from \"./TablePagination\";\nexport {\n useTheme,\n styled,\n createTheme,\n ThemeProvider,\n} from \"@mui/material/styles\";\nexport { makeStyles } from \"@mui/styles\";\nexport { default as Logo } from \"./Logo\";\nexport { default as FormDialog } from \"./FormDialog\";\nexport { default as InputFileUpload } from \"./InputFileUpload\";\nexport { default as ImageUploadAvatar } from \"./ImageUploadAvatar\";\nexport { default as FormSnackBar } from \"./FormSnackBar\";\nexport { default as Loader } from \"./Loader\";\nexport { default as SkeletonBar } from \"./SkeletonBar\";\nexport { default as EmptyState } from \"./EmptyState\";\nexport { default as Pill } from \"./Pill\";\nexport { default as IOSSwitch } from \"./IOSSwitch\";\nexport { default as StatusPill } from \"./StatusPill\";\nexport { default as FormPopover } from \"./FormPopover\";\nexport { default as SearchableSelect } from \"./SearchableSelect\";\nexport { default as FormDrawer } from \"./FormDrawer\";\nexport { default as PhoneNumberField } from \"./PhoneNumberField\";\n","// @ts-nocheck\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\n\ninterface TabPanelProps {\n children?: React.ReactNode;\n index: number;\n value: number;\n}\n\nconst TabPanel = (props: TabPanelProps) => {\n const { children, value, index, ...other } = props;\n return (\n <div\n role=\"tabpanel\"\n hidden={value !== index}\n id={`simple-tabpanel-${index}`}\n {...other}\n >\n {value === index && <Box sx={{ p: 1 }}>{children}</Box>}\n </div>\n );\n};\n\nexport default TabPanel;\n","import * as React from \"react\";\nimport MuiTablePagination from \"@mui/material/TablePagination\";\nimport type { LabelDisplayedRowsArgs } from \"@mui/material/TablePagination\";\nimport tablePaginationClasses from \"@mui/material/TablePagination/tablePaginationClasses\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\nimport { alpha } from \"@mui/material/styles\";\n\nexport type TablePaginationDesignProps = React.ComponentProps<\n typeof MuiTablePagination\n> & {\n /** Label before the rows-per-page control. Default: \"Per page\". Overrides MUI `labelRowsPerPage` when both are omitted; explicit `labelRowsPerPage` wins. */\n rowsPerPageLabel?: React.ReactNode;\n /** Formats the range summary (e.g. total count). Default: \"1–10 of 47 results\". Overrides MUI `labelDisplayedRows` when both are omitted; explicit `labelDisplayedRows` wins. */\n displayedRangeLabel?: (info: LabelDisplayedRowsArgs) => React.ReactNode;\n};\n\nfunction mergeSx(...parts: (SxProps<Theme> | undefined)[]): SxProps<Theme> {\n const flat: object[] = [];\n for (const p of parts) {\n if (p == null) continue;\n if (Array.isArray(p)) {\n for (const x of p) {\n if (x != null) flat.push(x as object);\n }\n } else {\n flat.push(p as object);\n }\n }\n return flat as SxProps<Theme>;\n}\n\nconst DEFAULT_ROWS_PER_PAGE_LABEL = \"Per page\";\n\nfunction defaultDisplayedRangeLabel({\n from,\n to,\n count,\n}: LabelDisplayedRowsArgs): React.ReactNode {\n if (count === 0) {\n return \"No results\";\n }\n if (count === -1) {\n return `${from}–${to}+`;\n }\n if (from > to) {\n return `0 of ${count} results`;\n }\n return `${from}–${to} of ${count} results`;\n}\n\nfunction defaultGetItemAriaLabel(\n type: \"first\" | \"last\" | \"next\" | \"previous\",\n): string {\n const labels: Record<typeof type, string> = {\n first: \"First page\",\n previous: \"Previous page\",\n next: \"Next page\",\n last: \"Last page\",\n };\n return labels[type];\n}\n\nconst rootSx: SxProps<Theme> = {\n width: \"100%\",\n boxSizing: \"border-box\",\n verticalAlign: \"middle\",\n bgcolor: \"transparent\",\n backdropFilter: \"blur(12px) saturate(150%)\",\n borderRadius: 2,\n py: 0.75,\n px: { xs: 1, sm: 1.5 },\n [`& .${tablePaginationClasses.toolbar}`]: {\n width: \"100%\",\n minHeight: 48,\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n flexWrap: \"nowrap\",\n gap: { xs: 0.75, sm: 1.25 },\n py: 0,\n pr: 0,\n pl: 0,\n maxWidth: \"100%\",\n overflowX: \"auto\",\n },\n [`& .${tablePaginationClasses.spacer}`]: {\n flex: \"1 1 auto\",\n minWidth: 0,\n },\n [`& .${tablePaginationClasses.selectLabel}`]: {\n typography: \"body2\",\n fontWeight: 500,\n textTransform: \"none\",\n color: \"text.secondary\",\n m: 0,\n whiteSpace: \"nowrap\",\n },\n [`& .${tablePaginationClasses.displayedRows}`]: {\n typography: \"body2\",\n fontWeight: 600,\n color: \"text.primary\",\n fontVariantNumeric: \"tabular-nums\",\n m: 0,\n whiteSpace: \"nowrap\",\n },\n [`& .${tablePaginationClasses.input}`]: {\n marginLeft: 0,\n marginRight: 0,\n },\n [`& .${tablePaginationClasses.actions}`]: {\n mx: 1,\n gap: 1,\n display: \"flex\",\n alignItems: \"center\",\n [`& .MuiIconButton-root`]: {\n borderRadius: 2,\n color: \"text.secondary\",\n padding: 0.5,\n border: \"1px solid\",\n borderColor: \"divider\",\n \"&:hover\": {\n bgcolor: \"action.selected\",\n color: \"text.primary\",\n },\n \"&.Mui-disabled\": {\n opacity: 0.36,\n },\n },\n },\n};\n\n/**\n * Design-library TablePagination: forwards MUI props and ref, with a compact\n * toolbar (spacer + `justifyContent: flex-end` so controls stay right),\n * optional `rowsPerPageLabel` / `displayedRangeLabel`, and first/last\n * navigation by default. Use inside `TableFooter` for vertical alignment with\n * table rows.\n */\nconst TablePagination = React.forwardRef(function TablePagination(\n props: TablePaginationDesignProps,\n ref: React.ComponentPropsWithRef<typeof MuiTablePagination>[\"ref\"],\n) {\n const {\n sx,\n slotProps,\n SelectProps,\n showFirstButton = true,\n showLastButton = true,\n labelDisplayedRows: labelDisplayedRowsProp,\n labelRowsPerPage: labelRowsPerPageProp,\n getItemAriaLabel,\n rowsPerPageLabel,\n displayedRangeLabel,\n ...other\n } = props;\n\n const labelRowsPerPageResolved =\n labelRowsPerPageProp ?? rowsPerPageLabel ?? DEFAULT_ROWS_PER_PAGE_LABEL;\n\n const labelDisplayedRowsResolved =\n labelDisplayedRowsProp ?? displayedRangeLabel ?? defaultDisplayedRangeLabel;\n\n const slotSelect = slotProps?.select;\n const { sx: slotSelectSx, ...slotSelectRest } = slotSelect ?? {};\n const { sx: legacySelectSx, ...legacySelectRest } = SelectProps ?? {};\n\n const mergedSelect = {\n variant: \"outlined\" as const,\n size: \"small\" as const,\n ...legacySelectRest,\n ...slotSelectRest,\n sx: mergeSx(\n (theme: Theme) => ({\n borderRadius: 2,\n minWidth: 64,\n fontSize: theme.typography.body2.fontSize,\n backdropFilter: \"blur(10px)\",\n backgroundColor: alpha(\n theme.palette.background.paper,\n theme.palette.mode === \"dark\" ? 0.2 : 0.74,\n ),\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: alpha(\n \"#FFFFFF\",\n theme.palette.mode === \"dark\" ? 0.16 : 0.56,\n ),\n },\n \"&:hover .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"text.disabled\",\n },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"primary.main\",\n },\n \"& .MuiSelect-select\": {\n py: 0.625,\n minHeight: \"unset\",\n display: \"flex\",\n alignItems: \"center\",\n },\n }),\n legacySelectSx,\n slotSelectSx,\n ),\n };\n\n return (\n <MuiTablePagination\n ref={ref}\n showFirstButton={showFirstButton}\n showLastButton={showLastButton}\n labelRowsPerPage={labelRowsPerPageResolved}\n labelDisplayedRows={labelDisplayedRowsResolved}\n getItemAriaLabel={getItemAriaLabel ?? defaultGetItemAriaLabel}\n slotProps={{\n ...slotProps,\n select: mergedSelect,\n }}\n sx={mergeSx(rootSx, sx)}\n {...other}\n />\n );\n});\n\nexport default TablePagination;\n","// @ts-nocheck\nimport React, { memo } from \"react\";\nimport {\n Grid,\n Typography,\n Avatar,\n Tooltip,\n Box,\n useTheme,\n useMediaQuery,\n} from \"@mui/material\";\nimport { capitalizeSentence } from \"@verma-consulting/common-library\";\n\ntype LogoProps = {\n loggedIn?: boolean;\n centered?: boolean;\n organization?: {\n name?: string;\n logo?: { url?: string };\n } | null;\n defaultLogo?: React.ReactNode;\n companyComponent?: React.ReactNode;\n handleClick?: () => void;\n};\n\nconst Logo: React.FC<LogoProps> = memo(\n ({\n loggedIn = false,\n centered = false,\n organization = null,\n defaultLogo = null,\n handleClick = () => null,\n companyComponent = null,\n }) => {\n const theme = useTheme();\n const mdMatches = useMediaQuery(theme.breakpoints.down(\"md\"));\n const maxWidth = mdMatches ? 160 : 320;\n\n const companyName = organization?.name || \"–\";\n const logoUrl = organization?.logo?.url;\n\n if (centered) {\n return (\n <Grid\n container\n direction=\"column\"\n alignItems=\"center\"\n justifyContent=\"center\"\n spacing={1}\n sx={{ cursor: \"pointer\" }}\n onClick={handleClick}\n >\n {(logoUrl || defaultLogo) && (\n <Grid item>\n {logoUrl ? (\n <Avatar\n alt={companyName || \"avatar\"}\n src={logoUrl}\n sx={{\n width: 64, // slightly bigger\n height: 64,\n bgcolor: \"primary.main\",\n fontSize: 20,\n fontWeight: \"bold\",\n }}\n imgProps={{ loading: \"lazy\" }}\n >\n {companyName?.charAt(0) || \"?\"}\n </Avatar>\n ) : (\n defaultLogo\n )}\n </Grid>\n )}\n <Grid item sx={{ maxWidth, textAlign: \"center\" }}>\n {loggedIn ? (\n <Tooltip title={companyName} placement=\"top\" arrow>\n <Typography\n variant=\"h6\"\n sx={{\n fontFamily: \"Courier, monospace\",\n fontWeight: \"bold\",\n color: \"primary.main\",\n }}\n >\n {companyName}\n </Typography>\n </Tooltip>\n ) : (\n <Box sx={{ display: \"flex\", justifyContent: \"center\" }}>\n {companyComponent}\n </Box>\n )}\n </Grid>\n </Grid>\n );\n }\n return (\n <Grid\n container\n alignItems=\"center\"\n wrap=\"nowrap\"\n sx={{\n cursor: \"pointer\",\n \"&:hover\": { opacity: 0.9, transition: \"opacity 0.2s ease-in-out\" },\n }}\n onClick={handleClick}\n >\n {(logoUrl || defaultLogo) && (\n <Box sx={{ mr: 1, display: \"flex\", alignItems: \"center\" }}>\n {logoUrl ? (\n <Avatar\n alt={companyName || \"avatar\"}\n src={logoUrl}\n sx={{\n width: 36,\n height: 36,\n bgcolor: \"primary.main\",\n fontSize: 14,\n fontWeight: \"bold\",\n }}\n imgProps={{ loading: \"lazy\" }}\n >\n {companyName?.charAt(0) || \"?\"}\n </Avatar>\n ) : (\n defaultLogo\n )}\n </Box>\n )}\n\n <Box sx={{ maxWidth, flexShrink: 1, minWidth: 0 }}>\n {loggedIn ? (\n <Tooltip title={companyName} placement=\"top\" arrow>\n <Typography\n variant=\"h6\"\n noWrap\n sx={{\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n fontFamily: \"Courier, monospace\",\n fontWeight: \"bold\",\n color: \"primary.main\",\n }}\n >\n {companyName}\n </Typography>\n </Tooltip>\n ) : (\n companyComponent\n )}\n </Box>\n </Grid>\n );\n },\n);\n\nexport default Logo;\n","// @ts-nocheck\nimport * as React from \"react\";\nimport { styled } from \"@mui/material/styles\";\nimport {\n useTheme,\n useMediaQuery,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n IconButton,\n} from \"@mui/material\";\nexport { useTheme } from \"@mui/material/styles\";\nimport { Close } from \"@mui/icons-material\";\n\nconst BootstrapDialog = styled(Dialog)(({ theme }) => ({\n \"& .MuiDialog-paper\": {\n borderRadius: 24,\n },\n \"& .MuiDialogContent-root\": {\n padding: theme.spacing(4),\n },\n \"& .MuiDialogActions-root\": {\n padding: theme.spacing(4),\n },\n}));\n\nexport interface DialogTitleProps {\n id: string;\n children?: React.ReactNode;\n onClose: () => void;\n}\n\nconst BootstrapDialogTitle = (props: DialogTitleProps) => {\n const { children, onClose, ...other } = props;\n\n return (\n <DialogTitle\n sx={{\n px: 3,\n py: 3,\n pt: 3.5,\n pb: 2.5,\n fontSize: \"1.25rem\",\n fontWeight: 600,\n letterSpacing: \"0.02em\",\n lineHeight: 1.35,\n color: \"primary.main\",\n }}\n {...other}\n >\n {children}\n {onClose ? (\n <IconButton\n onClick={onClose}\n sx={{\n position: \"absolute\",\n right: 16,\n top: 16,\n }}\n >\n <Close color=\"primary\" />\n </IconButton>\n ) : null}\n </DialogTitle>\n );\n};\n\nconst FormDialog = ({\n open = false,\n setOpen,\n title = \"\",\n actions,\n children,\n maxWidth = \"lg\",\n ...props\n}) => {\n const theme = useTheme();\n const mdMatches = useMediaQuery(theme.breakpoints.down(\"md\"));\n return (\n <BootstrapDialog\n fullWidth\n onClose={() => setOpen(false)}\n open={open}\n maxWidth={maxWidth}\n fullScreen={mdMatches}\n >\n <BootstrapDialogTitle onClose={() => setOpen(false)}>\n {title}\n </BootstrapDialogTitle>\n <DialogContent dividers>{children}</DialogContent>\n <DialogActions>{actions}</DialogActions>\n </BootstrapDialog>\n );\n};\n\nexport default FormDialog;\n","// @ts-nocheck\nimport React from \"react\";\nimport { alpha, styled, useTheme } from \"@mui/material/styles\";\nimport { Box, Typography } from \"@mui/material\";\nimport { CloudUpload } from \"@mui/icons-material\";\nimport { glassHover, glassSurface } from \"./glassStyles\";\n\nconst VisuallyHiddenInput = styled(\"input\")({\n clip: \"rect(0 0 0 0)\",\n clipPath: \"inset(50%)\",\n height: 1,\n overflow: \"hidden\",\n position: \"absolute\",\n bottom: 0,\n left: 0,\n whiteSpace: \"nowrap\",\n width: 1,\n});\n\nexport type InputFileUploadProps = {\n name?: string;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n /** Primary label (e.g. “Upload document”). */\n title?: string;\n /** Secondary line under the title (e.g. accepted types). */\n subtitle?: string;\n accept?: string;\n multiple?: boolean;\n disabled?: boolean;\n /** Stretch to the width of the parent container. */\n fullWidth?: boolean;\n};\n\nconst InputFileUpload: React.FC<InputFileUploadProps> = ({\n name = \"\",\n onChange = () => null,\n title = \"Choose file\",\n subtitle = \"Tap to browse\",\n accept,\n multiple,\n disabled = false,\n fullWidth = false,\n}) => {\n const theme = useTheme();\n\n return (\n <Box\n component=\"label\"\n sx={(t) => ({\n ...glassSurface(t),\n display: fullWidth ? \"flex\" : \"inline-flex\",\n alignItems: \"center\",\n gap: 2,\n width: fullWidth ? \"100%\" : \"auto\",\n maxWidth: \"100%\",\n px: 2.25,\n py: 1.75,\n borderRadius: 2.5,\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n opacity: disabled ? 0.52 : 1,\n pointerEvents: disabled ? \"none\" : \"auto\",\n transition: \"box-shadow 0.2s ease, transform 0.2s ease\",\n borderStyle: \"dashed\",\n borderWidth: 1,\n borderColor: alpha(\n t.palette.primary.main,\n t.palette.mode === \"dark\" ? 0.35 : 0.28,\n ),\n \"&:hover\": !disabled\n ? {\n ...glassHover(t),\n borderColor: alpha(t.palette.primary.main, 0.45),\n boxShadow:\n t.palette.mode === \"dark\"\n ? \"0 12px 28px rgba(0,0,0,0.38)\"\n : \"0 12px 28px rgba(15, 23, 42, 0.12)\",\n }\n : undefined,\n \"&:focus-within\": {\n outline: `2px solid ${alpha(t.palette.primary.main, 0.45)}`,\n outlineOffset: 2,\n },\n })}\n >\n <Box\n aria-hidden\n sx={{\n flexShrink: 0,\n width: 44,\n height: 44,\n borderRadius: 2,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n background: alpha(\n theme.palette.primary.main,\n theme.palette.mode === \"dark\" ? 0.22 : 0.12,\n ),\n border: `1px solid ${alpha(theme.palette.primary.main, 0.25)}`,\n color: \"primary.main\",\n }}\n >\n <CloudUpload sx={{ fontSize: 22 }} />\n </Box>\n\n <Box sx={{ flex: 1, minWidth: 0, textAlign: \"left\" }}>\n <Typography\n variant=\"subtitle2\"\n component=\"span\"\n display=\"block\"\n fontWeight={700}\n color=\"text.primary\"\n letterSpacing=\"-0.01em\"\n >\n {title}\n </Typography>\n <Typography\n variant=\"caption\"\n color=\"text.secondary\"\n display=\"block\"\n sx={{ mt: 0.25 }}\n >\n {subtitle}\n </Typography>\n </Box>\n\n <VisuallyHiddenInput\n type=\"file\"\n name={name}\n onChange={onChange}\n accept={accept}\n multiple={multiple}\n disabled={disabled}\n />\n </Box>\n );\n};\n\nexport default InputFileUpload;\n","import { alpha, Theme } from \"@mui/material/styles\";\n\nexport const glassBorder = (theme: Theme) =>\n `1px solid ${alpha(\n \"#FFFFFF\",\n theme.palette.mode === \"dark\" ? 0.16 : 0.62,\n )}`;\n\nexport const glassSurface = (theme: Theme) => ({\n background:\n theme.palette.mode === \"dark\"\n ? `linear-gradient(160deg, ${alpha(\"#1F2937\", 0.78)} 0%, ${alpha(\"#111827\", 0.68)} 100%)`\n : `linear-gradient(160deg, ${alpha(\"#FFFFFF\", 0.88)} 0%, ${alpha(\"#F5F9FF\", 0.72)} 100%)`,\n border: glassBorder(theme),\n backdropFilter: \"blur(18px) saturate(155%)\",\n WebkitBackdropFilter: \"blur(18px) saturate(155%)\",\n boxShadow:\n theme.palette.mode === \"dark\"\n ? \"0 16px 40px rgba(0,0,0,0.34)\"\n : \"0 14px 34px rgba(15, 23, 42, 0.12)\",\n});\n\nexport const glassHover = (theme: Theme) => ({\n background:\n theme.palette.mode === \"dark\"\n ? `linear-gradient(160deg, ${alpha(\"#374151\", 0.8)} 0%, ${alpha(\"#1F2937\", 0.74)} 100%)`\n : `linear-gradient(160deg, ${alpha(\"#FFFFFF\", 0.97)} 0%, ${alpha(\"#EEF5FF\", 0.86)} 100%)`,\n});\n","import React, { useEffect, useRef, useState, ChangeEvent } from \"react\";\nimport { Box, IconButton } from \"@mui/material\";\nimport { alpha, styled } from \"@mui/material/styles\";\nimport { CloudUpload, Close as CloseIcon } from \"@mui/icons-material\";\nimport { glassSurface } from \"./glassStyles\";\n\ntype ImageUploadAvatarProps = {\n name?: string;\n defaultValue?: string | null;\n onChange?: (file: File | null, previewSrc: string | null) => void;\n size?: number;\n variant?: \"circular\" | \"rounded\" | \"square\";\n accept?: string;\n disabled?: boolean;\n allowClear?: boolean;\n};\n\nconst HiddenInput = styled(\"input\")({\n position: \"absolute\",\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0 0 0 0)\",\n border: 0,\n});\n\nconst Wrapper = styled(Box, {\n shouldForwardProp: (prop) => prop !== \"variant\" && prop !== \"size\",\n})<{ size: number; variant: \"circular\" | \"rounded\" | \"square\" }>(({ theme, size, variant }) => ({\n position: \"relative\",\n width: size,\n height: size,\n borderRadius: variant === \"circular\" ? \"50%\" : variant === \"rounded\" ? theme.shape.borderRadius * 2 : 0,\n ...glassSurface(theme),\n border: `1px dashed ${alpha(theme.palette.primary.main, 0.28)}`,\n overflow: \"hidden\",\n cursor: \"pointer\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n}));\n\nconst PreviewImg = styled(\"img\")({\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n display: \"block\",\n});\n\nconst Overlay = styled(Box)(({ theme }) => ({\n position: \"absolute\",\n inset: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n transition: \"background 120ms ease\",\n borderRadius: \"inherit\",\n \"& .uploadIcon\": {\n opacity: 0,\n transition: \"opacity 120ms ease, transform 120ms ease\",\n transform: \"scale(0.95)\",\n },\n \"&.empty .uploadIcon\": {\n opacity: 0.6,\n transform: \"scale(1)\",\n },\n \"&.hover\": {\n background: \"rgba(0,0,0,0.15)\",\n \"& .uploadIcon\": { opacity: 1, transform: \"scale(1)\" },\n },\n}));\n\nconst ClearButton = styled(IconButton)(({ theme }) => ({\n position: \"absolute\",\n top: -8,\n right: -8,\n ...glassSurface(theme),\n boxShadow: theme.shadows[2],\n \"&:hover\": {\n background: alpha(theme.palette.background.paper, 0.9),\n },\n}));\n\nexport const ImageUploadAvatar: React.FC<ImageUploadAvatarProps> = ({\n name = \"image\",\n defaultValue = null,\n onChange,\n size = 128,\n variant = \"rounded\",\n accept = \"image/*\",\n disabled,\n allowClear = true,\n}) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const [internalSrc, setInternalSrc] = useState<string | null>(defaultValue ?? null);\n const [hover, setHover] = useState(false);\n\n useEffect(() => {\n if (!defaultValue) return;\n if (!internalSrc || !internalSrc.startsWith(\"blob:\")) {\n setInternalSrc(defaultValue);\n }\n }, [defaultValue]);\n\n useEffect(() => {\n return () => {\n if (internalSrc?.startsWith(\"blob:\")) {\n URL.revokeObjectURL(internalSrc);\n }\n };\n }, [internalSrc]);\n\n const handlePick = (e: ChangeEvent<HTMLInputElement>) => {\n const selected = e.target.files?.[0] ?? null;\n if (internalSrc?.startsWith(\"blob:\")) {\n URL.revokeObjectURL(internalSrc);\n }\n let preview: string | null = null;\n if (selected) {\n preview = URL.createObjectURL(selected);\n setInternalSrc(preview);\n } else {\n setInternalSrc(null);\n }\n if (inputRef.current) inputRef.current.value = \"\";\n onChange?.(selected, preview);\n };\n\n const triggerPick = () => {\n if (!disabled) inputRef.current?.click();\n };\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (internalSrc?.startsWith(\"blob:\")) {\n URL.revokeObjectURL(internalSrc);\n }\n setInternalSrc(null);\n onChange?.(null, null);\n };\n\n return (\n <Wrapper\n role=\"button\"\n size={size}\n variant={variant}\n onPointerEnter={() => setHover(true)}\n onPointerLeave={() => setHover(false)}\n onClick={triggerPick}\n >\n {internalSrc && <PreviewImg src={internalSrc} />}\n <Overlay className={`${!internalSrc ? \"empty\" : \"\"} ${hover && !disabled ? \"hover\" : \"\"}`}>\n <CloudUpload className=\"uploadIcon\" fontSize=\"large\" />\n </Overlay>\n\n {allowClear && internalSrc && !disabled && (\n <ClearButton size=\"small\" aria-label=\"Clear image\" onClick={handleClear} sx={{ m: 1 }}>\n <CloseIcon fontSize=\"inherit\" />\n </ClearButton>\n )}\n\n <HiddenInput ref={inputRef} type=\"file\" name={name} accept={accept} onChange={handlePick} disabled={disabled} />\n </Wrapper>\n );\n};\n\nexport default ImageUploadAvatar;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { Alert, Grow, IconButton, type AlertProps } from \"@mui/material\";\nimport { alpha, useTheme } from \"@mui/material/styles\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { constants } from \"@verma-consulting/common-library\";\n\nconst SNACKBAR_TYPES = (constants as any)?.SNACKBAR_TYPES;\n\nexport type SnackbarType = \"success\" | \"error\" | \"warning\" | \"info\" | \"\";\n\nconst DULL_SNACKBAR_COLORS = {\n success: \"#6B8E6B\",\n warning: \"#C97B4B\", // dull orange soda\n info: \"#4A5E8A\",\n error: \"#9B4444\",\n} as const;\n\nexport interface FormSnackBarState {\n open?: boolean;\n message?: string;\n type?: SnackbarType;\n}\n\nexport interface FormSnackBarProps {\n snackBar?: FormSnackBarState;\n setSnackBar?: (state: FormSnackBarState) => void;\n autoHideDuration?: number;\n}\n\nfunction isSnackbarType(val: unknown): val is Exclude<SnackbarType, \"\"> {\n if (typeof val !== \"string\") return false;\n if (!SNACKBAR_TYPES) {\n return ([\"success\", \"error\", \"warning\", \"info\"] as const).includes(\n val as any,\n );\n }\n const values = Object.values(SNACKBAR_TYPES) as string[];\n return values.includes(val);\n}\n\nconst FormSnackBar: React.FC<FormSnackBarProps> = ({\n snackBar = {},\n setSnackBar = () => null,\n autoHideDuration = 3500,\n}) => {\n const theme = useTheme();\n\n const [queue, setQueue] = useState<\n Array<{ id: string; type: SnackbarType; message: string }>\n >([]);\n const idRef = useRef(0);\n const prevOpenRef = useRef<boolean>(!!snackBar?.open);\n const prevSignatureRef = useRef<string>(\"\");\n const timersRef = useRef<Record<string, ReturnType<typeof setTimeout>>>({});\n\n const type = (snackBar.type ?? \"\") as SnackbarType;\n const message = snackBar.message ?? \"\";\n\n const severity: AlertProps[\"severity\"] = isSnackbarType(type) ? type : \"info\";\n\n const enqueueFromProp = () => {\n if (!snackBar?.open) return;\n if (!message) return;\n\n const signature = `${type}::${message}`;\n const openRose = !prevOpenRef.current && !!snackBar?.open;\n const signatureChanged = signature !== prevSignatureRef.current;\n\n // Enqueue on a rising edge OR when message/type changes while still open.\n if (!openRose && !signatureChanged) return;\n\n prevSignatureRef.current = signature;\n const id = String(++idRef.current);\n setQueue((q) => [...q, { id, type, message }]);\n\n timersRef.current[id] = setTimeout(() => {\n setQueue((q) => q.filter((item) => item.id !== id));\n delete timersRef.current[id];\n }, autoHideDuration);\n\n // Reset the external trigger immediately so repeated actions can enqueue again.\n setSnackBar({ open: false, message: \"\", type: \"\" });\n };\n\n useEffect(() => {\n const nextOpen = !!snackBar?.open;\n // Enqueue on open change and/or message change while open.\n enqueueFromProp();\n prevOpenRef.current = nextOpen;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [snackBar?.open, snackBar?.message, snackBar?.type]);\n\n const handleDismiss = (id: string) => {\n const t = timersRef.current[id];\n if (t) clearTimeout(t);\n delete timersRef.current[id];\n setQueue((q) => q.filter((item) => item.id !== id));\n };\n\n useEffect(() => {\n return () => {\n Object.values(timersRef.current).forEach((t) => clearTimeout(t));\n timersRef.current = {};\n };\n }, []);\n\n const typeStyles = (severity: AlertProps[\"severity\"]) => {\n // Softer, dull colors so they are visible without being harsh.\n const baseHex =\n severity === \"success\"\n ? DULL_SNACKBAR_COLORS.success\n : severity === \"error\"\n ? DULL_SNACKBAR_COLORS.error\n : severity === \"warning\"\n ? DULL_SNACKBAR_COLORS.warning\n : DULL_SNACKBAR_COLORS.info;\n return {\n bg:\n theme.palette.mode === \"dark\"\n ? alpha(baseHex, 0.34)\n : alpha(baseHex, 0.24),\n text: theme.palette.mode === \"dark\" ? \"rgba(255,255,255,0.94)\" : baseHex,\n icon: baseHex,\n };\n };\n\n return (\n <div\n aria-live=\"polite\"\n aria-atomic=\"true\"\n style={{\n position: \"fixed\",\n top: 12,\n right: 12,\n zIndex: 1400,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 8,\n width: \"min(420px, calc(100vw - 24px))\",\n pointerEvents: \"none\",\n }}\n >\n {queue.map((item) => {\n const localSeverity: AlertProps[\"severity\"] = isSnackbarType(item.type)\n ? item.type\n : \"info\";\n\n const colors = typeStyles(localSeverity);\n\n return (\n <Grow key={item.id} in timeout={280}>\n <Alert\n variant=\"filled\"\n severity={localSeverity}\n sx={{\n width: \"100%\",\n pointerEvents: \"auto\",\n borderRadius: 2,\n px: { xs: 1.25, sm: 1.5 },\n py: 0.875,\n alignItems: \"center\",\n boxShadow: 2,\n backgroundColor: colors.bg,\n color: colors.text,\n backdropFilter: \"blur(14px) saturate(150%)\",\n WebkitBackdropFilter: \"blur(14px) saturate(150%)\",\n border: `1px solid ${alpha(\"#FFFFFF\", theme.palette.mode === \"dark\" ? 0.16 : 0.55)}`,\n \"& .MuiAlert-icon\": {\n color: colors.icon,\n },\n \"& .MuiAlert-message\": {\n m: 0,\n p: 0,\n fontWeight: 600,\n letterSpacing: \"-0.01em\",\n },\n }}\n action={\n <IconButton\n aria-label=\"close\"\n color=\"inherit\"\n size=\"small\"\n onClick={() => handleDismiss(item.id)}\n >\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n }\n >\n {item.message}\n </Alert>\n </Grow>\n );\n })}\n </div>\n );\n};\n\nexport default FormSnackBar;\n","import React from \"react\";\nimport { CircularProgress, Backdrop } from \"@mui/material\";\nimport { makeStyles } from \"@mui/styles\";\nimport { alpha } from \"@mui/material/styles\";\n\ninterface LoaderProps {\n size?: number;\n color?: \"primary\" | \"secondary\" | \"inherit\" | \"success\" | \"error\" | \"info\" | \"warning\";\n}\n\nconst useStyles = makeStyles({\n \"@keyframes pulse\": {\n \"0%\": { transform: \"scale(1)\", opacity: 0.9 },\n \"50%\": { transform: \"scale(1.05)\", opacity: 1 },\n \"100%\": { transform: \"scale(1)\", opacity: 0.9 },\n },\n progress: {\n animation: \"$pulse 1.5s ease-in-out infinite\",\n },\n});\n\nconst Loader: React.FC<LoaderProps> = ({ size = 48, color = \"primary\" }) => {\n const classes = useStyles();\n\n return (\n <Backdrop\n open\n sx={{\n zIndex: (theme) => theme.zIndex.modal + 1,\n backgroundColor: \"transparent\",\n backdropFilter: \"blur(10px) saturate(145%)\",\n }}\n >\n <CircularProgress\n size={size}\n color={color}\n thickness={3.4}\n className={classes.progress}\n sx={{\n p: 1,\n borderRadius: \"50%\",\n backgroundColor: \"transparent\",\n border: (theme) =>\n `1px solid ${alpha(\"#FFFFFF\", theme.palette.mode === \"dark\" ? 0.14 : 0.56)}`,\n boxShadow: (theme) =>\n theme.palette.mode === \"dark\"\n ? \"0 10px 24px rgba(0,0,0,0.32)\"\n : \"0 10px 20px rgba(15,23,42,0.14)\",\n }}\n />\n </Backdrop>\n );\n};\n\nexport default Loader;\n","// @ts-nocheck\nimport React from \"react\";\nimport { Box, useTheme } from \"@mui/material\";\n\nconst SHIMMER_KEYFRAMES = {\n \"@keyframes skeletonShimmer\": {\n \"0%\": { backgroundPosition: \"200% 0\" },\n \"100%\": { backgroundPosition: \"-200% 0\" },\n },\n};\n\nexport interface SkeletonBarProps {\n width?: string | number;\n height?: number;\n sx?: object;\n}\n\n/**\n * Horizontal bar with sideways shimmer loading animation.\n * Use in tables, cards, selects, and any loading placeholder.\n */\nexport const SkeletonBar: React.FC<SkeletonBarProps> = ({\n width = \"100%\",\n height = 24,\n sx = {},\n}) => {\n const theme = useTheme();\n const base =\n theme.palette.mode === \"dark\"\n ? (theme.palette.grey?.[700] ?? \"#424242\")\n : (theme.palette.grey?.[200] ?? \"#e0e0e0\");\n const highlight =\n theme.palette.mode === \"dark\"\n ? (theme.palette.grey?.[600] ?? \"#616161\")\n : (theme.palette.grey?.[100] ?? \"#f5f5f5\");\n\n return (\n <Box\n sx={{\n ...SHIMMER_KEYFRAMES,\n borderRadius: 2,\n height,\n width,\n maxWidth: \"100%\",\n overflow: \"hidden\",\n background: `linear-gradient(90deg, ${base} 0%, ${highlight} 20%, ${base} 40%, ${base} 100%)`,\n backgroundSize: \"200% 100%\",\n animation: \"skeletonShimmer 1.4s ease-in-out infinite\",\n ...sx,\n }}\n />\n );\n};\n\nexport default SkeletonBar;\n","// @ts-nocheck\nimport React from \"react\";\nimport { Box, Typography, useTheme } from \"@mui/material\";\nimport { DatasetOutlined } from \"@mui/icons-material\";\n\nexport interface EmptyStateProps {\n /** Label text to display (e.g. getContent(\"noDataDescription\")) */\n label?: string;\n /** Vertical margin (theme spacing, default 8) */\n m?: number;\n /** Optional custom icon */\n icon?: React.ReactNode;\n}\n\nconst EmptyState: React.FC<EmptyStateProps> = ({ label, m = 8, icon }) => {\n const theme = useTheme();\n const text = label ?? \"No data created yet\";\n\n const iconColor =\n theme.palette.mode === \"dark\"\n ? \"rgba(255,255,255,0.42)\"\n : \"rgba(0,0,0,0.42)\";\n\n const labelColor =\n theme.palette.mode === \"dark\"\n ? \"rgba(255,255,255,0.50)\"\n : \"rgba(0,0,0,0.38)\";\n\n const iconEl =\n icon != null && React.isValidElement(icon) ? (\n icon\n ) : (\n <DatasetOutlined\n sx={{\n fontSize: 48,\n color: iconColor,\n display: \"block\",\n }}\n />\n );\n\n return (\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 1.5,\n minHeight: 160,\n m,\n py: 3,\n px: 2,\n }}\n >\n {iconEl}\n <Typography\n variant=\"body2\"\n align=\"center\"\n sx={{\n fontWeight: 400,\n fontSize: \"0.875rem\",\n letterSpacing: \"0.01em\",\n color: labelColor,\n maxWidth: 320,\n lineHeight: 1.5,\n }}\n >\n {text}\n </Typography>\n </Box>\n );\n};\nexport default EmptyState;\n","// @ts-nocheck\nimport React from \"react\";\nimport { Button, Typography, Icon } from \"@mui/material\";\nimport { alpha, useTheme } from \"@mui/material/styles\";\nimport { glassSurface } from \"./glassStyles\";\n\nexport type PillProps = {\n label?: string;\n leftIcon?: string;\n rightIcon?: string;\n color?: string;\n isSelected?: boolean;\n onClick?: () => void;\n disabled?: boolean;\n};\n\nconst Pill = ({\n variant = \"filter\",\n leftIcon = null,\n rightIcon = null,\n color = null,\n isSelected = false,\n onClick = () => null,\n label = \"\",\n disabled = false,\n}: PillProps) => {\n const theme = useTheme();\n\n return (\n <Button\n variant={isSelected ? \"contained\" : \"outlined\"}\n color={color || \"primary\"}\n sx={{\n ...glassSurface(theme),\n borderRadius: 16,\n padding: \"8px 16px\",\n minHeight: 38,\n textTransform: \"none\",\n borderColor: isSelected\n ? alpha(theme.palette.primary.main, 0.34)\n : alpha(theme.palette.text.primary, 0.18),\n color: isSelected ? \"primary.main\" : \"text.primary\",\n \"&:hover\": {\n borderColor: alpha(theme.palette.primary.main, 0.42),\n boxShadow:\n theme.palette.mode === \"dark\"\n ? \"0 10px 22px rgba(0,0,0,0.34)\"\n : \"0 10px 20px rgba(15,23,42,0.14)\",\n },\n }}\n onClick={onClick}\n disabled={disabled}\n >\n <div style={{ display: \"flex\", alignItems: \"center\" }}>\n {leftIcon && (\n <Icon\n className={leftIcon}\n fontSize={14}\n color=\"inherit\"\n style={{ paddingRight: 8 }}\n data-testid=\"pill-left-icon\"\n />\n )}\n <Typography variant=\"subtitle2\" color=\"inherit\" fontWeight={700}>\n {label}\n </Typography>\n {rightIcon && (\n <Icon\n className={rightIcon}\n fontSize={14}\n color=\"inherit\"\n style={{ marginLeft: 8 }}\n data-testid=\"pill-right-icon\"\n />\n )}\n </div>\n </Button>\n );\n};\n\nexport default Pill;\n","import React from \"react\";\nimport { alpha, styled } from \"@mui/material/styles\";\nimport Switch, { SwitchProps } from \"@mui/material/Switch\";\n\n// explicitly type as FC with SwitchProps\nconst IOSSwitch: React.FC<SwitchProps> = styled((props: SwitchProps) => (\n <Switch focusVisibleClassName=\".Mui-focusVisible\" disableRipple {...props} />\n))(({ theme }) => ({\n width: 46,\n height: 30,\n padding: 0,\n \"& .MuiSwitch-switchBase\": {\n padding: 0,\n margin: 2,\n transitionDuration: \"300ms\",\n \"&.Mui-checked\": {\n transform: \"translateX(16px)\",\n color: \"#fff\",\n \"& + .MuiSwitch-track\": {\n background: `linear-gradient(120deg, ${alpha(theme.palette.primary.light, 0.92)} 0%, ${alpha(theme.palette.primary.main, 0.94)} 100%)`,\n opacity: 1,\n border: 0,\n },\n \"&.Mui-disabled + .MuiSwitch-track\": {\n opacity: 0.5,\n },\n },\n \"&.Mui-focusVisible .MuiSwitch-thumb\": {\n color: \"#33cf4d\",\n border: \"6px solid #fff\",\n },\n \"&.Mui-disabled .MuiSwitch-thumb\": {\n color:\n theme.palette.mode === \"light\"\n ? theme.palette.grey[100]\n : theme.palette.grey[600],\n },\n \"&.Mui-disabled + .MuiSwitch-track\": {\n opacity: theme.palette.mode === \"light\" ? 0.7 : 0.3,\n },\n },\n \"& .MuiSwitch-thumb\": {\n boxSizing: \"border-box\",\n width: 26,\n height: 26,\n boxShadow:\n theme.palette.mode === \"dark\"\n ? \"0 2px 8px rgba(0,0,0,0.38)\"\n : \"0 2px 6px rgba(15,23,42,0.24)\",\n },\n \"& .MuiSwitch-track\": {\n borderRadius: 16,\n background:\n theme.palette.mode === \"light\"\n ? \"linear-gradient(120deg, rgba(245,248,255,0.92) 0%, rgba(224,232,245,0.92) 100%)\"\n : \"linear-gradient(120deg, rgba(55,65,81,0.74) 0%, rgba(31,41,55,0.8) 100%)\",\n border: `1px solid ${alpha(\"#FFFFFF\", theme.palette.mode === \"dark\" ? 0.16 : 0.56)}`,\n backdropFilter: \"blur(10px) saturate(145%)\",\n WebkitBackdropFilter: \"blur(10px) saturate(145%)\",\n opacity: 1,\n transition: theme.transitions.create([\"background-color\"], {\n duration: 500,\n }),\n },\n}));\n\nexport default IOSSwitch;\n","import React from \"react\";\nimport { Chip } from \"@mui/material\";\nimport { alpha, useTheme } from \"@mui/material/styles\";\nimport { userStatus } from \"@verma-consulting/common-library\";\nimport { glassSurface } from \"./glassStyles\";\n\ninterface StatusPillProps {\n status: userStatus;\n}\n\nconst statusColorMap: Record<userStatus, string> = {\n [userStatus.Pending]: \"#B06A00\",\n [userStatus.Active]: \"#087443\",\n [userStatus.Inactive]: \"#B42318\",\n [userStatus.Invited]: \"#175CD3\",\n};\n\nconst StatusPill: React.FC<StatusPillProps> = ({ status }) => {\n const theme = useTheme();\n\n return (\n <Chip\n label={status}\n variant=\"outlined\"\n sx={{\n ...glassSurface(theme),\n minHeight: 38,\n fontWeight: 700,\n borderRadius: 16,\n px: 1.25,\n letterSpacing: \"0.01em\",\n color: statusColorMap[status] ?? theme.palette.text.primary,\n backgroundColor: alpha(\n statusColorMap[status] ?? theme.palette.text.primary,\n theme.palette.mode === \"dark\" ? 0.24 : 0.12,\n ),\n borderColor: alpha(\n statusColorMap[status] ?? theme.palette.text.primary,\n theme.palette.mode === \"dark\" ? 0.36 : 0.28,\n ),\n \"& .MuiChip-label\": {\n px: 1.25,\n },\n }}\n />\n );\n};\n\nexport default StatusPill;\n","import React, { useState, MouseEvent, ReactNode, FC } from \"react\";\nimport { Tooltip, IconButton, Popover } from \"@mui/material\";\nimport { MoreHoriz } from \"@mui/icons-material\";\n\ninterface FormPopoverProps {\n row?: any;\n children: (props: { row: any; handleClose: () => void }) => React.ReactNode;\n title?: string;\n}\n\nconst FormPopover: FC<FormPopoverProps> = ({ row, children, title }) => {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const open = Boolean(anchorEl);\n\n return (\n <>\n <Tooltip title={title}>\n <IconButton\n onClick={handleClick}\n size=\"small\"\n sx={{\n backgroundColor: \"white\",\n boxShadow: 1,\n borderRadius: \"50%\",\n border: \"1px solid transparent\",\n \"&:hover\": {\n border: (theme) => `1px solid ${theme.palette.primary.main}`,\n backgroundColor: \"#f0f0f0\",\n },\n }}\n >\n <MoreHoriz fontSize=\"inherit\" color=\"primary\" />\n </IconButton>\n </Tooltip>\n <Popover\n open={open}\n anchorEl={anchorEl}\n onClose={handleClose}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"left\",\n }}\n >\n {children({ row, handleClose })}\n </Popover>\n </>\n );\n};\n\nexport default FormPopover;\n","// @ts-nocheck\nimport React, { useEffect, useRef, useState, useMemo } from \"react\";\nimport {\n Autocomplete,\n TextField,\n Typography,\n FormLabel,\n FormControl,\n IconButton,\n} from \"@mui/material\";\nimport { alpha, useTheme } from \"@mui/material/styles\";\nimport { Clear } from \"@mui/icons-material\";\nimport { makeStyles } from \"@mui/styles\";\nimport { GenericPayload } from \"@verma-consulting/common-library\";\n\nconst useStyles = makeStyles((theme) => ({\n defaultMode: {\n margin: \"4px\",\n padding: \"14px 8px\",\n cursor: \"pointer\",\n borderRadius: 8,\n border: `1px solid ${alpha(\"#FFFFFF\", theme.palette.mode === \"dark\" ? 0.16 : 0.55)}`,\n backdropFilter: \"blur(14px) saturate(150%)\",\n background:\n theme.palette.mode === \"dark\"\n ? \"linear-gradient(160deg, rgba(31,41,55,0.78), rgba(17,24,39,0.68))\"\n : \"linear-gradient(160deg, rgba(255,255,255,0.9), rgba(245,249,255,0.72))\",\n \"&:hover\": {\n boxShadow:\n theme.palette.mode === \"dark\"\n ? \"rgba(0, 0, 0, 0.34) 0px 10px 26px\"\n : \"rgba(15, 23, 42, 0.16) 0px 8px 24px\",\n },\n },\n formLabel: {\n cursor: \"pointer\",\n },\n formValue: {\n cursor: \"pointer\",\n wordBreak: \"break-word\",\n whiteSpace: \"pre-wrap\",\n },\n}));\n\ninterface SearchableSelectProps {\n name: string;\n label: string;\n value: string;\n onChange: (value: string) => void;\n options: GenericPayload[];\n size?: \"small\" | \"medium\";\n style?: React.CSSProperties;\n disabled?: boolean;\n /** If `null` or omitted, the clear control is not shown. Pass a handler to enable clear. */\n onClear?: (() => void) | null;\n defaultEditMode?: boolean;\n multiple?: boolean;\n}\n\nconst SearchableSelect: React.FC<SearchableSelectProps> = React.memo(\n ({\n name,\n label,\n value,\n onChange,\n options,\n size = \"small\",\n style,\n disabled = false,\n onClear = null,\n defaultEditMode = false,\n multiple = false,\n }) => {\n const theme = useTheme();\n const classes = useStyles();\n const wrapperRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const [editMode, setEditMode] = useState(defaultEditMode);\n const [open, setOpen] = useState(defaultEditMode);\n const glassBackground =\n theme.palette.mode === \"dark\"\n ? \"linear-gradient(160deg, rgba(31,41,55,0.78), rgba(17,24,39,0.68))\"\n : \"linear-gradient(160deg, rgba(255,255,255,0.9), rgba(245,249,255,0.72))\";\n\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (\n wrapperRef.current &&\n !wrapperRef.current.contains(event.target as Node)\n ) {\n setEditMode(false);\n setOpen(false);\n }\n }\n\n if (editMode) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [editMode]);\n\n useEffect(() => {\n if (editMode && open && inputRef.current) {\n inputRef.current.focus();\n }\n }, [editMode, open]);\n\n const handleClear = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n if (onClear) {\n onClear();\n }\n setEditMode(false);\n setOpen(false);\n };\n\n const selected = useMemo(() => {\n if (multiple) {\n if (!value.trim()) return [];\n const selectedValues = value.split(\", \").map((v) => v.trim());\n return options.filter((opt) => selectedValues.includes(opt.value));\n } else {\n return options.find((opt) => opt.value === value) ?? null;\n }\n }, [value, options, multiple]);\n\n const displayValue = useMemo(() => {\n if (multiple) {\n if (!Array.isArray(selected)) return \"\";\n return selected.map((opt) => opt.label).join(\", \");\n } else {\n return (selected as GenericPayload | null)?.label ?? \"\";\n }\n }, [selected, multiple]);\n\n const isValueEmpty = !value.trim();\n const showClear = onClear != null;\n\n return editMode ? (\n <FormControl fullWidth style={style} disabled={disabled} size={size}>\n <Autocomplete\n multiple={multiple}\n disableCloseOnSelect={multiple}\n options={options}\n value={selected}\n open={open}\n onOpen={() => setOpen(true)}\n onClose={() => setOpen(false)}\n onChange={(_, newValue) => {\n if (multiple) {\n if (Array.isArray(newValue)) {\n let vals = newValue?.map((opt) => opt?.value);\n let val = vals?.join(\", \");\n onChange(val);\n } else {\n onChange(\"\");\n }\n setOpen(true);\n } else {\n onChange((newValue as GenericPayload | null)?.value ?? \"\");\n setOpen(false);\n }\n }}\n disableClearable\n autoHighlight\n getOptionLabel={(option) => option.label}\n isOptionEqualToValue={(option, val) => option.value === val.value}\n sx={{\n \"& .MuiAutocomplete-inputRoot\": {\n background: glassBackground,\n color: \"text.primary\",\n },\n \"& .MuiAutocomplete-inputRoot.Mui-focused\": {\n background: glassBackground,\n color: \"text.primary\",\n },\n \"& .MuiAutocomplete-inputRoot:hover\": {\n background: glassBackground,\n },\n \"& .MuiAutocomplete-input\": {\n color: \"text.primary\",\n WebkitTextFillColor: \"currentColor\",\n },\n \"& .MuiInputLabel-root\": {\n color: \"text.secondary\",\n },\n \"& .MuiInputLabel-root.Mui-focused\": {\n color: \"text.primary\",\n },\n \"& .MuiSvgIcon-root\": {\n color: \"text.secondary\",\n },\n }}\n slotProps={{\n paper: {\n sx: {\n background: glassBackground,\n backdropFilter: \"blur(12px) saturate(150%)\",\n border: `1px solid ${alpha(\"#FFFFFF\", theme.palette.mode === \"dark\" ? 0.16 : 0.55)}`,\n boxShadow:\n theme.palette.mode === \"dark\"\n ? \"rgba(0, 0, 0, 0.34) 0px 10px 26px\"\n : \"rgba(15, 23, 42, 0.16) 0px 8px 24px\",\n \"& .MuiAutocomplete-option\": {\n \"&[aria-selected='true']\": {\n backgroundColor: alpha(\n theme.palette.primary.main,\n theme.palette.mode === \"dark\" ? 0.28 : 0.14,\n ),\n },\n \"&.Mui-focused\": {\n backgroundColor: alpha(\n theme.palette.primary.main,\n theme.palette.mode === \"dark\" ? 0.2 : 0.1,\n ),\n },\n },\n },\n },\n }}\n renderInput={(params) => (\n <TextField\n {...params}\n label={label}\n variant=\"outlined\"\n size={size}\n inputRef={inputRef}\n InputProps={{\n ...params.InputProps,\n sx: {\n borderRadius: 2,\n backdropFilter: \"blur(10px)\",\n pr: 1.5,\n background: glassBackground,\n color: \"text.primary\",\n \"&.Mui-focused\": {\n background: glassBackground,\n },\n \"&:hover\": {\n background: glassBackground,\n },\n \"& .MuiInputBase-input\": {\n color: \"text.primary\",\n WebkitTextFillColor: \"currentColor\",\n },\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: alpha(\n \"#FFFFFF\",\n theme.palette.mode === \"dark\" ? 0.18 : 0.6,\n ),\n },\n },\n endAdornment: (\n <>\n {showClear && !isValueEmpty && (\n <IconButton\n aria-label={`clear ${name}`}\n onClick={handleClear}\n size=\"small\"\n sx={{\n backgroundColor: \"transparent\",\n boxShadow: \"none\",\n mr: 0.25,\n }}\n >\n <Clear fontSize=\"inherit\" />\n </IconButton>\n )}\n {params.InputProps.endAdornment}\n </>\n ),\n }}\n />\n )}\n onBlur={() => {\n setEditMode(false);\n setOpen(false);\n }}\n />\n </FormControl>\n ) : (\n <div\n ref={wrapperRef}\n onClick={() => {\n if (!disabled) {\n setEditMode(true);\n setOpen(true);\n }\n }}\n className={classes.defaultMode}\n style={style}\n >\n <FormLabel\n className={classes.formLabel}\n sx={{ color: \"text.secondary\" }}\n >\n {label}\n </FormLabel>\n <Typography\n className={classes.formValue}\n sx={{ color: \"text.primary\" }}\n >\n {displayValue}\n </Typography>\n </div>\n );\n },\n);\n\nexport default SearchableSelect;\n","import {\n Drawer,\n Typography,\n Box,\n IconButton,\n Grid,\n useTheme,\n useMediaQuery,\n} from \"@mui/material\";\nimport { alpha } from \"@mui/material/styles\";\nimport { Close } from \"@mui/icons-material\";\n\ninterface FormDrawerProps {\n open: boolean;\n setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n title?: string | null;\n actions?: React.ReactNode;\n children: React.ReactNode;\n}\n\nconst FormDrawer: React.FC<FormDrawerProps> = ({\n open,\n setOpen,\n title,\n actions,\n children,\n}) => {\n const theme = useTheme();\n const mdMatches = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n return (\n <Drawer\n anchor={mdMatches ? \"bottom\" : \"right\"}\n open={open}\n onClose={() => setOpen(false)}\n sx={{\n \"& .MuiDrawer-paper\": {\n width: mdMatches ? \"100%\" : \"64%\",\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n borderRadius: mdMatches ? \"24px 24px 0 0\" : \"24px 0 0 24px\",\n },\n }}\n >\n <Box\n p={3}\n borderBottom={`1px solid ${alpha(theme.palette.divider, 0.36)}`}\n >\n <Grid container>\n <Grid item>\n {title && (\n <Typography variant=\"h6\" fontWeight=\"bold\">\n {title}\n </Typography>\n )}\n </Grid>\n <Grid item>\n <IconButton\n size=\"medium\"\n onClick={() => setOpen(false)}\n sx={{\n position: \"absolute\",\n top: 8,\n right: 8,\n zIndex: 2,\n backgroundColor: alpha(theme.palette.background.paper, 0.46),\n }}\n >\n <Close fontSize=\"inherit\" />\n </IconButton>\n </Grid>\n </Grid>\n </Box>\n <Box flex={1} overflow=\"auto\" p={3}>\n {children}\n </Box>\n\n {actions && (\n <Box\n p={2}\n borderTop={`1px solid ${alpha(theme.palette.divider, 0.36)}`}\n sx={{\n position: \"sticky\",\n bottom: 0,\n zIndex: 1,\n backgroundColor: alpha(theme.palette.background.paper, 0.38),\n backdropFilter: \"blur(10px)\",\n }}\n >\n {actions}\n </Box>\n )}\n </Drawer>\n );\n};\n\nexport default FormDrawer;\n","import React, {\n useCallback,\n useEffect,\n useRef,\n useState,\n ChangeEvent,\n FocusEvent,\n} from \"react\";\nimport {\n Box,\n Stack,\n TextField,\n MenuItem,\n useTheme,\n useMediaQuery,\n} from \"@mui/material\";\nimport { alpha } from \"@mui/material/styles\";\nimport { constants } from \"@verma-consulting/common-library\";\n\ninterface PhoneNumberFieldProps {\n value?: string | null;\n onChange: (e164: string) => void;\n defaultCountry?: string;\n label?: string;\n size?: \"small\" | \"medium\";\n disabled?: boolean;\n autoFocus?: boolean;\n onBlur?: () => void;\n}\n\nconst PhoneNumberField: React.FC<PhoneNumberFieldProps> = ({\n value = \"\",\n onChange,\n defaultCountry = \"US\",\n label = \"Phone number\",\n size = \"small\",\n disabled = false,\n autoFocus = false,\n onBlur,\n}) => {\n const theme = useTheme();\n const smMatches = useMediaQuery(theme.breakpoints.down(\"sm\"));\n const countries = (constants.COUNTRIES || []) as any;\n const glassInputSx = {\n backdropFilter: \"blur(10px) saturate(150%)\",\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: alpha(\n \"#FFFFFF\",\n theme.palette.mode === \"dark\" ? 0.16 : 0.58,\n ),\n },\n };\n\n const [country, setCountry] = useState(defaultCountry);\n const [localNumber, setLocalNumber] = useState(\"\");\n const [isFocused, setIsFocused] = useState(false);\n const [selectOpen, setSelectOpen] = useState(false);\n const [ignoreNextOutsideClick, setIgnoreNextOutsideClick] = useState(false);\n\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n\n const parseE164 = useCallback(\n (val: string) => {\n const cleaned = (val || \"\").toString().replace(/\\D/g, \"\");\n if (!cleaned) return { dial: \"\", local: \"\" };\n\n const sorted = [...countries].sort(\n (a, b) => b.phone.length - a.phone.length\n );\n const found = sorted.find((c) => cleaned.startsWith(c.phone));\n if (found) {\n const dial = found.phone;\n const local = cleaned.slice(dial.length);\n return { dial, local: local.slice(-10) };\n }\n return { dial: \"\", local: cleaned.slice(-10) };\n },\n [countries]\n );\n\n useEffect(() => {\n if (isFocused) return;\n if (!value) {\n setLocalNumber(\"\");\n return;\n }\n const { dial, local } = parseE164(String(value));\n if (dial) {\n const found = countries.find((c: any) => c.phone === dial);\n if (found) setCountry(found.code);\n }\n setLocalNumber(local);\n }, [value, parseE164, countries, isFocused]);\n\n const formatLocalNumber = (digits: string) => {\n const cleaned = digits.replace(/\\D/g, \"\").slice(0, 10);\n let formatted = \"\";\n if (cleaned.length > 0) formatted += cleaned.slice(0, 3);\n if (cleaned.length > 3) formatted += \"-\" + cleaned.slice(3, 6);\n if (cleaned.length > 6) formatted += \"-\" + cleaned.slice(6, 10);\n return formatted;\n };\n\n const commitValue = useCallback(() => {\n const sel = countries.find((c: any) => c.code === country);\n const dial = sel?.phone ?? \"\";\n if (dial && localNumber) {\n onChange(`+${dial}${localNumber}`);\n } else {\n onChange(\"\");\n }\n }, [countries, country, localNumber, onChange]);\n\n const handleLocalChange = (e: ChangeEvent<HTMLInputElement>) => {\n const digits = e.target.value.replace(/\\D/g, \"\").slice(0, 10);\n setLocalNumber(digits);\n };\n\n const handleCountryChange = (e: ChangeEvent<HTMLInputElement>) => {\n setCountry(e.target.value);\n };\n\n useEffect(() => {\n const onDocMouseDown = (ev: MouseEvent) => {\n if (!wrapperRef.current) return;\n if (wrapperRef.current.contains(ev.target as Node)) return;\n if (ignoreNextOutsideClick) {\n setIgnoreNextOutsideClick(false);\n return;\n }\n if (isFocused && !selectOpen) {\n commitValue();\n setIsFocused(false);\n onBlur?.();\n }\n };\n document.addEventListener(\"mousedown\", onDocMouseDown);\n return () => document.removeEventListener(\"mousedown\", onDocMouseDown);\n }, [isFocused, selectOpen, ignoreNextOutsideClick, commitValue, onBlur]);\n\n const handleWrapperBlur = (e: FocusEvent<HTMLDivElement>) => {\n const next = e.relatedTarget as Node | null;\n if (wrapperRef.current && next && wrapperRef.current.contains(next)) return;\n if (selectOpen) return;\n if (isFocused) {\n commitValue();\n setIsFocused(false);\n onBlur?.();\n }\n };\n\n return (\n <Box\n ref={wrapperRef}\n onFocusCapture={() => setIsFocused(true)}\n onBlurCapture={handleWrapperBlur}\n sx={{ display: \"flex\", alignItems: \"center\", width: \"100%\" }}\n >\n <Stack\n direction=\"row\"\n spacing={0}\n alignItems=\"center\"\n sx={{ width: \"100%\" }}\n >\n <TextField\n select\n value={country}\n onChange={handleCountryChange}\n disabled={disabled}\n size={size}\n sx={{\n width: 140,\n \"& .MuiOutlinedInput-root\": {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n ...glassInputSx,\n },\n }}\n SelectProps={{\n renderValue: (val: unknown) => {\n const code =\n typeof val === \"string\" ? val : defaultCountry.toUpperCase();\n const c = countries.find((x: any) => x.code === code);\n return c ? `${c.code} (+${c.phone})` : code;\n },\n onOpen: () => {\n setSelectOpen(true);\n setIgnoreNextOutsideClick(true);\n },\n onClose: () => setSelectOpen(false),\n }}\n >\n {countries.map((option: any) => (\n <MenuItem key={option.code} value={option.code}>\n {option.code} (+{option.phone})\n </MenuItem>\n ))}\n </TextField>\n <TextField\n label={label}\n value={localNumber ? formatLocalNumber(localNumber) : \"\"}\n onChange={handleLocalChange}\n placeholder=\" - - \"\n inputProps={{\n inputMode: \"numeric\",\n pattern: \"[0-9]*\",\n maxLength: 12,\n }}\n disabled={disabled}\n size={size}\n autoFocus={autoFocus}\n fullWidth\n sx={{\n \"& .MuiOutlinedInput-root\": {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n ...glassInputSx,\n },\n }}\n />\n </Stack>\n </Box>\n );\n};\n\nexport default PhoneNumberField;\n"],"mappings":"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","names":["jsx","TablePagination","_a","useTheme","styled","makeStyles","Box","jsx","_a","useTheme","useMediaQuery","jsx","jsxs","alpha","styled","useTheme","Box","Typography","alpha","jsx","jsxs","styled","useTheme","Box","alpha","Typography","Box","IconButton","alpha","styled","CloudUpload","jsx","jsxs","styled","Box","alpha","IconButton","_a","CloudUpload","useEffect","useRef","useState","IconButton","alpha","useTheme","CloseIcon","jsx","_a","severity","alpha","jsx","Box","useTheme","jsx","_a","React","Box","Typography","useTheme","jsx","jsxs","Typography","alpha","useTheme","jsx","jsxs","useTheme","alpha","Typography","alpha","styled","jsx","alpha","useTheme","jsx","_a","useTheme","alpha","useState","Tooltip","IconButton","jsx","jsxs","React","useEffect","useRef","useState","Typography","IconButton","alpha","useTheme","makeStyles","Fragment","jsx","jsxs","useStyles","_a","Typography","Box","IconButton","Grid","useTheme","useMediaQuery","alpha","Close","jsx","jsxs","useEffect","useRef","useState","Box","TextField","useTheme","useMediaQuery","alpha","constants","jsx","jsxs","_a"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@verma-consulting/design-library",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.44",
|
|
4
4
|
"description": "Shared MUI-based components for Verma Consulting",
|
|
5
5
|
"author": "Ankit Verma <ankit@vermadev.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"access": "public"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@verma-consulting/common-library": "^0.1.
|
|
41
|
+
"@verma-consulting/common-library": "^0.1.69"
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|
|
44
44
|
"clean": "rimraf dist",
|