{"version":3,"sources":["../src/index.tsx","../src/components/themedLayout/index.tsx","../src/contexts/themedLayoutContext/index.tsx","../src/components/themedLayout/sider/index.tsx","../src/hooks/useAutocomplete/index.ts","../src/hooks/useDataGrid/index.ts","../src/definitions/dataGrid/index.ts","../src/hooks/useThemedLayoutContext/index.ts","../src/components/themedLayout/header/index.tsx","../src/components/themedLayout/hamburgerMenu/index.tsx","../src/components/themedLayout/title/index.tsx","../src/components/pages/error/index.tsx","../src/components/pages/auth/index.tsx","../src/components/pages/auth/components/login/index.tsx","../src/components/pages/auth/components/styles.ts","../src/components/pages/auth/components/register/index.tsx","../src/components/pages/auth/components/forgotPassword/index.tsx","../src/components/pages/auth/components/updatePassword/index.tsx","../src/components/crud/create/index.tsx","../src/components/crud/edit/index.tsx","../src/components/crud/list/index.tsx","../src/components/crud/show/index.tsx","../src/components/buttons/create/index.tsx","../src/components/buttons/edit/index.tsx","../src/components/buttons/delete/index.tsx","../src/components/buttons/refresh/index.tsx","../src/components/buttons/show/index.tsx","../src/components/buttons/list/index.tsx","../src/components/buttons/export/index.tsx","../src/components/buttons/save/index.tsx","../src/components/buttons/clone/index.tsx","../src/components/buttons/import/index.tsx","../src/components/circularDeterminate/index.tsx","../src/components/fields/text/index.tsx","../src/components/fields/tag/index.tsx","../src/components/fields/email/index.tsx","../src/components/fields/boolean/index.tsx","../src/components/fields/date/index.tsx","../src/components/fields/file/index.tsx","../src/components/fields/url/index.tsx","../src/components/fields/number/index.tsx","../src/components/fields/markdown/index.tsx","../src/components/breadcrumb/index.tsx","../src/components/autoSaveIndicator/index.tsx","../src/theme/index.ts","../src/theme/palette/lightPalette.ts","../src/theme/palette/darkPalette.ts","../src/theme/typography.ts","../src/theme/palette/refinePalette.ts","../src/providers/notificationProvider/index.tsx","../src/providers/refineSnackbarProvider/index.tsx"],"sourcesContent":["/** Notistack */\n/**\n * Part of the following typing and documentation is from material-ui/src/Snackbar/Snackbar.d.ts\n */\nexport {\n  SnackbarProvider,\n  withSnackbar,\n  SnackbarContent as NotistackSnackbarContent,\n  useSnackbar,\n} from \"notistack\";\n\nexport type {\n  WithSnackbarProps,\n  SnackbarKey,\n  ProviderContext,\n  VariantType,\n  CloseReason,\n  SnackbarMessage,\n  SnackbarAction,\n  SnackbarContentCallback,\n  TransitionCloseHandler,\n  TransitionEnterHandler,\n  TransitionHandler,\n  ContainerClassKey as NotistackContainerClassKey,\n  VariantClassKey,\n  CombinedClassKey,\n  SnackbarOrigin,\n  IconVariant,\n  TransitionHandlerProps,\n  SnackbarContentProps,\n  SnackbarProps,\n  SharedProps,\n  OptionsObject,\n  SnackbarProviderProps,\n} from \"notistack\";\n\nexport * from \"./components/index.js\";\nexport * from \"./hooks/index.js\";\nexport * from \"./theme/index.js\";\nexport * from \"./providers/index.js\";\nexport * from \"./contexts/index.js\";\n","import React from \"react\";\nimport Box from \"@mui/material/Box\";\n\nimport { ThemedLayoutContextProvider } from \"@contexts\";\nimport { ThemedSider as DefaultSider } from \"./sider\";\nimport { ThemedHeader as DefaultHeader } from \"./header\";\n\nimport type { BoxProps } from \"@mui/material\";\nimport type { RefineThemedLayoutProps } from \"./types\";\n\ninterface ExtendedRefineThemedLayoutProps extends RefineThemedLayoutProps {\n  /**\n   * Additional properties for the children box.\n   * This type includes all properties of BoxProps, including 'sx'.\n   */\n  childrenBoxProps?: BoxProps;\n\n  /**\n   * Additional properties for the container box.\n   * This type includes all properties of BoxProps, including 'sx'.\n   */\n  containerBoxProps?: BoxProps;\n}\n\nexport const ThemedLayout: React.FC<ExtendedRefineThemedLayoutProps> = ({\n  Sider,\n  Header,\n  Title,\n  Footer,\n  OffLayoutArea,\n  children,\n  initialSiderCollapsed,\n  onSiderCollapsed,\n  childrenBoxProps = {},\n  containerBoxProps = {},\n}) => {\n  const SiderToRender = Sider ?? DefaultSider;\n  const HeaderToRender = Header ?? DefaultHeader;\n\n  const { sx: childrenSx, ...restChildrenProps } = childrenBoxProps;\n  const { sx: containerSx, ...restContainerProps } = containerBoxProps;\n\n  return (\n    <ThemedLayoutContextProvider\n      initialSiderCollapsed={initialSiderCollapsed}\n      onSiderCollapsed={onSiderCollapsed}\n    >\n      <Box\n        sx={{ display: \"flex\", flexDirection: \"row\", ...containerSx }}\n        {...restContainerProps}\n      >\n        <SiderToRender Title={Title} />\n        <Box\n          sx={[\n            {\n              display: \"flex\",\n              flexDirection: \"column\",\n              flex: 1,\n              minWidth: \"1px\",\n              minHeight: \"1px\",\n            },\n          ]}\n        >\n          <HeaderToRender />\n          <Box\n            component=\"main\"\n            sx={{\n              p: { xs: 1, md: 2, lg: 3 },\n              flexGrow: 1,\n              bgcolor: (theme) => theme.palette.background.default,\n              ...childrenSx,\n            }}\n            {...restChildrenProps}\n          >\n            {children}\n          </Box>\n          {Footer && <Footer />}\n        </Box>\n        {OffLayoutArea && <OffLayoutArea />}\n      </Box>\n    </ThemedLayoutContextProvider>\n  );\n};\n","import React, { type ReactNode, useState } from \"react\";\n\nimport type { IThemedLayoutContext } from \"./IThemedLayoutContext\";\n\nexport const ThemedLayoutContext = React.createContext<IThemedLayoutContext>({\n  siderCollapsed: false,\n  mobileSiderOpen: false,\n  setSiderCollapsed: () => undefined,\n  setMobileSiderOpen: () => undefined,\n});\n\nexport const ThemedLayoutContextProvider: React.FC<{\n  children: ReactNode;\n  initialSiderCollapsed?: boolean;\n  onSiderCollapsed?: (collapsed: boolean) => void;\n}> = ({ children, initialSiderCollapsed, onSiderCollapsed }) => {\n  const [siderCollapsed, setSiderCollapsedState] = useState(\n    initialSiderCollapsed ?? false,\n  );\n  const [mobileSiderOpen, setMobileSiderOpen] = useState(false);\n\n  const setSiderCollapsed = (collapsed: boolean) => {\n    setSiderCollapsedState(collapsed);\n    if (onSiderCollapsed) {\n      onSiderCollapsed(collapsed);\n    }\n  };\n\n  return (\n    <ThemedLayoutContext.Provider\n      value={{\n        siderCollapsed,\n        mobileSiderOpen,\n        setSiderCollapsed,\n        setMobileSiderOpen,\n        onSiderCollapsed,\n      }}\n    >\n      {children}\n    </ThemedLayoutContext.Provider>\n  );\n};\n","import React, { type CSSProperties, useState } from \"react\";\n\nimport Box from \"@mui/material/Box\";\nimport Drawer from \"@mui/material/Drawer\";\nimport List from \"@mui/material/List\";\nimport ListItemButton from \"@mui/material/ListItemButton\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport Collapse from \"@mui/material/Collapse\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Paper from \"@mui/material/Paper\";\n\nimport ListOutlined from \"@mui/icons-material/ListOutlined\";\nimport Logout from \"@mui/icons-material/Logout\";\nimport ExpandLess from \"@mui/icons-material/ExpandLess\";\nimport ExpandMore from \"@mui/icons-material/ExpandMore\";\nimport ChevronLeft from \"@mui/icons-material/ChevronLeft\";\nimport Dashboard from \"@mui/icons-material/Dashboard\";\n\nimport {\n  CanAccess,\n  type TreeMenuItem,\n  useIsExistAuthentication,\n  useLogout,\n  useTranslate,\n  useLink,\n  useMenu,\n  useActiveAuthProvider,\n  useWarnAboutChange,\n} from \"@refinedev/core\";\nimport type { RefineThemedLayoutSiderProps } from \"../types\";\n\nimport { ThemedTitle as DefaultTitle } from \"@components\";\nimport { useThemedLayoutContext } from \"@hooks\";\n\nexport const ThemedSider: React.FC<RefineThemedLayoutSiderProps> = ({\n  Title: TitleFromProps,\n  render,\n  meta,\n  activeItemDisabled = false,\n  siderItemsAreCollapsed = true,\n}) => {\n  const {\n    siderCollapsed,\n    setSiderCollapsed,\n    mobileSiderOpen,\n    setMobileSiderOpen,\n  } = useThemedLayoutContext();\n\n  const drawerWidth = () => {\n    if (siderCollapsed) return 56;\n    return 240;\n  };\n\n  const t = useTranslate();\n  const Link = useLink();\n  const translate = useTranslate();\n\n  const { menuItems, selectedKey, defaultOpenKeys } = useMenu({ meta });\n  const isExistAuthentication = useIsExistAuthentication();\n  const authProvider = useActiveAuthProvider();\n  const { warnWhen, setWarnWhen } = useWarnAboutChange();\n  const { mutate: mutateLogout } = useLogout();\n\n  const defaultExpandMenuItems = (() => {\n    const defaultOpenKeys = {};\n\n    if (siderItemsAreCollapsed) return defaultOpenKeys;\n\n    return menuItems.reduce((prev, curr) => {\n      const { key } = curr;\n\n      return {\n        ...prev,\n        [key]: true,\n      };\n    }, {});\n  })();\n\n  const [open, setOpen] = useState<{ [k: string]: any }>(\n    defaultExpandMenuItems,\n  );\n\n  React.useEffect(() => {\n    setOpen((previous) => {\n      const previousKeys: string[] = Object.keys(previous);\n      const previousOpenKeys = previousKeys.filter((key) => previous[key]);\n\n      const uniqueKeys = new Set([...previousOpenKeys, ...defaultOpenKeys]);\n      const uniqueKeysRecord = Object.fromEntries(\n        Array.from(uniqueKeys.values()).map((key) => [key, true]),\n      );\n      return uniqueKeysRecord;\n    });\n  }, [defaultOpenKeys]);\n\n  const RenderToTitle = TitleFromProps ?? DefaultTitle;\n\n  const handleClick = (key: string) => {\n    setOpen({ ...open, [key]: !open[key] });\n  };\n\n  const renderTreeView = (tree: TreeMenuItem[], selectedKey?: string) => {\n    return tree.map((item: TreeMenuItem) => {\n      const { icon, label, route, name, children, meta } = item;\n      const isOpen = open[item.key || \"\"] || false;\n\n      const isSelected = item.key === selectedKey;\n      const isNested = !(meta?.parent === undefined);\n\n      if (children.length > 0) {\n        return (\n          <CanAccess\n            key={item.key}\n            resource={name}\n            action=\"list\"\n            params={{\n              resource: item,\n            }}\n          >\n            <div key={item.key}>\n              <Tooltip\n                title={label ?? name}\n                placement=\"right\"\n                disableHoverListener={!siderCollapsed}\n                arrow\n              >\n                <ListItemButton\n                  onClick={() => {\n                    if (siderCollapsed) {\n                      setSiderCollapsed(false);\n                      if (!isOpen) {\n                        handleClick(item.key || \"\");\n                      }\n                    } else {\n                      handleClick(item.key || \"\");\n                    }\n                  }}\n                  sx={{\n                    pl: isNested ? 4 : 2,\n                    justifyContent: \"center\",\n                  }}\n                >\n                  <ListItemIcon\n                    sx={{\n                      justifyContent: \"center\",\n                      minWidth: \"24px\",\n                      transition: \"margin-right 0.3s\",\n                      marginRight: siderCollapsed ? \"0px\" : \"12px\",\n                      color: \"currentColor\",\n                    }}\n                  >\n                    {icon ?? <ListOutlined />}\n                  </ListItemIcon>\n                  <ListItemText\n                    primary={label}\n                    primaryTypographyProps={{\n                      noWrap: true,\n                      fontSize: \"14px\",\n                    }}\n                  />\n                  {isOpen ? (\n                    <ExpandLess\n                      sx={{\n                        color: \"text.icon\",\n                      }}\n                    />\n                  ) : (\n                    <ExpandMore\n                      sx={{\n                        color: \"text.icon\",\n                      }}\n                    />\n                  )}\n                </ListItemButton>\n              </Tooltip>\n              {!siderCollapsed && (\n                <Collapse\n                  in={open[item.key || \"\"]}\n                  timeout=\"auto\"\n                  unmountOnExit\n                >\n                  <List component=\"div\" disablePadding>\n                    {renderTreeView(children, selectedKey)}\n                  </List>\n                </Collapse>\n              )}\n            </div>\n          </CanAccess>\n        );\n      }\n\n      const linkStyle: CSSProperties =\n        activeItemDisabled && isSelected ? { pointerEvents: \"none\" } : {};\n\n      return (\n        <CanAccess\n          key={item.key}\n          resource={name}\n          action=\"list\"\n          params={{ resource: item }}\n        >\n          <Tooltip\n            title={label ?? name}\n            placement=\"right\"\n            disableHoverListener={!siderCollapsed}\n            arrow\n          >\n            <ListItemButton\n              component={Link as any}\n              to={route}\n              selected={isSelected}\n              style={linkStyle}\n              onClick={() => {\n                setMobileSiderOpen(false);\n              }}\n              sx={{\n                pl: isNested ? 4 : 2,\n                py: isNested ? 1.25 : 1,\n                justifyContent: \"center\",\n                color: isSelected ? \"primary.main\" : \"text.primary\",\n              }}\n            >\n              <ListItemIcon\n                sx={{\n                  justifyContent: \"center\",\n                  transition: \"margin-right 0.3s\",\n                  marginRight: siderCollapsed ? \"0px\" : \"12px\",\n                  minWidth: \"24px\",\n                  color: \"currentColor\",\n                }}\n              >\n                {icon ?? <ListOutlined />}\n              </ListItemIcon>\n              <ListItemText\n                primary={label}\n                primaryTypographyProps={{\n                  noWrap: true,\n                  fontSize: \"14px\",\n                }}\n              />\n            </ListItemButton>\n          </Tooltip>\n        </CanAccess>\n      );\n    });\n  };\n\n  const dashboard = (\n    <CanAccess resource=\"dashboard\" action=\"list\">\n      <Tooltip\n        title={translate(\"dashboard.title\", \"Dashboard\")}\n        placement=\"right\"\n        disableHoverListener={!siderCollapsed}\n        arrow\n      >\n        <Link\n          to=\"/\"\n          style={{ textDecoration: \"none\" }}\n          onClick={() => {\n            setMobileSiderOpen(false);\n          }}\n        >\n          <ListItemButton\n            selected={selectedKey === \"/\"}\n            sx={{\n              pl: 2,\n              py: 1,\n              justifyContent: \"center\",\n              color: selectedKey === \"/\" ? \"primary.main\" : \"text.primary\",\n            }}\n          >\n            <ListItemIcon\n              sx={{\n                justifyContent: \"center\",\n                minWidth: \"24px\",\n                transition: \"margin-right 0.3s\",\n                marginRight: siderCollapsed ? \"0px\" : \"12px\",\n                color: \"currentColor\",\n                fontSize: \"14px\",\n              }}\n            >\n              <Dashboard />\n            </ListItemIcon>\n            <ListItemText\n              primary={translate(\"dashboard.title\", \"Dashboard\")}\n              primaryTypographyProps={{\n                noWrap: true,\n                fontSize: \"14px\",\n              }}\n            />\n          </ListItemButton>\n        </Link>\n      </Tooltip>\n    </CanAccess>\n  );\n\n  const handleLogout = () => {\n    if (warnWhen) {\n      const confirm = window.confirm(\n        t(\n          \"warnWhenUnsavedChanges\",\n          \"Are you sure you want to leave? You have unsaved changes.\",\n        ),\n      );\n\n      if (confirm) {\n        setWarnWhen(false);\n        mutateLogout();\n      }\n    } else {\n      mutateLogout();\n    }\n  };\n\n  const logout = isExistAuthentication && (\n    <Tooltip\n      title={t(\"buttons.logout\", \"Logout\")}\n      placement=\"right\"\n      disableHoverListener={!siderCollapsed}\n      arrow\n    >\n      <ListItemButton\n        key=\"logout\"\n        onClick={() => handleLogout()}\n        sx={{\n          justifyContent: \"center\",\n        }}\n      >\n        <ListItemIcon\n          sx={{\n            justifyContent: \"center\",\n            minWidth: \"24px\",\n            transition: \"margin-right 0.3s\",\n            marginRight: siderCollapsed ? \"0px\" : \"12px\",\n            color: \"currentColor\",\n          }}\n        >\n          <Logout />\n        </ListItemIcon>\n        <ListItemText\n          primary={t(\"buttons.logout\", \"Logout\")}\n          primaryTypographyProps={{\n            noWrap: true,\n            fontSize: \"14px\",\n          }}\n        />\n      </ListItemButton>\n    </Tooltip>\n  );\n\n  const items = renderTreeView(menuItems, selectedKey);\n\n  const renderSider = () => {\n    if (render) {\n      return render({\n        logout,\n        items,\n        collapsed: siderCollapsed,\n      });\n    }\n    return (\n      <>\n        {dashboard}\n        {items}\n        {logout}\n      </>\n    );\n  };\n\n  const drawer = (\n    <List\n      disablePadding\n      sx={{\n        flexGrow: 1,\n        paddingTop: \"16px\",\n      }}\n    >\n      {renderSider()}\n    </List>\n  );\n\n  return (\n    <>\n      <Box\n        sx={{\n          width: { xs: drawerWidth() },\n          display: {\n            xs: \"none\",\n            md: \"block\",\n          },\n          transition: \"width 0.3s ease\",\n        }}\n      />\n      <Box\n        component=\"nav\"\n        sx={{\n          position: \"fixed\",\n          zIndex: 1101,\n          width: { sm: drawerWidth() },\n          display: \"flex\",\n        }}\n      >\n        <Drawer\n          variant=\"temporary\"\n          elevation={2}\n          open={mobileSiderOpen}\n          onClose={() => setMobileSiderOpen(false)}\n          ModalProps={{\n            keepMounted: true, // Better open performance on mobile.\n          }}\n          sx={{\n            display: {\n              sm: \"block\",\n              md: \"none\",\n            },\n          }}\n        >\n          <Box\n            sx={{\n              width: drawerWidth(),\n            }}\n          >\n            <Box\n              sx={{\n                height: 64,\n                display: \"flex\",\n                alignItems: \"center\",\n                paddingLeft: \"16px\",\n                fontSize: \"14px\",\n              }}\n            >\n              <RenderToTitle collapsed={false} />\n            </Box>\n            {drawer}\n          </Box>\n        </Drawer>\n        <Drawer\n          variant=\"permanent\"\n          sx={{\n            display: { xs: \"none\", md: \"block\" },\n            \"& .MuiDrawer-paper\": {\n              width: drawerWidth(),\n              overflow: \"hidden\",\n              transition: \"width 200ms cubic-bezier(0.4, 0, 0.6, 1) 0ms\",\n            },\n          }}\n          open\n        >\n          <Paper\n            elevation={0}\n            sx={{\n              fontSize: \"14px\",\n              width: \"100%\",\n              height: 64,\n              display: \"flex\",\n              flexShrink: 0,\n              alignItems: \"center\",\n              justifyContent: siderCollapsed ? \"center\" : \"space-between\",\n              paddingLeft: siderCollapsed ? 0 : \"16px\",\n              paddingRight: siderCollapsed ? 0 : \"8px\",\n              variant: \"outlined\",\n              borderRadius: 0,\n              borderBottom: (theme) =>\n                `1px solid ${theme.palette.action.focus}`,\n            }}\n          >\n            <RenderToTitle collapsed={siderCollapsed} />\n            {!siderCollapsed && (\n              <IconButton size=\"small\" onClick={() => setSiderCollapsed(true)}>\n                {<ChevronLeft />}\n              </IconButton>\n            )}\n          </Paper>\n          <Box\n            sx={{\n              flexGrow: 1,\n              overflowX: \"hidden\",\n              overflowY: \"auto\",\n            }}\n          >\n            {drawer}\n          </Box>\n        </Drawer>\n      </Box>\n    </>\n  );\n};\n","import {\n  useSelect as useSelectCore,\n  type HttpError,\n  type UseSelectProps,\n  type UseSelectReturnType,\n  type BaseRecord,\n} from \"@refinedev/core\";\n\nimport type { AutocompleteProps } from \"@mui/material/Autocomplete\";\n\nimport isEqual from \"lodash-es/isEqual.js\";\nimport unionWith from \"lodash-es/unionWith.js\";\n\nexport type UseAutocompleteProps<TQueryFnData, TError, TData> = Pick<\n  UseSelectProps<TQueryFnData, TError, TData>,\n  \"resource\"\n> &\n  Omit<\n    UseSelectProps<TQueryFnData, TError, TData>,\n    \"optionLabel\" | \"optionValue\"\n  >;\n\ntype AutocompletePropsType<TQueryFnData> = Required<\n  Pick<\n    AutocompleteProps<TQueryFnData, boolean, boolean, boolean>,\n    \"options\" | \"loading\" | \"onInputChange\" | \"filterOptions\"\n  >\n>;\n\nexport type UseAutocompleteReturnType<TData extends BaseRecord> = Omit<\n  UseSelectReturnType<TData>,\n  \"options\"\n> & {\n  autocompleteProps: AutocompletePropsType<TData>;\n};\n\n/**\n * `useAutocomplete` hook is used to fetch data from the dataProvider and return the options for the select box.\n *\n * It uses `getList` method as query function from the dataProvider that is\n * passed to {@link https://refine.dev/docs/api-reference/core/components/refine-config `<Refine>`}.\n *\n * @see {@link https://refine.dev/docs/api-reference/mui/hooks/useAutocomplete/} for more details.\n *\n * @typeParam TQueryFnData - Result data returned by the query function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#httperror `HttpError`}\n * @typeParam TData - Result data returned by the `select` function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}. Defaults to `TQueryFnData`\n *\n */\n\nexport const useAutocomplete = <\n  TQueryFnData extends BaseRecord = any,\n  TError extends HttpError = HttpError,\n  TData extends BaseRecord = TQueryFnData,\n>(\n  props: UseAutocompleteProps<TQueryFnData, TError, TData>,\n): UseAutocompleteReturnType<TData> => {\n  const { query, defaultValueQuery, onSearch, overtime } = useSelectCore<\n    TQueryFnData,\n    TError,\n    TData\n  >(props);\n\n  return {\n    autocompleteProps: {\n      options:\n        props.selectedOptionsOrder === \"selected-first\"\n          ? unionWith(\n              defaultValueQuery.result?.data || [],\n              query.data?.data || [],\n              isEqual,\n            )\n          : unionWith(\n              query.data?.data || [],\n              defaultValueQuery.result?.data || [],\n              isEqual,\n            ),\n      loading: query.isFetching || defaultValueQuery.query.isFetching,\n      onInputChange: (event, value) => {\n        if (event?.type === \"change\") {\n          onSearch(value);\n        } else if (event?.type === \"click\") {\n          onSearch(\"\");\n        }\n      },\n      filterOptions: (x) => x,\n    },\n    onSearch,\n    query,\n    defaultValueQuery,\n    overtime,\n  };\n};\n","import {\n  useUpdate,\n  useLiveMode,\n  useTable as useTableCore,\n  type BaseRecord,\n  type CrudFilter,\n  type CrudFilters,\n  type CrudSort,\n  type HttpError,\n  type Pagination,\n  type Prettify,\n  type UseUpdateProps,\n  type useTableProps as useTablePropsCore,\n  type useTableReturnType as useTableReturnTypeCore,\n  useResourceParams,\n} from \"@refinedev/core\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\n\nimport type {\n  DataGridProps,\n  GridFilterModel,\n  GridSortModel,\n} from \"@mui/x-data-grid\";\n\nimport differenceWith from \"lodash-es/differenceWith.js\";\nimport isEqual from \"lodash-es/isEqual.js\";\n\nimport {\n  transformCrudFiltersToFilterModel,\n  transformCrudSortingToSortModel,\n  transformFilterModelToCrudFilters,\n  transformSortModelToCrudSorting,\n} from \"@definitions\";\n\ntype DataGridPropsOverride = Omit<DataGridProps, \"onFilterModelChange\"> & {\n  onFilterModelChange: (model: GridFilterModel) => void;\n};\n\ntype DataGridPropsType = Required<\n  Pick<\n    DataGridPropsOverride,\n    | \"rows\"\n    | \"loading\"\n    | \"rowCount\"\n    | \"sortingMode\"\n    | \"sortModel\"\n    | \"onSortModelChange\"\n    | \"filterMode\"\n    | \"onFilterModelChange\"\n    | \"disableRowSelectionOnClick\"\n    | \"onStateChange\"\n    | \"paginationMode\"\n  >\n> &\n  Pick<\n    DataGridProps,\n    | \"paginationModel\"\n    | \"onPaginationModelChange\"\n    | \"filterModel\"\n    | \"filterDebounceMs\"\n    | \"processRowUpdate\"\n  >;\n\nexport type UseDataGridProps<\n  TQueryFnData,\n  TError extends HttpError,\n  TSearchVariables,\n  TData extends BaseRecord,\n> = Omit<\n  useTablePropsCore<TQueryFnData, TError, TData>,\n  \"pagination\" | \"filters\"\n> & {\n  onSearch?: (data: TSearchVariables) => CrudFilters | Promise<CrudFilters>;\n  pagination?: Prettify<\n    Omit<Pagination, \"pageSize\"> & {\n      /**\n       * Initial number of items per page\n       * @default 25\n       */\n      pageSize?: number;\n    }\n  >;\n  filters?: Prettify<\n    Omit<\n      NonNullable<useTablePropsCore<TQueryFnData, TError, TData>[\"filters\"]>,\n      \"defaultBehavior\"\n    > & {\n      /**\n       * Default behavior of the `setFilters` function\n       * @default \"replace\"\n       */\n      defaultBehavior?: \"replace\" | \"merge\";\n    }\n  >;\n  editable?: boolean;\n  updateMutationOptions?: UseUpdateProps<\n    TData,\n    TError,\n    TData\n  >[\"mutationOptions\"];\n};\n\nexport type UseDataGridReturnType<\n  TData extends BaseRecord = BaseRecord,\n  TError extends HttpError = HttpError,\n  TSearchVariables = unknown,\n> = useTableReturnTypeCore<TData, TError> & {\n  dataGridProps: DataGridPropsType;\n  search: (value: TSearchVariables) => Promise<void>;\n};\n\n/**\n * By using useDataGrid, you are able to get properties that are compatible with\n * Material UI {@link https://mui.com/x/react-data-grid/ `<DataGrid>`} component.\n * All features such as sorting, filtering and pagination comes as out of box.\n *\n * @see {@link https://refine.dev/docs/api-reference/mui/hooks/useDataGrid/} for more details.\n *\n * @typeParam TQueryFnData - Result data returned by the query function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#httperror `HttpError`}\n * @typeParam TSearchVariables - Values for search params\n * @typeParam TData - Result data returned by the `select` function. Extends {@link https://refine.dev/docs/api-reference/core/interfaceReferences#baserecord `BaseRecord`}. Defaults to `TQueryFnData`\n *\n */\n\nconst defaultPermanentFilter: CrudFilter[] = [];\nconst defaultPermanentSort: CrudSort[] = [];\nconst DEFAULT_FILTER_DEBOUNCE_MS = 300;\n\nexport function useDataGrid<\n  TQueryFnData extends BaseRecord = BaseRecord,\n  TError extends HttpError = HttpError,\n  TSearchVariables = unknown,\n  TData extends BaseRecord = TQueryFnData,\n>({\n  onSearch: onSearchProp,\n  pagination = { pageSize: 25 },\n  filters: filtersFromProp,\n  sorters: sortersFromProp,\n  syncWithLocation: syncWithLocationProp,\n  resource: resourceFromProp,\n  successNotification,\n  errorNotification,\n  queryOptions,\n  liveMode: liveModeFromProp,\n  onLiveEvent,\n  liveParams,\n  meta,\n  dataProviderName,\n  overtimeOptions,\n  editable = false,\n  updateMutationOptions,\n}: UseDataGridProps<\n  TQueryFnData,\n  TError,\n  TSearchVariables,\n  TData\n> = {}): UseDataGridReturnType<TData, TError, TSearchVariables> {\n  const liveMode = useLiveMode(liveModeFromProp);\n\n  const columnsTypes = useRef<Record<string, string>>({});\n  // Debounce server-side filter fetches so UI input stays responsive.\n  const filterDebounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n  const { identifier } = useResourceParams({ resource: resourceFromProp });\n\n  const {\n    tableQuery,\n    currentPage,\n    setCurrentPage,\n    pageSize,\n    setPageSize,\n    filters,\n    setFilters,\n    sorters,\n    setSorters,\n    pageCount,\n    createLinkForSyncWithLocation,\n    overtime,\n    result,\n  } = useTableCore<TQueryFnData, TError, TData>({\n    pagination: {\n      ...pagination,\n      pageSize: pagination?.pageSize ?? 25,\n    },\n    filters: { ...filtersFromProp, defaultBehavior: \"replace\" },\n    sorters: sortersFromProp,\n    syncWithLocation: syncWithLocationProp,\n    resource: resourceFromProp,\n    successNotification,\n    errorNotification,\n    queryOptions,\n    liveMode: liveModeFromProp,\n    onLiveEvent,\n    liveParams,\n    meta,\n    dataProviderName,\n    overtimeOptions,\n  });\n\n  const [muiCrudFilters, setMuiCrudFilters] = useState<CrudFilters>(filters);\n\n  const { data, isFetched, isLoading } = tableQuery;\n\n  const rowCountRef = useRef(data?.total || 0);\n  const rowCount = useMemo(() => {\n    if (data?.total) {\n      rowCountRef.current = data.total;\n    }\n    return rowCountRef.current;\n  }, [data]);\n\n  const isServerSideFilteringEnabled =\n    (filtersFromProp?.mode || \"server\") === \"server\";\n  const isServerSideSortingEnabled =\n    (sortersFromProp?.mode || \"server\") === \"server\";\n  const isPaginationEnabled = (pagination?.mode ?? \"server\") !== \"off\";\n\n  const preferredPermanentSorters =\n    sortersFromProp?.permanent ?? defaultPermanentSort;\n  const preferredPermanentFilters =\n    filtersFromProp?.permanent ?? defaultPermanentFilter;\n\n  const handlePageChange = (page: number) => {\n    if (isPaginationEnabled) {\n      setCurrentPage(page + 1);\n    }\n  };\n  const handlePageSizeChange = (pageSize: number) => {\n    if (isPaginationEnabled) {\n      setPageSize(pageSize);\n    }\n  };\n\n  const clearFilterDebounce = () => {\n    if (filterDebounceRef.current) {\n      clearTimeout(filterDebounceRef.current);\n      filterDebounceRef.current = null;\n    }\n  };\n\n  // Ensure no pending filter update fires after unmount.\n  useEffect(() => {\n    return () => {\n      clearFilterDebounce();\n    };\n  }, []);\n\n  // Apply filters immediately to local state (and reset page if needed).\n  const applyFilters = (crudFilters: CrudFilters) => {\n    setFilters(crudFilters.filter((f) => f.value !== \"\"));\n    if (isPaginationEnabled) {\n      setCurrentPage(1);\n    }\n  };\n\n  const handleSortModelChange = (sortModel: GridSortModel) => {\n    const crudSorting = transformSortModelToCrudSorting(sortModel);\n    setSorters(crudSorting);\n  };\n\n  const handleFilterModelChange = (filterModel: GridFilterModel) => {\n    const crudFilters = transformFilterModelToCrudFilters(filterModel);\n    setMuiCrudFilters(crudFilters);\n    if (isServerSideFilteringEnabled) {\n      // Let the input update immediately; debounce only the server query.\n      clearFilterDebounce();\n      filterDebounceRef.current = setTimeout(() => {\n        applyFilters(crudFilters);\n      }, DEFAULT_FILTER_DEBOUNCE_MS);\n      return;\n    }\n    applyFilters(crudFilters);\n  };\n\n  const search = async (value: TSearchVariables) => {\n    if (onSearchProp) {\n      const searchFilters = await onSearchProp(value);\n      clearFilterDebounce();\n      setMuiCrudFilters(searchFilters);\n      applyFilters(searchFilters);\n    }\n  };\n\n  const dataGridPaginationValues = (): Pick<\n    DataGridProps,\n    \"paginationModel\" | \"onPaginationModelChange\"\n  > &\n    Required<Pick<DataGridProps, \"paginationMode\">> => {\n    if (isPaginationEnabled) {\n      return {\n        paginationMode: \"server\" as const,\n        paginationModel: {\n          page: currentPage - 1,\n          pageSize,\n        },\n        onPaginationModelChange: (model) => {\n          handlePageChange(model.page);\n          handlePageSizeChange(model.pageSize);\n        },\n      };\n    }\n\n    return {\n      paginationMode: \"client\" as const,\n    };\n  };\n\n  const { mutate } = useUpdate<TData, TError, TData>({\n    mutationOptions: updateMutationOptions,\n  });\n\n  const processRowUpdate = async (newRow: TData, oldRow: TData) => {\n    if (!editable) {\n      return Promise.resolve(oldRow);\n    }\n\n    if (!identifier) {\n      return Promise.reject(new Error(\"Resource is not defined\"));\n    }\n\n    return new Promise((resolve, reject) => {\n      mutate(\n        {\n          resource: identifier,\n          id: newRow.id as string,\n          values: newRow,\n          meta: updateMutationOptions?.meta,\n        },\n        {\n          onError: (error) => {\n            reject(error);\n          },\n          onSuccess: () => {\n            resolve(newRow);\n          },\n        },\n      );\n    });\n  };\n\n  const transformedSortModel = useMemo(\n    () =>\n      transformCrudSortingToSortModel(\n        differenceWith(sorters, preferredPermanentSorters, isEqual),\n      ),\n    [sorters, preferredPermanentSorters],\n  );\n\n  return {\n    tableQuery,\n    dataGridProps: {\n      disableRowSelectionOnClick: true,\n      rows: data?.data || [],\n      loading: liveMode === \"auto\" ? isLoading : !isFetched,\n      rowCount,\n      ...dataGridPaginationValues(),\n      sortingMode: isServerSideSortingEnabled ? \"server\" : \"client\",\n      sortModel: transformedSortModel,\n      onSortModelChange: handleSortModelChange,\n      filterMode: isServerSideFilteringEnabled ? \"server\" : \"client\",\n      // Disable DataGrid's debounce for server filtering to prevent input resets.\n      filterDebounceMs: isServerSideFilteringEnabled ? 0 : undefined,\n      filterModel: transformCrudFiltersToFilterModel(\n        differenceWith(muiCrudFilters, preferredPermanentFilters, isEqual),\n        columnsTypes.current,\n      ),\n      onFilterModelChange: handleFilterModelChange,\n      onStateChange: (state) => {\n        const newColumnsTypes = Object.fromEntries(\n          Object.entries(state.columns.lookup).map(([key, value]) => {\n            return [key, (value as any).type];\n          }),\n        );\n        const isStateChanged = !isEqual(newColumnsTypes, columnsTypes.current);\n\n        if (isStateChanged) {\n          columnsTypes.current = newColumnsTypes;\n        }\n      },\n      processRowUpdate: editable ? processRowUpdate : undefined,\n    },\n    currentPage,\n    setCurrentPage,\n    pageSize,\n    setPageSize,\n    pageCount,\n    sorters,\n    setSorters,\n    filters,\n    setFilters,\n    search,\n    createLinkForSyncWithLocation,\n    overtime,\n    result,\n  };\n}\n","import type {\n  GridFilterItem,\n  GridFilterModel,\n  GridSortModel,\n} from \"@mui/x-data-grid\";\nimport { GridLogicOperator } from \"@mui/x-data-grid\";\n\nimport type {\n  CrudFilters,\n  CrudOperators,\n  CrudSorting,\n  LogicalFilter,\n} from \"@refinedev/core\";\n\nexport const transformSortModelToCrudSorting = (\n  sortModel: GridSortModel,\n): CrudSorting => {\n  const sorter = sortModel.map(({ field, sort }) => ({\n    field,\n    order: sort || \"asc\",\n  }));\n  return sorter;\n};\n\nexport const transformCrudSortingToSortModel = (\n  crudSorting: CrudSorting,\n): GridSortModel => {\n  const sortModel = crudSorting.map(({ field, order }) => ({\n    field,\n    sort: order,\n  }));\n  return sortModel;\n};\n\nexport const transformMuiOperatorToCrudOperator = (\n  operatorValue?: string,\n): Exclude<CrudOperators, \"or\" | \"and\"> => {\n  if (!operatorValue) {\n    return \"eq\";\n  }\n\n  switch (operatorValue) {\n    case \"equals\":\n    case \"is\":\n    case \"=\":\n      return \"eq\";\n    case \"!=\":\n    case \"not\":\n    case \"doesNotEqual\":\n      return \"ne\";\n    case \"contains\":\n      return \"contains\";\n    case \"doesNotContain\":\n      return \"ncontains\";\n    case \"isAnyOf\":\n      return \"in\";\n    case \">\":\n    case \"after\":\n      return \"gt\";\n    case \">=\":\n    case \"onOrAfter\":\n      return \"gte\";\n    case \"<\":\n    case \"before\":\n      return \"lt\";\n    case \"<=\":\n    case \"onOrBefore\":\n      return \"lte\";\n    case \"startsWith\":\n      return \"startswith\";\n    case \"endsWith\":\n      return \"endswith\";\n    case \"isEmpty\":\n      return \"null\";\n    case \"isNotEmpty\":\n      return \"nnull\";\n    default:\n      return operatorValue as Exclude<CrudOperators, \"or\" | \"and\">;\n  }\n};\n\nexport const transformFilterModelToCrudFilters = ({\n  items,\n  logicOperator,\n}: GridFilterModel): CrudFilters => {\n  const filters = items.map(({ field, value, operator }) => {\n    const filter: LogicalFilter = {\n      field: field,\n      value: [\"isEmpty\", \"isNotEmpty\"].includes(operator) ? true : value ?? \"\",\n      operator: transformMuiOperatorToCrudOperator(operator),\n    };\n\n    return filter;\n  });\n\n  if (logicOperator === GridLogicOperator.Or) {\n    return [{ operator: \"or\", value: filters }];\n  }\n  return filters;\n};\n\nexport const transformCrudOperatorToMuiOperator = (\n  operator: CrudOperators,\n  columnType?: string,\n): string => {\n  switch (columnType) {\n    case \"number\":\n      switch (operator) {\n        case \"eq\":\n          return \"=\";\n        case \"ne\":\n          return \"!=\";\n        case \"gt\":\n          return \">\";\n        case \"gte\":\n          return \">=\";\n        case \"lt\":\n          return \"<\";\n        case \"lte\":\n          return \"<=\";\n        case \"null\":\n          return \"isEmpty\";\n        case \"nnull\":\n          return \"isNotEmpty\";\n        case \"in\":\n          return \"isAnyOf\";\n        default:\n          return operator;\n      }\n    case \"singleSelect\":\n    case \"boolean\":\n      switch (operator) {\n        case \"eq\":\n          return \"is\";\n        default:\n          return operator;\n      }\n    case undefined:\n    case \"string\":\n      switch (operator) {\n        case \"eq\":\n          return \"equals\";\n        case \"ne\":\n          return \"doesNotEqual\";\n        case \"contains\":\n          return \"contains\";\n        case \"ncontains\":\n          return \"doesNotContain\";\n        case \"null\":\n          return \"isEmpty\";\n        case \"nnull\":\n          return \"isNotEmpty\";\n        case \"startswith\":\n          return \"startsWith\";\n        case \"endswith\":\n          return \"endsWith\";\n        case \"in\":\n          return \"isAnyOf\";\n        default:\n          return operator;\n      }\n    case \"date\":\n    case \"dateTime\":\n      switch (operator) {\n        case \"eq\":\n          return \"is\";\n        case \"ne\":\n          return \"not\";\n        case \"gt\":\n          return \"after\";\n        case \"gte\":\n          return \"onOrAfter\";\n        case \"lt\":\n          return \"before\";\n        case \"lte\":\n          return \"onOrBefore\";\n        case \"null\":\n          return \"isEmpty\";\n        case \"nnull\":\n          return \"isNotEmpty\";\n        default:\n          return operator;\n      }\n    default:\n      return operator;\n  }\n};\n\nexport const transformCrudFiltersToFilterModel = (\n  crudFilters: CrudFilters,\n  columnsType?: Record<string, string>,\n): GridFilterModel | undefined => {\n  const gridFilterItems: GridFilterItem[] = [];\n  const fieldOperatorCount: Record<string, number> = {};\n\n  const isExistOrFilter = crudFilters.some(\n    (filter) => filter.operator === \"or\",\n  );\n\n  if (columnsType) {\n    if (isExistOrFilter) {\n      const orLogicalFilters = crudFilters.find(\n        (filter) => filter.operator === \"or\",\n      )?.value as LogicalFilter[];\n\n      orLogicalFilters.map(({ field, value, operator }) => {\n        const columnType = columnsType[field];\n        const id = field + operator;\n\n        fieldOperatorCount[id] = (fieldOperatorCount[id] || 0) + 1;\n        const uniqueId = id + String(fieldOperatorCount[id]);\n\n        gridFilterItems.push({\n          field: field,\n          operator: transformCrudOperatorToMuiOperator(operator, columnType),\n          value: value === \"\" ? undefined : value,\n          id: fieldOperatorCount[id] > 1 ? uniqueId : id,\n        });\n      });\n    } else {\n      (crudFilters as LogicalFilter[]).map(({ field, value, operator }) => {\n        const columnType = columnsType[field];\n        const id = field + operator;\n\n        fieldOperatorCount[id] = (fieldOperatorCount[id] || 0) + 1;\n        const uniqueId = id + String(fieldOperatorCount[id]);\n\n        gridFilterItems.push({\n          field: field,\n          operator: transformCrudOperatorToMuiOperator(operator, columnType),\n          value: value === \"\" ? undefined : value,\n          id: fieldOperatorCount[id] > 1 ? uniqueId : id,\n        });\n      });\n    }\n  }\n\n  return {\n    items: gridFilterItems,\n    // If there is \"or\" filter, default link operator is \"or\"\n    logicOperator: isExistOrFilter\n      ? GridLogicOperator.Or\n      : GridLogicOperator.And,\n  };\n};\n","import { useContext } from \"react\";\n\nimport { ThemedLayoutContext } from \"../../contexts\";\nimport type { IThemedLayoutContext } from \"../../contexts/themedLayoutContext/IThemedLayoutContext\";\n\nexport type UseThemedLayoutContextType = IThemedLayoutContext;\n\nexport const useThemedLayoutContext = (): UseThemedLayoutContextType => {\n  const {\n    mobileSiderOpen,\n    siderCollapsed,\n    setMobileSiderOpen,\n    setSiderCollapsed,\n  } = useContext(ThemedLayoutContext);\n\n  return {\n    mobileSiderOpen,\n    siderCollapsed,\n    setMobileSiderOpen,\n    setSiderCollapsed,\n  };\n};\n","import React from \"react\";\nimport { useGetIdentity } from \"@refinedev/core\";\n\nimport AppBar from \"@mui/material/AppBar\";\nimport Stack from \"@mui/material/Stack\";\nimport Toolbar from \"@mui/material/Toolbar\";\nimport Typography from \"@mui/material/Typography\";\nimport Avatar from \"@mui/material/Avatar\";\n\nimport type { RefineThemedLayoutHeaderProps } from \"../types\";\n\nimport { HamburgerMenu } from \"../hamburgerMenu\";\n\nexport const ThemedHeader: React.FC<RefineThemedLayoutHeaderProps> = ({\n  sticky,\n}) => {\n  const { data: user } = useGetIdentity();\n\n  const prefferedSticky = sticky ?? true;\n\n  return (\n    <AppBar position={prefferedSticky ? \"sticky\" : \"relative\"}>\n      <Toolbar>\n        <HamburgerMenu />\n        <Stack\n          direction=\"row\"\n          width=\"100%\"\n          justifyContent=\"flex-end\"\n          alignItems=\"center\"\n        >\n          <Stack\n            direction=\"row\"\n            gap=\"16px\"\n            alignItems=\"center\"\n            justifyContent=\"center\"\n          >\n            {user?.name && (\n              <Typography variant=\"subtitle2\" data-testid=\"header-user-name\">\n                {user?.name}\n              </Typography>\n            )}\n            {user?.avatar && <Avatar src={user?.avatar} alt={user?.name} />}\n          </Stack>\n        </Stack>\n      </Toolbar>\n    </AppBar>\n  );\n};\n","import React from \"react\";\n\nimport IconButton from \"@mui/material/IconButton\";\nimport Menu from \"@mui/icons-material/Menu\";\n\nimport type { IconButtonProps } from \"@mui/material/IconButton\";\n\nimport { useThemedLayoutContext } from \"@hooks\";\n\nconst HamburgerIcon = (props: IconButtonProps) => (\n  <IconButton color=\"inherit\" aria-label=\"open drawer\" edge=\"start\" {...props}>\n    <Menu />\n  </IconButton>\n);\n\nexport const HamburgerMenu: React.FC = () => {\n  const {\n    siderCollapsed,\n    setSiderCollapsed,\n    mobileSiderOpen,\n    setMobileSiderOpen,\n  } = useThemedLayoutContext();\n\n  return (\n    <>\n      <HamburgerIcon\n        onClick={() => setSiderCollapsed(!siderCollapsed)}\n        sx={{\n          mr: 2,\n          display: { xs: \"none\", md: \"flex\" },\n          ...(!siderCollapsed && { display: \"none\" }),\n        }}\n      />\n      <HamburgerIcon\n        onClick={() => setMobileSiderOpen(!mobileSiderOpen)}\n        sx={{\n          mr: 2,\n          display: { xs: \"flex\", md: \"none\" },\n          ...(mobileSiderOpen && { display: \"none\" }),\n        }}\n      />\n    </>\n  );\n};\n","import React from \"react\";\nimport { useLink, useRefineOptions } from \"@refinedev/core\";\n\nimport MuiLink from \"@mui/material/Link\";\nimport SvgIcon from \"@mui/material/SvgIcon\";\nimport Typography from \"@mui/material/Typography\";\n\nimport type { RefineLayoutThemedTitleProps } from \"../types\";\n\nexport const ThemedTitle: React.FC<RefineLayoutThemedTitleProps> = ({\n  collapsed,\n  wrapperStyles,\n  icon: iconFromProps,\n  text: textFromProps,\n}) => {\n  const {\n    title: { icon: defaultIcon, text: defaultText } = {},\n  } = useRefineOptions();\n  const icon =\n    typeof iconFromProps === \"undefined\" ? defaultIcon : iconFromProps;\n  const text =\n    typeof textFromProps === \"undefined\" ? defaultText : textFromProps;\n  const Link = useLink();\n\n  return (\n    <Link to=\"/\" style={{ textDecoration: \"none\" }}>\n      <MuiLink\n        underline=\"none\"\n        sx={{\n          display: \"flex\",\n          alignItems: \"center\",\n          gap: \"12px\",\n          ...wrapperStyles,\n        }}\n      >\n        <SvgIcon height=\"24px\" width=\"24px\" color=\"primary\">\n          {icon}\n        </SvgIcon>\n        {!collapsed && (\n          <Typography\n            variant=\"h6\"\n            fontWeight={700}\n            color=\"text.primary\"\n            fontSize=\"inherit\"\n            textOverflow=\"ellipsis\"\n            overflow=\"hidden\"\n          >\n            {text}\n          </Typography>\n        )}\n      </MuiLink>\n    </Link>\n  );\n};\n","import React, { useEffect, useState } from \"react\";\nimport { useGo, useResourceParams, useTranslate } from \"@refinedev/core\";\nimport type { RefineErrorPageProps } from \"@refinedev/ui-types\";\n\nimport Stack from \"@mui/material/Stack\";\nimport Button from \"@mui/material/Button\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport Typography from \"@mui/material/Typography\";\nimport Grid from \"@mui/material/Grid2\";\n\nimport Info from \"@mui/icons-material/Info\";\n\nexport const ErrorComponent: React.FC<RefineErrorPageProps> = () => {\n  const [errorMessage, setErrorMessage] = useState<string>();\n  const go = useGo();\n\n  const { resource, action } = useResourceParams();\n\n  const translate = useTranslate();\n\n  useEffect(() => {\n    if (resource && action) {\n      setErrorMessage(\n        translate(\n          \"pages.error.info\",\n          {\n            action,\n            resource: resource?.name,\n          },\n          `You may have forgotten to add the \"${action}\" component to \"${resource?.name}\" resource.`,\n        ),\n      );\n    }\n  }, [action, resource]);\n\n  return (\n    <Grid display=\"flex\" justifyContent=\"center\" alignItems=\"center\" mt={20}>\n      <Grid container direction=\"column\" display=\"flex\" alignItems=\"center\">\n        <Typography variant=\"h1\">404</Typography>\n        <Stack direction=\"row\" spacing=\"2\">\n          <Typography>\n            {translate(\n              \"pages.error.404\",\n              \"Sorry, the page you visited does not exist.\",\n            )}\n          </Typography>\n\n          {errorMessage && (\n            <Tooltip title={errorMessage}>\n              <Info data-testid=\"error-component-tooltip\" />\n            </Tooltip>\n          )}\n        </Stack>\n        <Button\n          onClick={() => {\n            go({ to: \"/\" });\n          }}\n        >\n          {translate(\"pages.error.backHome\", \"Back Home\")}\n        </Button>\n      </Grid>\n    </Grid>\n  );\n};\n","import React from \"react\";\nimport type { BoxProps } from \"@mui/material/Box\";\nimport type { CardProps } from \"@mui/material/Card\";\n\nimport type { AuthPageProps, RegisterFormTypes } from \"@refinedev/core\";\n\nimport type { UseFormProps } from \"@refinedev/react-hook-form\";\n\nimport {\n  LoginPage,\n  RegisterPage,\n  ForgotPasswordPage,\n  UpdatePasswordPage,\n} from \"./components\";\n\nexport interface FormPropsType extends UseFormProps {\n  onSubmit?: (values: RegisterFormTypes) => void;\n}\n\nexport type AuthProps = AuthPageProps<BoxProps, CardProps, FormPropsType>;\n\n/**\n * **refine** has a default auth page form served on the `/login` route when the `authProvider` configuration is provided.\n * @see {@link https://refine.dev/docs/api-reference/mui/components/mui-auth-page/} for more details.\n */\nexport const AuthPage: React.FC<AuthProps> = (props) => {\n  const { type } = props;\n  const renderView = () => {\n    switch (type) {\n      case \"register\":\n        return <RegisterPage {...props} />;\n      case \"forgotPassword\":\n        return <ForgotPasswordPage {...props} />;\n      case \"updatePassword\":\n        return <UpdatePasswordPage {...props} />;\n      default:\n        return <LoginPage {...props} />;\n    }\n  };\n\n  return <>{renderView()}</>;\n};\n","import * as React from \"react\";\nimport {\n  type LoginPageProps,\n  type LoginFormTypes,\n  useActiveAuthProvider,\n} from \"@refinedev/core\";\nimport { useForm } from \"@refinedev/react-hook-form\";\nimport { FormProvider } from \"react-hook-form\";\n\nimport Button from \"@mui/material/Button\";\nimport TextField from \"@mui/material/TextField\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport Container from \"@mui/material/Container\";\nimport Card from \"@mui/material/Card\";\nimport CardContent from \"@mui/material/CardContent\";\nimport Checkbox from \"@mui/material/Checkbox\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport Divider from \"@mui/material/Divider\";\nimport MuiLink from \"@mui/material/Link\";\nimport Stack from \"@mui/material/Stack\";\n\nimport type { BoxProps } from \"@mui/material/Box\";\nimport type { CardContentProps } from \"@mui/material/CardContent\";\n\nimport {\n  type BaseRecord,\n  type HttpError,\n  useLogin,\n  useTranslate,\n  useLink,\n} from \"@refinedev/core\";\nimport { layoutStyles, titleStyles } from \"../styles\";\n\nimport type { FormPropsType } from \"../../index\";\nimport { ThemedTitle } from \"@components\";\n\ntype LoginProps = LoginPageProps<BoxProps, CardContentProps, FormPropsType>;\n\n/**\n * login will be used as the default type of the <AuthPage> component. The login page will be used to log in to the system.\n * @see {@link https://refine.dev/docs/api-reference/mui/components/mui-auth-page/#login} for more details.\n */\nexport const LoginPage: React.FC<LoginProps> = ({\n  providers,\n  registerLink,\n  forgotPasswordLink,\n  rememberMe,\n  contentProps,\n  wrapperProps,\n  renderContent,\n  formProps,\n  title,\n  hideForm,\n  mutationVariables,\n}) => {\n  const { onSubmit, ...useFormProps } = formProps || {};\n  const methods = useForm<BaseRecord, HttpError, LoginFormTypes>({\n    ...useFormProps,\n  });\n  const {\n    register,\n    handleSubmit,\n    formState: { errors },\n  } = methods;\n\n  const { mutate: login, isPending } = useLogin<LoginFormTypes>();\n  const translate = useTranslate();\n  const Link = useLink();\n\n  const PageTitle =\n    title === false ? null : (\n      <div\n        style={{\n          display: \"flex\",\n          justifyContent: \"center\",\n          marginBottom: \"32px\",\n          fontSize: \"20px\",\n        }}\n      >\n        {title ?? (\n          <ThemedTitle\n            collapsed={false}\n            wrapperStyles={{\n              gap: \"8px\",\n            }}\n          />\n        )}\n      </div>\n    );\n\n  const renderProviders = () => {\n    if (providers && providers.length > 0) {\n      return (\n        <>\n          <Stack spacing={1}>\n            {providers.map((provider: any) => {\n              return (\n                <Button\n                  key={provider.name}\n                  variant=\"outlined\"\n                  fullWidth\n                  sx={{\n                    color: \"primary.light\",\n                    borderColor: \"primary.light\",\n                    textTransform: \"none\",\n                  }}\n                  onClick={() =>\n                    login({ ...mutationVariables, providerName: provider.name })\n                  }\n                  startIcon={provider.icon}\n                >\n                  {provider.label}\n                </Button>\n              );\n            })}\n          </Stack>\n          {!hideForm && (\n            <Divider\n              sx={{\n                fontSize: \"12px\",\n                marginY: \"16px\",\n              }}\n            >\n              {translate(\"pages.login.divider\", \"or\")}\n            </Divider>\n          )}\n        </>\n      );\n    }\n    return null;\n  };\n\n  const Content = (\n    <Card {...(contentProps ?? {})}>\n      <CardContent sx={{ p: \"32px\", \"&:last-child\": { pb: \"32px\" } }}>\n        <Typography\n          component=\"h1\"\n          variant=\"h5\"\n          align=\"center\"\n          style={titleStyles}\n          color=\"primary\"\n          fontWeight={700}\n        >\n          {translate(\"pages.login.title\", \"Sign in to your account\")}\n        </Typography>\n        {renderProviders()}\n        {!hideForm && (\n          <Box\n            component=\"form\"\n            onSubmit={handleSubmit((data) => {\n              if (onSubmit) {\n                return onSubmit(data);\n              }\n\n              return login({ ...mutationVariables, ...data });\n            })}\n          >\n            <TextField\n              {...register(\"email\", {\n                required: translate(\n                  \"pages.login.errors.requiredEmail\",\n                  \"Email is required\",\n                ),\n              })}\n              id=\"email\"\n              margin=\"normal\"\n              fullWidth\n              label={translate(\"pages.login.fields.email\", \"Email\")}\n              error={!!errors.email}\n              name=\"email\"\n              type=\"email\"\n              autoComplete=\"email\"\n              sx={{\n                mt: 0,\n              }}\n            />\n            <TextField\n              {...register(\"password\", {\n                required: translate(\n                  \"pages.login.errors.requiredPassword\",\n                  \"Password is required\",\n                ),\n              })}\n              id=\"password\"\n              margin=\"normal\"\n              fullWidth\n              name=\"password\"\n              label={translate(\"pages.login.fields.password\", \"Password\")}\n              helperText={errors?.password?.message}\n              error={!!errors.password}\n              type=\"password\"\n              placeholder=\"●●●●●●●●\"\n              autoComplete=\"current-password\"\n              sx={{\n                mb: 0,\n              }}\n            />\n            <Box\n              component=\"div\"\n              sx={{\n                mt: \"24px\",\n                display: \"flex\",\n                justifyContent: \"space-between\",\n                alignItems: \"center\",\n              }}\n            >\n              {rememberMe ?? (\n                <FormControlLabel\n                  sx={{\n                    span: {\n                      fontSize: \"14px\",\n                      color: \"text.secondary\",\n                    },\n                  }}\n                  color=\"secondary\"\n                  control={\n                    <Checkbox\n                      size=\"small\"\n                      id=\"remember\"\n                      {...register(\"remember\")}\n                    />\n                  }\n                  label={translate(\n                    \"pages.login.buttons.rememberMe\",\n                    \"Remember me\",\n                  )}\n                />\n              )}\n              {forgotPasswordLink ?? (\n                <MuiLink\n                  variant=\"body2\"\n                  color=\"primary\"\n                  fontSize=\"12px\"\n                  component={Link as any}\n                  underline=\"none\"\n                  to=\"/forgot-password\"\n                >\n                  {translate(\n                    \"pages.login.buttons.forgotPassword\",\n                    \"Forgot password?\",\n                  )}\n                </MuiLink>\n              )}\n            </Box>\n            <Button\n              type=\"submit\"\n              fullWidth\n              variant=\"contained\"\n              disabled={isPending}\n              sx={{ mt: \"24px\" }}\n            >\n              {translate(\"pages.login.signin\", \"Sign in\")}\n            </Button>\n          </Box>\n        )}\n        {registerLink ?? (\n          <Box\n            sx={{\n              mt: \"24px\",\n              display: \"flex\",\n              justifyContent: \"center\",\n              alignItems: \"center\",\n            }}\n          >\n            <Typography\n              textAlign=\"center\"\n              variant=\"body2\"\n              component=\"span\"\n              fontSize=\"12px\"\n            >\n              {translate(\n                \"pages.login.buttons.noAccount\",\n                \"Don’t have an account?\",\n              )}\n            </Typography>\n            <MuiLink\n              ml=\"4px\"\n              fontSize=\"12px\"\n              variant=\"body2\"\n              color=\"primary\"\n              component={Link as any}\n              underline=\"none\"\n              to=\"/register\"\n              fontWeight=\"bold\"\n            >\n              {translate(\"pages.login.signup\", \"Sign up\")}\n            </MuiLink>\n          </Box>\n        )}\n      </CardContent>\n    </Card>\n  );\n\n  return (\n    <FormProvider {...methods}>\n      <Box component=\"div\" style={layoutStyles} {...(wrapperProps ?? {})}>\n        <Container\n          component=\"main\"\n          sx={{\n            display: \"flex\",\n            flexDirection: \"column\",\n            justifyContent: hideForm ? \"flex-start\" : \"center\",\n            alignItems: \"center\",\n            minHeight: \"100dvh\",\n            padding: \"16px\",\n            width: \"100%\",\n            maxWidth: \"400px\",\n          }}\n        >\n          <Box\n            sx={{\n              width: \"100%\",\n              maxWidth: \"400px\",\n              display: \"flex\",\n              flexDirection: \"column\",\n              paddingTop: hideForm ? \"15dvh\" : 0,\n            }}\n          >\n            {renderContent ? (\n              renderContent(Content, PageTitle)\n            ) : (\n              <>\n                {PageTitle}\n                {Content}\n              </>\n            )}\n          </Box>\n        </Container>\n      </Box>\n    </FormProvider>\n  );\n};\n","import type { CSSProperties } from \"react\";\n\nexport const layoutStyles: CSSProperties = {};\n\nexport const titleStyles: CSSProperties = {\n  textAlign: \"center\",\n  fontSize: \"24px\",\n  marginBottom: \"24px\",\n  overflowWrap: \"break-word\",\n  hyphens: \"manual\",\n  textOverflow: \"unset\",\n  whiteSpace: \"pre-wrap\",\n};\n","import * as React from \"react\";\nimport {\n  type RegisterFormTypes,\n  type RegisterPageProps,\n  useActiveAuthProvider,\n} from \"@refinedev/core\";\nimport { useForm } from \"@refinedev/react-hook-form\";\n\nimport Button from \"@mui/material/Button\";\nimport TextField from \"@mui/material/TextField\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport Container from \"@mui/material/Container\";\nimport Card from \"@mui/material/Card\";\nimport CardContent from \"@mui/material/CardContent\";\nimport Divider from \"@mui/material/Divider\";\nimport Stack from \"@mui/material/Stack\";\nimport MuiLink from \"@mui/material/Link\";\n\nimport type { BoxProps } from \"@mui/material/Box\";\nimport type { CardContentProps } from \"@mui/material/CardContent\";\n\nimport {\n  type BaseRecord,\n  type HttpError,\n  useTranslate,\n  useLink,\n  useRegister,\n} from \"@refinedev/core\";\n\nimport { layoutStyles, titleStyles } from \"../styles\";\nimport type { FormPropsType } from \"../../index\";\nimport { ThemedTitle } from \"@components\";\n\ntype RegisterProps = RegisterPageProps<\n  BoxProps,\n  CardContentProps,\n  FormPropsType\n>;\n\n/**\n * The register page will be used to register new users. You can use the following props for the <AuthPage> component when the type is \"register\".\n * @see {@link https://refine.dev/docs/api-reference/mui/components/mui-auth-page/#register} for more details.\n */\nexport const RegisterPage: React.FC<RegisterProps> = ({\n  loginLink,\n  wrapperProps,\n  contentProps,\n  renderContent,\n  providers,\n  formProps,\n  title,\n  hideForm,\n  mutationVariables,\n}) => {\n  const { onSubmit, ...useFormProps } = formProps || {};\n  const {\n    register,\n    handleSubmit,\n    formState: { errors },\n  } = useForm<BaseRecord, HttpError, RegisterFormTypes>({\n    ...useFormProps,\n  });\n\n  const { mutate: registerMutate, isPending } =\n    useRegister<RegisterFormTypes>();\n  const translate = useTranslate();\n  const Link = useLink();\n\n  const PageTitle =\n    title === false ? null : (\n      <div\n        style={{\n          display: \"flex\",\n          justifyContent: \"center\",\n          marginBottom: \"32px\",\n          fontSize: \"20px\",\n        }}\n      >\n        {title ?? (\n          <ThemedTitle\n            collapsed={false}\n            wrapperStyles={{\n              gap: \"8px\",\n            }}\n          />\n        )}\n      </div>\n    );\n\n  const renderProviders = () => {\n    if (providers && providers.length > 0) {\n      return (\n        <>\n          <Stack spacing={1}>\n            {providers.map((provider: any) => {\n              return (\n                <Button\n                  key={provider.name}\n                  color=\"secondary\"\n                  fullWidth\n                  variant=\"outlined\"\n                  sx={{\n                    color: \"primary.light\",\n                    borderColor: \"primary.light\",\n                    textTransform: \"none\",\n                  }}\n                  onClick={() =>\n                    registerMutate({\n                      ...mutationVariables,\n                      providerName: provider.name,\n                    })\n                  }\n                  startIcon={provider.icon}\n                >\n                  {provider.label}\n                </Button>\n              );\n            })}\n          </Stack>\n          {!hideForm && (\n            <Divider\n              sx={{\n                fontSize: \"12px\",\n                marginY: \"16px\",\n              }}\n            >\n              {translate(\n                \"pages.register.divider\",\n                translate(\"pages.login.divider\", \"or\"),\n              )}\n            </Divider>\n          )}\n        </>\n      );\n    }\n    return null;\n  };\n\n  const Content = (\n    <Card {...(contentProps ?? {})}>\n      <CardContent sx={{ p: \"32px\", \"&:last-child\": { pb: \"32px\" } }}>\n        <Typography\n          component=\"h1\"\n          variant=\"h5\"\n          align=\"center\"\n          style={titleStyles}\n          color=\"primary\"\n          fontWeight={700}\n        >\n          {translate(\"pages.register.title\", \"Sign up for your account\")}\n        </Typography>\n        {renderProviders()}\n        {!hideForm && (\n          <Box\n            component=\"form\"\n            onSubmit={handleSubmit((data) => {\n              if (onSubmit) {\n                return onSubmit(data);\n              }\n\n              return registerMutate({ ...mutationVariables, ...data });\n            })}\n          >\n            <TextField\n              {...register(\"email\", {\n                required: translate(\n                  \"pages.register.errors.requiredEmail\",\n                  \"Email is required\",\n                ),\n                pattern: {\n                  value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i,\n                  message: translate(\n                    \"pages.register.errors.validEmail\",\n                    \"Invalid email address\",\n                  ),\n                },\n              })}\n              id=\"email\"\n              margin=\"normal\"\n              fullWidth\n              label={translate(\"pages.register.email\", \"Email\")}\n              error={!!errors.email}\n              helperText={errors[\"email\"] ? errors[\"email\"].message : \"\"}\n              name=\"email\"\n              autoComplete=\"email\"\n              sx={{\n                mt: 0,\n              }}\n            />\n            <TextField\n              {...register(\"password\", {\n                required: translate(\n                  \"pages.register.errors.requiredPassword\",\n                  \"Password is required\",\n                ),\n              })}\n              id=\"password\"\n              margin=\"normal\"\n              fullWidth\n              name=\"password\"\n              label={translate(\"pages.register.fields.password\", \"Password\")}\n              helperText={errors[\"password\"] ? errors[\"password\"].message : \"\"}\n              error={!!errors.password}\n              type=\"password\"\n              placeholder=\"●●●●●●●●\"\n              autoComplete=\"current-password\"\n              sx={{\n                mb: 0,\n              }}\n            />\n            <Button\n              type=\"submit\"\n              fullWidth\n              variant=\"contained\"\n              disabled={isPending}\n              sx={{\n                mt: \"24px\",\n              }}\n            >\n              {translate(\"pages.register.signup\", \"Sign up\")}\n            </Button>\n          </Box>\n        )}\n        {loginLink ?? (\n          <Box\n            display=\"flex\"\n            justifyContent=\"flex-end\"\n            alignItems=\"center\"\n            sx={{\n              mt: \"24px\",\n              display: \"flex\",\n              justifyContent: \"center\",\n              alignItems: \"center\",\n            }}\n          >\n            <Typography variant=\"body2\" component=\"span\" fontSize=\"12px\">\n              {translate(\n                \"pages.register.buttons.haveAccount\",\n                translate(\n                  \"pages.login.buttons.haveAccount\",\n                  \"Have an account?\",\n                ),\n              )}\n            </Typography>\n            <MuiLink\n              ml=\"4px\"\n              variant=\"body2\"\n              color=\"primary\"\n              component={Link as any}\n              underline=\"none\"\n              to=\"/login\"\n              fontSize=\"12px\"\n              fontWeight=\"bold\"\n            >\n              {translate(\n                \"pages.register.signin\",\n                translate(\"pages.login.signin\", \"Sign in\"),\n              )}\n            </MuiLink>\n          </Box>\n        )}\n      </CardContent>\n    </Card>\n  );\n\n  return (\n    <Box component=\"div\" style={layoutStyles} {...(wrapperProps ?? {})}>\n      <Container\n        component=\"main\"\n        sx={{\n          display: \"flex\",\n          flexDirection: \"column\",\n          justifyContent: hideForm ? \"flex-start\" : \"center\",\n          alignItems: \"center\",\n          minHeight: \"100dvh\",\n          padding: \"16px\",\n          width: \"100%\",\n          maxWidth: \"400px\",\n        }}\n      >\n        <Box\n          sx={{\n            width: \"100%\",\n            maxWidth: \"400px\",\n            display: \"flex\",\n            flexDirection: \"column\",\n            paddingTop: hideForm ? \"15dvh\" : 0,\n          }}\n        >\n          {renderContent ? (\n            renderContent(Content, PageTitle)\n          ) : (\n            <>\n              {PageTitle}\n              {Content}\n            </>\n          )}\n        </Box>\n      </Container>\n    </Box>\n  );\n};\n","import Button from \"@mui/material/Button\";\nimport TextField from \"@mui/material/TextField\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport Container from \"@mui/material/Container\";\nimport Card from \"@mui/material/Card\";\nimport CardContent from \"@mui/material/CardContent\";\nimport MuiLink from \"@mui/material/Link\";\n\nimport type { BoxProps } from \"@mui/material/Box\";\nimport type { CardContentProps } from \"@mui/material/CardContent\";\n\nimport type {\n  ForgotPasswordFormTypes,\n  ForgotPasswordPageProps,\n} from \"@refinedev/core\";\nimport { useForm } from \"@refinedev/react-hook-form\";\nimport * as React from \"react\";\n\nimport {\n  type BaseRecord,\n  type HttpError,\n  useForgotPassword,\n  useLink,\n  useTranslate,\n} from \"@refinedev/core\";\n\nimport { ThemedTitle } from \"@components\";\nimport type { FormPropsType } from \"../../index\";\nimport { layoutStyles, titleStyles } from \"../styles\";\n\ntype ForgotPasswordProps = ForgotPasswordPageProps<\n  BoxProps,\n  CardContentProps,\n  FormPropsType\n>;\n\n/**\n * The forgotPassword type is a page that allows users to reset their passwords. You can use this page to reset your password.\n * @see {@link https://refine.dev/docs/api-reference/mui/components/mui-auth-page/#forgot-password} for more details.\n */\nexport const ForgotPasswordPage: React.FC<ForgotPasswordProps> = ({\n  loginLink,\n  wrapperProps,\n  contentProps,\n  renderContent,\n  formProps,\n  title,\n  mutationVariables,\n}) => {\n  const { onSubmit, ...useFormProps } = formProps || {};\n  const {\n    register,\n    handleSubmit,\n    formState: { errors },\n  } = useForm<BaseRecord, HttpError, ForgotPasswordFormTypes>({\n    ...useFormProps,\n  });\n\n  const { mutate, isPending } = useForgotPassword<ForgotPasswordFormTypes>();\n  const translate = useTranslate();\n  const Link = useLink();\n\n  const PageTitle =\n    title === false ? null : (\n      <div\n        style={{\n          display: \"flex\",\n          justifyContent: \"center\",\n          marginBottom: \"32px\",\n          fontSize: \"20px\",\n        }}\n      >\n        {title ?? (\n          <ThemedTitle\n            collapsed={false}\n            wrapperStyles={{\n              gap: \"8px\",\n            }}\n          />\n        )}\n      </div>\n    );\n\n  const Content = (\n    <Card {...(contentProps ?? {})}>\n      <CardContent sx={{ p: \"32px\", \"&:last-child\": { pb: \"32px\" } }}>\n        <Typography\n          component=\"h1\"\n          variant=\"h5\"\n          align=\"center\"\n          style={titleStyles}\n          color=\"primary\"\n          fontWeight={700}\n        >\n          {translate(\"pages.forgotPassword.title\", \"Forgot your password?\")}\n        </Typography>\n        <Box\n          component=\"form\"\n          onSubmit={handleSubmit((data) => {\n            if (onSubmit) {\n              return onSubmit(data);\n            }\n\n            return mutate({ ...mutationVariables, ...data });\n          })}\n        >\n          <TextField\n            {...register(\"email\", {\n              required: translate(\n                \"pages.forgotPassword.errors.requiredEmail\",\n                \"Email is required\",\n              ),\n              pattern: {\n                value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i,\n                message: translate(\n                  \"pages.register.errors.validEmail\",\n                  \"Invalid email address\",\n                ),\n              },\n            })}\n            id=\"email\"\n            margin=\"normal\"\n            fullWidth\n            label={translate(\"pages.forgotPassword.fields.email\", \"Email\")}\n            name=\"email\"\n            type=\"email\"\n            error={!!errors.email}\n            autoComplete=\"email\"\n            sx={{\n              m: 0,\n            }}\n          />\n          {loginLink ?? (\n            <Box textAlign=\"right\" sx={{ mt: \"24px\" }}>\n              <Typography variant=\"body2\" component=\"span\" fontSize=\"12px\">\n                {translate(\n                  \"pages.forgotPassword.buttons.haveAccount\",\n                  translate(\n                    \"pages.register.buttons.haveAccount\",\n                    \"Have an account? \",\n                  ),\n                )}\n              </Typography>{\" \"}\n              <MuiLink\n                variant=\"body2\"\n                component={Link as any}\n                underline=\"none\"\n                to=\"/login\"\n                fontWeight=\"bold\"\n                fontSize=\"12px\"\n                color=\"primary.light\"\n              >\n                {translate(\n                  \"pages.forgotPassword.signin\",\n                  translate(\"pages.login.signin\", \"Sign in\"),\n                )}\n              </MuiLink>\n            </Box>\n          )}\n          <Button\n            type=\"submit\"\n            fullWidth\n            variant=\"contained\"\n            sx={{ mt: \"24px\" }}\n            disabled={isPending}\n          >\n            {translate(\n              \"pages.forgotPassword.buttons.submit\",\n              \"Send reset instructions\",\n            )}\n          </Button>\n        </Box>\n      </CardContent>\n    </Card>\n  );\n\n  return (\n    <>\n      <Box component=\"div\" style={layoutStyles} {...(wrapperProps ?? {})}>\n        <Container\n          component=\"main\"\n          maxWidth=\"xs\"\n          sx={{\n            display: \"flex\",\n            flexDirection: \"column\",\n            justifyContent: \"center\",\n            minHeight: \"100dvh\",\n            padding: \"16px\",\n            width: \"100%\",\n            maxWidth: \"400px\",\n          }}\n        >\n          {renderContent ? (\n            renderContent(Content, PageTitle)\n          ) : (\n            <>\n              {PageTitle}\n              {Content}\n            </>\n          )}\n        </Container>\n      </Box>\n    </>\n  );\n};\n","import * as React from \"react\";\nimport {\n  type UpdatePasswordFormTypes,\n  type UpdatePasswordPageProps,\n  useActiveAuthProvider,\n} from \"@refinedev/core\";\n\nimport { useForm } from \"@refinedev/react-hook-form\";\n\nimport Button from \"@mui/material/Button\";\nimport TextField from \"@mui/material/TextField\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport Container from \"@mui/material/Container\";\nimport Card from \"@mui/material/Card\";\nimport CardContent from \"@mui/material/CardContent\";\n\nimport type { BoxProps } from \"@mui/material/Box\";\nimport type { CardContentProps } from \"@mui/material/CardContent\";\n\nimport {\n  type BaseRecord,\n  type HttpError,\n  useTranslate,\n  useUpdatePassword,\n} from \"@refinedev/core\";\n\nimport { layoutStyles, titleStyles } from \"../styles\";\nimport type { FormPropsType } from \"../../index\";\nimport { ThemedTitle } from \"@components\";\n\ntype UpdatePasswordProps = UpdatePasswordPageProps<\n  BoxProps,\n  CardContentProps,\n  FormPropsType\n>;\n\n/**\n * The updatePassword type is the page used to update the password of the user.\n * @see {@link https://refine.dev/docs/api-reference/mui/components/mui-auth-page/#update-password} for more details.\n */\nexport const UpdatePasswordPage: React.FC<UpdatePasswordProps> = ({\n  wrapperProps,\n  contentProps,\n  renderContent,\n  formProps,\n  title = undefined,\n  mutationVariables,\n}) => {\n  const { onSubmit, ...useFormProps } = formProps || {};\n  const {\n    register,\n    watch,\n    handleSubmit,\n    formState: { errors },\n  } = useForm<BaseRecord, HttpError, UpdatePasswordFormTypes>({\n    ...useFormProps,\n  });\n\n  const { mutate: update, isPending } =\n    useUpdatePassword<UpdatePasswordFormTypes>();\n\n  const translate = useTranslate();\n\n  const PageTitle =\n    title === false ? null : (\n      <div\n        style={{\n          display: \"flex\",\n          justifyContent: \"center\",\n          marginBottom: \"32px\",\n          fontSize: \"20px\",\n        }}\n      >\n        {title ?? (\n          <ThemedTitle\n            collapsed={false}\n            wrapperStyles={{\n              gap: \"8px\",\n            }}\n          />\n        )}\n      </div>\n    );\n\n  const Content = (\n    <Card {...(contentProps ?? {})}>\n      <CardContent sx={{ p: \"32px\", \"&:last-child\": { pb: \"32px\" } }}>\n        <Typography\n          component=\"h1\"\n          variant=\"h5\"\n          align=\"center\"\n          style={titleStyles}\n          color=\"primary\"\n          fontWeight={700}\n        >\n          {translate(\"pages.updatePassword.title\", \"Set New Password\")}\n        </Typography>\n        <Box\n          component=\"form\"\n          onSubmit={handleSubmit((data) => {\n            if (onSubmit) {\n              return onSubmit(data);\n            }\n\n            return update({ ...mutationVariables, ...data });\n          })}\n        >\n          <TextField\n            {...register(\"password\", {\n              required: translate(\n                \"pages.updatePassword.errors.requiredPassword\",\n                \"Password required\",\n              ),\n            })}\n            id=\"password\"\n            margin=\"normal\"\n            fullWidth\n            name=\"password\"\n            label={translate(\n              \"pages.updatePassword.fields.password\",\n              \"New Password\",\n            )}\n            helperText={errors?.password?.message}\n            error={!!errors?.password}\n            type=\"password\"\n            placeholder=\"●●●●●●●●\"\n            autoComplete=\"current-password\"\n            sx={{\n              m: 0,\n            }}\n          />\n\n          <TextField\n            {...register(\"confirmPassword\", {\n              required: translate(\n                \"pages.updatePassword.errors.requiredConfirmPassword\",\n                \"Confirm Password is required\",\n              ),\n              validate: (value?: string) => {\n                if (watch(\"password\") !== value) {\n                  return translate(\n                    \"pages.updatePassword.errors.confirmPasswordNotMatch\",\n                    \"Passwords do not match\",\n                  );\n                }\n                return true;\n              },\n            })}\n            id=\"confirmPassword\"\n            margin=\"normal\"\n            fullWidth\n            name=\"confirmPassword\"\n            label={translate(\n              \"pages.updatePassword.fields.confirmPassword\",\n              \"Confirm New Password\",\n            )}\n            helperText={errors?.confirmPassword?.message}\n            error={!!errors?.confirmPassword}\n            type=\"password\"\n            placeholder=\"●●●●●●●●\"\n            autoComplete=\"current-confirm-password\"\n            sx={{\n              mb: 0,\n            }}\n          />\n\n          <Button\n            type=\"submit\"\n            fullWidth\n            variant=\"contained\"\n            sx={{\n              mt: \"24px\",\n            }}\n            disabled={isPending}\n          >\n            {translate(\"pages.updatePassword.buttons.submit\", \"Update\")}\n          </Button>\n        </Box>\n      </CardContent>\n    </Card>\n  );\n\n  return (\n    <>\n      <Box component=\"div\" style={layoutStyles} {...(wrapperProps ?? {})}>\n        <Container\n          component=\"main\"\n          maxWidth=\"xs\"\n          sx={{\n            display: \"flex\",\n            flexDirection: \"column\",\n            justifyContent: \"center\",\n            minHeight: \"100dvh\",\n            padding: \"16px\",\n            width: \"100%\",\n            maxWidth: \"400px\",\n          }}\n        >\n          {renderContent ? (\n            renderContent(Content, PageTitle)\n          ) : (\n            <>\n              {PageTitle}\n              {Content}\n            </>\n          )}\n        </Container>\n      </Box>\n    </>\n  );\n};\n","import React from \"react\";\n\nimport {\n  useTranslate,\n  useUserFriendlyName,\n  useBack,\n  useResourceParams,\n} from \"@refinedev/core\";\n\nimport Card from \"@mui/material/Card\";\nimport CardHeader from \"@mui/material/CardHeader\";\nimport CardActions from \"@mui/material/CardActions\";\nimport CardContent from \"@mui/material/CardContent\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Typography from \"@mui/material/Typography\";\nimport Box from \"@mui/material/Box\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\n\nimport { alpha } from \"@mui/system\";\n\nimport ArrowBackIcon from \"@mui/icons-material/ArrowBack\";\n\nimport { Breadcrumb, SaveButton, type SaveButtonProps } from \"@components\";\nimport type { CreateProps } from \"../types\";\nimport { RefinePageHeaderClassNames } from \"@refinedev/ui-types\";\n\n/**\n * `<Create>` provides us a layout to display the page.\n * It does not contain any logic but adds extra functionalities like action buttons and giving titles to the page.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/mui/components/basic-views/create} for more details.\n */\nexport const Create: React.FC<CreateProps> = ({\n  title,\n  children,\n  saveButtonProps: saveButtonPropsFromProps,\n  resource: resourceFromProps,\n  isLoading = false,\n  breadcrumb: breadcrumbFromProps,\n  wrapperProps,\n  headerProps,\n  contentProps,\n  headerButtonProps,\n  headerButtons,\n  footerButtonProps,\n  footerButtons,\n  goBack: goBackFromProps,\n}) => {\n  const translate = useTranslate();\n  const back = useBack();\n  const getUserFriendlyName = useUserFriendlyName();\n\n  const { resource, action, identifier } = useResourceParams({\n    resource: resourceFromProps,\n  });\n\n  const breadcrumb = breadcrumbFromProps;\n\n  const breadcrumbComponent =\n    typeof breadcrumb !== \"undefined\" ? <>{breadcrumb}</> : <Breadcrumb />;\n\n  const saveButtonProps: SaveButtonProps = {\n    ...(isLoading ? { disabled: true } : {}),\n    ...saveButtonPropsFromProps,\n  };\n\n  const defaultFooterButtons = <SaveButton {...saveButtonProps} />;\n\n  return (\n    <Card\n      {...(wrapperProps ?? {})}\n      sx={{\n        position: \"relative\",\n        ...wrapperProps?.sx,\n      }}\n    >\n      {isLoading && (\n        <Box\n          sx={{\n            position: \"absolute\",\n            inset: 0,\n            display: \"flex\",\n            justifyContent: \"center\",\n            alignItems: \"center\",\n            zIndex: (theme) => theme.zIndex.drawer + 1,\n            // this is needed to support custom themes, dark mode etc.\n            bgcolor: (theme) => alpha(theme.palette.background.paper, 0.4),\n          }}\n        >\n          <CircularProgress />\n        </Box>\n      )}\n      {breadcrumbComponent}\n      <CardHeader\n        sx={{\n          display: \"flex\",\n          flexWrap: \"wrap\",\n          \".MuiCardHeader-action\": {\n            margin: 0,\n            alignSelf: \"center\",\n          },\n        }}\n        title={\n          title ?? (\n            <Typography\n              variant=\"h5\"\n              className={RefinePageHeaderClassNames.Title}\n            >\n              {translate(\n                `${identifier}.titles.create`,\n                `Create ${getUserFriendlyName(\n                  resource?.meta?.label ?? identifier,\n                  \"singular\",\n                )}`,\n              )}\n            </Typography>\n          )\n        }\n        avatar={\n          typeof goBackFromProps !== \"undefined\" ? (\n            goBackFromProps\n          ) : (\n            <IconButton\n              onClick={\n                action !== \"list\" || typeof action !== \"undefined\"\n                  ? back\n                  : undefined\n              }\n            >\n              <ArrowBackIcon />\n            </IconButton>\n          )\n        }\n        action={\n          headerButtons ? (\n            <Box display=\"flex\" gap=\"16px\" {...(headerButtonProps ?? {})}>\n              {headerButtons\n                ? typeof headerButtons === \"function\"\n                  ? headerButtons({\n                      defaultButtons: null,\n                    })\n                  : headerButtons\n                : null}\n            </Box>\n          ) : undefined\n        }\n        {...(headerProps ?? {})}\n      />\n      <CardContent {...(contentProps ?? {})}>{children}</CardContent>\n      <CardActions\n        sx={{\n          display: \"flex\",\n          justifyContent: \"flex-end\",\n          gap: \"16px\",\n          padding: \"16px\",\n        }}\n        {...(footerButtonProps ?? {})}\n      >\n        {footerButtons\n          ? typeof footerButtons === \"function\"\n            ? footerButtons({\n                defaultButtons: defaultFooterButtons,\n                saveButtonProps,\n              })\n            : footerButtons\n          : defaultFooterButtons}\n      </CardActions>\n    </Card>\n  );\n};\n","import React from \"react\";\n\nimport {\n  useMutationMode,\n  useTranslate,\n  useUserFriendlyName,\n  useToPath,\n  useResourceParams,\n  useBack,\n  useGo,\n} from \"@refinedev/core\";\n\nimport Card from \"@mui/material/Card\";\nimport CardHeader from \"@mui/material/CardHeader\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CardContent from \"@mui/material/CardContent\";\nimport CardActions from \"@mui/material/CardActions\";\nimport Typography from \"@mui/material/Typography\";\nimport Box from \"@mui/material/Box\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\n\nimport { alpha } from \"@mui/system\";\n\nimport ArrowBackIcon from \"@mui/icons-material/ArrowBack\";\n\nimport {\n  DeleteButton,\n  RefreshButton,\n  ListButton,\n  SaveButton,\n  Breadcrumb,\n  type ListButtonProps,\n  type RefreshButtonProps,\n  type DeleteButtonProps,\n  type SaveButtonProps,\n  AutoSaveIndicator,\n} from \"@components\";\nimport type { EditProps } from \"../types\";\nimport { RefinePageHeaderClassNames } from \"@refinedev/ui-types\";\n\n/**\n * `<Edit>` provides us a layout for displaying the page.\n * It does not contain any logic but adds extra functionalities like a refresh button.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/mui/components/basic-views/edit} for more details.\n */\nexport const Edit: React.FC<EditProps> = ({\n  title,\n  saveButtonProps: saveButtonPropsFromProps,\n  mutationMode: mutationModeProp,\n  recordItemId,\n  children,\n  deleteButtonProps: deleteButtonPropsFromProps,\n  canDelete,\n  resource: resourceFromProps,\n  isLoading = false,\n  breadcrumb: breadcrumbFromProps,\n  dataProviderName,\n  wrapperProps,\n  headerProps,\n  contentProps,\n  headerButtonProps,\n  headerButtons,\n  footerButtonProps,\n  footerButtons,\n  goBack: goBackFromProps,\n  autoSaveProps,\n}) => {\n  const translate = useTranslate();\n  const { mutationMode: mutationModeContext } = useMutationMode();\n  const mutationMode = mutationModeProp ?? mutationModeContext;\n\n  const back = useBack();\n  const go = useGo();\n  const getUserFriendlyName = useUserFriendlyName();\n\n  const {\n    resource,\n    action,\n    id: idFromParams,\n    identifier,\n  } = useResourceParams({ resource: resourceFromProps, id: recordItemId });\n\n  const goListPath = useToPath({\n    resource,\n    action: \"list\",\n  });\n\n  const id = recordItemId ?? idFromParams;\n\n  const breadcrumb = breadcrumbFromProps;\n\n  const hasList = resource?.list && !recordItemId;\n  const isDeleteButtonVisible =\n    canDelete ?? (resource?.meta?.canDelete || deleteButtonPropsFromProps);\n\n  const breadcrumbComponent =\n    typeof breadcrumb !== \"undefined\" ? <>{breadcrumb}</> : <Breadcrumb />;\n\n  const listButtonProps: ListButtonProps | undefined = hasList\n    ? {\n        ...(isLoading ? { disabled: true } : {}),\n        resource: identifier,\n      }\n    : undefined;\n\n  const refreshButtonProps: RefreshButtonProps = {\n    ...(isLoading ? { disabled: true } : {}),\n    resource: identifier,\n    recordItemId: id,\n    dataProviderName,\n  };\n\n  const defaultHeaderButtons = (\n    <Box display=\"flex\" flexDirection=\"row\" alignItems=\"center\">\n      {autoSaveProps && <AutoSaveIndicator {...autoSaveProps} />}\n      {hasList && <ListButton {...listButtonProps} />}\n      <RefreshButton {...refreshButtonProps} />\n    </Box>\n  );\n\n  const deleteButtonProps: DeleteButtonProps | undefined = isDeleteButtonVisible\n    ? ({\n        ...(isLoading ? { disabled: true } : {}),\n        resource: identifier,\n        mutationMode,\n        variant: \"outlined\",\n        onSuccess: () => {\n          go({ to: goListPath });\n        },\n        recordItemId: id,\n        dataProviderName,\n        ...deleteButtonPropsFromProps,\n      } as const)\n    : undefined;\n\n  const saveButtonProps: SaveButtonProps = {\n    ...(isLoading ? { disabled: true } : {}),\n    ...saveButtonPropsFromProps,\n  };\n\n  const defaultFooterButtons = (\n    <>\n      {isDeleteButtonVisible && <DeleteButton {...deleteButtonProps} />}\n      <SaveButton {...saveButtonProps} />\n    </>\n  );\n\n  return (\n    <Card\n      {...(wrapperProps ?? {})}\n      sx={{\n        position: \"relative\",\n        ...wrapperProps?.sx,\n      }}\n    >\n      {isLoading && (\n        <Box\n          sx={{\n            position: \"absolute\",\n            inset: 0,\n            display: \"flex\",\n            justifyContent: \"center\",\n            alignItems: \"center\",\n            zIndex: (theme) => theme.zIndex.drawer + 1,\n            // this is needed to support custom themes, dark mode etc.\n            bgcolor: (theme) => alpha(theme.palette.background.paper, 0.4),\n          }}\n        >\n          <CircularProgress />\n        </Box>\n      )}\n      {breadcrumbComponent}\n      <CardHeader\n        sx={{\n          display: \"flex\",\n          flexWrap: \"wrap\",\n          \".MuiCardHeader-action\": {\n            margin: 0,\n            alignSelf: \"center\",\n          },\n        }}\n        title={\n          title ?? (\n            <Typography\n              variant=\"h5\"\n              className={RefinePageHeaderClassNames.Title}\n            >\n              {translate(\n                `${identifier}.titles.edit`,\n                `Edit ${getUserFriendlyName(\n                  resource?.meta?.label ?? identifier,\n                  \"singular\",\n                )}`,\n              )}\n            </Typography>\n          )\n        }\n        avatar={\n          typeof goBackFromProps !== \"undefined\" ? (\n            goBackFromProps\n          ) : (\n            <IconButton\n              onClick={\n                action !== \"list\" && typeof action !== \"undefined\"\n                  ? back\n                  : undefined\n              }\n            >\n              <ArrowBackIcon />\n            </IconButton>\n          )\n        }\n        action={\n          <Box display=\"flex\" gap=\"16px\" {...(headerButtonProps ?? {})}>\n            {headerButtons\n              ? typeof headerButtons === \"function\"\n                ? headerButtons({\n                    defaultButtons: defaultHeaderButtons,\n                    listButtonProps,\n                    refreshButtonProps,\n                  })\n                : headerButtons\n              : defaultHeaderButtons}\n          </Box>\n        }\n        {...(headerProps ?? {})}\n      />\n      <CardContent {...(contentProps ?? {})}>{children}</CardContent>\n      <CardActions\n        sx={{\n          display: \"flex\",\n          justifyContent: \"flex-end\",\n          gap: \"16px\",\n          padding: \"16px\",\n        }}\n        {...(footerButtonProps ?? {})}\n      >\n        {footerButtons\n          ? typeof footerButtons === \"function\"\n            ? footerButtons({\n                defaultButtons: defaultFooterButtons,\n                deleteButtonProps,\n                saveButtonProps,\n              })\n            : footerButtons\n          : defaultFooterButtons}\n      </CardActions>\n    </Card>\n  );\n};\n","import React from \"react\";\n\nimport {\n  useTranslate,\n  useUserFriendlyName,\n  useResourceParams,\n} from \"@refinedev/core\";\n\nimport Card from \"@mui/material/Card\";\nimport CardHeader from \"@mui/material/CardHeader\";\nimport CardContent from \"@mui/material/CardContent\";\nimport Typography from \"@mui/material/Typography\";\nimport Box from \"@mui/material/Box\";\n\nimport { CreateButton, Breadcrumb, type CreateButtonProps } from \"@components\";\n\nimport type { ListProps } from \"../types\";\nimport { RefinePageHeaderClassNames } from \"@refinedev/ui-types\";\n\n/**\n * `<List>` provides us a layout for displaying the page.\n * It does not contain any logic but adds extra functionalities like a refresh button.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/mui/components/basic-views/list} for more details.\n */\nexport const List: React.FC<ListProps> = ({\n  title,\n  canCreate,\n  children,\n  createButtonProps: createButtonPropsFromProps,\n  resource: resourceFromProps,\n  breadcrumb: breadcrumbFromProps,\n  wrapperProps,\n  headerProps,\n  contentProps,\n  headerButtonProps,\n  headerButtons,\n}) => {\n  const translate = useTranslate();\n  const getUserFriendlyName = useUserFriendlyName();\n\n  const { resource, identifier } = useResourceParams({\n    resource: resourceFromProps,\n  });\n\n  const isCreateButtonVisible =\n    canCreate ?? (!!resource?.create || createButtonPropsFromProps);\n\n  const breadcrumb = breadcrumbFromProps;\n\n  const breadcrumbComponent =\n    typeof breadcrumb !== \"undefined\" ? <>{breadcrumb}</> : <Breadcrumb />;\n\n  const createButtonProps: CreateButtonProps | undefined = isCreateButtonVisible\n    ? {\n        resource: identifier,\n        ...createButtonPropsFromProps,\n      }\n    : undefined;\n\n  const defaultHeaderButtons = isCreateButtonVisible ? (\n    <CreateButton {...createButtonProps} />\n  ) : null;\n\n  return (\n    <Card {...(wrapperProps ?? {})}>\n      {breadcrumbComponent}\n      <CardHeader\n        sx={{\n          display: \"flex\",\n          flexWrap: \"wrap\",\n          \".MuiCardHeader-action\": {\n            margin: 0,\n            alignSelf: \"center\",\n          },\n        }}\n        title={\n          title ?? (\n            <Typography\n              variant=\"h5\"\n              className={RefinePageHeaderClassNames.Title}\n            >\n              {translate(\n                `${identifier}.titles.list`,\n                getUserFriendlyName(\n                  resource?.meta?.label ?? identifier,\n                  \"plural\",\n                ),\n              )}\n            </Typography>\n          )\n        }\n        action={\n          <Box display=\"flex\" gap=\"16px\" {...headerButtonProps}>\n            {headerButtons\n              ? typeof headerButtons === \"function\"\n                ? headerButtons({\n                    defaultButtons: defaultHeaderButtons,\n                    createButtonProps,\n                  })\n                : headerButtons\n              : defaultHeaderButtons}\n          </Box>\n        }\n        {...(headerProps ?? {})}\n      />\n      <CardContent {...(contentProps ?? {})}>{children}</CardContent>\n    </Card>\n  );\n};\n","import React from \"react\";\nimport {\n  useTranslate,\n  useUserFriendlyName,\n  useBack,\n  useGo,\n  useResourceParams,\n  useToPath,\n} from \"@refinedev/core\";\n\nimport Card from \"@mui/material/Card\";\nimport CardActions from \"@mui/material/CardActions\";\nimport CardContent from \"@mui/material/CardContent\";\nimport CardHeader from \"@mui/material/CardHeader\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\n\nimport { alpha } from \"@mui/system\";\n\nimport ArrowBackIcon from \"@mui/icons-material/ArrowBack\";\n\nimport {\n  DeleteButton,\n  RefreshButton,\n  ListButton,\n  EditButton,\n  Breadcrumb,\n  type ListButtonProps,\n  type EditButtonProps,\n  type DeleteButtonProps,\n  type RefreshButtonProps,\n} from \"@components\";\nimport type { ShowProps } from \"../types\";\nimport { RefinePageHeaderClassNames } from \"@refinedev/ui-types\";\n\n/**\n * `<Show>` provides us a layout for displaying the page.\n * It does not contain any logic but adds extra functionalities like a refresh button.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/mui/components/basic-views/show} for more details.\n */\nexport const Show: React.FC<ShowProps> = ({\n  title,\n  canEdit,\n  canDelete,\n  deleteButtonProps: deleteButtonPropsFromProps,\n  isLoading = false,\n  children,\n  resource: resourceFromProps,\n  recordItemId,\n  breadcrumb: breadcrumbFromProps,\n  dataProviderName,\n  wrapperProps,\n  headerProps,\n  contentProps,\n  headerButtonProps,\n  headerButtons,\n  footerButtonProps,\n  footerButtons,\n  goBack: goBackFromProps,\n}) => {\n  const translate = useTranslate();\n\n  const back = useBack();\n  const go = useGo();\n  const getUserFriendlyName = useUserFriendlyName();\n\n  const {\n    resource,\n    action,\n    id: idFromParams,\n    identifier,\n  } = useResourceParams({ resource: resourceFromProps, id: recordItemId });\n\n  const goListPath = useToPath({\n    resource,\n    action: \"list\",\n  });\n\n  const id = recordItemId ?? idFromParams;\n\n  const breadcrumb = breadcrumbFromProps;\n\n  const hasList = resource?.list && !recordItemId;\n  const hasDelete =\n    canDelete ?? (resource?.meta?.canDelete || deleteButtonPropsFromProps);\n\n  const isDeleteButtonVisible = hasDelete && typeof id !== \"undefined\";\n\n  const isEditButtonVisible =\n    canEdit ?? resource?.meta?.canEdit ?? !!resource?.edit;\n\n  const breadcrumbComponent =\n    typeof breadcrumb !== \"undefined\" ? <>{breadcrumb}</> : <Breadcrumb />;\n\n  const listButtonProps: ListButtonProps | undefined = hasList\n    ? {\n        ...(isLoading ? { disabled: true } : {}),\n        resource: identifier ?? resource?.name,\n      }\n    : undefined;\n  const editButtonProps: EditButtonProps | undefined = isEditButtonVisible\n    ? {\n        ...(isLoading ? { disabled: true } : {}),\n        resource: identifier ?? resource?.name,\n        recordItemId: id,\n      }\n    : undefined;\n  const deleteButtonProps: DeleteButtonProps | undefined = isDeleteButtonVisible\n    ? {\n        ...(isLoading ? { disabled: true } : {}),\n        resource: identifier ?? resource?.name,\n        recordItemId: id,\n        onSuccess: () => {\n          go({ to: goListPath });\n        },\n        dataProviderName,\n        ...deleteButtonPropsFromProps,\n      }\n    : undefined;\n  const refreshButtonProps: RefreshButtonProps = {\n    ...(isLoading ? { disabled: true } : {}),\n    resource: identifier ?? resource?.name,\n    recordItemId: id,\n    dataProviderName,\n  };\n\n  const defaultHeaderButtons = (\n    <>\n      {hasList && <ListButton {...listButtonProps} />}\n      {isEditButtonVisible && <EditButton {...editButtonProps} />}\n      {isDeleteButtonVisible && <DeleteButton {...deleteButtonProps} />}\n      <RefreshButton {...refreshButtonProps} />\n    </>\n  );\n\n  return (\n    <Card\n      {...(wrapperProps ?? {})}\n      sx={{\n        position: \"relative\",\n        ...wrapperProps?.sx,\n      }}\n    >\n      {isLoading && (\n        <Box\n          sx={{\n            position: \"absolute\",\n            inset: 0,\n            display: \"flex\",\n            justifyContent: \"center\",\n            alignItems: \"center\",\n            zIndex: (theme) => theme.zIndex.drawer + 1,\n            // this is needed to support custom themes, dark mode etc.\n            bgcolor: (theme) => alpha(theme.palette.background.paper, 0.4),\n          }}\n        >\n          <CircularProgress />\n        </Box>\n      )}\n      {breadcrumbComponent}\n      <CardHeader\n        sx={{\n          display: \"flex\",\n          flexWrap: \"wrap\",\n          \".MuiCardHeader-action\": {\n            margin: 0,\n            alignSelf: \"center\",\n          },\n        }}\n        title={\n          title ?? (\n            <Typography\n              variant=\"h5\"\n              className={RefinePageHeaderClassNames.Title}\n            >\n              {translate(\n                `${identifier}.titles.show`,\n                `Show ${getUserFriendlyName(\n                  resource?.meta?.label ?? identifier,\n                  \"singular\",\n                )}`,\n              )}\n            </Typography>\n          )\n        }\n        avatar={\n          typeof goBackFromProps !== \"undefined\" ? (\n            goBackFromProps\n          ) : (\n            <IconButton\n              onClick={\n                action !== \"list\" && typeof action !== \"undefined\"\n                  ? back\n                  : undefined\n              }\n            >\n              <ArrowBackIcon />\n            </IconButton>\n          )\n        }\n        action={\n          <Box display=\"flex\" gap=\"16px\" {...(headerButtonProps ?? {})}>\n            {headerButtons\n              ? typeof headerButtons === \"function\"\n                ? headerButtons({\n                    defaultButtons: defaultHeaderButtons,\n                    deleteButtonProps,\n                    editButtonProps,\n                    listButtonProps,\n                    refreshButtonProps,\n                  })\n                : headerButtons\n              : defaultHeaderButtons}\n          </Box>\n        }\n        {...(headerProps ?? {})}\n      />\n      <CardContent {...(contentProps ?? {})}>{children}</CardContent>\n      <CardActions sx={{ padding: \"16px\" }} {...(footerButtonProps ?? {})}>\n        {footerButtons\n          ? typeof footerButtons === \"function\"\n            ? footerButtons({ defaultButtons: null })\n            : footerButtons\n          : null}\n      </CardActions>\n    </Card>\n  );\n};\n","import React from \"react\";\nimport { useCreateButton } from \"@refinedev/core\";\nimport {\n  RefineButtonClassNames,\n  RefineButtonTestIds,\n} from \"@refinedev/ui-types\";\n\nimport Button from \"@mui/material/Button\";\nimport AddBoxOutlined from \"@mui/icons-material/AddBoxOutlined\";\n\nimport type { CreateButtonProps } from \"../types\";\n\n/**\n * <CreateButton> uses Material UI {@link https://mui.com/material-ui/react-button/ `<Button> component`}.\n * It uses the {@link https://refine.dev/docs/api-reference/core/hooks/navigation/useNavigation#create `create`} method from {@link https://refine.dev/docs/api-reference/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful to redirect the app to the create page route of resource}.\n *\n * @see {@link https://refine.dev/docs/api-reference/mui/components/buttons/create-button} for more details.\n */\nexport const CreateButton: React.FC<CreateButtonProps> = ({\n  resource: resourceNameFromProps,\n  hideText = false,\n  accessControl,\n  svgIconProps,\n  meta,\n  children,\n  onClick,\n  ...props\n}) => {\n  const { to, label, title, disabled, hidden, LinkComponent } = useCreateButton(\n    {\n      resource: resourceNameFromProps,\n      meta,\n      accessControl,\n    },\n  );\n  const isDisabled = disabled || props.disabled;\n  const isHidden = hidden || props.hidden;\n\n  if (isHidden) return null;\n\n  // `startIcon` is extracted from rest props so it doesn't get passed to the\n  // underlying MUI Button via `{...restProps}` (which would cause a double icon).\n  const { sx, startIcon, ...restProps } = props;\n\n  const defaultIcon = <AddBoxOutlined fontSize=\"small\" {...svgIconProps} />;\n\n  // When `hideText` is true, the button renders only an icon (no startIcon prop).\n  // When `hideText` is false, the icon goes into the `startIcon` slot and text goes as children.\n  // In both modes, a user-provided `startIcon` takes priority over the default icon.\n  //\n  // | hideText | startIcon    | Button startIcon prop | Button children  |\n  // |----------|--------------|-----------------------|------------------|\n  // | false    | undefined    | <AddBoxOutlined>      | \"Create\"         |\n  // | false    | <CustomIcon> | <CustomIcon>          | \"Create\"         |\n  // | true     | undefined    | undefined             | <AddBoxOutlined> |\n  // | true     | <CustomIcon> | undefined             | <CustomIcon>     |\n  const buttonStartIcon = hideText\n    ? undefined\n    : startIcon ?? <AddBoxOutlined {...svgIconProps} />;\n  const buttonChildren = hideText\n    ? startIcon ?? defaultIcon\n    : children ?? label;\n\n  return (\n    <Button\n      component={LinkComponent}\n      to={to}\n      replace={false}\n      disabled={isDisabled}\n      onClick={(e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n        if (isDisabled) {\n          e.preventDefault();\n          return;\n        }\n        if (onClick) {\n          e.preventDefault();\n          onClick(e);\n        }\n      }}\n      startIcon={buttonStartIcon}\n      title={title}\n      variant=\"contained\"\n      sx={{ minWidth: 0, textDecoration: \"none\", ...sx }}\n      data-testid={RefineButtonTestIds.CreateButton}\n      className={RefineButtonClassNames.CreateButton}\n      {...restProps}\n    >\n      {buttonChildren}\n    </Button>\n  );\n};\n","import React from \"react\";\nimport { useEditButton } from \"@refinedev/core\";\nimport {\n  RefineButtonClassNames,\n  RefineButtonTestIds,\n} from \"@refinedev/ui-types\";\n\nimport Button from \"@mui/material/Button\";\nimport EditOutlined from \"@mui/icons-material/EditOutlined\";\n\nimport type { EditButtonProps } from \"../types\";\n\n/**\n * `<EditButton>` uses uses Material UI {@link https://mui.com/material-ui/react-button/ `<Button>`} component.\n * It uses the {@link https://refine.dev/docs/api-reference/core/hooks/navigation/useNavigation#edit `edit`} method from {@link https://refine.dev/docs/api-reference/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful when redirecting the app to the edit page with the record id route of resource}.\n *\n * @see {@link https://refine.dev/docs/api-reference/mui/components/buttons/edit-button} for more details.\n */\nexport const EditButton: React.FC<EditButtonProps> = ({\n  resource: resourceNameFromProps,\n  recordItemId,\n  hideText = false,\n  accessControl,\n  svgIconProps,\n  meta,\n  children,\n  onClick,\n  ...rest\n}) => {\n  const { to, label, title, hidden, disabled, LinkComponent } = useEditButton({\n    resource: resourceNameFromProps,\n    id: recordItemId,\n    accessControl,\n    meta,\n  });\n\n  const isDisabled = disabled || rest.disabled;\n  const isHidden = hidden || rest.hidden;\n\n  if (isHidden) return null;\n\n  // `startIcon` is extracted from rest props so it doesn't get passed to the\n  // underlying MUI Button via `{...restProps}` (which would cause a double icon).\n  const { sx, startIcon, ...restProps } = rest;\n\n  const defaultIcon = <EditOutlined fontSize=\"small\" {...svgIconProps} />;\n\n  // When `hideText` is true, the button renders only an icon (no startIcon prop).\n  // When `hideText` is false, the icon goes into the `startIcon` slot and text goes as children.\n  // In both modes, a user-provided `startIcon` takes priority over the default icon.\n  //\n  // | hideText | startIcon    | Button startIcon prop | Button children |\n  // |----------|--------------|-----------------------|-----------------|\n  // | false    | undefined    | <EditOutlined>        | \"Edit\"          |\n  // | false    | <CustomIcon> | <CustomIcon>          | \"Edit\"          |\n  // | true     | undefined    | undefined             | <EditOutlined>  |\n  // | true     | <CustomIcon> | undefined             | <CustomIcon>    |\n  const buttonStartIcon = hideText\n    ? undefined\n    : startIcon ?? (\n        <EditOutlined sx={{ selfAlign: \"center\" }} {...svgIconProps} />\n      );\n  const buttonChildren = hideText\n    ? startIcon ?? defaultIcon\n    : children ?? label;\n\n  return (\n    <Button\n      disabled={isDisabled}\n      component={LinkComponent}\n      to={to}\n      replace={false}\n      onClick={(e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n        if (isDisabled) {\n          e.preventDefault();\n          return;\n        }\n        if (onClick) {\n          e.preventDefault();\n          onClick(e);\n        }\n      }}\n      startIcon={buttonStartIcon}\n      title={title}\n      sx={{ minWidth: 0, textDecoration: \"none\", ...sx }}\n      data-testid={RefineButtonTestIds.EditButton}\n      className={RefineButtonClassNames.EditButton}\n      {...restProps}\n    >\n      {buttonChildren}\n    </Button>\n  );\n};\n","import React from \"react\";\nimport { useDeleteButton } from \"@refinedev/core\";\nimport {\n  RefineButtonClassNames,\n  RefineButtonTestIds,\n} from \"@refinedev/ui-types\";\n\nimport Button from \"@mui/material/Button\";\nimport Dialog from \"@mui/material/Dialog\";\nimport DialogActions from \"@mui/material/DialogActions\";\nimport DialogTitle from \"@mui/material/DialogTitle\";\n\nimport LoadingButton from \"@mui/lab/LoadingButton\";\n\nimport DeleteOutline from \"@mui/icons-material/DeleteOutline\";\n\nimport type { DeleteButtonProps } from \"../types\";\n\n/**\n * `<DeleteButton>` uses Material UI {@link https://mui.com/material-ui/react-button `<Button>`} and {@link https://mui.com/material-ui/react-dialog/#main-content `<Dialog>`} components.\n * When you try to delete something, a dialog modal shows up and asks for confirmation. When confirmed it executes the `useDelete` method provided by your `dataProvider`.\n *\n * @see {@link https://refine.dev/docs/api-reference/mui/components/buttons/delete-button} for more details.\n */\nexport const DeleteButton: React.FC<DeleteButtonProps> = ({\n  resource: resourceNameFromProps,\n  recordItemId,\n  onSuccess,\n  mutationMode,\n  children,\n  successNotification,\n  errorNotification,\n  hideText = false,\n  accessControl,\n  meta,\n  dataProviderName,\n  confirmTitle,\n  confirmOkText,\n  confirmCancelText,\n  svgIconProps,\n  invalidates,\n  ...rest\n}) => {\n  const {\n    onConfirm,\n    title,\n    label,\n    hidden,\n    disabled,\n    loading,\n    confirmTitle: defaultConfirmTitle,\n    confirmOkLabel,\n    cancelLabel,\n  } = useDeleteButton({\n    resource: resourceNameFromProps,\n    id: recordItemId,\n    dataProviderName,\n    mutationMode,\n    accessControl,\n    invalidates,\n    onSuccess,\n    meta,\n    successNotification,\n    errorNotification,\n  });\n\n  const [open, setOpen] = React.useState(false);\n\n  // `startIcon` is extracted from rest props so it doesn't get passed to the\n  // underlying MUI Button via `{...restProps}` (which would cause a double icon).\n  const { sx, startIcon, ...restProps } = rest;\n\n  const isDisabled = disabled || rest.disabled;\n  const isHidden = hidden || rest.hidden;\n\n  if (isHidden) return null;\n\n  const defaultIcon = <DeleteOutline fontSize=\"small\" {...svgIconProps} />;\n\n  // When `hideText` is true, the button renders only an icon (no startIcon prop).\n  // When `hideText` is false, the icon goes into the `startIcon` slot and text goes as children.\n  // In both modes, a user-provided `startIcon` takes priority over the default icon.\n  //\n  // | hideText | startIcon    | Button startIcon prop | Button children  |\n  // |----------|--------------|-----------------------|------------------|\n  // | false    | undefined    | <DeleteOutline>       | \"Delete\"         |\n  // | false    | <CustomIcon> | <CustomIcon>          | \"Delete\"         |\n  // | true     | undefined    | undefined             | <DeleteOutline>  |\n  // | true     | <CustomIcon> | undefined             | <CustomIcon>     |\n  const buttonStartIcon = hideText\n    ? undefined\n    : startIcon ?? <DeleteOutline {...svgIconProps} />;\n  const buttonChildren = hideText\n    ? startIcon ?? defaultIcon\n    : children ?? label;\n\n  return (\n    <div>\n      <LoadingButton\n        color=\"error\"\n        onClick={() => setOpen(true)}\n        disabled={isDisabled}\n        loading={loading}\n        startIcon={buttonStartIcon}\n        title={title}\n        sx={{ minWidth: 0, ...sx }}\n        loadingPosition={hideText ? \"center\" : \"start\"}\n        data-testid={RefineButtonTestIds.DeleteButton}\n        className={RefineButtonClassNames.DeleteButton}\n        {...restProps}\n      >\n        {buttonChildren}\n      </LoadingButton>\n      <Dialog\n        open={open}\n        onClose={() => setOpen(false)}\n        aria-labelledby=\"alert-dialog-title\"\n        aria-describedby=\"alert-dialog-description\"\n      >\n        <DialogTitle id=\"alert-dialog-title\">\n          {confirmTitle ?? defaultConfirmTitle}\n        </DialogTitle>\n        <DialogActions sx={{ justifyContent: \"center\" }}>\n          <Button onClick={() => setOpen(false)}>\n            {confirmCancelText ?? cancelLabel}\n          </Button>\n          <Button\n            color=\"error\"\n            onClick={() => {\n              onConfirm();\n              setOpen(false);\n            }}\n            autoFocus\n          >\n            {confirmOkText ?? confirmOkLabel}\n          </Button>\n        </DialogActions>\n      </Dialog>\n    </div>\n  );\n};\n","import React from \"react\";\nimport { useRefreshButton } from \"@refinedev/core\";\nimport {\n  RefineButtonClassNames,\n  RefineButtonTestIds,\n} from \"@refinedev/ui-types\";\n\nimport LoadingButton from \"@mui/lab/LoadingButton\";\nimport RefreshOutlined from \"@mui/icons-material/RefreshOutlined\";\n\nimport type { RefreshButtonProps } from \"../types\";\n\n/**\n * `<RefreshButton>` uses uses Material UI {@link https://mui.com/material-ui/react-button `<Button>`} component\n * to update the data shown on the page via the {@link https://refine.dev/docs/api-reference/core/hooks/invalidate/useInvalidate `useInvalidate`} hook.\n *\n * @see {@link https://refine.dev/docs/api-reference/mui/components/buttons/refresh-button} for more details.\n */\nexport const RefreshButton: React.FC<RefreshButtonProps> = ({\n  resource: resourceNameFromProps,\n  recordItemId,\n  hideText = false,\n  dataProviderName,\n  svgIconProps,\n  children,\n  onClick,\n  ...rest\n}) => {\n  const {\n    onClick: onRefresh,\n    loading,\n    label,\n  } = useRefreshButton({\n    resource: resourceNameFromProps,\n    id: recordItemId,\n    dataProviderName,\n  });\n\n  // `startIcon` is extracted from rest props so it doesn't get passed to the\n  // underlying MUI Button via `{...restProps}` (which would cause a double icon).\n  const { sx, startIcon, ...restProps } = rest;\n\n  const defaultIcon = <RefreshOutlined fontSize=\"small\" {...svgIconProps} />;\n\n  // When `hideText` is true, the button renders only an icon (no startIcon prop).\n  // When `hideText` is false, the icon goes into the `startIcon` slot and text goes as children.\n  // In both modes, a user-provided `startIcon` takes priority over the default icon.\n  //\n  // | hideText | startIcon    | Button startIcon prop  | Button children    |\n  // |----------|--------------|------------------------|--------------------|\n  // | false    | undefined    | <RefreshOutlined>      | \"Refresh\"          |\n  // | false    | <CustomIcon> | <CustomIcon>           | \"Refresh\"          |\n  // | true     | undefined    | undefined              | <RefreshOutlined>  |\n  // | true     | <CustomIcon> | undefined              | <CustomIcon>       |\n  const buttonStartIcon = hideText\n    ? undefined\n    : startIcon ?? <RefreshOutlined {...svgIconProps} />;\n  const buttonChildren = hideText\n    ? startIcon ?? defaultIcon\n    : children ?? label;\n\n  return (\n    <LoadingButton\n      startIcon={buttonStartIcon}\n      loading={loading}\n      loadingPosition={hideText ? \"center\" : \"start\"}\n      onClick={onClick ? onClick : onRefresh}\n      sx={{ minWidth: 0, ...sx }}\n      data-testid={RefineButtonTestIds.RefreshButton}\n      className={RefineButtonClassNames.RefreshButton}\n      {...restProps}\n    >\n      {buttonChildren}\n    </LoadingButton>\n  );\n};\n","import React from \"react\";\nimport { useShowButton } from \"@refinedev/core\";\nimport {\n  RefineButtonClassNames,\n  RefineButtonTestIds,\n} from \"@refinedev/ui-types\";\n\nimport Button from \"@mui/material/Button\";\nimport VisibilityOutlined from \"@mui/icons-material/VisibilityOutlined\";\n\nimport type { ShowButtonProps } from \"../types\";\n\n/**\n * `<ShowButton>` uses uses Material UI {@link https://mui.com/material-ui/react-button/ `<Button>`} component.\n * It uses the {@link https://refine.dev/docs/api-reference/core/hooks/navigation/useNavigation#show `show`} method from {@link https://refine.dev/docs/api-reference/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful when redirecting the app to the show page with the record id route of resource.\n *\n * @see {@link https://refine.dev/docs/api-reference/mui/components/buttons/show-button} for more details.\n */\nexport const ShowButton: React.FC<ShowButtonProps> = ({\n  resource: resourceNameFromProps,\n  recordItemId,\n  hideText = false,\n  accessControl,\n  svgIconProps,\n  meta,\n  children,\n  onClick,\n  ...rest\n}) => {\n  const { to, label, title, hidden, disabled, LinkComponent } = useShowButton({\n    resource: resourceNameFromProps,\n    id: recordItemId,\n    accessControl,\n    meta,\n  });\n\n  const isDisabled = disabled || rest.disabled;\n  const isHidden = hidden || rest.hidden;\n\n  if (isHidden) return null;\n\n  // `startIcon` is extracted from rest props so it doesn't get passed to the\n  // underlying MUI Button via `{...restProps}` (which would cause a double icon).\n  const { sx, startIcon, ...restProps } = rest;\n\n  const defaultIcon = <VisibilityOutlined fontSize=\"small\" {...svgIconProps} />;\n\n  // When `hideText` is true, the button renders only an icon (no startIcon prop).\n  // When `hideText` is false, the icon goes into the `startIcon` slot and text goes as children.\n  // In both modes, a user-provided `startIcon` takes priority over the default icon.\n  //\n  // | hideText | startIcon    | Button startIcon prop    | Button children        |\n  // |----------|--------------|--------------------------|------------------------|\n  // | false    | undefined    | <VisibilityOutlined>     | \"Show\"                 |\n  // | false    | <CustomIcon> | <CustomIcon>             | \"Show\"                 |\n  // | true     | undefined    | undefined                | <VisibilityOutlined>   |\n  // | true     | <CustomIcon> | undefined                | <CustomIcon>           |\n  const buttonStartIcon = hideText\n    ? undefined\n    : startIcon ?? <VisibilityOutlined {...svgIconProps} />;\n  const buttonChildren = hideText\n    ? startIcon ?? defaultIcon\n    : children ?? label;\n\n  return (\n    <Button\n      component={LinkComponent}\n      to={to}\n      replace={false}\n      disabled={isDisabled}\n      onClick={(e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n        if (isDisabled) {\n          e.preventDefault();\n          return;\n        }\n        if (onClick) {\n          e.preventDefault();\n          onClick(e);\n        }\n      }}\n      startIcon={buttonStartIcon}\n      title={title}\n      sx={{ minWidth: 0, textDecoration: \"none\", ...sx }}\n      data-testid={RefineButtonTestIds.ShowButton}\n      className={RefineButtonClassNames.ShowButton}\n      {...restProps}\n    >\n      {buttonChildren}\n    </Button>\n  );\n};\n","import React from \"react\";\nimport { useListButton } from \"@refinedev/core\";\nimport {\n  RefineButtonClassNames,\n  RefineButtonTestIds,\n} from \"@refinedev/ui-types\";\n\nimport Button from \"@mui/material/Button\";\nimport ListOutlined from \"@mui/icons-material/ListOutlined\";\n\nimport type { ListButtonProps } from \"../types\";\n\n/**\n * `<ListButton>` is using uses Material UI {@link https://mui.com/material-ui/react-button/ `<Button>`} component.\n * It uses the  {@link https://refine.dev/docs/api-reference/core/hooks/navigation/useNavigation#list `list`} method from {@link https://refine.dev/docs/api-reference/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful when redirecting the app to the list page route of resource}.\n *\n * @see {@link https://refine.dev/docs/api-reference/mui/components/buttons/list-button} for more details.\n */\nexport const ListButton: React.FC<ListButtonProps> = ({\n  resource: resourceNameFromProps,\n  hideText = false,\n  accessControl,\n  svgIconProps,\n  meta,\n  children,\n  onClick,\n  ...rest\n}) => {\n  const { to, label, title, hidden, disabled, LinkComponent } = useListButton({\n    resource: resourceNameFromProps,\n    meta,\n    accessControl,\n  });\n\n  const isDisabled = disabled || rest.disabled;\n  const isHidden = hidden || rest.hidden;\n\n  if (isHidden) return null;\n\n  // `startIcon` is extracted from rest props so it doesn't get passed to the\n  // underlying MUI Button via `{...restProps}` (which would cause a double icon).\n  const { sx, startIcon, ...restProps } = rest;\n\n  const defaultIcon = <ListOutlined fontSize=\"small\" {...svgIconProps} />;\n\n  // When `hideText` is true, the button renders only an icon (no startIcon prop).\n  // When `hideText` is false, the icon goes into the `startIcon` slot and text goes as children.\n  // In both modes, a user-provided `startIcon` takes priority over the default icon.\n  //\n  // | hideText | startIcon    | Button startIcon prop | Button children |\n  // |----------|--------------|-----------------------|-----------------|\n  // | false    | undefined    | <ListOutlined>        | \"List\"          |\n  // | false    | <CustomIcon> | <CustomIcon>          | \"List\"          |\n  // | true     | undefined    | undefined             | <ListOutlined>  |\n  // | true     | <CustomIcon> | undefined             | <CustomIcon>    |\n  const buttonStartIcon = hideText\n    ? undefined\n    : startIcon ?? <ListOutlined {...svgIconProps} />;\n  const buttonChildren = hideText\n    ? startIcon ?? defaultIcon\n    : children ?? label;\n\n  return (\n    <Button\n      component={LinkComponent}\n      to={to}\n      replace={false}\n      disabled={isDisabled}\n      onClick={(e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n        if (isDisabled) {\n          e.preventDefault();\n          return;\n        }\n        if (onClick) {\n          e.preventDefault();\n          onClick(e);\n        }\n      }}\n      startIcon={buttonStartIcon}\n      title={title}\n      sx={{ minWidth: 0, textDecoration: \"none\", ...sx }}\n      data-testid={RefineButtonTestIds.ListButton}\n      className={RefineButtonClassNames.ListButton}\n      {...restProps}\n    >\n      {buttonChildren}\n    </Button>\n  );\n};\n","import React from \"react\";\nimport { useExportButton } from \"@refinedev/core\";\nimport {\n  RefineButtonClassNames,\n  RefineButtonTestIds,\n} from \"@refinedev/ui-types\";\n\nimport LoadingButton from \"@mui/lab/LoadingButton\";\nimport ImportExportOutlined from \"@mui/icons-material/ImportExportOutlined\";\n\nimport type { ExportButtonProps } from \"../types\";\n\n/**\n * `<ExportButton>` uses Material UI {@link https://mui.com/material-ui/react-button `<Button>`} with a default export icon and a default text with \"Export\".\n * It only has presentational value.\n *\n * @see {@link https://refine.dev/docs/api-reference/mui/components/buttons/export-button} for more details.\n */\nexport const ExportButton: React.FC<ExportButtonProps> = ({\n  hideText = false,\n  children,\n  loading = false,\n  svgIconProps,\n  ...rest\n}) => {\n  const { label } = useExportButton();\n\n  // `startIcon` is extracted from rest props so it doesn't get passed to the\n  // underlying MUI Button via `{...restProps}` (which would cause a double icon).\n  const { sx, startIcon, ...restProps } = rest;\n\n  const defaultIcon = (\n    <ImportExportOutlined fontSize=\"small\" {...svgIconProps} />\n  );\n\n  // When `hideText` is true, the button renders only an icon (no startIcon prop).\n  // When `hideText` is false, the icon goes into the `startIcon` slot and text goes as children.\n  // In both modes, a user-provided `startIcon` takes priority over the default icon.\n  //\n  // | hideText | startIcon    | Button startIcon prop      | Button children            |\n  // |----------|--------------|----------------------------|----------------------------|\n  // | false    | undefined    | <ImportExportOutlined>     | \"Export\"                   |\n  // | false    | <CustomIcon> | <CustomIcon>               | \"Export\"                   |\n  // | true     | undefined    | undefined                  | <ImportExportOutlined>     |\n  // | true     | <CustomIcon> | undefined                  | <CustomIcon>               |\n  const buttonStartIcon = hideText\n    ? undefined\n    : startIcon ?? <ImportExportOutlined {...svgIconProps} />;\n  const buttonChildren = hideText\n    ? startIcon ?? defaultIcon\n    : children ?? label;\n\n  return (\n    <LoadingButton\n      loading={loading}\n      startIcon={buttonStartIcon}\n      loadingPosition={hideText ? \"center\" : \"start\"}\n      sx={{ minWidth: 0, ...sx }}\n      data-testid={RefineButtonTestIds.ExportButton}\n      className={RefineButtonClassNames.ExportButton}\n      {...restProps}\n    >\n      {buttonChildren}\n    </LoadingButton>\n  );\n};\n","import React from \"react\";\nimport { useSaveButton } from \"@refinedev/core\";\nimport {\n  RefineButtonClassNames,\n  RefineButtonTestIds,\n} from \"@refinedev/ui-types\";\n\nimport LoadingButton from \"@mui/lab/LoadingButton\";\nimport SaveOutlined from \"@mui/icons-material/SaveOutlined\";\n\nimport type { SaveButtonProps } from \"../types\";\n\n/**\n * `<SaveButton>` uses Material UI {@link https://mui.com/material-ui/react-button `<Button>`} component.\n * It uses it for presantation purposes only. Some of the hooks that refine has adds features to this button.\n *\n * @see {@link https://refine.dev/docs/api-reference/mui/components/buttons/save-button} for more details.\n */\nexport const SaveButton: React.FC<SaveButtonProps> = ({\n  hideText = false,\n  svgIconProps,\n  children,\n  ...rest\n}) => {\n  const { label } = useSaveButton();\n\n  // `startIcon` is extracted from rest props so it doesn't get passed to the\n  // underlying MUI Button via `{...restProps}` (which would cause a double icon).\n  const { sx, startIcon, ...restProps } = rest;\n\n  const defaultIcon = <SaveOutlined fontSize=\"small\" {...svgIconProps} />;\n\n  // When `hideText` is true, the button renders only an icon (no startIcon prop).\n  // When `hideText` is false, the icon goes into the `startIcon` slot and text goes as children.\n  // In both modes, a user-provided `startIcon` takes priority over the default icon.\n  //\n  // | hideText | startIcon    | Button startIcon prop | Button children |\n  // |----------|--------------|-----------------------|-----------------|\n  // | false    | undefined    | <SaveOutlined>        | \"Save\"          |\n  // | false    | <CustomIcon> | <CustomIcon>          | \"Save\"          |\n  // | true     | undefined    | undefined             | <SaveOutlined>  |\n  // | true     | <CustomIcon> | undefined             | <CustomIcon>    |\n  const buttonStartIcon = hideText\n    ? undefined\n    : startIcon ?? <SaveOutlined {...svgIconProps} />;\n  const buttonChildren = hideText\n    ? startIcon ?? defaultIcon\n    : children ?? label;\n\n  return (\n    <LoadingButton\n      startIcon={buttonStartIcon}\n      sx={{ minWidth: 0, ...sx }}\n      variant=\"contained\"\n      data-testid={RefineButtonTestIds.SaveButton}\n      className={RefineButtonClassNames.SaveButton}\n      {...restProps}\n    >\n      {buttonChildren}\n    </LoadingButton>\n  );\n};\n","import React from \"react\";\nimport { useCloneButton } from \"@refinedev/core\";\nimport {\n  RefineButtonClassNames,\n  RefineButtonTestIds,\n} from \"@refinedev/ui-types\";\n\nimport Button from \"@mui/material/Button\";\nimport AddBoxOutlined from \"@mui/icons-material/AddBoxOutlined\";\n\nimport type { CloneButtonProps } from \"../types\";\n\n/**\n * `<CloneButton>` uses Material UI {@link https://mui.com/material-ui/react-button/ `<Button> component`}.\n * It uses the {@link https://refine.dev/docs/api-reference/core/hooks/navigation/useNavigation#clone `clone`} method from {@link https://refine.dev/docs/api-reference/core/hooks/navigation/useNavigation useNavigation} under the hood.\n * It can be useful when redirecting the app to the create page with the record id route of resource.\n *\n * @see {@link https://refine.dev/docs/api-reference/mui/components/buttons/clone-button} for more details.\n *\n */\nexport const CloneButton: React.FC<CloneButtonProps> = ({\n  resource: resourceNameFromProps,\n  recordItemId,\n  hideText = false,\n  accessControl,\n  svgIconProps,\n  meta,\n  children,\n  onClick,\n  ...rest\n}) => {\n  const { to, label, title, hidden, disabled, LinkComponent } = useCloneButton({\n    resource: resourceNameFromProps,\n    id: recordItemId,\n    meta,\n    accessControl,\n  });\n\n  const isDisabled = disabled || rest.disabled;\n  const isHidden = hidden || rest.hidden;\n\n  if (isHidden) return null;\n\n  // `startIcon` is extracted from rest props so it doesn't get passed to the\n  // underlying MUI Button via `{...restProps}` (which would cause a double icon).\n  const { sx, startIcon, ...restProps } = rest;\n\n  const defaultIcon = <AddBoxOutlined fontSize=\"small\" {...svgIconProps} />;\n\n  // When `hideText` is true, the button renders only an icon (no startIcon prop).\n  // When `hideText` is false, the icon goes into the `startIcon` slot and text goes as children.\n  // In both modes, a user-provided `startIcon` takes priority over the default icon.\n  //\n  // | hideText | startIcon    | Button startIcon prop | Button children  |\n  // |----------|--------------|-----------------------|------------------|\n  // | false    | undefined    | <AddBoxOutlined>      | \"Clone\"          |\n  // | false    | <CustomIcon> | <CustomIcon>          | \"Clone\"          |\n  // | true     | undefined    | undefined             | <AddBoxOutlined> |\n  // | true     | <CustomIcon> | undefined             | <CustomIcon>     |\n  const buttonStartIcon = hideText\n    ? undefined\n    : startIcon ?? <AddBoxOutlined {...svgIconProps} />;\n  const buttonChildren = hideText\n    ? startIcon ?? defaultIcon\n    : children ?? label;\n\n  return (\n    <Button\n      disabled={isDisabled}\n      component={LinkComponent}\n      to={to}\n      replace={false}\n      onClick={(e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n        if (isDisabled) {\n          e.preventDefault();\n          return;\n        }\n        if (onClick) {\n          e.preventDefault();\n          onClick(e);\n        }\n      }}\n      startIcon={buttonStartIcon}\n      title={title}\n      sx={{ minWidth: 0, textDecoration: \"none\", ...sx }}\n      data-testid={RefineButtonTestIds.CloneButton}\n      className={RefineButtonClassNames.CloneButton}\n      {...restProps}\n    >\n      {buttonChildren}\n    </Button>\n  );\n};\n","import React from \"react\";\nimport { useImportButton } from \"@refinedev/core\";\nimport {\n  RefineButtonClassNames,\n  RefineButtonTestIds,\n} from \"@refinedev/ui-types\";\n\nimport LoadingButton from \"@mui/lab/LoadingButton\";\nimport ImportExportOutlined from \"@mui/icons-material/ImportExportOutlined\";\n\nimport type { ImportButtonProps } from \"../types\";\n\n/**\n * `<ImportButton>` is compatible with the {@link https://refine.dev/docs/api-reference/core/hooks/import-export/useImport/ `useImport`} core hook.\n * It uses Material UI {@link https://mui.com/material-ui/react-button  `<Button>`} and native html {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input  `<input>`} element.\n *\n * @see {@link https://refine.dev/docs/api-reference/mui/components/buttons/import-button} for more details.\n */\nexport const ImportButton: React.FC<ImportButtonProps> = ({\n  inputProps,\n  hideText = false,\n  loading = false,\n  svgIconProps,\n  children,\n  ...rest\n}) => {\n  const { label } = useImportButton();\n\n  // `startIcon` is extracted from rest props so it doesn't get passed to the\n  // underlying MUI Button via `{...restProps}` (which would cause a double icon).\n  const { sx, startIcon, ...restProps } = rest;\n\n  const defaultIcon = (\n    <ImportExportOutlined fontSize=\"small\" {...svgIconProps} />\n  );\n\n  // When `hideText` is true, the button renders only an icon (no startIcon prop).\n  // When `hideText` is false, the icon goes into the `startIcon` slot and text goes as children.\n  // In both modes, a user-provided `startIcon` takes priority over the default icon.\n  //\n  // | hideText | startIcon    | Button startIcon prop      | Button children            |\n  // |----------|--------------|----------------------------|----------------------------|\n  // | false    | undefined    | <ImportExportOutlined>     | \"Import\"                   |\n  // | false    | <CustomIcon> | <CustomIcon>               | \"Import\"                   |\n  // | true     | undefined    | undefined                  | <ImportExportOutlined>     |\n  // | true     | <CustomIcon> | undefined                  | <CustomIcon>               |\n  const buttonStartIcon = hideText\n    ? undefined\n    : startIcon ?? <ImportExportOutlined {...svgIconProps} />;\n  const buttonChildren = hideText\n    ? startIcon ?? defaultIcon\n    : children ?? label;\n\n  return (\n    <label htmlFor=\"contained-button-file\">\n      <input {...inputProps} id=\"contained-button-file\" multiple hidden />\n      <LoadingButton\n        component=\"span\"\n        startIcon={buttonStartIcon}\n        loadingPosition={hideText ? \"center\" : \"start\"}\n        loading={loading}\n        sx={{ minWidth: 0, ...sx }}\n        data-testid={RefineButtonTestIds.ImportButton}\n        className={RefineButtonClassNames.ImportButton}\n        {...restProps}\n      >\n        {buttonChildren}\n      </LoadingButton>\n    </label>\n  );\n};\n","import React, { useState, useEffect } from \"react\";\n\nimport Box from \"@mui/material/Box\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\nimport Typography from \"@mui/material/Typography\";\n\ntype CircularDeterminateProps = {\n  undoableTimeout: number;\n  message: string;\n};\n\nexport const CircularDeterminate: React.FC<CircularDeterminateProps> = ({\n  undoableTimeout,\n  message,\n}) => {\n  const [progress, setProgress] = useState(100);\n\n  const [timeCount, setTimeCount] = useState(undoableTimeout);\n\n  useEffect(() => {\n    const increaseProgress = 100 / undoableTimeout;\n    const timer = setInterval(() => {\n      setTimeCount((prevProgress) => prevProgress - 1);\n      setProgress((prevProgress) => prevProgress - increaseProgress);\n    }, 1000);\n\n    if (timeCount === 0) {\n      clearInterval(timer);\n    }\n\n    return () => {\n      clearInterval(timer);\n    };\n  }, [timeCount]);\n\n  return (\n    <>\n      <Box sx={{ position: \"relative\", display: \"inline-flex\" }}>\n        <CircularProgress\n          color=\"inherit\"\n          variant=\"determinate\"\n          value={progress}\n        />\n        <Box\n          sx={{\n            top: 0,\n            left: 0,\n            bottom: 0,\n            right: 0,\n            position: \"absolute\",\n            display: \"flex\",\n            alignItems: \"center\",\n            justifyContent: \"center\",\n          }}\n        >\n          <Typography component=\"div\">{timeCount}</Typography>\n        </Box>\n      </Box>\n      <Box\n        sx={{\n          marginLeft: \"10px\",\n          maxWidth: { xs: \"150px\", md: \"100%\" },\n        }}\n      >\n        <Typography variant=\"subtitle2\">{message}</Typography>\n      </Box>\n    </>\n  );\n};\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\n\nimport type { TextFieldProps } from \"../types\";\n\n/**\n * This field lets you show basic text. It uses Materail UI {@link https://mui.com/material-ui/react-typography/#main-content `<Typography>`} component.\n *\n * @see {@link https://refine.dev/docs/api-reference/mui/components/fields/text} for more details.\n */\nconst TextField: React.FC<TextFieldProps> = ({ value, ...rest }) => {\n  return (\n    <Typography variant=\"body2\" {...rest}>\n      {value}\n    </Typography>\n  );\n};\n\nexport { TextField as TextFieldComponent };\n","import React from \"react\";\nimport Chip from \"@mui/material/Chip\";\n\nimport type { TagFieldProps } from \"../types\";\n\n/**\n * This field lets you display a value in a tag. It uses Material UI {@link https://mui.com/material-ui/react-chip/#main-content `<Chip>`} component.\n *\n * @see {@link https://refine.dev/docs/api-reference/mui/components/fields/tag} for more details.\n */\nexport const TagField: React.FC<TagFieldProps> = ({ value, ...rest }) => {\n  return <Chip label={value?.toString()} {...rest} />;\n};\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport Link from \"@mui/material/Link\";\n\nimport type { EmailFieldProps } from \"../types\";\n\n/**\n * This field is used to display email values. It uses the {@link https://mui.com/material-ui/react-typography/#main-content `<Typography>` }\n * and {@link https://mui.com/material-ui/react-link/#main-content `<Link>`} components from Material UI.\n *\n * @see {@link https://refine.dev/docs/api-reference/mui/components/fields/email} for more details.\n */\nexport const EmailField: React.FC<EmailFieldProps> = ({ value, ...rest }) => {\n  return (\n    <Typography variant=\"body2\">\n      <Link href={`mailto:${value}`} {...rest}>\n        {value}\n      </Link>\n    </Typography>\n  );\n};\n","import React from \"react\";\n\nimport Tooltip from \"@mui/material/Tooltip\";\nimport CheckOutlined from \"@mui/icons-material/CheckOutlined\";\nimport CloseOutlined from \"@mui/icons-material/CloseOutlined\";\n\nimport type { BooleanFieldProps } from \"../types\";\n\n/**\n * This field is used to display boolean values. It uses the {@link https://mui.com/material-ui/react-tooltip/#main-content `<Tooltip>`} values from Materila UI.\n *\n * @see {@link https://refine.dev/docs/api-reference/mui/components/fields/boolean} for more details.\n */\nexport const BooleanField: React.FC<BooleanFieldProps> = ({\n  value,\n  valueLabelTrue = \"true\",\n  valueLabelFalse = \"false\",\n  trueIcon,\n  falseIcon,\n  svgIconProps,\n  ...rest\n}) => {\n  return (\n    <Tooltip title={value ? valueLabelTrue : valueLabelFalse} {...rest}>\n      {value ? (\n        <span>{trueIcon ?? <CheckOutlined {...svgIconProps} />}</span>\n      ) : (\n        <span>{falseIcon ?? <CloseOutlined {...svgIconProps} />}</span>\n      )}\n    </Tooltip>\n  );\n};\n","import React from \"react\";\n\nimport dayjs from \"dayjs\";\n\nimport LocalizedFormat from \"dayjs/plugin/localizedFormat\";\n\nimport Typography from \"@mui/material/Typography\";\n\nimport type { DateFieldProps } from \"../types\";\n\ndayjs.extend(LocalizedFormat);\n\nconst defaultLocale = dayjs.locale();\n\n/**\n * This field is used to display dates. It uses {@link https://day.js.org/docs/en/display/format `Day.js`} to display date format and\n * Material UI {@link https://mui.com/material-ui/react-typography/#main-content `<Typography>`} component\n *\n * @see {@link https://refine.dev/docs/api-reference/mui/components/fields/date} for more details.\n */\nexport const DateField: React.FC<DateFieldProps> = ({\n  value,\n  locales,\n  format: dateFormat = \"L\",\n  ...rest\n}) => {\n  return (\n    <Typography variant=\"body2\" {...rest}>\n      {value\n        ? dayjs(value)\n            .locale(locales || defaultLocale)\n            .format(dateFormat)\n        : \"\"}\n    </Typography>\n  );\n};\n","import React from \"react\";\n\nimport { UrlField } from \"@components\";\n\nimport type { FileFieldProps } from \"../types\";\n\n/**\n * This field is used to display files and  uses Material UI {@link https://mui.com/material-ui/react-typography/#main-content `<Typography>`}  and {@link https://mui.com/material-ui/react-link/#main-content `<Link>`} components.\n *\n * @see {@link https://refine.dev/docs/api-reference/mui/components/fields/file} for more details.\n */\nexport const FileField: React.FC<FileFieldProps> = ({\n  title,\n  src,\n  ...rest\n}) => {\n  return (\n    <UrlField value={src} title={title} {...rest}>\n      {title ?? src}\n    </UrlField>\n  );\n};\n","import React from \"react\";\nimport Link from \"@mui/material/Link\";\nimport Typography from \"@mui/material/Typography\";\n\nimport type { UrlFieldProps } from \"../types\";\n\n/**\n * This field lets you embed a link.It uses the {@link https://mui.com/material-ui/react-typography/#main-content `<Typography>` }\n * and {@link https://mui.com/material-ui/react-link/#main-content `<Link>`} components from Material UI.\n * You can pass a URL in its `value` property and you can show a text in its place by passing any `children`.\n *\n * @see {@link https://refine.dev/docs/api-reference/mui/components/fields/url} for more details.\n */\nexport const UrlField: React.FC<UrlFieldProps> = ({\n  children,\n  value,\n  ...rest\n}) => {\n  return (\n    <Typography variant=\"body2\">\n      <Link href={value} {...rest}>\n        {children ?? value}\n      </Link>\n    </Typography>\n  );\n};\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\n\nimport type { NumberFieldProps } from \"../types\";\n\nfunction toLocaleStringSupportsOptions() {\n  return !!(\n    typeof Intl === \"object\" &&\n    Intl &&\n    typeof Intl.NumberFormat === \"function\"\n  );\n}\n\n/**\n * This field is used to display a number formatted according to the browser locale, right aligned. and uses {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl `Intl`} to display date format\n * and Material UI {@link https://mui.com/material-ui/react-typography/#main-content `<Typography>`} component.\n * @see {@link https://refine.dev/docs/api-reference/mui/components/fields/number} for more details.\n */\nexport const NumberField: React.FC<NumberFieldProps> = ({\n  value,\n  locale,\n  options,\n  ...rest\n}) => {\n  const number = Number(value);\n\n  return (\n    <Typography variant=\"body2\" {...rest}>\n      {toLocaleStringSupportsOptions()\n        ? number.toLocaleString(locale, options)\n        : number}\n    </Typography>\n  );\n};\n","import React from \"react\";\nimport ReactMarkdown from \"react-markdown\";\nimport gfm from \"remark-gfm\";\n\nimport type { MarkdownFieldProps } from \"../types\";\n\n/**\n * This field lets you display markdown content. It supports {@link https://github.github.com/gfm/ GitHub Flavored Markdown}.\n *\n * @see {@link https://refine.dev/docs/api-reference/mui/components/fields/markdown} for more details.\n */\nexport const MarkdownField: React.FC<MarkdownFieldProps> = ({ value = \"\" }) => {\n  // There's an issue related with the type inconsistency of the `remark-gfm` and `remark-rehype` packages, we need to cast the `gfm` as any. (https://github.com/orgs/rehypejs/discussions/63)\n  return (\n    <ReactMarkdown\n      remarkPlugins={[gfm] as unknown as ReactMarkdown.PluggableList}\n    >\n      {value}\n    </ReactMarkdown>\n  );\n};\n","import React from \"react\";\nimport {\n  matchResourceFromRoute,\n  useBreadcrumb,\n  useLink,\n  useResourceParams,\n} from \"@refinedev/core\";\nimport type { RefineBreadcrumbProps } from \"@refinedev/ui-types\";\n\nimport Breadcrumbs from \"@mui/material/Breadcrumbs\";\nimport Typography from \"@mui/material/Typography\";\nimport { Link as MuiLink } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid2\";\n\nimport type { BreadcrumbsProps as MuiBreadcrumbProps } from \"@mui/material/Breadcrumbs\";\nimport type { LinkProps } from \"@mui/material/Link\";\n\nimport HomeOutlined from \"@mui/icons-material/HomeOutlined\";\n\nexport type BreadcrumbProps = RefineBreadcrumbProps<MuiBreadcrumbProps>;\n\nexport const Breadcrumb: React.FC<BreadcrumbProps> = ({\n  breadcrumbProps,\n  showHome = true,\n  hideIcons = false,\n  meta,\n  minItems = 2,\n}) => {\n  const { breadcrumbs } = useBreadcrumb({ meta });\n  const Link = useLink();\n\n  const { resources } = useResourceParams();\n\n  const rootRouteResource = matchResourceFromRoute(\"/\", resources);\n\n  if (breadcrumbs.length < minItems) return null;\n\n  const LinkRouter = (props: LinkProps & { to?: string }) => {\n    const { to, children, ...restProps } = props;\n    return (\n      <Link to={to || \"\"}>\n        <span {...restProps}>{children}</span>\n      </Link>\n    );\n  };\n\n  return (\n    <Breadcrumbs\n      aria-label=\"breadcrumb\"\n      sx={{\n        padding: 2,\n        ...(breadcrumbProps?.sx ?? {}),\n      }}\n      {...breadcrumbProps}\n    >\n      {showHome && rootRouteResource.found && (\n        <LinkRouter\n          underline=\"hover\"\n          sx={{\n            display: \"flex\",\n            alignItems: \"center\",\n          }}\n          color=\"inherit\"\n          to=\"/\"\n        >\n          {rootRouteResource?.resource?.meta?.icon ?? (\n            <HomeOutlined\n              sx={{\n                fontSize: \"18px\",\n              }}\n            />\n          )}\n        </LinkRouter>\n      )}\n      {breadcrumbs.map(({ label, icon, href }) => {\n        return (\n          <Grid\n            key={label}\n            sx={{\n              display: \"flex\",\n              alignItems: \"center\",\n              \"& .MuiSvgIcon-root\": {\n                fontSize: \"16px\",\n              },\n            }}\n          >\n            {!hideIcons && icon}\n            {href ? (\n              <LinkRouter\n                underline=\"hover\"\n                sx={{\n                  display: \"flex\",\n                  alignItems: \"center\",\n                  fontSize: \"14px\",\n                  marginLeft: 0.5,\n                }}\n                color=\"inherit\"\n                to={href}\n                variant=\"subtitle1\"\n              >\n                {label}\n              </LinkRouter>\n            ) : (\n              <Typography fontSize=\"14px\">{label}</Typography>\n            )}\n          </Grid>\n        );\n      })}\n    </Breadcrumbs>\n  );\n};\n","import React from \"react\";\nimport {\n  type AutoSaveIndicatorProps,\n  useTranslate,\n  AutoSaveIndicator as AutoSaveIndicatorCore,\n} from \"@refinedev/core\";\nimport Typography from \"@mui/material/Typography\";\nimport MoreHorizOutlinedIcon from \"@mui/icons-material/MoreHorizOutlined\";\nimport SyncOutlinedIcon from \"@mui/icons-material/SyncOutlined\";\nimport TaskAltOutlinedIcon from \"@mui/icons-material/TaskAltOutlined\";\nimport ErrorOutlineOutlinedIcon from \"@mui/icons-material/ErrorOutlineOutlined\";\n\nexport const AutoSaveIndicator: React.FC<AutoSaveIndicatorProps> = ({\n  status,\n  elements: {\n    success = (\n      <Message\n        translationKey=\"autoSave.success\"\n        defaultMessage=\"saved\"\n        icon={<TaskAltOutlinedIcon fontSize=\"small\" />}\n      />\n    ),\n    error = (\n      <Message\n        translationKey=\"autoSave.error\"\n        defaultMessage=\"auto save failure\"\n        icon={<ErrorOutlineOutlinedIcon fontSize=\"small\" />}\n      />\n    ),\n    loading = (\n      <Message\n        translationKey=\"autoSave.loading\"\n        defaultMessage=\"saving...\"\n        icon={<SyncOutlinedIcon fontSize=\"small\" />}\n      />\n    ),\n    idle = (\n      <Message\n        translationKey=\"autoSave.idle\"\n        defaultMessage=\"waiting for changes\"\n        icon={<MoreHorizOutlinedIcon fontSize=\"small\" />}\n      />\n    ),\n  } = {},\n}) => {\n  return (\n    <AutoSaveIndicatorCore\n      status={status}\n      elements={{\n        success,\n        error,\n        loading,\n        idle,\n      }}\n    />\n  );\n};\n\nconst Message = ({\n  translationKey,\n  defaultMessage,\n  icon,\n}: {\n  translationKey: string;\n  defaultMessage: string;\n  icon: React.ReactNode;\n}) => {\n  const translate = useTranslate();\n\n  return (\n    <Typography\n      color=\"gray\"\n      fontSize=\"0.8rem\"\n      position=\"relative\"\n      display=\"flex\"\n      alignItems=\"center\"\n      flexWrap=\"wrap\"\n      marginRight=\".3rem\"\n    >\n      {translate(translationKey, defaultMessage)}\n      <span style={{ position: \"relative\", top: \"3px\", marginLeft: \"3px\" }}>\n        {icon}\n      </span>\n    </Typography>\n  );\n};\n","import type { Theme, ThemeOptions } from \"@mui/material/styles\";\nimport { createTheme } from \"@mui/material/styles\";\n\nimport { lightPalette } from \"./palette/lightPalette\";\nimport { darkPalette } from \"./palette/darkPalette\";\nimport { typography } from \"./typography\";\nimport { RefinePalettes } from \"./palette\";\n\nconst commonThemeProperties: ThemeOptions = {\n  shape: {\n    borderRadius: 6,\n  },\n  typography: {\n    ...typography,\n  },\n};\n\nconst LightTheme = createTheme({\n  ...commonThemeProperties,\n  palette: lightPalette,\n  components: {\n    MuiAppBar: {\n      styleOverrides: {\n        colorDefault: {\n          backgroundColor: \"#fff\",\n        },\n      },\n    },\n    MuiPaper: {\n      styleOverrides: {\n        root: {\n          backgroundImage:\n            \"linear-gradient(rgba(255, 255, 255, 0.01), rgba(255, 255, 255, 0.01))\",\n        },\n      },\n    },\n    MuiTypography: {\n      styleOverrides: {\n        h5: {\n          fontWeight: 800,\n          lineHeight: \"2rem\",\n        },\n      },\n    },\n  },\n});\n\nconst DarkTheme = createTheme({\n  ...commonThemeProperties,\n  palette: darkPalette,\n  components: {\n    MuiPaper: {\n      styleOverrides: {\n        root: {\n          backgroundImage:\n            \"linear-gradient(rgba(255, 255, 255, 0.025), rgba(255, 255, 255, 0.025))\",\n        },\n      },\n    },\n    MuiAppBar: {\n      defaultProps: {\n        color: \"transparent\",\n      },\n    },\n    MuiTypography: {\n      styleOverrides: {\n        h5: {\n          fontWeight: 800,\n          lineHeight: \"2rem\",\n        },\n      },\n    },\n  },\n});\n\nconst RefineThemes = Object.keys(RefinePalettes).reduce((acc, key) => {\n  const paletteName = key as keyof typeof RefinePalettes;\n\n  return {\n    ...acc,\n    [key]: createTheme({\n      palette: {\n        ...RefinePalettes[paletteName],\n      },\n      components: {\n        MuiButton: {\n          styleOverrides: {\n            root: ({ ownerState }) => ({\n              ...(ownerState.variant === \"contained\" &&\n                ownerState.color === \"primary\" && {\n                  color: \"#fff\",\n                }),\n            }),\n          },\n        },\n      },\n    }),\n  };\n}, {}) as Record<keyof typeof RefinePalettes, Theme>;\n\nexport { LightTheme, DarkTheme, RefineThemes };\n","import type { PaletteOptions } from \"@mui/material/styles\";\n\nexport const lightPalette: PaletteOptions = {\n  mode: \"light\",\n  primary: {\n    main: \"#67be23\",\n    contrastText: \"#fff\",\n  },\n  secondary: {\n    main: \"#2A132E\",\n    contrastText: \"#fff\",\n  },\n  background: {\n    default: \"#f0f0f0\",\n    paper: \"#ffffff\",\n  },\n  success: {\n    main: \"#67be23\",\n    contrastText: \"#fff\",\n  },\n  error: {\n    main: \"#fa541c\",\n    contrastText: \"#fff\",\n  },\n  warning: {\n    main: \"#fa8c16\",\n    contrastText: \"#fff\",\n  },\n  info: {\n    main: \"#0b82f0\",\n    contrastText: \"#fff\",\n  },\n  divider: \"rgba(0,0,0,0)\",\n  text: {\n    primary: \"#626262\",\n    secondary: \"#9f9f9f\",\n    disabled: \"#c1c1c1\",\n  },\n};\n","import type { PaletteOptions } from \"@mui/material/styles\";\n\nexport const darkPalette: PaletteOptions = {\n  mode: \"dark\",\n  primary: {\n    main: \"#67be23\",\n    contrastText: \"#fff\",\n  },\n  secondary: {\n    main: \"#2A132E\",\n    contrastText: \"#fff\",\n  },\n  background: {\n    default: \"#212121\",\n    paper: \"#242424\",\n  },\n  success: {\n    main: \"#67be23\",\n    contrastText: \"#fff\",\n  },\n  error: {\n    main: \"#ee2a1e\",\n    contrastText: \"#fff\",\n  },\n  warning: {\n    main: \"#fa8c16\",\n    contrastText: \"#fff\",\n  },\n  info: {\n    main: \"#1890ff\",\n    contrastText: \"#fff\",\n  },\n  divider: \"rgba(0,0,0,0)\",\n  text: {\n    primary: \"#fff\",\n    secondary: \"rgba(255,255,255,0.7)\",\n    disabled: \"#d1d1d1\",\n  },\n};\n","import type { TypographyVariantsOptions } from \"@mui/material/styles\";\n\nexport const typography: TypographyVariantsOptions = {\n  fontFamily: [\n    \"Montserrat\",\n    \"-apple-system\",\n    \"BlinkMacSystemFont\",\n    '\"Segoe UI\"',\n    \"Roboto\",\n    '\"Helvetica Neue\"',\n    \"Arial\",\n    \"sans-serif\",\n    '\"Apple Color Emoji\"',\n    '\"Segoe UI Emoji\"',\n    '\"Segoe UI Symbol\"',\n  ].join(\",\"),\n};\n","export const RefinePalettes = {\n  Blue: {\n    mode: \"light\",\n    primary: {\n      main: \"#1976D2\",\n      light: \"#4791db\",\n      dark: \"#115293\",\n    },\n  },\n  BlueDark: {\n    mode: \"dark\",\n    primary: {\n      main: \"#67b7f7\",\n      light: \"#85c5f8\",\n      dark: \"#4880ac\",\n    },\n  },\n  Purple: {\n    mode: \"light\",\n    primary: {\n      main: \"#7B1FA2\",\n      light: \"#954bb4\",\n      dark: \"#561571\",\n    },\n  },\n  PurpleDark: {\n    mode: \"dark\",\n    primary: {\n      main: \"#AB47BC\",\n      light: \"#bb6bc9\",\n      dark: \"#773183\",\n    },\n  },\n  Magenta: {\n    mode: \"light\",\n    primary: {\n      main: \"#C2185B\",\n      light: \"#ce467b\",\n      dark: \"#87103f\",\n    },\n  },\n  MagentaDark: {\n    mode: \"dark\",\n    primary: {\n      main: \"#EC407A\",\n      light: \"#ef6694\",\n      dark: \"#a52c55\",\n    },\n  },\n  Red: {\n    mode: \"light\",\n    primary: {\n      main: \"#D32F2F\",\n      light: \"#db5858\",\n      dark: \"#932020\",\n    },\n  },\n  RedDark: {\n    mode: \"dark\",\n    primary: {\n      main: \"#EF5350\",\n      light: \"#f27573\",\n      dark: \"#a73a38\",\n    },\n  },\n  Orange: {\n    mode: \"light\",\n    primary: {\n      main: \"#F57C00\",\n      light: \"#f79633\",\n      dark: \"#ab5600\",\n    },\n  },\n  OrangeDark: {\n    mode: \"dark\",\n    primary: {\n      main: \"#FFA726\",\n      light: \"#ffb851\",\n      dark: \"#b2741a\",\n    },\n  },\n  Yellow: {\n    mode: \"light\",\n    primary: {\n      main: \"#FFA000\",\n      light: \"#ffb333\",\n      dark: \"#b27000\",\n    },\n  },\n  YellowDark: {\n    mode: \"dark\",\n    primary: {\n      main: \"#FFCA28\",\n      light: \"#ffd453\",\n      dark: \"#E87040\",\n    },\n  },\n  Green: {\n    mode: \"light\",\n    primary: {\n      main: \"#689F38\",\n      light: \"#86b25f\",\n      dark: \"#486f27\",\n    },\n  },\n  GreenDark: {\n    mode: \"dark\",\n    primary: {\n      main: \"#9CCC65\",\n      light: \"#afd683\",\n      dark: \"#6d8e46\",\n    },\n  },\n} as const;\n","import React from \"react\";\nimport type { NotificationProvider } from \"@refinedev/core\";\n\nimport { useSnackbar } from \"notistack\";\n\nimport { CircularDeterminate } from \"@components\";\n\nimport Box from \"@mui/material/Box\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Typography from \"@mui/material/Typography\";\nimport UndoOutlined from \"@mui/icons-material/UndoOutlined\";\n\nexport const useNotificationProvider = (): NotificationProvider => {\n  const { closeSnackbar, enqueueSnackbar } = useSnackbar();\n\n  const notificationProvider: NotificationProvider = {\n    open: ({\n      message,\n      type,\n      undoableTimeout,\n      key,\n      cancelMutation,\n      description,\n    }) => {\n      if (type === \"progress\") {\n        const action = (key: any) => (\n          <IconButton\n            onClick={() => {\n              cancelMutation?.();\n              closeSnackbar(key);\n            }}\n            color=\"inherit\"\n          >\n            <UndoOutlined />\n          </IconButton>\n        );\n        enqueueSnackbar(\n          <>\n            <CircularDeterminate\n              undoableTimeout={undoableTimeout ?? 0}\n              message={message}\n            />\n          </>,\n          {\n            action,\n            preventDuplicate: true,\n            key,\n            autoHideDuration: (undoableTimeout ?? 0) * 1000,\n          },\n        );\n      } else {\n        enqueueSnackbar(\n          <Box>\n            <Typography variant=\"subtitle2\" component=\"h6\">\n              {description}\n            </Typography>\n            <Typography variant=\"caption\" component=\"p\">\n              {message}\n            </Typography>\n          </Box>,\n          {\n            key,\n            variant: type,\n          },\n        );\n      }\n    },\n    close: (key) => {\n      closeSnackbar(key);\n    },\n  };\n\n  return notificationProvider;\n};\n","import React from \"react\";\nimport { styled } from \"@mui/material/styles\";\n\nimport type EmotionStyled from \"@emotion/styled\";\nimport type { styled as MuiSystemStyled } from \"@mui/system\";\n\nimport { SnackbarProvider } from \"notistack\";\n\nconst SnackbarProviderWithDefaultValues = ({\n  anchorOrigin = {\n    vertical: \"top\",\n    horizontal: \"right\",\n  },\n  disableWindowBlurListener = true,\n  ...rest\n}: React.ComponentProps<typeof SnackbarProvider>) => {\n  return (\n    <SnackbarProvider\n      anchorOrigin={anchorOrigin}\n      disableWindowBlurListener={disableWindowBlurListener}\n      {...rest}\n    />\n  );\n};\n\nexport const RefineSnackbarProvider = styled(SnackbarProviderWithDefaultValues)`\n&.SnackbarItem-contentRoot {\n    background-color: ${(props) => props.theme.palette.background.default};\n    color: ${(props) => props.theme.palette.primary.main};\n}\n&.SnackbarItem-variantSuccess {\n    background-color: ${(props) => props.theme.palette.success.main};\n    color: ${(props) => props.theme.palette.success.contrastText};\n}\n&.SnackbarItem-variantError {\n    background-color: ${(props) => props.theme.palette.error.main};\n    color: ${(props) => props.theme.palette.error.contrastText};\n}\n&.SnackbarItem-variantInfo {\n    background-color: ${(props) => props.theme.palette.info.main};\n    color: ${(props) => props.theme.palette.info.contrastText};\n}\n&.SnackbarItem-variantWarning {\n    background-color: ${(props) => props.theme.palette.warning.main};\n    color: ${(props) => props.theme.palette.warning.contrastText};\n}\n`;\n"],"mappings":"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","names":["SnackbarProvider","useSnackbar","React","Box","React","useState","useState","isEqual","useState","pageSize","isEqual","Link","defaultOpenKeys","useState","React","selectedKey","meta","React","React","IconButton","React","IconButton","React","React","Box","React","useLink","Typography","Link","useLink","React","Typography","React","useEffect","useState","useResourceParams","useTranslate","Stack","Tooltip","Typography","useState","useResourceParams","useTranslate","useEffect","React","Typography","Stack","Tooltip","React","React","Button","Box","Typography","MuiLink","Stack","useTranslate","useLink","useTranslate","Link","useLink","Stack","Button","Typography","Box","MuiLink","React","useForm","Button","TextField","Box","Typography","Container","Card","CardContent","Divider","Stack","MuiLink","useTranslate","useLink","useForm","useTranslate","Link","useLink","Stack","Button","Divider","Card","CardContent","Typography","Box","TextField","MuiLink","Container","Button","TextField","Box","Typography","Container","Card","CardContent","MuiLink","useForm","React","useLink","useTranslate","useForm","useTranslate","Link","useLink","Card","CardContent","Typography","Box","TextField","MuiLink","Button","Container","React","useForm","Button","TextField","Box","Typography","Container","Card","CardContent","useTranslate","useForm","useTranslate","Card","CardContent","Typography","Box","TextField","Button","Container","React","React","useTranslate","useResourceParams","Card","CardContent","IconButton","Typography","Box","useTranslate","useResourceParams","React","Card","Box","Typography","IconButton","CardContent","React","useTranslate","useUserFriendlyName","useResourceParams","useBack","useGo","Card","CardHeader","IconButton","CardContent","CardActions","Typography","Box","CircularProgress","alpha","ArrowBackIcon","RefinePageHeaderClassNames","useTranslate","useBack","useGo","useUserFriendlyName","useResourceParams","React","Box","Card","alpha","CircularProgress","CardHeader","Typography","RefinePageHeaderClassNames","IconButton","ArrowBackIcon","CardContent","CardActions","React","useTranslate","useUserFriendlyName","useResourceParams","Card","CardHeader","CardContent","Typography","Box","RefinePageHeaderClassNames","List","useTranslate","useUserFriendlyName","useResourceParams","React","Card","CardHeader","Typography","RefinePageHeaderClassNames","Box","CardContent","React","useTranslate","useUserFriendlyName","useBack","useGo","useResourceParams","useToPath","Card","CardActions","CardContent","CardHeader","IconButton","Box","Typography","CircularProgress","alpha","ArrowBackIcon","RefinePageHeaderClassNames","useTranslate","useBack","useGo","useUserFriendlyName","useResourceParams","useToPath","React","Card","Box","alpha","CircularProgress","CardHeader","Typography","RefinePageHeaderClassNames","IconButton","ArrowBackIcon","CardContent","CardActions","React","Button","React","Button","React","RefineButtonClassNames","RefineButtonTestIds","Button","React","Button","RefineButtonTestIds","RefineButtonClassNames","React","RefineButtonClassNames","RefineButtonTestIds","Button","React","RefineButtonTestIds","RefineButtonClassNames","Button","React","RefineButtonClassNames","RefineButtonTestIds","LoadingButton","React","LoadingButton","RefineButtonTestIds","RefineButtonClassNames","React","RefineButtonClassNames","RefineButtonTestIds","Button","React","Button","RefineButtonTestIds","RefineButtonClassNames","React","RefineButtonClassNames","RefineButtonTestIds","Button","ListOutlined","React","ListOutlined","Button","RefineButtonTestIds","RefineButtonClassNames","React","RefineButtonClassNames","RefineButtonTestIds","LoadingButton","React","LoadingButton","RefineButtonTestIds","RefineButtonClassNames","React","RefineButtonClassNames","RefineButtonTestIds","LoadingButton","React","LoadingButton","RefineButtonTestIds","RefineButtonClassNames","React","RefineButtonClassNames","RefineButtonTestIds","Button","AddBoxOutlined","React","AddBoxOutlined","Button","RefineButtonTestIds","RefineButtonClassNames","React","RefineButtonClassNames","RefineButtonTestIds","LoadingButton","ImportExportOutlined","React","ImportExportOutlined","LoadingButton","RefineButtonTestIds","RefineButtonClassNames","React","useState","useEffect","Box","CircularProgress","Typography","useState","useEffect","React","Box","CircularProgress","Typography","React","Typography","TextField","React","Typography","React","React","React","Typography","React","Typography","React","Tooltip","React","Tooltip","React","Typography","React","Typography","React","React","React","Link","Typography","React","Typography","Link","React","Typography","React","Typography","React","React","React","useLink","useResourceParams","Typography","Grid","Link","useLink","useResourceParams","React","Grid","Typography","React","useTranslate","Typography","React","useTranslate","Typography","React","Box","IconButton","Typography","key","React","IconButton","Box","Typography","React","React"]}