Manav Rathi hai 1 ano
pai
achega
2cd1dfd720
Modificáronse 100 ficheiros con 184 adicións e 204 borrados
  1. 1 1
      web/apps/accounts/src/pages/_app.tsx
  2. 2 8
      web/apps/accounts/src/pages/passkeys/index.tsx
  3. 3 3
      web/apps/auth/src/pages/_app.tsx
  4. 0 3
      web/apps/auth/tsconfig.json
  5. 2 2
      web/apps/photos/src/components/AuthenticateUserModal.tsx
  6. 1 1
      web/apps/photos/src/components/CaptionedText.tsx
  7. 1 1
      web/apps/photos/src/components/CheckboxInput.tsx
  8. 1 1
      web/apps/photos/src/components/Collections/CollectionInfoWithOptions.tsx
  9. 1 1
      web/apps/photos/src/components/Collections/CollectionNamer.tsx
  10. 1 1
      web/apps/photos/src/components/Collections/CollectionOptions/AlbumCastDialog.tsx
  11. 2 1
      web/apps/photos/src/components/Collections/CollectionOptions/index.tsx
  12. 1 1
      web/apps/photos/src/components/Collections/CollectionShare/emailShare/AddParticipantForm.tsx
  13. 1 1
      web/apps/photos/src/components/Collections/CollectionShare/publicShare/manage/linkPassword/setPassword.tsx
  14. 1 1
      web/apps/photos/src/components/DeleteAccountModal.tsx
  15. 1 1
      web/apps/photos/src/components/DropdownInput.tsx
  16. 1 1
      web/apps/photos/src/components/EnteSpinner.tsx
  17. 2 2
      web/apps/photos/src/components/Menu/EnteMenuItem.tsx
  18. 1 1
      web/apps/photos/src/components/Notification.tsx
  19. 1 1
      web/apps/photos/src/components/PhotoViewer/FileInfo/FileNameEditDialog.tsx
  20. 2 2
      web/apps/photos/src/components/PhotoViewer/FileInfo/MapButton.tsx
  21. 1 1
      web/apps/photos/src/components/PhotoViewer/ImageEditorOverlay/ColoursMenu.tsx
  22. 2 10
      web/apps/photos/src/components/PhotoViewer/ImageEditorOverlay/index.tsx
  23. 1 1
      web/apps/photos/src/components/PhotoViewer/styledComponents/CircularProgressWithLabel.tsx
  24. 1 1
      web/apps/photos/src/components/Upload/UploadProgress/section.tsx
  25. 5 8
      web/apps/photos/src/components/pages/gallery/LinkButton.tsx
  26. 3 3
      web/apps/photos/src/pages/_app.tsx
  27. 1 1
      web/apps/photos/src/pages/gallery/index.tsx
  28. 6 1
      web/apps/photos/src/pages/index.tsx
  29. 1 1
      web/apps/photos/src/pages/shared-albums/index.tsx
  30. 1 1
      web/apps/photos/src/services/collectionService.ts
  31. 1 1
      web/apps/photos/src/services/download/index.ts
  32. 1 1
      web/apps/photos/src/services/export/index.ts
  33. 1 1
      web/apps/photos/src/services/export/migration.ts
  34. 1 1
      web/apps/photos/src/services/ffmpeg.ts
  35. 1 1
      web/apps/photos/src/services/upload/uploadManager.ts
  36. 2 2
      web/apps/photos/src/services/upload/uploadService.ts
  37. 1 1
      web/apps/photos/src/services/userService.ts
  38. 1 1
      web/apps/photos/src/types/gallery/index.ts
  39. 1 1
      web/apps/photos/src/utils/billing/index.ts
  40. 1 1
      web/apps/photos/src/utils/collection/index.ts
  41. 1 1
      web/apps/photos/src/utils/comlink/ComlinkSearchWorker.ts
  42. 1 1
      web/apps/photos/src/utils/file/index.ts
  43. 1 1
      web/apps/photos/src/utils/user/family.ts
  44. 1 1
      web/packages/accounts/api/srp.ts
  45. 3 3
      web/packages/accounts/api/user.ts
  46. 2 2
      web/packages/accounts/components/ChangeEmail.tsx
  47. 1 1
      web/packages/accounts/components/Login.tsx
  48. 2 2
      web/packages/accounts/components/SignUp.tsx
  49. 3 3
      web/packages/accounts/components/two-factor/InvalidInputMessage.tsx
  50. 1 1
      web/packages/accounts/components/two-factor/VerifyForm.tsx
  51. 1 1
      web/packages/accounts/components/two-factor/setup/ManualMode.tsx
  52. 1 1
      web/packages/accounts/components/two-factor/setup/QRMode.tsx
  53. 1 1
      web/packages/accounts/components/two-factor/setup/index.tsx
  54. 1 1
      web/packages/accounts/pages/change-email.tsx
  55. 18 21
      web/packages/accounts/pages/change-password.tsx
  56. 5 5
      web/packages/accounts/pages/credentials.tsx
  57. 2 2
      web/packages/accounts/pages/generate.tsx
  58. 1 1
      web/packages/accounts/pages/login.tsx
  59. 3 3
      web/packages/accounts/pages/recover.tsx
  60. 1 1
      web/packages/accounts/pages/signup.tsx
  61. 4 4
      web/packages/accounts/pages/two-factor/recover.tsx
  62. 3 3
      web/packages/accounts/pages/two-factor/setup.tsx
  63. 2 2
      web/packages/accounts/pages/two-factor/verify.tsx
  64. 8 9
      web/packages/accounts/pages/verify.tsx
  65. 2 2
      web/packages/accounts/services/srp.ts
  66. 1 1
      web/packages/accounts/types/srp.ts
  67. 1 1
      web/packages/accounts/types/user.ts
  68. 2 2
      web/packages/accounts/utils/srp.ts
  69. 1 1
      web/packages/shared/apps/types.ts
  70. 1 1
      web/packages/shared/components/CaptionedText.tsx
  71. 2 2
      web/packages/shared/components/CodeBlock/CopyButton.tsx
  72. 1 1
      web/packages/shared/components/CodeBlock/index.tsx
  73. 1 1
      web/packages/shared/components/DialogBox/TitleWithCloseButton.tsx
  74. 2 2
      web/packages/shared/components/DialogBoxV2/index.tsx
  75. 1 1
      web/packages/shared/components/DialogBoxV2/types.ts
  76. 2 2
      web/packages/shared/components/EnteButton.tsx
  77. 1 1
      web/packages/shared/components/EnteSpinner.tsx
  78. 3 3
      web/packages/shared/components/Form/FormPaper/Footer.tsx
  79. 3 3
      web/packages/shared/components/Form/FormPaper/Title.tsx
  80. 5 8
      web/packages/shared/components/LinkButton.tsx
  81. 1 1
      web/packages/shared/components/Menu/EnteMenuItem.tsx
  82. 1 1
      web/packages/shared/components/OverflowMenu/menu.tsx
  83. 1 1
      web/packages/shared/components/OverflowMenu/option.tsx
  84. 1 1
      web/packages/shared/components/RecoveryKey/index.tsx
  85. 1 1
      web/packages/shared/components/SingleInputForm.tsx
  86. 3 3
      web/packages/shared/components/SubmitButton.tsx
  87. 4 4
      web/packages/shared/components/VerifyMasterPasswordForm.tsx
  88. 1 1
      web/packages/shared/crypto/helpers.ts
  89. 1 1
      web/packages/shared/crypto/index.ts
  90. 1 1
      web/packages/shared/crypto/internal/crypto.worker.ts
  91. 2 2
      web/packages/shared/crypto/internal/libsodium.ts
  92. 2 1
      web/packages/shared/hooks/useLocalState.tsx
  93. 1 1
      web/packages/shared/network/HTTPService.ts
  94. 1 1
      web/packages/shared/themes/colors/dark.ts
  95. 1 1
      web/packages/shared/themes/colors/fixed.ts
  96. 1 1
      web/packages/shared/themes/colors/index.ts
  97. 1 1
      web/packages/shared/themes/colors/light.ts
  98. 3 3
      web/packages/shared/themes/components.ts
  99. 1 1
      web/packages/shared/themes/mui-theme.d.ts
  100. 1 1
      web/packages/shared/themes/palette/index.tsx

+ 1 - 1
web/apps/accounts/src/pages/_app.tsx

@@ -6,7 +6,7 @@ import { accountLogout } from "@ente/accounts/services/logout";
 import { APPS, APP_TITLES } from "@ente/shared/apps/constants";
 import { Overlay } from "@ente/shared/components/Container";
 import DialogBoxV2 from "@ente/shared/components/DialogBoxV2";
