-
{
if (editing) {
setEditing(false)
@@ -195,15 +210,29 @@ export const LockedInput = ({
setEditing(true)
}
}}
- />
+ size="icon"
+ type="button"
+ variant="ghost"
+ >
+ {editing ? (
+
+ ) : (
+
+ )}
+
{editing && (
- {
setEditing(false)
onSubmit()
}}
- />
+ size="icon"
+ type="button"
+ variant="ghost"
+ >
+
+
)}
@@ -223,7 +252,15 @@ export const EditableInput = ({
{!editing && (
-
onEdit()} />
+
)}
{children}
diff --git a/ui/src/design-system/components/icon/assets/images.svg b/ui/src/design-system/components/navigation/assets/captures.svg
similarity index 100%
rename from ui/src/design-system/components/icon/assets/images.svg
rename to ui/src/design-system/components/navigation/assets/captures.svg
diff --git a/ui/src/design-system/components/icon/assets/deployments.svg b/ui/src/design-system/components/navigation/assets/deployments.svg
similarity index 100%
rename from ui/src/design-system/components/icon/assets/deployments.svg
rename to ui/src/design-system/components/navigation/assets/deployments.svg
diff --git a/ui/src/design-system/components/icon/assets/batch-id.svg b/ui/src/design-system/components/navigation/assets/jobs.svg
similarity index 100%
rename from ui/src/design-system/components/icon/assets/batch-id.svg
rename to ui/src/design-system/components/navigation/assets/jobs.svg
diff --git a/ui/src/design-system/components/icon/assets/occurrences.svg b/ui/src/design-system/components/navigation/assets/occurrences.svg
similarity index 100%
rename from ui/src/design-system/components/icon/assets/occurrences.svg
rename to ui/src/design-system/components/navigation/assets/occurrences.svg
diff --git a/ui/src/design-system/components/icon/assets/overview.svg b/ui/src/design-system/components/navigation/assets/project.svg
similarity index 100%
rename from ui/src/design-system/components/icon/assets/overview.svg
rename to ui/src/design-system/components/navigation/assets/project.svg
diff --git a/ui/src/design-system/components/icon/assets/sessions.svg b/ui/src/design-system/components/navigation/assets/sessions.svg
similarity index 100%
rename from ui/src/design-system/components/icon/assets/sessions.svg
rename to ui/src/design-system/components/navigation/assets/sessions.svg
diff --git a/ui/src/design-system/components/icon/assets/species.svg b/ui/src/design-system/components/navigation/assets/taxa.svg
similarity index 100%
rename from ui/src/design-system/components/icon/assets/species.svg
rename to ui/src/design-system/components/navigation/assets/taxa.svg
diff --git a/ui/src/design-system/components/navigation/navigation-bar-icon.tsx b/ui/src/design-system/components/navigation/navigation-bar-icon.tsx
new file mode 100644
index 000000000..a73ac9306
--- /dev/null
+++ b/ui/src/design-system/components/navigation/navigation-bar-icon.tsx
@@ -0,0 +1,44 @@
+import classNames from 'classnames'
+import { FunctionComponent } from 'react'
+import Captures from './assets/captures.svg?react'
+import Deployments from './assets/deployments.svg?react'
+import Jobs from './assets/jobs.svg?react'
+import Occurrences from './assets/occurrences.svg?react'
+import Project from './assets/project.svg?react'
+import Sessions from './assets/sessions.svg?react'
+import Taxa from './assets/taxa.svg?react'
+import styles from './navigation-bar.module.scss'
+
+const ICON_MAP: { [id: string]: FunctionComponent } = {
+ captures: Captures,
+ deployments: Deployments,
+ jobs: Jobs,
+ occurrences: Occurrences,
+ project: Project,
+ sessions: Sessions,
+ species: Taxa,
+}
+
+export const NavigationBarIcon = ({
+ isActive,
+ id,
+}: {
+ isActive?: boolean
+ id: string
+}) => {
+ const Icon = ICON_MAP[id]
+
+ if (!Icon) {
+ return null
+ }
+
+ return (
+
+
+
+ )
+}
diff --git a/ui/src/design-system/components/navigation/navigation-bar.module.scss b/ui/src/design-system/components/navigation/navigation-bar.module.scss
index 0449f03bd..84e0cbedc 100644
--- a/ui/src/design-system/components/navigation/navigation-bar.module.scss
+++ b/ui/src/design-system/components/navigation/navigation-bar.module.scss
@@ -84,6 +84,18 @@
transition: left 400ms ease, width 200ms ease;
}
+.icon {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ transition: transform 400ms ease;
+ color: $color-primary-1-600;
+
+ &.active {
+ color: $color-success-700;
+ }
+}
+
@media only screen and (max-width: $small-screen-breakpoint) {
.topContent {
margin-bottom: 0;
diff --git a/ui/src/design-system/components/navigation/navigation-bar.tsx b/ui/src/design-system/components/navigation/navigation-bar.tsx
index c0d13acdb..7b64ca25f 100644
--- a/ui/src/design-system/components/navigation/navigation-bar.tsx
+++ b/ui/src/design-system/components/navigation/navigation-bar.tsx
@@ -1,13 +1,12 @@
import classNames from 'classnames'
import { useEffect, useState } from 'react'
-import { Icon, IconTheme, IconType } from '../icon/icon'
+import { NavigationBarIcon } from './navigation-bar-icon'
import styles from './navigation-bar.module.scss'
interface NavigationBarProps {
activeItemId: string
items: {
count?: number
- icon?: IconType
id: string
path?: string
title: string
@@ -59,12 +58,7 @@ export const NavigationBar = ({
}}
>
- {item.icon && (
-
- )}
+
{item.count !== undefined && (
{item.count.toLocaleString()}
diff --git a/ui/src/design-system/components/page-header/page-header.tsx b/ui/src/design-system/components/page-header/page-header.tsx
index 5d0c82271..c22cb8e8d 100644
--- a/ui/src/design-system/components/page-header/page-header.tsx
+++ b/ui/src/design-system/components/page-header/page-header.tsx
@@ -33,7 +33,11 @@ export const PageHeader = ({
{title}
{tooltip ? (
-
diff --git a/ui/src/design-system/components/pagination-bar/page-button/page-button.tsx b/ui/src/design-system/components/pagination-bar/page-button/page-button.tsx
index 071e82b56..2495d6525 100644
--- a/ui/src/design-system/components/pagination-bar/page-button/page-button.tsx
+++ b/ui/src/design-system/components/pagination-bar/page-button/page-button.tsx
@@ -1,5 +1,4 @@
-import { Button, ButtonTheme } from '../../button/button'
-import styles from './page-button.module.scss'
+import { Button } from 'nova-ui-kit'
interface PageButtonProps {
page: number
@@ -9,10 +8,12 @@ interface PageButtonProps {
export const PageButton = ({ page, active, onClick }: PageButtonProps) => (
+ size="small"
+ variant="ghost"
+ >
+ {(page + 1).toLocaleString()}
+
)
diff --git a/ui/src/design-system/components/pagination-bar/pagination-bar.tsx b/ui/src/design-system/components/pagination-bar/pagination-bar.tsx
index 57e0ed320..e86a81d08 100644
--- a/ui/src/design-system/components/pagination-bar/pagination-bar.tsx
+++ b/ui/src/design-system/components/pagination-bar/pagination-bar.tsx
@@ -1,5 +1,6 @@
-import { IconButton, IconButtonShape } from '../icon-button/icon-button'
-import { IconType } from '../icon/icon'
+import { ChevronLeft, ChevronRight } from 'lucide-react'
+import { Button } from 'nova-ui-kit'
+import { STRING, translate } from 'utils/language'
import { getPageWindow } from './getPageWindow'
import { InfoLabel } from './info-label/info-label'
import { PageButton } from './page-button/page-button'
@@ -38,12 +39,15 @@ export const PaginationBar = ({
-
setPage(currentPage - 1)}
- />
+ size="icon"
+ variant="outline"
+ >
+
+
{!pageWindow.includes(firstPage) && (
<>
@@ -70,12 +74,15 @@ export const PaginationBar = ({
>
)}
- = lastPage}
- icon={IconType.ToggleRight}
- shape={IconButtonShape.RoundLarge}
onClick={() => setPage(currentPage + 1)}
- />
+ size="icon"
+ variant="outline"
+ >
+
+
)
diff --git a/ui/src/design-system/components/popover/popover.tsx b/ui/src/design-system/components/popover/popover.tsx
index 0c0acfc2f..f906397ba 100644
--- a/ui/src/design-system/components/popover/popover.tsx
+++ b/ui/src/design-system/components/popover/popover.tsx
@@ -1,6 +1,7 @@
import * as Popover from '@radix-ui/react-popover'
-import { CSSProperties, ReactNode } from 'react'
-import { Icon, IconType } from '../icon/icon'
+import classNames from 'classnames'
+import { XIcon } from 'lucide-react'
+import { ReactNode } from 'react'
import styles from './popover.module.scss'
const Root = ({
@@ -30,28 +31,27 @@ const Content = ({
align,
ariaCloselabel,
children,
+ className,
container,
disableOutsideClose,
hideClose,
side,
- style,
}: {
align?: 'start' | 'center' | 'end'
ariaCloselabel: string
children: ReactNode
+ className?: string
container?: HTMLElement
disableOutsideClose?: boolean
hideClose?: boolean
side?: 'top' | 'right' | 'bottom' | 'left'
- style?: CSSProperties
}) => (
{
if (disableOutsideClose) {
@@ -65,7 +65,7 @@ const Content = ({
className={styles.popoverClose}
aria-label={ariaCloselabel}
>
-
+
)}
diff --git a/ui/src/design-system/components/status-info/status-info.tsx b/ui/src/design-system/components/status-info/status-info.tsx
new file mode 100644
index 000000000..d39610640
--- /dev/null
+++ b/ui/src/design-system/components/status-info/status-info.tsx
@@ -0,0 +1,27 @@
+import { BasicTooltip } from 'design-system/components/tooltip/basic-tooltip'
+import { CircleCheckIcon, CircleQuestionMark, Loader2Icon } from 'lucide-react'
+import { Status } from './types'
+
+export const StatusInfo = ({
+ status,
+ tooltip,
+}: {
+ status: Status
+ tooltip?: string
+}) => (
+
+
+
+)
+
+const StatusIcon = ({ status }: { status: Status }) => {
+ if (status === Status.Connected) {
+ return
+ }
+
+ if (status === Status.NotConnected) {
+ return
+ }
+
+ return
+}
diff --git a/ui/src/pages/project/processing-services/status-info/types.ts b/ui/src/design-system/components/status-info/types.ts
similarity index 100%
rename from ui/src/pages/project/processing-services/status-info/types.ts
rename to ui/src/design-system/components/status-info/types.ts
diff --git a/ui/src/design-system/components/table/basic-table-cell/basic-table-cell.module.scss b/ui/src/design-system/components/table/basic-table-cell/basic-table-cell.module.scss
index cff085c5d..6376c19da 100644
--- a/ui/src/design-system/components/table/basic-table-cell/basic-table-cell.module.scss
+++ b/ui/src/design-system/components/table/basic-table-cell/basic-table-cell.module.scss
@@ -8,6 +8,7 @@
display: block;
@include paragraph-medium();
color: $color-neutral-700;
+ word-break: break-word;
}
.details {
diff --git a/ui/src/design-system/components/table/column-settings/column-settings.tsx b/ui/src/design-system/components/table/column-settings/column-settings.tsx
index 3256879c1..dac4c1030 100644
--- a/ui/src/design-system/components/table/column-settings/column-settings.tsx
+++ b/ui/src/design-system/components/table/column-settings/column-settings.tsx
@@ -1,6 +1,6 @@
import { Checkbox } from 'design-system/components/checkbox/checkbox'
import { BasicTooltip } from 'design-system/components/tooltip/basic-tooltip'
-import { SettingsIcon } from 'lucide-react'
+import { Columns3CogIcon } from 'lucide-react'
import { Button, Popover } from 'nova-ui-kit'
import { STRING, translate } from 'utils/language'
import styles from './column-settings.module.scss'
@@ -17,10 +17,15 @@ export const ColumnSettings = ({
onColumnSettingsChange,
}: ColumnSettingsProps) => (
-
+
-
-
+
+
diff --git a/ui/src/design-system/components/table/date-table-cell/date-table-cell.tsx b/ui/src/design-system/components/table/date-table-cell/date-table-cell.tsx
new file mode 100644
index 000000000..beabc5014
--- /dev/null
+++ b/ui/src/design-system/components/table/date-table-cell/date-table-cell.tsx
@@ -0,0 +1,20 @@
+import { getFormatedDateString } from 'utils/date/getFormatedDateString/getFormatedDateString'
+import { getFormatedTimeString } from 'utils/date/getFormatedTimeString/getFormatedTimeString'
+import { BasicTableCell } from '../basic-table-cell/basic-table-cell'
+
+interface DateTableCellProps {
+ date?: Date
+}
+
+export const DateTableCell = ({ date }: DateTableCellProps) => {
+ if (!date) {
+ return
+ }
+
+ return (
+
+ )
+}
diff --git a/ui/src/design-system/components/table/table-header/table-header.tsx b/ui/src/design-system/components/table/table-header/table-header.tsx
index 7540df7ee..b9556703e 100644
--- a/ui/src/design-system/components/table/table-header/table-header.tsx
+++ b/ui/src/design-system/components/table/table-header/table-header.tsx
@@ -1,7 +1,6 @@
import classNames from 'classnames'
-import { Icon, IconTheme, IconType } from 'design-system/components/icon/icon'
import { BasicTooltip } from 'design-system/components/tooltip/basic-tooltip'
-import { InfoIcon } from 'lucide-react'
+import { ArrowDownIcon, InfoIcon } from 'lucide-react'
import { TableColumn, TableSortSettings } from '../types'
import styles from './table-header.module.scss'
@@ -112,7 +111,7 @@ const SortableTableHeader = ({
sortActive && sortSettings?.order === 'asc',
})}
>
-
+
) : null}
diff --git a/ui/src/design-system/components/tabs/tabs.tsx b/ui/src/design-system/components/tabs/tabs.tsx
index a174f85df..d8b3f971d 100644
--- a/ui/src/design-system/components/tabs/tabs.tsx
+++ b/ui/src/design-system/components/tabs/tabs.tsx
@@ -1,6 +1,5 @@
import * as Tabs from '@radix-ui/react-tabs'
import { ReactNode } from 'react'
-import { Icon, IconType } from '../icon/icon'
import styles from './tabs.module.scss'
const Root = ({
@@ -37,17 +36,8 @@ const List = ({
)
-const Trigger = ({
- value,
- label,
- icon,
-}: {
- value: string
- label: string
- icon?: IconType
-}) => (
+const Trigger = ({ value, label }: { value: string; label: string }) => (
- {icon && }
{label}
)
diff --git a/ui/src/design-system/components/toggle-group/toggle-group.tsx b/ui/src/design-system/components/toggle-group/toggle-group.tsx
index 932dd5da3..28efe9027 100644
--- a/ui/src/design-system/components/toggle-group/toggle-group.tsx
+++ b/ui/src/design-system/components/toggle-group/toggle-group.tsx
@@ -1,12 +1,13 @@
import * as _ToggleGroup from '@radix-ui/react-toggle-group'
import classNames from 'classnames'
-import { Icon, IconTheme, IconType } from '../icon/icon'
import { BasicTooltip } from '../tooltip/basic-tooltip'
import styles from './toggle-group.module.scss'
interface ToggleGroupProps {
items: {
- icon: IconType
+ Icon: React.ComponentType<{
+ className?: string
+ }>
value: string
label: string
}[]
@@ -38,9 +39,8 @@ export const ToggleGroup = ({
[styles.last]: index === items.length - 1,
})}
>
-
diff --git a/ui/src/design-system/components/wizard/status-bullet/status-bullet.tsx b/ui/src/design-system/components/wizard/status-bullet/status-bullet.tsx
index 9fb65f3c3..e442280f7 100644
--- a/ui/src/design-system/components/wizard/status-bullet/status-bullet.tsx
+++ b/ui/src/design-system/components/wizard/status-bullet/status-bullet.tsx
@@ -1,5 +1,4 @@
import classNames from 'classnames'
-import { Icon, IconTheme, IconType } from 'design-system/components/icon/icon'
import styles from './status-bullet.module.scss'
export enum StatusBulletTheme {
@@ -9,15 +8,17 @@ export enum StatusBulletTheme {
}
interface StatusBulletProps {
- icon?: IconType
- value?: number
+ Icon?: React.ComponentType<{
+ className?: string
+ }>
theme?: StatusBulletTheme
+ value?: number
}
export const StatusBullet = ({
- icon,
theme = StatusBulletTheme.Default,
value,
+ Icon,
}: StatusBulletProps) => (
- {icon ? : null}
+ {Icon ? : null}
{value ? {value} : null}
)
diff --git a/ui/src/design-system/components/wizard/wizard.tsx b/ui/src/design-system/components/wizard/wizard.tsx
index 5cc99ed79..ae7ec310d 100644
--- a/ui/src/design-system/components/wizard/wizard.tsx
+++ b/ui/src/design-system/components/wizard/wizard.tsx
@@ -1,7 +1,7 @@
import * as Accordion from '@radix-ui/react-accordion'
import classNames from 'classnames'
+import { ChevronDownIcon } from 'lucide-react'
import { ReactNode, forwardRef } from 'react'
-import { Icon, IconType } from '../icon/icon'
import styles from './wizard.module.scss'
const Root = ({
@@ -64,7 +64,7 @@ const Trigger = forwardRef<
{title}
{showToggle && (
-
+
)}
diff --git a/ui/src/pages/auth/login.tsx b/ui/src/pages/auth/login.tsx
index 17e69ebc3..3710f2d10 100644
--- a/ui/src/pages/auth/login.tsx
+++ b/ui/src/pages/auth/login.tsx
@@ -2,12 +2,11 @@ import classNames from 'classnames'
import { FormField } from 'components/form/form-field'
import { FormConfig } from 'components/form/types'
import { useLogin } from 'data-services/hooks/auth/useLogin'
-import { Icon, IconTheme, IconType } from 'design-system/components/icon/icon'
-import { Loader2Icon } from 'lucide-react'
+import { ExternalLinkIcon, Loader2Icon } from 'lucide-react'
import { Button, buttonVariants } from 'nova-ui-kit'
import { useForm } from 'react-hook-form'
import { Link, useLocation, useNavigate } from 'react-router-dom'
-import { APP_ROUTES, LANDING_PAGE_WAITLIST_URL } from 'utils/constants'
+import { APP_ROUTES, LANDING_PAGE_CONTACT_URL } from 'utils/constants'
import { STRING, translate } from 'utils/language'
import { useFormError } from 'utils/useFormError'
import { usePageBreadcrumb } from 'utils/usePageBreadcrumb'
@@ -40,7 +39,6 @@ export const Login = () => {
onSuccess: () => navigate(state?.to ?? APP_ROUTES.HOME),
})
const {
- getValues,
control,
handleSubmit,
setError: setFieldError,
@@ -83,18 +81,6 @@ export const Login = () => {
)}
+
+ {translate(STRING.FORGOT_PASSWORD)} Please reach out and we will help
+ you.
+
>
)
}
diff --git a/ui/src/pages/auth/reset-password.tsx b/ui/src/pages/auth/reset-password.tsx
index e1ea4944f..37aa7d85e 100644
--- a/ui/src/pages/auth/reset-password.tsx
+++ b/ui/src/pages/auth/reset-password.tsx
@@ -2,7 +2,8 @@ import classNames from 'classnames'
import { FormField } from 'components/form/form-field'
import { FormConfig } from 'components/form/types'
import { useResetPassword } from 'data-services/hooks/auth/useResetPassword'
-import { Button, ButtonTheme } from 'design-system/components/button/button'
+import { Loader2Icon } from 'lucide-react'
+import { Button } from 'nova-ui-kit'
import { useState } from 'react'
import { useForm } from 'react-hook-form'
import { Link, useLocation } from 'react-router-dom'
@@ -68,12 +69,12 @@ export const ResetPassword = () => {
config={config}
control={control}
/>
-
+
+ {translate(STRING.SEND_INSTRUCTIONS)}
+ {isLoading ? (
+
+ ) : null}
+
>
)}
{email && (
diff --git a/ui/src/pages/auth/sign-up.tsx b/ui/src/pages/auth/sign-up.tsx
index a249695c9..5de07dbd4 100644
--- a/ui/src/pages/auth/sign-up.tsx
+++ b/ui/src/pages/auth/sign-up.tsx
@@ -2,11 +2,11 @@ import classNames from 'classnames'
import { FormField } from 'components/form/form-field'
import { FormConfig } from 'components/form/types'
import { useSignUp } from 'data-services/hooks/auth/useSignUp'
-import { Button, ButtonTheme } from 'design-system/components/button/button'
-import { Icon, IconTheme, IconType } from 'design-system/components/icon/icon'
+import { CheckIcon, Loader2Icon } from 'lucide-react'
+import { Button, buttonVariants } from 'nova-ui-kit'
import { useState } from 'react'
import { useForm } from 'react-hook-form'
-import { Link, useNavigate } from 'react-router-dom'
+import { Link } from 'react-router-dom'
import { APP_ROUTES } from 'utils/constants'
import { STRING, translate } from 'utils/language'
import { useFormError } from 'utils/useFormError'
@@ -36,7 +36,6 @@ const config: FormConfig = {
}
export const SignUp = () => {
- const navigate = useNavigate()
const [signedUpEmail, setSignedUpEmail] = useState
()
const {
control,
@@ -77,12 +76,10 @@ export const SignUp = () => {
config={config}
control={control}
/>
-
+
+ {translate(STRING.SIGN_UP)}
+ {isLoading ? : null}
+
{errorMessage && (
{errorMessage}
@@ -93,11 +90,7 @@ export const SignUp = () => {
{isSuccess ? (
<>
-
+
{translate(STRING.MESSAGE_SIGNED_UP)}
>
) : (
@@ -113,12 +106,12 @@ export const SignUp = () => {
{translate(STRING.OR).toUpperCase()}
- navigate(APP_ROUTES.HOME)}
- />
+
+ {translate(STRING.VIEW_PUBLIC_PROJECTS)}
+
>
)
diff --git a/ui/src/pages/captures/captures.tsx b/ui/src/pages/captures/captures.tsx
index 474af8e69..cef7983f7 100644
--- a/ui/src/pages/captures/captures.tsx
+++ b/ui/src/pages/captures/captures.tsx
@@ -1,7 +1,6 @@
import { FilterControl } from 'components/filtering/filter-control'
import { FilterSection } from 'components/filtering/filter-section'
import { useCaptures } from 'data-services/hooks/captures/useCaptures'
-import { IconType } from 'design-system/components/icon/icon'
import { PageFooter } from 'design-system/components/page-footer/page-footer'
import { PageHeader } from 'design-system/components/page-header/page-header'
import { PaginationBar } from 'design-system/components/pagination-bar/pagination-bar'
@@ -9,6 +8,7 @@ import { SortControl } from 'design-system/components/sort-control'
import { ColumnSettings } from 'design-system/components/table/column-settings/column-settings'
import { Table } from 'design-system/components/table/table/table'
import { ToggleGroup } from 'design-system/components/toggle-group/toggle-group'
+import { Grid2X2Icon, TableIcon } from 'lucide-react'
import { useState } from 'react'
import { useParams } from 'react-router-dom'
import { DOCS_LINKS } from 'utils/constants'
@@ -78,12 +78,12 @@ export const Captures = () => {
{
value: 'table',
label: translate(STRING.TAB_ITEM_TABLE),
- icon: IconType.TableView,
+ Icon: TableIcon,
},
{
value: 'gallery',
label: translate(STRING.TAB_ITEM_GALLERY),
- icon: IconType.GalleryView,
+ Icon: Grid2X2Icon,
},
]}
value={selectedView}
diff --git a/ui/src/pages/captures/upload-images-dialog/select-images-section/select-images-section.tsx b/ui/src/pages/captures/upload-images-dialog/select-images-section/select-images-section.tsx
index 79990570b..7245360a9 100644
--- a/ui/src/pages/captures/upload-images-dialog/select-images-section/select-images-section.tsx
+++ b/ui/src/pages/captures/upload-images-dialog/select-images-section/select-images-section.tsx
@@ -1,12 +1,8 @@
import { FormSection } from 'components/form/layout/layout'
import { FileInput } from 'design-system/components/file-input/file-input'
import { FileInputAccept } from 'design-system/components/file-input/types'
-import {
- IconButton,
- IconButtonShape,
- IconButtonTheme,
-} from 'design-system/components/icon-button/icon-button'
-import { IconType } from 'design-system/components/icon/icon'
+import { PlusIcon, XIcon } from 'lucide-react'
+import { Button } from 'nova-ui-kit'
import { ReactNode } from 'react'
import { API_MAX_UPLOAD_SIZE } from 'utils/constants'
import { STRING, translate } from 'utils/language'
@@ -50,15 +46,18 @@ export const SelectImagesSection = ({