feat: logo (#1356)
@ -1,5 +1,5 @@
|
||||
'use client'
|
||||
import type { FC } from 'react'
|
||||
import type { FC, ReactNode } from 'react'
|
||||
import React, { useState } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { useContext } from 'use-context-selector'
|
||||
@ -44,7 +44,7 @@ export type IAnswerProps = {
|
||||
onSubmitAnnotation?: SubmitAnnotationFunc
|
||||
displayScene: DisplayScene
|
||||
isResponsing?: boolean
|
||||
answerIconClassName?: string
|
||||
answerIcon?: ReactNode
|
||||
thoughts?: ThoughtItem[]
|
||||
citation?: CitationItem[]
|
||||
isThinking?: boolean
|
||||
@ -53,7 +53,7 @@ export type IAnswerProps = {
|
||||
isShowCitationHitInfo?: boolean
|
||||
}
|
||||
// The component needs to maintain its own state to control whether to display input component
|
||||
const Answer: FC<IAnswerProps> = ({ item, feedbackDisabled = false, isHideFeedbackEdit = false, onFeedback, onSubmitAnnotation, displayScene = 'web', isResponsing, answerIconClassName, thoughts, citation, isThinking, dataSets, isShowCitation, isShowCitationHitInfo = false }) => {
|
||||
const Answer: FC<IAnswerProps> = ({ item, feedbackDisabled = false, isHideFeedbackEdit = false, onFeedback, onSubmitAnnotation, displayScene = 'web', isResponsing, answerIcon, thoughts, citation, isThinking, dataSets, isShowCitation, isShowCitationHitInfo = false }) => {
|
||||
const { id, content, more, feedback, adminFeedback, annotation: initAnnotation } = item
|
||||
const [showEdit, setShowEdit] = useState(false)
|
||||
const [loading, setLoading] = useState(false)
|
||||
@ -168,13 +168,17 @@ const Answer: FC<IAnswerProps> = ({ item, feedbackDisabled = false, isHideFeedba
|
||||
return (
|
||||
<div key={id}>
|
||||
<div className='flex items-start'>
|
||||
<div className={`${s.answerIcon} ${answerIconClassName} w-10 h-10 shrink-0`}>
|
||||
{isResponsing
|
||||
&& <div className={s.typeingIcon}>
|
||||
<LoadingAnim type='avatar' />
|
||||
{
|
||||
answerIcon || (
|
||||
<div className={`${s.answerIcon} w-10 h-10 shrink-0`}>
|
||||
{isResponsing
|
||||
&& <div className={s.typeingIcon}>
|
||||
<LoadingAnim type='avatar' />
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
<div className={cn(s.answerWrapWrap, 'chat-answer-container')}>
|
||||
<div className={`${s.answerWrap} ${showEdit ? 'w-full' : ''}`}>
|
||||
<div className={`${s.answer} relative text-sm text-gray-900`}>
|
||||
|
@ -1,5 +1,5 @@
|
||||
'use client'
|
||||
import type { FC } from 'react'
|
||||
import type { FC, ReactNode } from 'react'
|
||||
import React, { useEffect, useLayoutEffect, useRef, useState } from 'react'
|
||||
import { useContext } from 'use-context-selector'
|
||||
import cn from 'classnames'
|
||||
@ -49,7 +49,7 @@ export type IChatProps = {
|
||||
suggestionList?: string[]
|
||||
isShowSpeechToText?: boolean
|
||||
isShowCitation?: boolean
|
||||
answerIconClassName?: string
|
||||
answerIcon?: ReactNode
|
||||
isShowConfigElem?: boolean
|
||||
dataSets?: DataSet[]
|
||||
isShowCitationHitInfo?: boolean
|
||||
@ -78,7 +78,7 @@ const Chat: FC<IChatProps> = ({
|
||||
suggestionList,
|
||||
isShowSpeechToText,
|
||||
isShowCitation,
|
||||
answerIconClassName,
|
||||
answerIcon,
|
||||
isShowConfigElem,
|
||||
dataSets,
|
||||
isShowCitationHitInfo,
|
||||
@ -179,7 +179,7 @@ const Chat: FC<IChatProps> = ({
|
||||
onSubmitAnnotation={onSubmitAnnotation}
|
||||
displayScene={displayScene ?? 'web'}
|
||||
isResponsing={isResponsing && isLast}
|
||||
answerIconClassName={answerIconClassName}
|
||||
answerIcon={answerIcon}
|
||||
thoughts={thoughts}
|
||||
citation={citation}
|
||||
isThinking={isThinking}
|
||||
|
18
web/app/components/base/logo/logo-embeded-chat-avatar.tsx
Normal file
@ -0,0 +1,18 @@
|
||||
import type { FC } from 'react'
|
||||
|
||||
type LogoEmbededChatAvatarProps = {
|
||||
className?: string
|
||||
}
|
||||
const LogoEmbededChatAvatar: FC<LogoEmbededChatAvatarProps> = ({
|
||||
className,
|
||||
}) => {
|
||||
return (
|
||||
<img
|
||||
src='/logo/logo-embeded-chat-avatar.png'
|
||||
className={`block w-10 h-10 ${className}`}
|
||||
alt='logo'
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
export default LogoEmbededChatAvatar
|
18
web/app/components/base/logo/logo-embeded-chat-header.tsx
Normal file
@ -0,0 +1,18 @@
|
||||
import type { FC } from 'react'
|
||||
|
||||
type LogoEmbededChatHeaderProps = {
|
||||
className?: string
|
||||
}
|
||||
const LogoEmbededChatHeader: FC<LogoEmbededChatHeaderProps> = ({
|
||||
className,
|
||||
}) => {
|
||||
return (
|
||||
<img
|
||||
src='/logo/logo-embeded-chat-header.png'
|
||||
className={`block w-auto h-6 ${className}`}
|
||||
alt='logo'
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
export default LogoEmbededChatHeader
|
18
web/app/components/base/logo/logo-site.tsx
Normal file
@ -0,0 +1,18 @@
|
||||
import type { FC } from 'react'
|
||||
|
||||
type LogoSiteProps = {
|
||||
className?: string
|
||||
}
|
||||
const LogoSite: FC<LogoSiteProps> = ({
|
||||
className,
|
||||
}) => {
|
||||
return (
|
||||
<img
|
||||
src='/logo/logo-site.png'
|
||||
className={`block w-auto h-10 ${className}`}
|
||||
alt='logo'
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
export default LogoSite
|
@ -1,16 +1,3 @@
|
||||
.logo-icon {
|
||||
background: url(../assets/logo-icon.png) center center no-repeat;
|
||||
background-size: 32px;
|
||||
box-shadow: 0px 2px 4px -2px rgba(0, 0, 0, 0.05), 0px 4px 6px -1px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.logo-text {
|
||||
width: 74.09px;
|
||||
height: 15.32px;
|
||||
background: url(../assets/logo-text.svg) center center no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.modal {
|
||||
max-width: 480px !important;
|
||||
width: 480px !important;
|
||||
|
@ -6,10 +6,10 @@ import { useContext } from 'use-context-selector'
|
||||
import s from './index.module.css'
|
||||
import Modal from '@/app/components/base/modal'
|
||||
import { XClose } from '@/app/components/base/icons/src/vender/line/general'
|
||||
import { Dify } from '@/app/components/base/icons/src/public/common'
|
||||
import type { LangGeniusVersionResponse } from '@/models/common'
|
||||
import { IS_CE_EDITION } from '@/config'
|
||||
import I18n from '@/context/i18n'
|
||||
import LogoSite from '@/app/components/base/logo/logo-site'
|
||||
|
||||
type IAccountSettingProps = {
|
||||
langeniusVersionInfo: LangGeniusVersionResponse
|
||||
@ -33,16 +33,12 @@ export default function AccountAbout({
|
||||
onClose={() => { }}
|
||||
className={s.modal}
|
||||
>
|
||||
<div className='relative'>
|
||||
<div className='relative pt-4'>
|
||||
<div className='absolute -top-2 -right-4 flex justify-center items-center w-8 h-8 cursor-pointer' onClick={onCancel}>
|
||||
<XClose className='w-4 h-4 text-gray-500' />
|
||||
</div>
|
||||
<div>
|
||||
<div className={classNames(
|
||||
s['logo-icon'],
|
||||
'mx-auto mb-3 w-12 h-12 bg-white rounded-xl border-[0.5px] border-gray-200',
|
||||
)} />
|
||||
<Dify className='mx-auto mb-2' />
|
||||
<LogoSite className='mx-auto mb-2' />
|
||||
<div className='mb-3 text-center text-xs font-normal text-gray-500'>Version {langeniusVersionInfo?.current_version}</div>
|
||||
<div className='mb-4 text-center text-xs font-normal text-gray-700'>
|
||||
<div>© 2023 LangGenius, Inc., Contributors.</div>
|
||||
|
@ -104,15 +104,19 @@ export default function AppSelector() {
|
||||
<ArrowUpRight className='hidden w-[14px] h-[14px] text-gray-500 group-hover:flex' />
|
||||
</Link>
|
||||
</Menu.Item>
|
||||
<Menu.Item>
|
||||
<div className={classNames(itemClassName, 'justify-between')} onClick={() => setAboutVisible(true)}>
|
||||
<div>{t('common.userProfile.about')}</div>
|
||||
<div className='flex items-center'>
|
||||
<div className='mr-2 text-xs font-normal text-gray-500'>{langeniusVersionInfo.current_version}</div>
|
||||
<Indicator color={langeniusVersionInfo.current_version === langeniusVersionInfo.latest_version ? 'green' : 'orange'} />
|
||||
</div>
|
||||
</div>
|
||||
</Menu.Item>
|
||||
{
|
||||
document?.body?.getAttribute('data-public-site-about') !== 'hide' && (
|
||||
<Menu.Item>
|
||||
<div className={classNames(itemClassName, 'justify-between')} onClick={() => setAboutVisible(true)}>
|
||||
<div>{t('common.userProfile.about')}</div>
|
||||
<div className='flex items-center'>
|
||||
<div className='mr-2 text-xs font-normal text-gray-500'>{langeniusVersionInfo.current_version}</div>
|
||||
<Indicator color={langeniusVersionInfo.current_version === langeniusVersionInfo.latest_version ? 'green' : 'orange'} />
|
||||
</div>
|
||||
</div>
|
||||
</Menu.Item>
|
||||
)
|
||||
}
|
||||
</div>
|
||||
<Menu.Item>
|
||||
<div className='p-1' onClick={() => handleLogout()}>
|
||||
|
@ -1,9 +0,0 @@
|
||||
.logo-icon {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
background: #ffffff url(../../assets/logo-icon.png) center center no-repeat;
|
||||
background-size: contain;
|
||||
box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.05);
|
||||
border-radius: 8px;
|
||||
border: 0.5px solid rgba(0, 0, 0, 0.05);
|
||||
}
|
@ -1,6 +1,5 @@
|
||||
'use client'
|
||||
import { useState } from 'react'
|
||||
import cn from 'classnames'
|
||||
import useSWR from 'swr'
|
||||
import dayjs from 'dayjs'
|
||||
import 'dayjs/locale/zh-cn'
|
||||
@ -8,7 +7,6 @@ import relativeTime from 'dayjs/plugin/relativeTime'
|
||||
import { useContext } from 'use-context-selector'
|
||||
import { UserPlusIcon } from '@heroicons/react/24/outline'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import s from './index.module.css'
|
||||
import InviteModal from './invite-modal'
|
||||
import InvitedModal from './invited-modal'
|
||||
import Operation from './operation'
|
||||
@ -40,7 +38,6 @@ const MembersPage = () => {
|
||||
<>
|
||||
<div>
|
||||
<div className='flex items-center mb-4 p-3 bg-gray-50 rounded-2xl'>
|
||||
<div className={cn(s['logo-icon'], 'shrink-0')}></div>
|
||||
<div className='grow mx-2'>
|
||||
<div className='text-sm font-medium text-gray-900'>{currentWorkspace?.name}</div>
|
||||
<div className='text-xs text-gray-500'>{t('common.userProfile.workspace')}</div>
|
||||
|
Before Width: | Height: | Size: 5.8 KiB |
@ -1,6 +0,0 @@
|
||||
<svg width="50" height="26" viewBox="0 0 50 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M6.61796 2.064C8.37796 2.064 9.92196 2.408 11.25 3.096C12.594 3.784 13.626 4.768 14.346 6.048C15.082 7.312 15.45 8.784 15.45 10.464C15.45 12.144 15.082 13.616 14.346 14.88C13.626 16.128 12.594 17.096 11.25 17.784C9.92196 18.472 8.37796 18.816 6.61796 18.816H0.761963V2.064H6.61796ZM6.49796 15.96C8.25796 15.96 9.61796 15.48 10.578 14.52C11.538 13.56 12.018 12.208 12.018 10.464C12.018 8.72 11.538 7.36 10.578 6.384C9.61796 5.392 8.25796 4.896 6.49796 4.896H4.12196V15.96H6.49796Z" fill="#1D2939"/>
|
||||
<path d="M20.8691 3.936C20.2771 3.936 19.7811 3.752 19.3811 3.384C18.9971 3 18.8051 2.528 18.8051 1.968C18.8051 1.408 18.9971 0.944 19.3811 0.576C19.7811 0.192 20.2771 0 20.8691 0C21.4611 0 21.9491 0.192 22.3331 0.576C22.7331 0.944 22.9331 1.408 22.9331 1.968C22.9331 2.528 22.7331 3 22.3331 3.384C21.9491 3.752 21.4611 3.936 20.8691 3.936ZM22.5251 5.52V18.816H19.1651V5.52H22.5251Z" fill="#1D2939"/>
|
||||
<path d="M33.1408 8.28H30.8128V18.816H27.4048V8.28H25.8928V5.52H27.4048V4.848C27.4048 3.216 27.8688 2.016 28.7968 1.248C29.7248 0.48 31.1248 0.12 32.9968 0.168001V3C32.1808 2.984 31.6128 3.12 31.2928 3.408C30.9728 3.696 30.8128 4.216 30.8128 4.968V5.52H33.1408V8.28Z" fill="#1D2939"/>
|
||||
<path d="M49.2382 5.52L41.0062 25.104H37.4302L40.3102 18.48L34.9822 5.52H38.7502L42.1822 14.808L45.6622 5.52H49.2382Z" fill="#1D2939"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 8.9 KiB |
@ -8,13 +8,6 @@
|
||||
border-top: 4px solid #06AED4;
|
||||
}
|
||||
|
||||
.logo {
|
||||
width: 96px;
|
||||
height: 40px;
|
||||
background: url(~@/app/components/share/chat/welcome/icons/logo.png) center center no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.alpha {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
|
@ -8,9 +8,9 @@ import EnvNav from './env-nav'
|
||||
import ExploreNav from './explore-nav'
|
||||
import GithubStar from './github-star'
|
||||
import PluginNav from './plugin-nav'
|
||||
import s from './index.module.css'
|
||||
import { WorkspaceProvider } from '@/context/workspace-context'
|
||||
import { useAppContext } from '@/context/app-context'
|
||||
import LogoSite from '@/app/components/base/logo/logo-site'
|
||||
|
||||
const navClassName = `
|
||||
flex items-center relative mr-3 px-3 h-8 rounded-xl
|
||||
@ -24,9 +24,8 @@ const Header = () => {
|
||||
<>
|
||||
<div className='flex items-center'>
|
||||
<Link href="/apps" className='flex items-center mr-4'>
|
||||
<div className={s.logo} />
|
||||
<LogoSite />
|
||||
</Link>
|
||||
{/* @ts-expect-error Async Server Component */}
|
||||
<GithubStar />
|
||||
</div>
|
||||
<div className='flex items-center'>
|
||||
|
Before Width: | Height: | Size: 8.9 KiB |
@ -9,6 +9,7 @@ import {
|
||||
import s from './style.module.css'
|
||||
import type { SiteInfo } from '@/models/share'
|
||||
import Button from '@/app/components/base/button'
|
||||
import LogoSite from '@/app/components/base/logo/logo-site'
|
||||
|
||||
export const AppInfo: FC<{ siteInfo: SiteInfo }> = ({ siteInfo }) => {
|
||||
return (
|
||||
@ -69,5 +70,5 @@ export const EditBtn = ({ className, onClick }: { className?: string; onClick: (
|
||||
}
|
||||
|
||||
export const FootLogo = () => (
|
||||
<div className={s.logo} />
|
||||
<LogoSite className='!h-5' />
|
||||
)
|
||||
|
@ -19,11 +19,4 @@
|
||||
|
||||
.customBtn {
|
||||
width: 136px;
|
||||
}
|
||||
|
||||
.logo {
|
||||
width: 48px;
|
||||
height: 20px;
|
||||
background: url(./icons/logo.png) center center no-repeat;
|
||||
background-size: contain;
|
||||
}
|
Before Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 52 KiB |
@ -26,6 +26,8 @@ import { replaceStringWithValues } from '@/app/components/app/configuration/prom
|
||||
import { userInputsFormToPromptVariables } from '@/utils/model-config'
|
||||
import type { InstalledApp } from '@/models/explore'
|
||||
import { AlertTriangle } from '@/app/components/base/icons/src/vender/solid/alertsAndFeedback'
|
||||
import LogoHeader from '@/app/components/base/logo/logo-embeded-chat-header'
|
||||
import LogoAvatar from '@/app/components/base/logo/logo-embeded-chat-avatar'
|
||||
|
||||
export type IMainProps = {
|
||||
isInstalledApp?: boolean
|
||||
@ -488,7 +490,7 @@ const Main: FC<IMainProps> = ({
|
||||
}
|
||||
|
||||
const difyIcon = (
|
||||
<div className={s.difyHeader}></div>
|
||||
<LogoHeader />
|
||||
)
|
||||
|
||||
if (appUnavailable)
|
||||
@ -567,7 +569,7 @@ const Main: FC<IMainProps> = ({
|
||||
suggestionList={suggestQuestions}
|
||||
displayScene='web'
|
||||
isShowSpeechToText={speechToTextConfig?.enabled}
|
||||
answerIconClassName={s.difyIcon}
|
||||
answerIcon={<LogoAvatar className='relative shrink-0' />}
|
||||
/>
|
||||
</div>
|
||||
</div>)
|
||||
|
@ -1,14 +1,3 @@
|
||||
.installedApp {
|
||||
height: calc(100vh - 74px);
|
||||
}
|
||||
|
||||
.difyIcon {
|
||||
background-image: url(./icons/dify.svg);
|
||||
}
|
||||
|
||||
.difyHeader {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
background: url(./icons/dify-header.svg) center center no-repeat;
|
||||
background-size: contain;
|
||||
}
|
Before Width: | Height: | Size: 3.8 KiB |
@ -9,6 +9,7 @@ import {
|
||||
import s from './style.module.css'
|
||||
import type { SiteInfo } from '@/models/share'
|
||||
import Button from '@/app/components/base/button'
|
||||
import LogoSite from '@/app/components/base/logo/logo-site'
|
||||
|
||||
export const AppInfo: FC<{ siteInfo: SiteInfo }> = ({ siteInfo }) => {
|
||||
const { t } = useTranslation()
|
||||
@ -70,5 +71,5 @@ export const EditBtn = ({ className, onClick }: { className?: string; onClick: (
|
||||
}
|
||||
|
||||
export const FootLogo = () => (
|
||||
<div className={s.logo} />
|
||||
<LogoSite className='!h-5' />
|
||||
)
|
||||
|
@ -19,11 +19,4 @@
|
||||
|
||||
.customBtn {
|
||||
width: 136px;
|
||||
}
|
||||
|
||||
.logo {
|
||||
width: 48px;
|
||||
height: 20px;
|
||||
background: url(./icons/logo.png) center center no-repeat;
|
||||
background-size: contain;
|
||||
}
|
@ -26,6 +26,7 @@ const LocaleLayout = ({
|
||||
data-public-edition={process.env.NEXT_PUBLIC_EDITION}
|
||||
data-public-sentry-dsn={process.env.NEXT_PUBLIC_SENTRY_DSN}
|
||||
data-public-maintenance-notice={process.env.NEXT_PUBLIC_MAINTENANCE_NOTICE}
|
||||
data-public-site-about={process.env.NEXT_PUBLIC_SITE_ABOUT}
|
||||
>
|
||||
<BrowerInitor>
|
||||
<SentryInitor>
|
||||
|
@ -1,10 +1,10 @@
|
||||
'use client'
|
||||
import React from 'react'
|
||||
import { useContext } from 'use-context-selector'
|
||||
import style from './page.module.css'
|
||||
import Select, { LOCALES } from '@/app/components/base/select/locale'
|
||||
import { type Locale } from '@/i18n'
|
||||
import I18n from '@/context/i18n'
|
||||
import LogoSite from '@/app/components/base/logo/logo-site'
|
||||
|
||||
const Header = () => {
|
||||
const { locale, setLocaleOnClient } = useContext(I18n)
|
||||
@ -13,7 +13,7 @@ const Header = () => {
|
||||
localStorage.removeItem('console_token')
|
||||
|
||||
return <div className='flex items-center justify-between p-6 w-full'>
|
||||
<div className={style.logo}></div>
|
||||
<LogoSite />
|
||||
<Select
|
||||
value={locale}
|
||||
items={LOCALES}
|
||||
|
@ -1,5 +0,0 @@
|
||||
<svg width="29" height="28" viewBox="0 0 29 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M29 14C29 21.732 22.5081 28 14.5 28C12.5713 28 10.7305 27.6364 9.04718 26.9763C8.72501 26.85 8.56393 26.7869 8.43371 26.7587C8.30634 26.7311 8.21208 26.721 8.08155 26.721C7.9481 26.721 7.80275 26.7444 7.51205 26.7912L1.77989 27.7136C1.17963 27.8102 0.879495 27.8585 0.662464 27.7686C0.472511 27.6899 0.321142 27.5438 0.23967 27.3604C0.146582 27.1508 0.196605 26.861 0.296649 26.2815L1.25201 20.747C1.30046 20.4663 1.32468 20.326 1.32467 20.1971C1.32465 20.0711 1.31421 19.9801 1.28566 19.8571C1.25647 19.7314 1.19105 19.5759 1.06021 19.2648C0.376575 17.6395 0 15.8622 0 14C0 6.26801 6.49187 0 14.5 0C22.5081 0 29 6.26801 29 14Z" fill="#155EEF"/>
|
||||
<path opacity="0.72" fill-rule="evenodd" clip-rule="evenodd" d="M24.8346 23.8202L13.2186 23.8202C12.8708 23.8202 12.548 23.6395 12.3662 23.3431L7.06478 14.702C7.01652 14.6234 6.99097 14.5329 6.99097 14.4406V11.7363L13.3252 21.9651C13.4619 22.1858 13.7031 22.3202 13.9628 22.3202H26.1627C25.7565 22.8501 25.3125 23.3513 24.8346 23.8202Z" fill="white"/>
|
||||
<path d="M27.9351 19.2764C28.6217 17.6481 29 15.867 29 14.0005C29 13.7095 28.9908 13.4206 28.9727 13.1341H18.7973C18.6231 13.1341 18.4615 13.0435 18.3707 12.8949L14.2258 6.11473C14.1986 6.07015 14.1501 6.04297 14.0979 6.04297H7.43681C7.24156 6.04297 7.12167 6.25678 7.22351 6.42336L14.7884 18.798C14.9701 19.0952 15.2933 19.2764 15.6416 19.2764L27.9351 19.2764Z" fill="white"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.5 KiB |
@ -1,14 +0,0 @@
|
||||
<svg width="76" height="16" viewBox="0 0 76 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect x="0.956787" y="13.8203" width="20.9866" height="1.5" fill="#1C64F2"/>
|
||||
<rect x="32.1108" y="13.8203" width="42.8303" height="1.5" fill="#1C64F2"/>
|
||||
<path d="M3.47679 9.522H6.23079V11.646H0.956787V0H3.47679V9.522Z" fill="#1C64F2"/>
|
||||
<path d="M11.7995 2.862H13.8335V11.646H11.7995V10.998C11.4275 11.55 10.8095 11.826 9.94554 11.826H9.56754C8.07954 11.826 7.33554 11.034 7.33554 9.45V5.058C7.33554 3.474 8.07954 2.682 9.56754 2.682H9.94554C10.8095 2.682 11.4275 2.958 11.7995 3.51V2.862ZM11.4215 9.738V4.77C11.4215 4.674 11.3855 4.59 11.3135 4.518C11.2535 4.446 11.1755 4.41 11.0795 4.41H10.0895C9.99354 4.41 9.90954 4.446 9.83754 4.518C9.77754 4.59 9.74754 4.674 9.74754 4.77V9.738C9.74754 9.834 9.77754 9.918 9.83754 9.99C9.90954 10.062 9.99354 10.098 10.0895 10.098H11.0795C11.1755 10.098 11.2535 10.062 11.3135 9.99C11.3855 9.918 11.4215 9.834 11.4215 9.738Z" fill="#1C64F2"/>
|
||||
<path d="M17.8862 11.646H15.4742V2.862H17.6702V3.312C18.0422 2.892 18.6062 2.682 19.3622 2.682H19.7402C21.2282 2.682 21.9722 3.474 21.9722 5.058V11.646H19.5602V4.77C19.5602 4.674 19.5242 4.59 19.4522 4.518C19.3922 4.446 19.3142 4.41 19.2182 4.41H18.2282C18.1322 4.41 18.0482 4.446 17.9762 4.518C17.9162 4.59 17.8862 4.674 17.8862 4.77V11.646Z" fill="#1C64F2"/>
|
||||
<path d="M30.1109 2.862V12.312C30.1109 13.896 29.3669 14.688 27.8789 14.688H26.0789C24.5909 14.688 23.8469 13.896 23.8469 12.312V12.024H26.0249V12.6C26.0249 12.696 26.0549 12.78 26.1149 12.852C26.1869 12.924 26.2709 12.96 26.3669 12.96H27.3569C27.4529 12.96 27.5309 12.924 27.5909 12.852C27.6629 12.78 27.6989 12.696 27.6989 12.6V10.8C27.3269 11.088 26.8349 11.232 26.2229 11.232H25.8449C24.3569 11.232 23.6129 10.44 23.6129 8.856V5.058C23.6129 3.474 24.3569 2.682 25.8449 2.682H26.2229C27.0869 2.682 27.7049 2.958 28.0769 3.51V2.862H30.1109ZM27.6989 9.144V4.77C27.6989 4.674 27.6629 4.59 27.5909 4.518C27.5309 4.446 27.4529 4.41 27.3569 4.41H26.3669C26.2709 4.41 26.1869 4.446 26.1149 4.518C26.0549 4.59 26.0249 4.674 26.0249 4.77V9.144C26.0249 9.24 26.0549 9.324 26.1149 9.396C26.1869 9.468 26.2709 9.504 26.3669 9.504H27.3569C27.4529 9.504 27.5309 9.468 27.5909 9.396C27.6629 9.324 27.6989 9.24 27.6989 9.144Z" fill="#1C64F2"/>
|
||||
<path d="M35.5128 7.524V5.67H38.8428V9.954C38.8428 11.538 38.0988 12.33 36.6108 12.33H34.3428C32.8548 12.33 32.1108 11.538 32.1108 9.954V2.7C32.1108 1.116 32.8548 0.324 34.3428 0.324H36.6108C38.0988 0.324 38.8428 1.116 38.8428 2.7V3.798H36.4488V2.394C36.4488 2.298 36.4128 2.214 36.3408 2.142C36.2808 2.07 36.2028 2.034 36.1068 2.034H34.9728C34.8768 2.034 34.7928 2.07 34.7208 2.142C34.6608 2.214 34.6308 2.298 34.6308 2.394V10.242C34.6308 10.338 34.6608 10.422 34.7208 10.494C34.7928 10.566 34.8768 10.602 34.9728 10.602H36.1068C36.2028 10.602 36.2808 10.566 36.3408 10.494C36.4128 10.422 36.4488 10.338 36.4488 10.242V7.524H35.5128Z" fill="#111928"/>
|
||||
<path d="M44.4079 3.186C45.8959 3.186 46.6399 3.978 46.6399 5.562V8.406H42.5539V10.242C42.5539 10.338 42.5839 10.422 42.6439 10.494C42.7159 10.566 42.7999 10.602 42.8959 10.602H43.8859C43.9819 10.602 44.0599 10.566 44.1199 10.494C44.1919 10.422 44.2279 10.338 44.2279 10.242V9.27H46.6399V9.954C46.6399 11.538 45.8959 12.33 44.4079 12.33H42.3739C40.8859 12.33 40.1419 11.538 40.1419 9.954V5.562C40.1419 3.978 40.8859 3.186 42.3739 3.186H44.4079ZM42.5539 6.822H44.2279V5.202C44.2279 5.106 44.1919 5.022 44.1199 4.95C44.0599 4.878 43.9819 4.842 43.8859 4.842H42.8959C42.7999 4.842 42.7159 4.878 42.6439 4.95C42.5839 5.022 42.5539 5.106 42.5539 5.202V6.822Z" fill="#111928"/>
|
||||
<path d="M50.3762 12.15H47.9642V3.366H50.1602V3.816C50.5322 3.396 51.0962 3.186 51.8522 3.186H52.2302C53.7182 3.186 54.4622 3.978 54.4622 5.562V12.15H52.0502V5.274C52.0502 5.178 52.0142 5.094 51.9422 5.022C51.8822 4.95 51.8042 4.914 51.7082 4.914H50.7182C50.6222 4.914 50.5382 4.95 50.4662 5.022C50.4062 5.094 50.3762 5.178 50.3762 5.274V12.15Z" fill="#111928"/>
|
||||
<path d="M58.5509 2.268C58.2989 2.52 57.9929 2.646 57.6329 2.646C57.2729 2.646 56.9609 2.52 56.6969 2.268C56.4329 2.004 56.3009 1.692 56.3009 1.332C56.3009 0.96 56.4329 0.647999 56.6969 0.395999C56.9609 0.131999 57.2729 0 57.6329 0C57.9929 0 58.2989 0.131999 58.5509 0.395999C58.8149 0.647999 58.9469 0.96 58.9469 1.332C58.9469 1.704 58.8149 2.016 58.5509 2.268ZM56.4269 12.15V3.366H58.8389V12.15H56.4269Z" fill="#111928"/>
|
||||
<path d="M64.6186 3.366H67.0306V12.15H64.8346V11.7C64.4626 12.12 63.8986 12.33 63.1426 12.33H62.7646C61.2766 12.33 60.5326 11.538 60.5326 9.954V3.366H62.9446V10.242C62.9446 10.338 62.9746 10.422 63.0346 10.494C63.1066 10.566 63.1906 10.602 63.2866 10.602H64.2766C64.3726 10.602 64.4506 10.566 64.5106 10.494C64.5826 10.422 64.6186 10.338 64.6186 10.242V3.366Z" fill="#111928"/>
|
||||
<path d="M72.8112 6.642C74.2992 6.642 75.0432 7.434 75.0432 9.018V9.954C75.0432 11.538 74.2992 12.33 72.8112 12.33H70.8132C69.3252 12.33 68.5812 11.538 68.5812 9.954V9.396H70.8132V10.188C70.8132 10.284 70.8432 10.368 70.9032 10.44C70.9752 10.512 71.0592 10.548 71.1552 10.548H72.6312C72.7272 10.548 72.8052 10.512 72.8652 10.44C72.9372 10.368 72.9732 10.284 72.9732 10.188V9.108C72.9732 9.012 72.9372 8.928 72.8652 8.856C72.8052 8.784 72.7272 8.748 72.6312 8.748H70.7772C69.2892 8.748 68.5452 7.956 68.5452 6.372V5.562C68.5452 3.978 69.2892 3.186 70.7772 3.186H72.6672C74.1552 3.186 74.8992 3.978 74.8992 5.562V5.886H72.6672V5.328C72.6672 5.232 72.6312 5.148 72.5592 5.076C72.4992 5.004 72.4212 4.968 72.3252 4.968H70.9572C70.8612 4.968 70.7772 5.004 70.7052 5.076C70.6452 5.148 70.6152 5.232 70.6152 5.328V6.282C70.6152 6.378 70.6452 6.462 70.7052 6.534C70.7772 6.606 70.8612 6.642 70.9572 6.642H72.8112Z" fill="#111928"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 5.6 KiB |
@ -6,13 +6,6 @@
|
||||
background: center/contain url('./assets/google.svg');
|
||||
}
|
||||
|
||||
.logo {
|
||||
width: 96px;
|
||||
height: 40px;
|
||||
background: url(~@/app/components/share/chat/welcome/icons/logo.png) center center no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.background {
|
||||
background-image: url('./assets/background.png');
|
||||
background-size: cover;
|
||||
|
@ -18,5 +18,6 @@ else
|
||||
fi
|
||||
|
||||
export NEXT_PUBLIC_SENTRY_DSN=${SENTRY_DSN}
|
||||
export NEXT_PUBLIC_SITE_ABOUT=${SITE_ABOUT}
|
||||
|
||||
node ./server.js
|
BIN
web/public/logo/logo-embeded-chat-avatar.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
BIN
web/public/logo/logo-embeded-chat-header.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
web/public/logo/logo-site.png
Normal file
After Width: | Height: | Size: 5.7 KiB |