-import {
+import type {
     DialogBoxAttributesV2,
     SetDialogBoxAttributesV2,
 } from "@ente/shared/components/DialogBoxV2/types";

+ 2 - 8
web/apps/accounts/src/pages/passkeys/index.tsx

@@ -9,14 +9,8 @@ import { t } from "i18next";
 import _sodium from "libsodium-wrappers";
 import { useRouter } from "next/router";
 import { AppContext } from "pages/_app";
-import {
-    Dispatch,
-    SetStateAction,
-    createContext,
-    useContext,
-    useEffect,
-    useState,
-} from "react";
+import type { Dispatch, SetStateAction } from "react";
+import { createContext, useContext, useEffect, useState } from "react";
 import { Passkey } from "types/passkey";
 import {
     finishPasskeyRegistration,

+ 3 - 3
web/apps/auth/src/pages/_app.tsx

@@ -12,7 +12,7 @@ import {
 } from "@ente/shared/apps/constants";
 import { Overlay } from "@ente/shared/components/Container";
 import DialogBoxV2 from "@ente/shared/components/DialogBoxV2";
-import {
+import type {
     DialogBoxAttributesV2,
     SetDialogBoxAttributesV2,
 } from "@ente/shared/components/DialogBoxV2/types";
@@ -25,12 +25,12 @@ import HTTPService from "@ente/shared/network/HTTPService";
 import { LS_KEYS, getData } from "@ente/shared/storage/localStorage";
 import { getTheme } from "@ente/shared/themes";
 import { THEME_COLOR } from "@ente/shared/themes/constants";
-import { SetTheme } from "@ente/shared/themes/types";
+import type { SetTheme } from "@ente/shared/themes/types";
 import type { User } from "@ente/shared/user/types";
 import { CssBaseline, useMediaQuery } from "@mui/material";
 import { ThemeProvider } from "@mui/material/styles";
 import { t } from "i18next";
-import { AppProps } from "next/app";
+import type { AppProps } from "next/app";
 import { useRouter } from "next/router";
 import { createContext, useEffect, useRef, useState } from "react";
 import LoadingBar from "react-top-loading-bar";

+ 0 - 3
web/apps/auth/tsconfig.json

@@ -8,9 +8,6 @@
 
         "jsxImportSource": "@emotion/react",
 
-        "verbatimModuleSyntax": false,
-        "resolveJsonModule": false,
-
         "strict": false,
         /* Stricter than strict */
         "noImplicitReturns": false,

+ 2 - 2
web/apps/photos/src/components/AuthenticateUserModal.tsx

@@ -1,10 +1,10 @@
 import log from "@/next/log";
 import DialogBoxV2 from "@ente/shared/components/DialogBoxV2";
 import VerifyMasterPasswordForm, {
-    VerifyMasterPasswordFormProps,
+    type VerifyMasterPasswordFormProps,
 } from "@ente/shared/components/VerifyMasterPasswordForm";
 import { LS_KEYS, getData } from "@ente/shared/storage/localStorage";
-import { KeyAttributes, User } from "@ente/shared/user/types";
+import type { KeyAttributes, User } from "@ente/shared/user/types";
 import { t } from "i18next";
 import { AppContext } from "pages/_app";
 import { useContext, useEffect, useState } from "react";

+ 1 - 1
web/apps/photos/src/components/CaptionedText.tsx

@@ -1,5 +1,5 @@
 import { VerticallyCenteredFlex } from "@ente/shared/components/Container";
-import { ButtonProps, Typography } from "@mui/material";
+import { Typography, type ButtonProps } from "@mui/material";
 
 interface Iprops {
     mainText: string;

+ 1 - 1
web/apps/photos/src/components/CheckboxInput.tsx

@@ -3,7 +3,7 @@ import {
     FormControlLabel,
     FormGroup,
     Typography,
-    TypographyProps,
+    type TypographyProps,
 } from "@mui/material";
 
 interface Iprops {

+ 1 - 1
web/apps/photos/src/components/Collections/CollectionInfoWithOptions.tsx

@@ -6,7 +6,7 @@ import PeopleIcon from "@mui/icons-material/People";
 import { SetCollectionNamerAttributes } from "components/Collections/CollectionNamer";
 import CollectionOptions from "components/Collections/CollectionOptions";
 import { CollectionSummaryType } from "constants/collection";
-import { Dispatch, SetStateAction } from "react";
+import type { Dispatch, SetStateAction } from "react";
 import { Collection, CollectionSummary } from "types/collection";
 import { SetFilesDownloadProgressAttributesCreator } from "types/gallery";
 import { shouldShowOptions } from "utils/collection";

+ 1 - 1
web/apps/photos/src/components/Collections/CollectionNamer.tsx

@@ -1,6 +1,6 @@
 import DialogBoxV2 from "@ente/shared/components/DialogBoxV2";
 import SingleInputForm, {
-    SingleInputFormProps,
+    type SingleInputFormProps,
 } from "@ente/shared/components/SingleInputForm";
 import { t } from "i18next";
 import React from "react";

+ 1 - 1
web/apps/photos/src/components/Collections/CollectionOptions/AlbumCastDialog.tsx

@@ -4,7 +4,7 @@ import DialogBoxV2 from "@ente/shared/components/DialogBoxV2";
 import EnteButton from "@ente/shared/components/EnteButton";
 import EnteSpinner from "@ente/shared/components/EnteSpinner";
 import SingleInputForm, {
-    SingleInputFormProps,
+    type SingleInputFormProps,
 } from "@ente/shared/components/SingleInputForm";
 import { boxSeal } from "@ente/shared/crypto/internal/libsodium";
 import castGateway from "@ente/shared/network/cast";

+ 2 - 1
web/apps/photos/src/components/Collections/CollectionOptions/index.tsx

@@ -11,7 +11,8 @@ import {
 import { t } from "i18next";
 import { AppContext } from "pages/_app";
 import { GalleryContext } from "pages/gallery";
-import { Dispatch, SetStateAction, useContext, useRef, useState } from "react";
+import type { Dispatch, SetStateAction } from "react";
+import { useContext, useRef, useState } from "react";
 import { Trans } from "react-i18next";
 import * as CollectionAPI from "services/collectionService";
 import * as TrashService from "services/trashService";

+ 1 - 1
web/apps/photos/src/components/Collections/CollectionShare/emailShare/AddParticipantForm.tsx

@@ -8,7 +8,7 @@ import MenuItemDivider from "components/Menu/MenuItemDivider";
 import { MenuItemGroup } from "components/Menu/MenuItemGroup";
 import MenuSectionTitle from "components/Menu/MenuSectionTitle";
 import Avatar from "components/pages/gallery/Avatar";
-import { Formik, FormikHelpers } from "formik";
+import { Formik, type FormikHelpers } from "formik";
 import { t } from "i18next";
 import { useMemo, useState } from "react";
 import * as Yup from "yup";

+ 1 - 1
web/apps/photos/src/components/Collections/CollectionShare/publicShare/manage/linkPassword/setPassword.tsx

@@ -1,5 +1,5 @@
 import SingleInputForm, {
-    SingleInputFormProps,
+    type SingleInputFormProps,
 } from "@ente/shared/components/SingleInputForm";
 import ComlinkCryptoWorker from "@ente/shared/crypto";
 import { Dialog, Stack, Typography } from "@mui/material";

+ 1 - 1
web/apps/photos/src/components/DeleteAccountModal.tsx

@@ -3,7 +3,7 @@ import DialogBoxV2 from "@ente/shared/components/DialogBoxV2";
 import EnteButton from "@ente/shared/components/EnteButton";
 import { DELETE_ACCOUNT_EMAIL } from "@ente/shared/constants/urls";
 import { Button, Link, Stack } from "@mui/material";
-import { Formik, FormikHelpers } from "formik";
+import { Formik, type FormikHelpers } from "formik";
 import { t } from "i18next";
 import { AppContext } from "pages/_app";
 import { GalleryContext } from "pages/gallery";

+ 1 - 1
web/apps/photos/src/components/DropdownInput.tsx

@@ -6,7 +6,7 @@ import {
     SelectChangeEvent,
     Stack,
     Typography,
-    TypographyProps,
+    type TypographyProps,
 } from "@mui/material";
 
 export interface DropdownOption<T> {

+ 1 - 1
web/apps/photos/src/components/EnteSpinner.tsx

@@ -1,5 +1,5 @@
 import CircularProgress, {
-    CircularProgressProps,
+    type CircularProgressProps,
 } from "@mui/material/CircularProgress";
 
 export default function EnteSpinner(props: CircularProgressProps) {

+ 2 - 2
web/apps/photos/src/components/Menu/EnteMenuItem.tsx

@@ -4,10 +4,10 @@ import {
 } from "@ente/shared/components/Container";
 import {
     Box,
-    ButtonProps,
     MenuItem,
     Typography,
-    TypographyProps,
+    type ButtonProps,
+    type TypographyProps,
 } from "@mui/material";
 import { CaptionedText } from "components/CaptionedText";
 import PublicShareSwitch from "components/Collections/CollectionShare/publicShare/switch";

+ 1 - 1
web/apps/photos/src/components/Notification.tsx

@@ -2,7 +2,7 @@ import CloseIcon from "@mui/icons-material/Close";
 import {
     Box,
     Button,
-    ButtonProps,
+    type ButtonProps,
     Snackbar,
     Stack,
     SxProps,

+ 1 - 1
web/apps/photos/src/components/PhotoViewer/FileInfo/FileNameEditDialog.tsx

@@ -1,6 +1,6 @@
 import DialogBoxV2 from "@ente/shared/components/DialogBoxV2";
 import SingleInputForm, {
-    SingleInputFormProps,
+    type SingleInputFormProps,
 } from "@ente/shared/components/SingleInputForm";
 import { t } from "i18next";
 

+ 2 - 2
web/apps/photos/src/components/PhotoViewer/FileInfo/MapButton.tsx

@@ -1,5 +1,5 @@
-import { Button, ButtonProps, styled } from "@mui/material";
-import { CSSProperties } from "@mui/material/styles/createTypography";
+import { Button, styled, type ButtonProps } from "@mui/material";
+import { type CSSProperties } from "@mui/material/styles/createTypography";
 
 export const MapButton = styled((props: ButtonProps) => (
     <Button color="secondary" {...props} />

+ 1 - 1
web/apps/photos/src/components/PhotoViewer/ImageEditorOverlay/ColoursMenu.tsx

@@ -3,7 +3,7 @@ import { EnteMenuItem } from "components/Menu/EnteMenuItem";
 import { MenuItemGroup } from "components/Menu/MenuItemGroup";
 import MenuSectionTitle from "components/Menu/MenuSectionTitle";
 import { t } from "i18next";
-import { Dispatch, SetStateAction } from "react";
+import type { Dispatch, SetStateAction } from "react";
 
 interface IProps {
     brightness: number;

+ 2 - 10
web/apps/photos/src/components/PhotoViewer/ImageEditorOverlay/index.tsx

@@ -31,16 +31,8 @@ import MenuSectionTitle from "components/Menu/MenuSectionTitle";
 import { CORNER_THRESHOLD, FILTER_DEFAULT_VALUES } from "constants/photoEditor";
 import { t } from "i18next";
 import { AppContext } from "pages/_app";
-import {
-    Dispatch,
-    MutableRefObject,
-    SetStateAction,
-    createContext,
-    useContext,
-    useEffect,
-    useRef,
-    useState,
-} from "react";
+import type { Dispatch, MutableRefObject, SetStateAction } from "react";
+import { createContext, useContext, useEffect, useRef, useState } from "react";
 import { getLocalCollections } from "services/collectionService";
 import downloadManager from "services/download";
 import uploadManager from "services/upload/uploadManager";

+ 1 - 1
web/apps/photos/src/components/PhotoViewer/styledComponents/CircularProgressWithLabel.tsx

@@ -1,8 +1,8 @@
 import { Overlay } from "@ente/shared/components/Container";
 import {
     CircularProgress,
-    CircularProgressProps,
     Typography,
+    type CircularProgressProps,
 } from "@mui/material";
 
 function CircularProgressWithLabel(

+ 1 - 1
web/apps/photos/src/components/Upload/UploadProgress/section.tsx

@@ -1,4 +1,4 @@
-import { Typography, TypographyProps, styled } from "@mui/material";
+import { Typography, styled, type TypographyProps } from "@mui/material";
 import MuiAccordion, { AccordionProps } from "@mui/material/Accordion";
 import MuiAccordionDetails from "@mui/material/AccordionDetails";
 import MuiAccordionSummary from "@mui/material/AccordionSummary";

+ 5 - 8
web/apps/photos/src/components/pages/gallery/LinkButton.tsx

@@ -1,5 +1,5 @@
-import { ButtonProps, Link, LinkProps } from "@mui/material";
-import React, { FC } from "react";
+import { Link, type ButtonProps, type LinkProps } from "@mui/material";
+import React from "react";
 
 export type LinkButtonProps = React.PropsWithChildren<{
     onClick: () => void;
@@ -7,12 +7,9 @@ export type LinkButtonProps = React.PropsWithChildren<{
     style?: React.CSSProperties;
 }>;
 
-const LinkButton: FC<LinkProps<"button", { color?: ButtonProps["color"] }>> = ({
-    children,
-    sx,
-    color,
-    ...props
-}) => {
+const LinkButton: React.FC<
+    LinkProps<"button", { color?: ButtonProps["color"] }>
+> = ({ children, sx, color, ...props }) => {
     return (
         <Link
             component="button"

+ 3 - 3
web/apps/photos/src/pages/_app.tsx

@@ -18,7 +18,7 @@ import {
     SetDialogBoxAttributes,
 } from "@ente/shared/components/DialogBox/types";
 import DialogBoxV2 from "@ente/shared/components/DialogBoxV2";
-import {
+import type {
     DialogBoxAttributesV2,
     SetDialogBoxAttributesV2,
 } from "@ente/shared/components/DialogBoxV2/types";
@@ -36,7 +36,7 @@ import {
 } from "@ente/shared/storage/localStorage/helpers";
 import { getTheme } from "@ente/shared/themes";
 import { THEME_COLOR } from "@ente/shared/themes/constants";
-import { SetTheme } from "@ente/shared/themes/types";
+import type { SetTheme } from "@ente/shared/themes/types";
 import type { User } from "@ente/shared/user/types";
 import ArrowForward from "@mui/icons-material/ArrowForward";
 import { CssBaseline, useMediaQuery } from "@mui/material";
@@ -45,7 +45,7 @@ import Notification from "components/Notification";
 import { REDIRECTS } from "constants/redirects";
 import { t } from "i18next";
 import isElectron from "is-electron";
-import { AppProps } from "next/app";
+import type { AppProps } from "next/app";
 import { useRouter } from "next/router";
 import "photoswipe/dist/photoswipe.css";
 import { createContext, useEffect, useRef, useState } from "react";

+ 1 - 1
web/apps/photos/src/pages/gallery/index.tsx

@@ -21,7 +21,7 @@ import {
     clearKeys,
     getKey,
 } from "@ente/shared/storage/sessionStorage";
-import { User } from "@ente/shared/user/types";
+import type { User } from "@ente/shared/user/types";
 import { isPromise } from "@ente/shared/utils";
 import { Typography, styled } from "@mui/material";
 import AuthenticateUserModal from "components/AuthenticateUserModal";

+ 6 - 1
web/apps/photos/src/pages/index.tsx

@@ -11,7 +11,12 @@ import localForage from "@ente/shared/storage/localForage";
 import { getData, LS_KEYS } from "@ente/shared/storage/localStorage";
 import { getToken } from "@ente/shared/storage/localStorage/helpers";
 import { getKey, SESSION_KEYS } from "@ente/shared/storage/sessionStorage";
-import { Button, styled, Typography, TypographyProps } from "@mui/material";
+import {
+    Button,
+    styled,
+    Typography,
+    type TypographyProps,
+} from "@mui/material";
 import { t } from "i18next";
 import { useRouter } from "next/router";
 import { CarouselProvider, DotGroup, Slide, Slider } from "pure-react-carousel";

+ 1 - 1
web/apps/photos/src/pages/shared-albums/index.tsx

@@ -11,7 +11,7 @@ import FormPaperTitle from "@ente/shared/components/Form/FormPaper/Title";
 import OverflowMenu from "@ente/shared/components/OverflowMenu/menu";
 import { OverflowMenuOption } from "@ente/shared/components/OverflowMenu/option";
 import SingleInputForm, {
-    SingleInputFormProps,
+    type SingleInputFormProps,
 } from "@ente/shared/components/SingleInputForm";
 import { PHOTOS_PAGES as PAGES } from "@ente/shared/constants/pages";
 import { ENTE_WEBSITE_LINK } from "@ente/shared/constants/urls";

+ 1 - 1
web/apps/photos/src/services/collectionService.ts

@@ -8,7 +8,7 @@ import { CustomError } from "@ente/shared/error";
 import HTTPService from "@ente/shared/network/HTTPService";
 import { getToken } from "@ente/shared/storage/localStorage/helpers";
 import { getActualKey } from "@ente/shared/user";
-import { User } from "@ente/shared/user/types";
+import type { User } from "@ente/shared/user/types";
 import { REQUEST_BATCH_SIZE } from "constants/api";
 import {
     ALL_SECTION,

+ 1 - 1
web/apps/photos/src/services/download/index.ts

@@ -7,7 +7,7 @@ import ComlinkCryptoWorker from "@ente/shared/crypto";
 import { DedicatedCryptoWorker } from "@ente/shared/crypto/internal/crypto.worker";
 import { CustomError } from "@ente/shared/error";
 import { isPlaybackPossible } from "@ente/shared/media/video-playback";
-import { Remote } from "comlink";
+import type { Remote } from "comlink";
 import isElectron from "is-electron";
 import * as ffmpeg from "services/ffmpeg";
 import { EnteFile } from "types/file";

+ 1 - 1
web/apps/photos/src/services/export/index.ts

@@ -8,7 +8,7 @@ import { CustomError } from "@ente/shared/error";
 import { Events, eventBus } from "@ente/shared/events";
 import { LS_KEYS, getData, setData } from "@ente/shared/storage/localStorage";
 import { formatDateTimeShort } from "@ente/shared/time/format";
-import { User } from "@ente/shared/user/types";
+import type { User } from "@ente/shared/user/types";
 import QueueProcessor, {
     CancellationStatus,
     RequestCanceller,

+ 1 - 1
web/apps/photos/src/services/export/migration.ts

@@ -5,7 +5,7 @@ import { nameAndExtension } from "@/next/file";
 import log from "@/next/log";
 import { wait } from "@/utils/promise";
 import { LS_KEYS, getData } from "@ente/shared/storage/localStorage";
-import { User } from "@ente/shared/user/types";
+import type { User } from "@ente/shared/user/types";
 import { getLocalCollections } from "services/collectionService";
 import downloadManager from "services/download";
 import { getAllLocalFiles } from "services/fileService";

+ 1 - 1
web/apps/photos/src/services/ffmpeg.ts

@@ -1,7 +1,7 @@
 import type { Electron } from "@/next/types/ipc";
 import { ComlinkWorker } from "@/next/worker/comlink-worker";
 import { validateAndGetCreationUnixTimeInMicroSeconds } from "@ente/shared/time";
-import { Remote } from "comlink";
+import type { Remote } from "comlink";
 import {
     ffmpegPathPlaceholder,
     inputPathPlaceholder,

+ 1 - 1
web/apps/photos/src/services/upload/uploadManager.ts

@@ -12,7 +12,7 @@ import { DedicatedCryptoWorker } from "@ente/shared/crypto/internal/crypto.worke
 import { CustomError } from "@ente/shared/error";
 import { Events, eventBus } from "@ente/shared/events";
 import { Canceler } from "axios";
-import { Remote } from "comlink";
+import type { Remote } from "comlink";
 import {
     RANDOM_PERCENTAGE_PROGRESS_FOR_PUT,
     UPLOAD_RESULT,

+ 2 - 2
web/apps/photos/src/services/upload/uploadService.ts

@@ -9,9 +9,9 @@ import { CustomErrorMessage } from "@/next/types/ipc";
 import { ensure } from "@/utils/ensure";
 import { ENCRYPTION_CHUNK_SIZE } from "@ente/shared/crypto/constants";
 import { DedicatedCryptoWorker } from "@ente/shared/crypto/internal/crypto.worker";
-import { B64EncryptionResult } from "@ente/shared/crypto/types";
+import type { B64EncryptionResult } from "@ente/shared/crypto/types";
 import { CustomError, handleUploadError } from "@ente/shared/error";
-import { Remote } from "comlink";
+import type { Remote } from "comlink";
 import {
     NULL_LOCATION,
     RANDOM_PERCENTAGE_PROGRESS_FOR_PUT,

+ 1 - 1
web/apps/photos/src/services/userService.ts

@@ -8,7 +8,7 @@ import {
     getToken,
     setLocalMapEnabled,
 } from "@ente/shared/storage/localStorage/helpers";
-import { AxiosResponse, HttpStatusCode } from "axios";
+import { HttpStatusCode, type AxiosResponse } from "axios";
 import {
     DeleteChallengeResponse,
     GetFeatureFlagResponse,

+ 1 - 1
web/apps/photos/src/types/gallery/index.ts

@@ -1,4 +1,4 @@
-import { User } from "@ente/shared/user/types";
+import type { User } from "@ente/shared/user/types";
 import { CollectionSelectorAttributes } from "components/Collections/CollectionSelector";
 import { FilesDownloadProgressAttributes } from "components/FilesDownloadProgress";
 import { TimeStampListItem } from "components/PhotoList";

+ 1 - 1
web/apps/photos/src/utils/billing/index.ts

@@ -3,7 +3,7 @@ import { SetDialogBoxAttributes } from "@ente/shared/components/DialogBox/types"
 import { LS_KEYS, getData } from "@ente/shared/storage/localStorage";
 import { REDIRECTS, getRedirectURL } from "constants/redirects";
 import { t } from "i18next";
-import { NextRouter } from "next/router";
+import type { NextRouter } from "next/router";
 import billingService from "services/billingService";
 import { Plan, Subscription } from "types/billing";
 import { SetLoading } from "types/gallery";

+ 1 - 1
web/apps/photos/src/utils/collection/index.ts

@@ -3,7 +3,7 @@ import log from "@/next/log";
 import { CustomError } from "@ente/shared/error";
 import { LS_KEYS, getData } from "@ente/shared/storage/localStorage";
 import { getUnixTimeInMicroSecondsWithDelta } from "@ente/shared/time";
-import { User } from "@ente/shared/user/types";
+import type { User } from "@ente/shared/user/types";
 import bs58 from "bs58";
 import {
     ADD_TO_NOT_ALLOWED_COLLECTION,

+ 1 - 1
web/apps/photos/src/utils/comlink/ComlinkSearchWorker.ts

@@ -1,6 +1,6 @@
 import { haveWindow } from "@/next/env";
 import { ComlinkWorker } from "@/next/worker/comlink-worker";
-import { Remote } from "comlink";
+import type { Remote } from "comlink";
 import { type DedicatedSearchWorker } from "worker/search.worker";
 
 class ComlinkSearchWorker {

+ 1 - 1
web/apps/photos/src/utils/file/index.ts

@@ -8,7 +8,7 @@ import { workerBridge } from "@/next/worker/worker-bridge";
 import { withTimeout } from "@/utils/promise";
 import ComlinkCryptoWorker from "@ente/shared/crypto";
 import { LS_KEYS, getData } from "@ente/shared/storage/localStorage";
-import { User } from "@ente/shared/user/types";
+import type { User } from "@ente/shared/user/types";
 import { downloadUsingAnchor } from "@ente/shared/utils";
 import { t } from "i18next";
 import isElectron from "is-electron";

+ 1 - 1
web/apps/photos/src/utils/user/family.ts

@@ -1,6 +1,6 @@
 import log from "@/next/log";
 import { LS_KEYS, getData } from "@ente/shared/storage/localStorage";
-import { User } from "@ente/shared/user/types";
+import type { User } from "@ente/shared/user/types";
 import { FamilyData, FamilyMember } from "types/user";
 
 export function getLocalFamilyData(): FamilyData {

+ 1 - 1
web/packages/accounts/api/srp.ts

@@ -2,7 +2,7 @@ import log from "@/next/log";
 import HTTPService from "@ente/shared/network/HTTPService";
 import { getEndpoint } from "@ente/shared/network/api";
 
-import {
+import type {
     CompleteSRPSetupRequest,
     CompleteSRPSetupResponse,
     CreateSRPSessionResponse,

+ 3 - 3
web/packages/accounts/api/user.ts

@@ -1,4 +1,4 @@
-import {
+import type {
     RecoveryKey,
     TwoFactorRecoveryResponse,
     TwoFactorSecret,
@@ -6,12 +6,12 @@ import {
     UserVerificationResponse,
 } from "@ente/accounts/types/user";
 import { APPS, OTT_CLIENTS } from "@ente/shared/apps/constants";
-import { B64EncryptionResult } from "@ente/shared/crypto/types";
+import type { B64EncryptionResult } from "@ente/shared/crypto/types";
 import { ApiError, CustomError } from "@ente/shared/error";
 import HTTPService from "@ente/shared/network/HTTPService";
 import { getEndpoint } from "@ente/shared/network/api";
 import { getToken } from "@ente/shared/storage/localStorage/helpers";
-import { KeyAttributes } from "@ente/shared/user/types";
+import type { KeyAttributes } from "@ente/shared/user/types";
 import { HttpStatusCode } from "axios";
 import { TwoFactorType } from "../constants/twofactor";
 

+ 2 - 2
web/packages/accounts/components/ChangeEmail.tsx

@@ -1,14 +1,14 @@
 import { wait } from "@/utils/promise";
 import { changeEmail, sendOTTForEmailChange } from "@ente/accounts/api/user";
 import { APP_HOMES } from "@ente/shared/apps/constants";
-import { PageProps } from "@ente/shared/apps/types";
+import type { PageProps } from "@ente/shared/apps/types";
 import { VerticallyCentered } from "@ente/shared/components/Container";
 import FormPaperFooter from "@ente/shared/components/Form/FormPaper/Footer";
 import LinkButton from "@ente/shared/components/LinkButton";
 import SubmitButton from "@ente/shared/components/SubmitButton";
 import { LS_KEYS, getData, setData } from "@ente/shared/storage/localStorage";
 import { Alert, Box, TextField } from "@mui/material";
-import { Formik, FormikHelpers } from "formik";
+import { Formik, type FormikHelpers } from "formik";
 import { t } from "i18next";
 import { useRouter } from "next/router";
 import { useRef, useState } from "react";

+ 1 - 1
web/packages/accounts/components/Login.tsx

@@ -4,7 +4,7 @@ import FormPaperFooter from "@ente/shared/components/Form/FormPaper/Footer";
 import FormPaperTitle from "@ente/shared/components/Form/FormPaper/Title";
 import LinkButton from "@ente/shared/components/LinkButton";
 import SingleInputForm, {
-    SingleInputFormProps,
+    type SingleInputFormProps,
 } from "@ente/shared/components/SingleInputForm";
 import { LS_KEYS, setData } from "@ente/shared/storage/localStorage";
 import { Input } from "@mui/material";

+ 2 - 2
web/packages/accounts/components/SignUp.tsx

@@ -34,9 +34,9 @@ import {
     Tooltip,
     Typography,
 } from "@mui/material";
-import { Formik, FormikHelpers } from "formik";
+import { Formik, type FormikHelpers } from "formik";
 import { t } from "i18next";
-import { NextRouter } from "next/router";
+import type { NextRouter } from "next/router";
 import React, { useState } from "react";
 import { Trans } from "react-i18next";
 import * as Yup from "yup";

+ 3 - 3
web/packages/accounts/components/two-factor/InvalidInputMessage.tsx

@@ -1,7 +1,7 @@
-import { Typography, TypographyProps } from "@mui/material";
-import { FC } from "react";
+import { Typography, type TypographyProps } from "@mui/material";
+import React from "react";
 
-const InvalidInputMessage: FC<TypographyProps> = (props) => {
+const InvalidInputMessage: React.FC<TypographyProps> = (props) => {
     return (
         <Typography
             variant="mini"

+ 1 - 1
web/packages/accounts/components/two-factor/VerifyForm.tsx

@@ -6,7 +6,7 @@ import {
 } from "@ente/shared/components/Container";
 import SubmitButton from "@ente/shared/components/SubmitButton";
 import { Box, Typography } from "@mui/material";
-import { Formik, FormikHelpers } from "formik";
+import { Formik, type FormikHelpers } from "formik";
 import { t } from "i18next";
 import { useRef, useState } from "react";
 import OtpInput from "react-otp-input";

+ 1 - 1
web/packages/accounts/components/two-factor/setup/ManualMode.tsx

@@ -1,4 +1,4 @@
-import { TwoFactorSecret } from "@ente/accounts/types/user";
+import type { TwoFactorSecret } from "@ente/accounts/types/user";
 import CodeBlock from "@ente/shared/components/CodeBlock";
 import { Typography } from "@mui/material";
 import { t } from "i18next";

+ 1 - 1
web/packages/accounts/components/two-factor/setup/QRMode.tsx

@@ -1,4 +1,4 @@
-import { TwoFactorSecret } from "@ente/accounts/types/user";
+import type { TwoFactorSecret } from "@ente/accounts/types/user";
 import EnteSpinner from "@ente/shared/components/EnteSpinner";
 import { t } from "i18next";
 

+ 1 - 1
web/packages/accounts/components/two-factor/setup/index.tsx

@@ -1,7 +1,7 @@
 import SetupManualMode from "@ente/accounts/components/two-factor/setup/ManualMode";
 import SetupQRMode from "@ente/accounts/components/two-factor/setup/QRMode";
 import { SetupMode } from "@ente/accounts/pages/two-factor/setup";
-import { TwoFactorSecret } from "@ente/accounts/types/user";
+import type { TwoFactorSecret } from "@ente/accounts/types/user";
 import { VerticallyCentered } from "@ente/shared/components/Container";
 import { useState } from "react";
 

+ 1 - 1
web/packages/accounts/pages/change-email.tsx

@@ -1,6 +1,6 @@
 import ChangeEmailForm from "@ente/accounts/components/ChangeEmail";
 import { PAGES } from "@ente/accounts/constants/pages";
-import { PageProps } from "@ente/shared/apps/types";
+import type { PageProps } from "@ente/shared/apps/types";
 import { VerticallyCentered } from "@ente/shared/components/Container";
 import FormPaper from "@ente/shared/components/Form/FormPaper";
 import FormPaperTitle from "@ente/shared/components/Form/FormPaper/Title";

+ 18 - 21
web/packages/accounts/pages/change-password.tsx

@@ -1,41 +1,38 @@
-import { t } from "i18next";
-import { useEffect, useState } from "react";
-
-import {
-    generateSRPClient,
-    generateSRPSetupAttributes,
-} from "@ente/accounts/services/srp";
-import {
-    generateAndSaveIntermediateKeyAttributes,
-    generateLoginSubKey,
-    saveKeyInSessionStore,
-} from "@ente/shared/crypto/helpers";
-import { LS_KEYS, getData, setData } from "@ente/shared/storage/localStorage";
-
 import { startSRPSetup, updateSRPAndKeys } from "@ente/accounts/api/srp";
 import SetPasswordForm, {
-    SetPasswordFormProps,
+    type SetPasswordFormProps,
 } from "@ente/accounts/components/SetPasswordForm";
 import { PAGES } from "@ente/accounts/constants/pages";
-import { UpdatedKey } from "@ente/accounts/types/user";
-import { SESSION_KEYS } from "@ente/shared/storage/sessionStorage";
-import { getActualKey } from "@ente/shared/user";
-import { KEK, KeyAttributes, User } from "@ente/shared/user/types";
-
+import {
+    generateSRPClient,
+    generateSRPSetupAttributes,
+} from "@ente/accounts/services/srp";
+import type { UpdatedKey } from "@ente/accounts/types/user";
 import {
     convertBase64ToBuffer,
     convertBufferToBase64,
 } from "@ente/accounts/utils";
 import { APP_HOMES } from "@ente/shared/apps/constants";
-import { PageProps } from "@ente/shared/apps/types";
+import type { PageProps } from "@ente/shared/apps/types";
 import { VerticallyCentered } from "@ente/shared/components/Container";
 import FormPaper from "@ente/shared/components/Form/FormPaper";
 import FormPaperFooter from "@ente/shared/components/Form/FormPaper/Footer";
 import FormPaperTitle from "@ente/shared/components/Form/FormPaper/Title";
 import LinkButton from "@ente/shared/components/LinkButton";
 import ComlinkCryptoWorker from "@ente/shared/crypto";
+import {
+    generateAndSaveIntermediateKeyAttributes,
+    generateLoginSubKey,
+    saveKeyInSessionStore,
+} from "@ente/shared/crypto/helpers";
 import InMemoryStore, { MS_KEYS } from "@ente/shared/storage/InMemoryStore";
+import { LS_KEYS, getData, setData } from "@ente/shared/storage/localStorage";
+import { SESSION_KEYS } from "@ente/shared/storage/sessionStorage";
+import { getActualKey } from "@ente/shared/user";
+import type { KEK, KeyAttributes, User } from "@ente/shared/user/types";
+import { t } from "i18next";
 import { useRouter } from "next/router";
+import { useEffect, useState } from "react";
 
 export default function ChangePassword({ appName }: PageProps) {
     const [token, setToken] = useState<string>();

+ 5 - 5
web/packages/accounts/pages/credentials.tsx

@@ -1,14 +1,14 @@
 import { isDevBuild } from "@/next/env";
 import log from "@/next/log";
 import { APP_HOMES } from "@ente/shared/apps/constants";
-import { PageProps } from "@ente/shared/apps/types";
+import type { PageProps } from "@ente/shared/apps/types";
 import { VerticallyCentered } from "@ente/shared/components/Container";
 import EnteSpinner from "@ente/shared/components/EnteSpinner";
 import FormPaper from "@ente/shared/components/Form/FormPaper";
 import FormPaperFooter from "@ente/shared/components/Form/FormPaper/Footer";
 import LinkButton from "@ente/shared/components/LinkButton";
 import VerifyMasterPasswordForm, {
-    VerifyMasterPasswordFormProps,
+    type VerifyMasterPasswordFormProps,
 } from "@ente/shared/components/VerifyMasterPasswordForm";
 import ComlinkCryptoWorker from "@ente/shared/crypto";
 import {
@@ -17,7 +17,7 @@ import {
     generateLoginSubKey,
     saveKeyInSessionStore,
 } from "@ente/shared/crypto/helpers";
-import { B64EncryptionResult } from "@ente/shared/crypto/types";
+import type { B64EncryptionResult } from "@ente/shared/crypto/types";
 import { CustomError } from "@ente/shared/error";
 import { getAccountsURL, getEndpoint } from "@ente/shared/network/api";
 import InMemoryStore, { MS_KEYS } from "@ente/shared/storage/InMemoryStore";
@@ -38,7 +38,7 @@ import {
     removeKey,
     setKey,
 } from "@ente/shared/storage/sessionStorage";
-import { KeyAttributes, User } from "@ente/shared/user/types";
+import type { KeyAttributes, User } from "@ente/shared/user/types";
 import { Typography, styled } from "@mui/material";
 import { t } from "i18next";
 import { useRouter } from "next/router";
@@ -50,7 +50,7 @@ import {
     generateSRPSetupAttributes,
     loginViaSRP,
 } from "../services/srp";
-import { SRPAttributes } from "../types/srp";
+import type { SRPAttributes } from "../types/srp";
 
 export default function Credentials({ appContext, appName }: PageProps) {
     const { logout } = appContext;

+ 2 - 2
web/packages/accounts/pages/generate.tsx

@@ -14,7 +14,7 @@ import { useEffect, useState } from "react";
 import SetPasswordForm from "@ente/accounts/components/SetPasswordForm";
 import { PAGES } from "@ente/accounts/constants/pages";
 import { APP_HOMES } from "@ente/shared/apps/constants";
-import { PageProps } from "@ente/shared/apps/types";
+import type { PageProps } from "@ente/shared/apps/types";
 import { VerticallyCentered } from "@ente/shared/components/Container";
 import EnteSpinner from "@ente/shared/components/EnteSpinner";
 import FormPaper from "@ente/shared/components/Form/FormPaper";
@@ -26,7 +26,7 @@ import {
     justSignedUp,
     setJustSignedUp,
 } from "@ente/shared/storage/localStorage/helpers";
-import { KeyAttributes, User } from "@ente/shared/user/types";
+import type { KeyAttributes, User } from "@ente/shared/user/types";
 import { useRouter } from "next/router";
 
 export default function Generate({ appContext, appName }: PageProps) {

+ 1 - 1
web/packages/accounts/pages/login.tsx

@@ -1,4 +1,4 @@
-import { PageProps } from "@ente/shared/apps/types";
+import type { PageProps } from "@ente/shared/apps/types";
 import { VerticallyCentered } from "@ente/shared/components/Container";
 import EnteSpinner from "@ente/shared/components/EnteSpinner";
 import FormPaper from "@ente/shared/components/Form/FormPaper";

+ 3 - 3
web/packages/accounts/pages/recover.tsx

@@ -2,14 +2,14 @@ import log from "@/next/log";
 import { sendOtt } from "@ente/accounts/api/user";
 import { PAGES } from "@ente/accounts/constants/pages";
 import { APP_HOMES } from "@ente/shared/apps/constants";
-import { PageProps } from "@ente/shared/apps/types";
+import type { PageProps } from "@ente/shared/apps/types";
 import { VerticallyCentered } from "@ente/shared/components/Container";
 import FormPaper from "@ente/shared/components/Form/FormPaper";
 import FormPaperFooter from "@ente/shared/components/Form/FormPaper/Footer";
 import FormPaperTitle from "@ente/shared/components/Form/FormPaper/Title";
 import LinkButton from "@ente/shared/components/LinkButton";
 import SingleInputForm, {
-    SingleInputFormProps,
+    type SingleInputFormProps,
 } from "@ente/shared/components/SingleInputForm";
 import ComlinkCryptoWorker from "@ente/shared/crypto";
 import {
@@ -19,7 +19,7 @@ import {
 import InMemoryStore, { MS_KEYS } from "@ente/shared/storage/InMemoryStore";
 import { LS_KEYS, getData, setData } from "@ente/shared/storage/localStorage";
 import { SESSION_KEYS, getKey } from "@ente/shared/storage/sessionStorage";
-import { KeyAttributes, User } from "@ente/shared/user/types";
+import type { KeyAttributes, User } from "@ente/shared/user/types";
 import { t } from "i18next";
 import { useRouter } from "next/router";
 import { useEffect, useState } from "react";

+ 1 - 1
web/packages/accounts/pages/signup.tsx

@@ -1,7 +1,7 @@
 import SignUp from "@ente/accounts/components/SignUp";
 import { PAGES } from "@ente/accounts/constants/pages";
 import { LS_KEYS, getData } from "@ente/shared//storage/localStorage";
-import { PageProps } from "@ente/shared/apps/types";
+import type { PageProps } from "@ente/shared/apps/types";
 import { VerticallyCentered } from "@ente/shared/components/Container";
 import EnteSpinner from "@ente/shared/components/EnteSpinner";
 import FormPaper from "@ente/shared/components/Form/FormPaper";

+ 4 - 4
web/packages/accounts/pages/two-factor/recover.tsx

@@ -2,19 +2,19 @@ import log from "@/next/log";
 import { recoverTwoFactor, removeTwoFactor } from "@ente/accounts/api/user";
 import { PAGES } from "@ente/accounts/constants/pages";
 import { TwoFactorType } from "@ente/accounts/constants/twofactor";
-import { PageProps } from "@ente/shared/apps/types";
+import type { PageProps } from "@ente/shared/apps/types";
 import { VerticallyCentered } from "@ente/shared/components/Container";
-import { DialogBoxAttributesV2 } from "@ente/shared/components/DialogBoxV2/types";
+import type { DialogBoxAttributesV2 } from "@ente/shared/components/DialogBoxV2/types";
 import FormPaper from "@ente/shared/components/Form/FormPaper";
 import FormPaperFooter from "@ente/shared/components/Form/FormPaper/Footer";
 import FormPaperTitle from "@ente/shared/components/Form/FormPaper/Title";
 import LinkButton from "@ente/shared/components/LinkButton";
 import SingleInputForm, {
-    SingleInputFormProps,
+    type SingleInputFormProps,
 } from "@ente/shared/components/SingleInputForm";
 import { SUPPORT_EMAIL } from "@ente/shared/constants/urls";
 import ComlinkCryptoWorker from "@ente/shared/crypto";
-import { B64EncryptionResult } from "@ente/shared/crypto/types";
+import type { B64EncryptionResult } from "@ente/shared/crypto/types";
 import { ApiError } from "@ente/shared/error";
 import { LS_KEYS, getData, setData } from "@ente/shared/storage/localStorage";
 import { Link } from "@mui/material";

+ 3 - 3
web/packages/accounts/pages/two-factor/setup.tsx

@@ -1,12 +1,12 @@
 import log from "@/next/log";
 import { enableTwoFactor, setupTwoFactor } from "@ente/accounts/api/user";
 import VerifyTwoFactor, {
-    VerifyTwoFactorCallback,
+    type VerifyTwoFactorCallback,
 } from "@ente/accounts/components/two-factor/VerifyForm";
 import { TwoFactorSetup } from "@ente/accounts/components/two-factor/setup";
-import { TwoFactorSecret } from "@ente/accounts/types/user";
+import type { TwoFactorSecret } from "@ente/accounts/types/user";
 import { APP_HOMES } from "@ente/shared/apps/constants";
-import { PageProps } from "@ente/shared/apps/types";
+import type { PageProps } from "@ente/shared/apps/types";
 import { VerticallyCentered } from "@ente/shared/components/Container";
 import LinkButton from "@ente/shared/components/LinkButton";
 import { encryptWithRecoveryKey } from "@ente/shared/crypto/helpers";

+ 2 - 2
web/packages/accounts/pages/two-factor/verify.tsx

@@ -1,6 +1,6 @@
 import { verifyTwoFactor } from "@ente/accounts/api/user";
 import VerifyTwoFactor, {
-    VerifyTwoFactorCallback,
+    type VerifyTwoFactorCallback,
 } from "@ente/accounts/components/two-factor/VerifyForm";
 import { PAGES } from "@ente/accounts/constants/pages";
 
@@ -13,7 +13,7 @@ import LinkButton from "@ente/shared/components/LinkButton";
 import { ApiError } from "@ente/shared/error";
 import InMemoryStore, { MS_KEYS } from "@ente/shared/storage/InMemoryStore";
 import { LS_KEYS, getData, setData } from "@ente/shared/storage/localStorage";
-import { User } from "@ente/shared/user/types";
+import type { User } from "@ente/shared/user/types";
 import { HttpStatusCode } from "axios";
 import { t } from "i18next";
 import { useRouter } from "next/router";

+ 8 - 9
web/packages/accounts/pages/verify.tsx

@@ -1,9 +1,5 @@
-import { t } from "i18next";
-import { useEffect, useState } from "react";
-import { Trans } from "react-i18next";
-
-import { UserVerificationResponse } from "@ente/accounts/types/user";
-import { PageProps } from "@ente/shared/apps/types";
+import type { UserVerificationResponse } from "@ente/accounts/types/user";
+import type { PageProps } from "@ente/shared/apps/types";
 import { VerticallyCentered } from "@ente/shared/components/Container";
 import EnteSpinner from "@ente/shared/components/EnteSpinner";
 import FormPaper from "@ente/shared/components/Form/FormPaper";
@@ -11,7 +7,7 @@ import FormPaperFooter from "@ente/shared/components/Form/FormPaper/Footer";
 import FormPaperTitle from "@ente/shared/components/Form/FormPaper/Title";
 import LinkButton from "@ente/shared/components/LinkButton";
 import SingleInputForm, {
-    SingleInputFormProps,
+    type SingleInputFormProps,
 } from "@ente/shared/components/SingleInputForm";
 import { ApiError } from "@ente/shared/error";
 import { getAccountsURL } from "@ente/shared/network/api";
@@ -23,14 +19,17 @@ import {
     setIsFirstLogin,
 } from "@ente/shared/storage/localStorage/helpers";
 import { clearKeys } from "@ente/shared/storage/sessionStorage";
-import { KeyAttributes, User } from "@ente/shared/user/types";
+import type { KeyAttributes, User } from "@ente/shared/user/types";
 import { Box, Typography } from "@mui/material";
 import { HttpStatusCode } from "axios";
+import { t } from "i18next";
 import { useRouter } from "next/router";
+import { useEffect, useState } from "react";
+import { Trans } from "react-i18next";
 import { putAttributes, sendOtt, verifyOtt } from "../api/user";
 import { PAGES } from "../constants/pages";
 import { configureSRP } from "../services/srp";
-import { SRPSetupAttributes } from "../types/srp";
+import type { SRPSetupAttributes } from "../types/srp";
 
 export default function VerifyPage({ appContext, appName }: PageProps) {
     const { logout } = appContext;

+ 2 - 2
web/packages/accounts/services/srp.ts

@@ -1,5 +1,5 @@
 import log from "@/next/log";
-import { UserVerificationResponse } from "@ente/accounts/types/user";
+import type { UserVerificationResponse } from "@ente/accounts/types/user";
 import ComlinkCryptoWorker from "@ente/shared/crypto";
 import { generateLoginSubKey } from "@ente/shared/crypto/helpers";
 import InMemoryStore, { MS_KEYS } from "@ente/shared/storage/InMemoryStore";
@@ -12,7 +12,7 @@ import {
     startSRPSetup,
     verifySRPSession,
 } from "../api/srp";
-import { SRPAttributes, SRPSetupAttributes } from "../types/srp";
+import type { SRPAttributes, SRPSetupAttributes } from "../types/srp";
 import { convertBase64ToBuffer, convertBufferToBase64 } from "../utils";
 
 const SRP_PARAMS = SRP.params["4096"];

+ 1 - 1
web/packages/accounts/types/srp.ts

@@ -1,4 +1,4 @@
-import {
+import type {
     UpdatedKey,
     UserVerificationResponse,
 } from "@ente/accounts/types/user";

+ 1 - 1
web/packages/accounts/types/user.ts

@@ -1,4 +1,4 @@
-import { KeyAttributes } from "@ente/shared/user/types";
+import type { KeyAttributes } from "@ente/shared/user/types";
 
 export interface UserVerificationResponse {
     id: number;

+ 2 - 2
web/packages/accounts/utils/srp.ts

@@ -1,8 +1,8 @@
 import ComlinkCryptoWorker from "@ente/shared/crypto";
 import { generateLoginSubKey } from "@ente/shared/crypto/helpers";
-import { KeyAttributes } from "@ente/shared/user/types";
+import type { KeyAttributes } from "@ente/shared/user/types";
 import { generateSRPSetupAttributes } from "../services/srp";
-import { SRPSetupAttributes } from "../types/srp";
+import type { SRPSetupAttributes } from "../types/srp";
 
 export async function generateKeyAndSRPAttributes(passphrase: string): Promise<{
     keyAttributes: KeyAttributes;

+ 1 - 1
web/packages/shared/apps/types.ts

@@ -1,5 +1,5 @@
 import { TwoFactorType } from "@ente/accounts/constants/twofactor";
-import { SetDialogBoxAttributesV2 } from "@ente/shared/components/DialogBoxV2/types";
+import type { SetDialogBoxAttributesV2 } from "@ente/shared/components/DialogBoxV2/types";
 import { APPS } from "./constants";
 
 export interface PageProps {

+ 1 - 1
web/packages/shared/components/CaptionedText.tsx

@@ -1,5 +1,5 @@
 import { VerticallyCenteredFlex } from "@ente/shared/components/Container";
-import { ButtonProps, Typography } from "@mui/material";
+import { Typography, type ButtonProps } from "@mui/material";
 
 interface Iprops {
     mainText: string;

+ 2 - 2
web/packages/shared/components/CodeBlock/CopyButton.tsx

@@ -2,9 +2,9 @@ import ContentCopyIcon from "@mui/icons-material/ContentCopy";
 import DoneIcon from "@mui/icons-material/Done";
 import {
     IconButton,
-    IconButtonProps,
-    SvgIconProps,
     Tooltip,
+    type IconButtonProps,
+    type SvgIconProps,
 } from "@mui/material";
 import { t } from "i18next";
 import { useState } from "react";

+ 1 - 1
web/packages/shared/components/CodeBlock/index.tsx

@@ -1,6 +1,6 @@
 import { FreeFlowText } from "@ente/shared/components/Container";
 import EnteSpinner from "@ente/shared/components/EnteSpinner";
-import { BoxProps } from "@mui/material";
+import type { BoxProps } from "@mui/material";
 import React from "react";
 import CopyButton from "./CopyButton";
 import { CodeWrapper, CopyButtonWrapper, Wrapper } from "./styledComponents";

+ 1 - 1
web/packages/shared/components/DialogBox/TitleWithCloseButton.tsx

@@ -1,10 +1,10 @@
 import { SpaceBetweenFlex } from "@ente/shared/components/Container";
 import CloseIcon from "@mui/icons-material/Close";
 import {
-    DialogProps,
     DialogTitle,
     IconButton,
     Typography,
+    type DialogProps,
 } from "@mui/material";
 
 const DialogTitleWithCloseButton = (props) => {

+ 2 - 2
web/packages/shared/components/DialogBoxV2/index.tsx

@@ -4,13 +4,13 @@ import {
     Box,
     Button,
     Dialog,
-    DialogProps,
     Stack,
     Typography,
+    type DialogProps,
 } from "@mui/material";
 import { t } from "i18next";
 import React, { useState } from "react";
-import { DialogBoxAttributesV2 } from "./types";
+import type { DialogBoxAttributesV2 } from "./types";
 
 type IProps = React.PropsWithChildren<
     Omit<DialogProps, "onClose"> & {

+ 1 - 1
web/packages/shared/components/DialogBoxV2/types.ts

@@ -1,4 +1,4 @@
-import { ButtonProps } from "@mui/material";
+import type { ButtonProps } from "@mui/material";
 
 export interface DialogBoxAttributesV2 {
     icon?: React.ReactNode;

+ 2 - 2
web/packages/shared/components/EnteButton.tsx

@@ -1,9 +1,9 @@
 import Done from "@mui/icons-material/Done";
 import {
     Button,
-    ButtonProps,
     CircularProgress,
-    PaletteColor,
+    type ButtonProps,
+    type PaletteColor,
 } from "@mui/material";
 
 interface Iprops extends ButtonProps {

+ 1 - 1
web/packages/shared/components/EnteSpinner.tsx

@@ -1,5 +1,5 @@
 import CircularProgress, {
-    CircularProgressProps,
+    type CircularProgressProps,
 } from "@mui/material/CircularProgress";
 
 export default function EnteSpinner(props: CircularProgressProps) {

+ 3 - 3
web/packages/shared/components/Form/FormPaper/Footer.tsx

@@ -1,8 +1,8 @@
 import { VerticallyCentered } from "@ente/shared/components/Container";
-import { BoxProps, Divider } from "@mui/material";
-import { FC } from "react";
+import { Divider, type BoxProps } from "@mui/material";
+import React from "react";
 
-const FormPaperFooter: FC<BoxProps> = ({ sx, style, ...props }) => {
+const FormPaperFooter: React.FC<BoxProps> = ({ sx, style, ...props }) => {
     return (
         <>
             <Divider />

+ 3 - 3
web/packages/shared/components/Form/FormPaper/Title.tsx

@@ -1,7 +1,7 @@
-import { Typography, TypographyProps } from "@mui/material";
-import { FC } from "react";
+import { Typography, type TypographyProps } from "@mui/material";
+import React from "react";
 
-const FormPaperTitle: FC<TypographyProps> = ({ sx, ...props }) => {
+const FormPaperTitle: React.FC<TypographyProps> = ({ sx, ...props }) => {
     return (
         <Typography variant="h2" sx={{ mb: 8, ...sx }} {...props}>
             {props.children}

+ 5 - 8
web/packages/shared/components/LinkButton.tsx

@@ -1,5 +1,5 @@
-import { ButtonProps, Link, LinkProps } from "@mui/material";
-import React, { FC } from "react";
+import { Link, type ButtonProps, type LinkProps } from "@mui/material";
+import React from "react";
 
 export type LinkButtonProps = React.PropsWithChildren<{
     onClick: () => void;
@@ -7,12 +7,9 @@ export type LinkButtonProps = React.PropsWithChildren<{
     style?: React.CSSProperties;
 }>;
 
-const LinkButton: FC<LinkProps<"button", { color?: ButtonProps["color"] }>> = ({
-    children,
-    sx,
-    color,
-    ...props
-}) => {
+const LinkButton: React.FC<
+    LinkProps<"button", { color?: ButtonProps["color"] }>
+> = ({ children, sx, color, ...props }) => {
     return (
         <Link
             component="button"

+ 1 - 1
web/packages/shared/components/Menu/EnteMenuItem.tsx

@@ -7,7 +7,7 @@ import {
     ButtonProps,
     MenuItem,
     Typography,
-    TypographyProps,
+    type TypographyProps,
 } from "@mui/material";
 import React from "react";
 import { CaptionedText } from "../CaptionedText";

+ 1 - 1
web/packages/shared/components/OverflowMenu/menu.tsx

@@ -1,4 +1,4 @@
-import { IconButton, PaperProps, styled } from "@mui/material";
+import { IconButton, styled, type PaperProps } from "@mui/material";
 import Menu from "@mui/material/Menu";
 import React, { useState } from "react";
 import { OverflowMenuContext } from "./context";

+ 1 - 1
web/packages/shared/components/OverflowMenu/option.tsx

@@ -1,5 +1,5 @@
 import { FluidContainer } from "@ente/shared/components/Container";
-import { Box, ButtonProps, MenuItem, Typography } from "@mui/material";
+import { Box, MenuItem, Typography, type ButtonProps } from "@mui/material";
 import React, { useContext } from "react";
 import { OverflowMenuContext } from "./context";
 

+ 1 - 1
web/packages/shared/components/RecoveryKey/index.tsx

@@ -1,4 +1,4 @@
-import { PageProps } from "@ente/shared/apps/types";
+import type { PageProps } from "@ente/shared/apps/types";
 import CodeBlock from "@ente/shared/components/CodeBlock";
 import DialogTitleWithCloseButton from "@ente/shared/components/DialogBox/TitleWithCloseButton";
 import { getRecoveryKey } from "@ente/shared/crypto/helpers";

+ 1 - 1
web/packages/shared/components/SingleInputForm.tsx

@@ -2,7 +2,7 @@ import { FlexWrapper } from "@ente/shared/components/Container";
 import ShowHidePassword from "@ente/shared/components/Form/ShowHidePassword";
 import { Button, FormHelperText } from "@mui/material";
 import TextField from "@mui/material/TextField";
-import { Formik, FormikHelpers, FormikState } from "formik";
+import { Formik, type FormikHelpers, type FormikState } from "formik";
 import { t } from "i18next";
 import React, { useMemo, useState } from "react";
 import * as Yup from "yup";

+ 3 - 3
web/packages/shared/components/SubmitButton.tsx

@@ -1,6 +1,6 @@
 import Done from "@mui/icons-material/Done";
-import { Button, ButtonProps, CircularProgress } from "@mui/material";
-import { FC } from "react";
+import { Button, CircularProgress, type ButtonProps } from "@mui/material";
+import React from "react";
 
 export interface SubmitButtonProps {
     loading: boolean;
@@ -9,7 +9,7 @@ export interface SubmitButtonProps {
     disabled?: boolean;
     success?: boolean;
 }
-const SubmitButton: FC<ButtonProps<"button", SubmitButtonProps>> = ({
+const SubmitButton: React.FC<ButtonProps<"button", SubmitButtonProps>> = ({
     loading,
     buttonText,
     disabled,

+ 4 - 4
web/packages/shared/components/VerifyMasterPasswordForm.tsx

@@ -1,13 +1,13 @@
 import log from "@/next/log";
-import { SRPAttributes } from "@ente/accounts/types/srp";
-import { ButtonProps, Input } from "@mui/material";
+import type { SRPAttributes } from "@ente/accounts/types/srp";
+import { Input, type ButtonProps } from "@mui/material";
 import { t } from "i18next";
 import SingleInputForm, {
-    SingleInputFormProps,
+    type SingleInputFormProps,
 } from "../components/SingleInputForm";
 import ComlinkCryptoWorker from "../crypto";
 import { CustomError } from "../error";
-import { KeyAttributes, User } from "../user/types";
+import type { KeyAttributes, User } from "../user/types";
 
 export interface VerifyMasterPasswordFormProps {
     user: User;

+ 1 - 1
web/packages/shared/crypto/helpers.ts

@@ -4,7 +4,7 @@ import { LS_KEYS, getData, setData } from "@ente/shared/storage/localStorage";
 import { getToken } from "@ente/shared/storage/localStorage/helpers";
 import { SESSION_KEYS, setKey } from "@ente/shared/storage/sessionStorage";
 import { getActualKey } from "@ente/shared/user";
-import { KeyAttributes } from "@ente/shared/user/types";
+import type { KeyAttributes } from "@ente/shared/user/types";
 import ComlinkCryptoWorker from ".";
 
 const LOGIN_SUB_KEY_LENGTH = 32;

+ 1 - 1
web/packages/shared/crypto/index.ts

@@ -1,5 +1,5 @@
 import { ComlinkWorker } from "@/next/worker/comlink-worker";
-import { Remote } from "comlink";
+import type { Remote } from "comlink";
 import { type DedicatedCryptoWorker } from "./internal/crypto.worker";
 
 class ComlinkCryptoWorker {

+ 1 - 1
web/packages/shared/crypto/internal/crypto.worker.ts

@@ -1,6 +1,6 @@
 import * as libsodium from "@ente/shared/crypto/internal/libsodium";
 import * as Comlink from "comlink";
-import { StateAddress } from "libsodium-wrappers";
+import type { StateAddress } from "libsodium-wrappers";
 
 const textDecoder = new TextDecoder();
 const textEncoder = new TextEncoder();

+ 2 - 2
web/packages/shared/crypto/internal/libsodium.ts

@@ -1,7 +1,7 @@
 import { CustomError } from "@ente/shared/error";
-import sodium, { StateAddress } from "libsodium-wrappers";
+import sodium, { type StateAddress } from "libsodium-wrappers";
 import { ENCRYPTION_CHUNK_SIZE } from "../constants";
-import { B64EncryptionResult } from "../types";
+import type { B64EncryptionResult } from "../types";
 
 export async function decryptChaChaOneShot(
     data: Uint8Array,

+ 2 - 1
web/packages/shared/hooks/useLocalState.tsx

@@ -1,5 +1,6 @@
 import { LS_KEYS, getData, setData } from "@ente/shared/storage/localStorage";
-import { Dispatch, SetStateAction, useEffect, useState } from "react";
+import type { Dispatch, SetStateAction } from "react";
+import { useEffect, useState } from "react";
 
 export function useLocalState<T>(
     key: LS_KEYS,

+ 1 - 1
web/packages/shared/network/HTTPService.ts

@@ -1,5 +1,5 @@
 import log from "@/next/log";
-import axios, { AxiosRequestConfig, AxiosResponse } from "axios";
+import axios, { type AxiosRequestConfig, type AxiosResponse } from "axios";
 import { ApiError, CustomError, isApiErrorResponse } from "../error";
 
 interface IHTTPHeaders {

+ 1 - 1
web/packages/shared/themes/colors/dark.ts

@@ -1,4 +1,4 @@
-import { FixedColors, ThemeColorsOptions } from "@mui/material";
+import type { FixedColors, ThemeColorsOptions } from "@mui/material";
 
 const darkThemeColors: Omit<ThemeColorsOptions, keyof FixedColors> = {
     background: {

+ 1 - 1
web/packages/shared/themes/colors/fixed.ts

@@ -1,5 +1,5 @@
 import { APPS } from "@ente/shared/apps/constants";
-import { FixedColors, ThemeColorsOptions } from "@mui/material";
+import type { FixedColors, ThemeColorsOptions } from "@mui/material";
 
 export const getFixesColors = (
     appName: APPS,

+ 1 - 1
web/packages/shared/themes/colors/index.ts

@@ -1,5 +1,5 @@
 import { APPS } from "@ente/shared/apps/constants";
-import { ThemeColorsOptions } from "@mui/material";
+import type { ThemeColorsOptions } from "@mui/material";
 import { THEME_COLOR } from "../constants";
 import darkThemeColors from "./dark";
 import { getFixesColors } from "./fixed";

+ 1 - 1
web/packages/shared/themes/colors/light.ts

@@ -1,4 +1,4 @@
-import { FixedColors, ThemeColorsOptions } from "@mui/material";
+import type { FixedColors, ThemeColorsOptions } from "@mui/material";
 
 const lightThemeColors: Omit<ThemeColorsOptions, keyof FixedColors> = {
     background: {

+ 3 - 3
web/packages/shared/themes/components.ts

@@ -1,6 +1,6 @@
-import { Shadow, ThemeColorsOptions } from "@mui/material";
-import { Components } from "@mui/material/styles/components";
-import { TypographyOptions } from "@mui/material/styles/createTypography";
+import type { Shadow, ThemeColorsOptions } from "@mui/material";
+import type { Components } from "@mui/material/styles/components";
+import type { TypographyOptions } from "@mui/material/styles/createTypography";
 
 export const getComponents = (
     colors: ThemeColorsOptions,

+ 1 - 1
web/packages/shared/themes/mui-theme.d.ts

@@ -1,4 +1,4 @@
-import { PaletteColor, PaletteColorOptions } from "@mui/material";
+import type { PaletteColor, PaletteColorOptions } from "@mui/material";
 import React from "react";
 
 declare module "@mui/material/styles" {

+ 1 - 1
web/packages/shared/themes/palette/index.tsx

@@ -1,4 +1,4 @@
-import { PaletteOptions, ThemeColorsOptions } from "@mui/material";
+import type { PaletteOptions, ThemeColorsOptions } from "@mui/material";
 import { THEME_COLOR } from "../constants";
 
 export const getPallette = (

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio