@scbt-ecom/ui 0.42.3 → 0.42.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{CustomLink-DRb2l2sC.js → CustomLink-BrBUFe53.js} +714 -718
- package/dist/CustomLink-BrBUFe53.js.map +1 -0
- package/dist/shared/ui/index.d.ts +0 -1
- package/dist/shared/ui/phoneView/helpers.d.ts +1 -0
- package/dist/ui.js +142 -167
- package/dist/ui.js.map +1 -1
- package/dist/widget.js +349 -392
- package/dist/widget.js.map +1 -1
- package/dist/widgets/footer/Footer.d.ts +5 -6
- package/dist/widgets/footer/model/types.d.ts +15 -6
- package/dist/widgets/footer/ui/Copyright.d.ts +1 -2
- package/dist/{shared/ui/ligal → widgets/footer/ui}/Ligal.d.ts +1 -2
- package/dist/widgets/footer/ui/NavLinks.d.ts +3 -3
- package/dist/widgets/longBanner/LongBanner.d.ts +7 -6
- package/dist/widgets/longBanner/model/types.d.ts +17 -9
- package/dist/widgets/longBanner/ui/TextList.d.ts +3 -3
- package/dist/widgets/longBanner/ui/Title.d.ts +2 -2
- package/package.json +1 -1
- package/dist/CustomLink-DRb2l2sC.js.map +0 -1
- package/dist/shared/ui/ligal/index.d.ts +0 -1
- package/dist/widgets/footer/model/defaultValues.d.ts +0 -5
package/dist/widget.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget.js","sources":["../lib/widgets/benefit/ui/BenefitItem.tsx","../lib/widgets/benefit/Benefit.tsx","../lib/widgets/header/model/helpers.tsx","../lib/widgets/header/Header.tsx","../lib/widgets/banner/ui/BannerButtonsGroup.tsx","../lib/widgets/banner/ui/banners/BannerImageFull.tsx","../lib/widgets/banner/ui/banners/BannerWithSeparateImg.tsx","../lib/widgets/banner/Banner.tsx","../lib/widgets/advantages/Advantages.tsx","../lib/widgets/footer/model/defaultValues.tsx","../lib/widgets/footer/ui/SocialLinks.tsx","../lib/widgets/footer/ui/PhonesBlock.tsx","../lib/widgets/footer/ui/NavLinks.tsx","../lib/widgets/footer/ui/Copyright.tsx","../lib/widgets/footer/ui/FooterLogo.tsx","../lib/widgets/footer/ui/SiteMap.tsx","../lib/widgets/footer/Footer.tsx","../lib/widgets/stepper/ui/SingleStep.tsx","../lib/widgets/stepper/Stepper.tsx","../lib/widgets/longBanner/model/cva.ts","../lib/widgets/longBanner/ui/TextItem.tsx","../lib/widgets/longBanner/ui/Title.tsx","../lib/widgets/longBanner/ui/TextList.tsx","../lib/widgets/longBanner/LongBanner.tsx","../lib/widgets/authProvider/model/helpers.ts","../lib/widgets/authProvider/ui/ui/AuthWrapper.tsx","../lib/widgets/authProvider/ui/ui/EsiaLogo.tsx","../lib/widgets/authProvider/ui/ui/Links.tsx","../lib/widgets/authProvider/ui/MobileId.tsx","../lib/widgets/authProvider/ui/Esia.tsx","../lib/widgets/authProvider/AuthProvider.tsx","../lib/widgets/interLinking/ui/LinksList.tsx","../lib/widgets/interLinking/ui/ColumnGroup.tsx","../lib/widgets/interLinking/ui/Column.tsx","../lib/widgets/interLinking/InterLinking.tsx"],"sourcesContent":["import { type ReactElement } from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { useDevice } from '$/shared/hooks'\nimport { Button, Heading } from '$/shared/ui'\nimport { cn, scrollToElement } from '$/shared/utils'\nimport { type AllowedBannerBackgroundColor } from '$/widgets/benefit/model'\n\nexport type BenefitItemClasses = {\n root?: string\n button?: string\n wrapper?: string\n textContainer?: string\n description?: string\n img?: string\n imgContainer?: string\n title?: string\n}\n\nconst itemConfig = cva(\n 'flex flex-col justify-between overflow-hidden rounded-md bg-color-blue-grey-100 py-6 desktop:flex-row desktop:px-0 desktop:py-0',\n {\n variants: {\n intent: {\n twoCards: '',\n threeCards: 'desktop:first:col-span-full',\n fourCards: 'desktop:first:col-span-2 desktop:last:col-span-2'\n }\n }\n }\n)\n\nexport interface BenefitItemProps extends VariantProps<typeof itemConfig> {\n title: string\n description: string | ReactElement\n img?: string\n mobileImg?: boolean\n classes?: BenefitItemClasses\n withButton?: boolean\n buttonText?: string\n cardColor?: AllowedBannerBackgroundColor\n}\n\nexport const BenefitItem = ({\n description,\n title,\n img,\n mobileImg,\n classes,\n withButton,\n buttonText,\n intent,\n cardColor\n}: BenefitItemProps) => {\n const { isDesktop } = useDevice()\n\n const button = (\n <>\n <Button\n intent='primary'\n className={cn('desktop:w-[200px]', classes?.button)}\n onClick={() => scrollToElement('personal_form')}\n size='lg'\n >\n {buttonText}\n </Button>\n </>\n )\n\n return (\n <li\n key={img}\n className={cn(itemConfig({ intent }), { 'pb-0': mobileImg }, { 'pb-12': !mobileImg }, cardColor, classes?.root)}\n >\n <div className={cn('flex flex-col items-start justify-between px-4 desktop:px-8 desktop:py-8', classes?.wrapper)}>\n <div className={cn('flex flex-col gap-4', classes?.textContainer)}>\n <Heading as='h4' className={cn('desktop:desk-title-bold-s', classes?.title)}>\n {title}\n </Heading>\n <p className={cn('mob-body-regular-l text-icon-blue-grey-800 desktop:desk-body-regular-l', classes?.description)}>\n {description}\n </p>\n </div>\n {withButton && isDesktop && button}\n </div>\n\n {(mobileImg || isDesktop) && img && (\n <div className={cn('flex w-full justify-end', classes?.imgContainer)}>\n <img className={cn('h-[246px] object-cover', classes?.img)} src={img} alt={title} />\n </div>\n )}\n </li>\n )\n}\n","'use client'\n\nimport { type ReactElement } from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { BenefitItem, type BenefitItemClasses, type BenefitItemProps } from './ui/BenefitItem'\nimport { Heading, ResponsiveContainer } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type BenefitClasses = {\n root?: string\n container?: string\n item?: BenefitItemClasses\n heading?: string\n grid?: string\n}\n\nconst gridConfig = cva('grid gap-4', {\n variants: {\n intent: {\n twoCards: 'grid-cols-1 mobile:grid-rows-[repeat(2,400px)] desktop:grid-cols-2',\n threeCards: 'grid-cols-1 desktop:grid-cols-2',\n fourCards: 'grid-cols-1 mobile:grid-rows-[400px,1fr,1fr,400px] desktop:grid-cols-3'\n }\n }\n})\n\nexport interface BenefitProps extends VariantProps<typeof gridConfig> {\n heading: string | ReactElement\n cards: BenefitItemProps[]\n classes?: BenefitClasses\n}\n\nexport const Benefit = ({ heading, cards, classes, intent }: BenefitProps) => {\n return (\n <section className={cn('pb-20', classes?.root)}>\n <ResponsiveContainer className={classes?.container}>\n <Heading className={cn('mb-8', classes?.heading)} as='h2'>\n {heading}\n </Heading>\n <ul className={cn(gridConfig({ intent }), classes?.grid)}>\n {cards?.map((card) => <BenefitItem intent={intent} key={card.img} classes={classes?.item} {...card} />)}\n </ul>\n </ResponsiveContainer>\n </section>\n )\n}\n","import type { HeaderProps } from './types'\nimport { Button, PhoneView } from '$/shared/ui'\n\nexport const renderContentVariant = (config: HeaderProps['config']) => {\n const { variant, details } = config\n switch (variant) {\n case 'withButton':\n return (\n <Button intent='secondary' size='sm' {...details}>\n {details?.children || 'Оформить заявку'}\n </Button>\n )\n case 'withPhone':\n return <PhoneView {...details} />\n default:\n return null\n }\n}\n","import { renderContentVariant } from './model/helpers'\nimport type { HeaderProps } from './model/types'\nimport { brandLogos, ResponsiveContainer } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport const Header = ({ logoPath = '/', logoType = 'main', config, classes }: HeaderProps) => {\n return (\n <header className={cn('flex h-[64px] items-center justify-center bg-color-white desktop:h-[72px]', classes?.header)}>\n <ResponsiveContainer className={cn(classes?.container)}>\n <div className={cn('flex items-center justify-between gap-5', classes?.wrapper)}>\n <a\n href={logoPath}\n aria-label='logo'\n target='_blank'\n rel='noreferrer'\n className={cn(\n 'flex items-center justify-center [&_svg]:w-[132px] desktop:[&_svg]:h-[32px] desktop:[&_svg]:w-[192px]',\n classes?.logo\n )}\n >\n {brandLogos[logoType]}\n </a>\n {renderContentVariant(config)}\n </div>\n </ResponsiveContainer>\n </header>\n )\n}\n","import { type ButtonsConfig } from '../model'\nimport { Button } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport interface BannerButtonsGroupClasses {\n group?: string\n primary?: string\n secondary?: string\n}\ninterface BannerButtonsGroupProps {\n buttonsConfig: ButtonsConfig\n classes?: Partial<BannerButtonsGroupClasses>\n className?: string\n}\n\nexport const BannerButtonsGroup = ({ buttonsConfig, classes, className }: BannerButtonsGroupProps) => {\n const withSecondaryBtn = buttonsConfig?.secondary && buttonsConfig.secondary.children\n\n return (\n <div\n data-id='banner-buttons-group'\n className={cn(\n 'grid-buttons-apply absolute bottom-6 left-1/2 flex w-full -translate-x-1/2 flex-col justify-self-center px-4 desktop:static desktop:left-auto desktop:max-w-full desktop:translate-x-0 desktop:flex-row desktop:justify-normal desktop:px-0',\n { 'flex items-center gap-4': withSecondaryBtn },\n classes?.group,\n className\n )}\n >\n <Button intent='primary' {...buttonsConfig.primary} isFull className={cn('desktop:max-w-[216px]', classes?.primary)}>\n {buttonsConfig.primary.children}\n </Button>\n {withSecondaryBtn && (\n <Button\n intent='secondary'\n {...buttonsConfig?.secondary}\n isFull\n className={cn('desktop:max-w-[216px]', classes?.secondary)}\n >\n {buttonsConfig?.secondary?.children}\n </Button>\n )}\n </div>\n )\n}\n","'use client'\n\nimport { BannerButtonsGroup } from '../BannerButtonsGroup'\nimport { useDevice } from '$/shared/hooks'\nimport { Heading, ResponsiveContainer } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\nimport { Advantages, type BannerProps } from '$/widgets'\n\nexport const BannerImageFull = ({\n headTitle,\n subtitle,\n buttonsConfig,\n advantagesConfig,\n classes,\n img,\n imgSets\n}: Omit<BannerProps, 'bannerVariant'>) => {\n const { isDesktop, isMobile } = useDevice()\n const advantage = (\n <div\n data-id='banner-advantages'\n className={cn(\n 'flex items-center justify-center pt-4 desktop:absolute desktop:bottom-[-50px] desktop:right-1/2 desktop:translate-x-1/2 desktop:pt-0',\n classes?.advantageContainer\n )}\n >\n {advantagesConfig?.config.details && advantagesConfig?.config.details?.length > 0 && <Advantages {...advantagesConfig} />}\n </div>\n )\n\n return (\n <>\n <section data-id='banner-section' className={cn('relative h-[552px] desktop:h-[456px]', classes?.root)}>\n <div\n data-id='banner-img-wrapper'\n className='absolute bottom-0 left-0 right-0 top-0 z-[-1] mx-auto h-full max-w-[1920px] desktop:h-[456px]'\n >\n <picture>\n <source media='(min-width: 1128px)' srcSet={imgSets?.large} />\n <source media='(max-width: 1127px)' srcSet={imgSets?.mob} />\n <img\n data-id='banner-image'\n src={img}\n alt='Картинка баннера'\n className={cn('h-full w-full object-cover object-center', classes?.image)}\n />\n </picture>\n </div>\n <ResponsiveContainer data-id='banner-container' className={cn('h-full', classes?.container)}>\n <div data-id='banner' className={cn('flex h-full', classes?.wrapper)}>\n <div\n data-id='banner-text-block'\n className={cn('flex w-[328px] flex-col gap-10 pt-6 desktop:w-full desktop:pt-20', classes?.textBlock)}\n >\n <div className='flex flex-col gap-4'>\n <Heading data-id='banner-title' as='h1' className={cn('text-color-white', classes?.title)}>\n {headTitle}\n </Heading>\n <p data-id='banner-subtitle' className={cn('desk-body-regular-l text-color-white', classes?.subtitle)}>\n {subtitle}\n </p>\n </div>\n <BannerButtonsGroup\n className='self-end desktop:self-center'\n data-id='banner-buttons-group'\n buttonsConfig={buttonsConfig}\n classes={classes}\n />\n </div>\n </div>\n\n {isDesktop && advantage}\n </ResponsiveContainer>\n </section>\n {isMobile && advantage}\n </>\n )\n}\n","import { BannerButtonsGroup } from '../BannerButtonsGroup'\nimport { useDevice } from '$/shared/hooks'\nimport { Heading, ResponsiveContainer } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\nimport { Advantages, type BannerProps } from '$/widgets'\n\nexport const BannerWithSeparateImg = ({\n headTitle,\n subtitle,\n buttonsConfig,\n advantagesConfig,\n classes,\n img,\n imgSets\n}: Omit<BannerProps, 'bannerVariant'>) => {\n const { isDesktop, isMobile } = useDevice()\n const advantage = (\n <div\n data-id='banner-advantages'\n className={cn(\n 'flex items-center justify-center rounded-md bg-color-blue-grey-100 p-4 pb-8 desktop:absolute desktop:bottom-[-50px] desktop:right-1/2 desktop:translate-x-1/2 desktop:p-0',\n classes?.advantageContainer\n )}\n >\n {advantagesConfig?.config.details && advantagesConfig?.config.details?.length > 0 && <Advantages {...advantagesConfig} />}\n </div>\n )\n return (\n <>\n <section data-id='banner-section' className={cn('bg-banner-skyblue-300 desktop:h-[456px]', classes?.root)}>\n <ResponsiveContainer data-id='banner-container' className={cn('relative', classes?.container)}>\n <div data-id='banner' className={cn('flex flex-col desktop:flex-row desktop:justify-between', classes?.wrapper)}>\n <div className='flex flex-col desktop:gap-10 desktop:pt-20'>\n <div data-id='banner-text-block' className={cn('flex flex-col gap-4 pt-6 desktop:pt-0', classes?.textBlock)}>\n <Heading data-id='banner-title' as='h1' className={cn('text-color-dark', classes?.title)}>\n {headTitle}\n </Heading>\n <p data-id='banner-subtitle' className={cn('desk-body-regular-l text-color-dark', classes?.subtitle)}>\n {subtitle}\n </p>\n </div>\n\n <BannerButtonsGroup buttonsConfig={buttonsConfig} classes={classes} />\n </div>\n\n <div\n data-id='banner-image-wrapper'\n className={cn('flex h-[356px] justify-center desktop:h-[456px] desktop:w-[550px]', classes?.imageContainer)}\n >\n <picture>\n <source media='(min-width: 1128px)' srcSet={imgSets?.large} />\n <source media='(max-width: 1127px)' srcSet={imgSets?.mob} />\n <img\n data-id='banner-image'\n src={img}\n alt='Картинка баннера'\n className={cn('h-full object-cover', classes?.image)}\n />\n </picture>\n </div>\n </div>\n\n {isDesktop && advantage}\n </ResponsiveContainer>\n </section>\n {isMobile && advantage}\n </>\n )\n}\n","'use client'\n\nimport { type ReactElement } from 'react'\nimport { type AdvantageClasses, type AdvantagesProps } from '../advantages/Advantages'\nimport { type BannerClasses, type ButtonsConfig } from './model/types'\nimport { BannerWithSeparateImg } from './ui/banners'\nimport { BannerImageFull } from './ui/banners'\n\nexport interface BannerProps {\n headTitle: string | ReactElement\n subtitle: string | ReactElement\n img?: string\n imgSets?: {\n large: string\n mob: string\n type?: string\n }\n buttonsConfig: ButtonsConfig\n advantagesConfig?: AdvantagesProps\n classes?: BannerClasses & {\n advantages?: AdvantageClasses\n }\n bannerVariant?: 'separateImg' | 'fullImg'\n}\n\nexport const Banner = ({ bannerVariant, ...props }: BannerProps) => {\n switch (bannerVariant) {\n case 'separateImg':\n return <BannerWithSeparateImg {...props} />\n case 'fullImg':\n return <BannerImageFull {...props} />\n default:\n return <BannerWithSeparateImg {...props} />\n }\n}\n","'use client'\n\nimport type { AdvantageItem } from './model'\nimport { Heading } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport interface AdvantageClasses {\n root?: string\n item?: string\n title?: string\n description?: string\n}\n\nexport interface AdvantagesProps {\n config: {\n variant: 'threeCards' | 'fourCards'\n details: AdvantageItem[]\n }\n classes?: AdvantageClasses\n}\n\nexport const Advantages = ({ config, classes }: AdvantagesProps) => {\n const { variant, details: advantagesList } = config\n\n return (\n <div\n className={cn(\n 'm-auto flex w-full min-w-[328px] max-w-[636px] flex-col gap-8 rounded-md bg-color-white p-6 shadow-sm desktop:w-full desktop:flex-row desktop:items-start desktop:gap-0 desktop:p-0 desktop:py-6',\n { 'desktop:max-w-[860px]': variant === 'threeCards' },\n { 'desktop:max-w-[1140px]': variant === 'fourCards' },\n classes?.root\n )}\n >\n {advantagesList?.map(({ title, description }) => (\n <div\n key={title}\n className={cn(\n 'after:content-[\" \"] relative flex h-full w-full flex-col gap-1 after:absolute after:-bottom-4 after:left-1/2 after:h-[1px] after:w-full after:-translate-x-1/2 after:bg-color-blue-grey-300 last:after:hidden desktop:w-[285px] desktop:px-8 desktop:after:bottom-auto desktop:after:left-auto desktop:after:right-0 desktop:after:top-1/2 desktop:after:h-10 desktop:after:w-[1px] desktop:after:-translate-y-1/2 desktop:after:translate-x-0',\n classes?.item\n )}\n >\n <Heading as='h4' className={cn('text-color-dark', classes?.title)}>\n {title}\n </Heading>\n <p className={cn('desk-body-regular-l text-color-secondary', classes?.description)}>{description}</p>\n </div>\n ))}\n </div>\n )\n}\n","import type { FooterNavLinks, FooterPhones, FooterSocialLinks } from './types'\n\nexport const defaultCopyright = (\n <>\n © 2004-2024, ПАО «Совкомбанк». Все права защищены. <br className='mobile:hidden' /> Генеральная лицензия Банка России №963 от\n 5 декабря 2014 г.\n </>\n)\n\nexport const defaultPhones: FooterPhones[] = [\n { phone: '8 800 100-00-06', text: 'Звонок по России (бесплатно)' },\n { phone: '+7 (495) 988 00 00', text: 'Для звонков из-за рубежа (платно)' }\n]\n\nexport const defaultSocialsLinks: FooterSocialLinks[] = [\n { iconName: 'social/vk', href: 'https://vk.com/sovcombank' },\n { iconName: 'social/telegram', href: 'https://t.me/sovcombankofficial' },\n { iconName: 'social/classmates', href: 'https://ok.ru/paosovcombank' }\n]\n\nexport const defaultNavigationLinks: FooterNavLinks[] = [\n {\n groupLabel: 'Совкомбанк',\n links: [\n { text: 'О банке', href: '/' },\n { text: 'Реквизиты и лицензии', href: '/' },\n { text: 'Пресс-центр', href: '/' },\n { text: 'Удостоверяющий центр ПАО «Совкомбанк»', href: '/' },\n { text: 'Работа у нас', href: '/' },\n { text: 'Контакты', href: '/' },\n { text: 'Раскрытие информации', href: '/' },\n { text: 'Страница раскрытия информации в Интерфакс', href: '/' },\n { text: 'Реализация залогового имущества', href: '/' },\n { text: 'Клиентам и партнерам', href: '/' },\n { text: 'Биометрия', href: '/' },\n { text: 'Стандарты безопасности', href: '/' },\n { text: 'Информация о процентных ставках по договорам банковского вклада с физическими лицами', href: '/' },\n { text: 'ООО «Совком Финанс»', href: '/' },\n { text: 'Безопасность', href: '/' }\n ]\n },\n {\n groupLabel: 'Сервисы',\n links: [\n { text: 'Подарочная карта «Халва»', href: '/' },\n { text: 'Страховые продукты', href: '/' },\n { text: 'МультиЮрист', href: '/' },\n { text: 'Единая социальная карта «Уралочка»', href: '/' },\n { text: 'Единая Карта Жителя Мурманской области', href: '/' },\n { text: 'Безопасные расчёты', href: '/' },\n { text: 'Улучшение кредитной истории', href: '/' },\n { text: 'Дистанционные сервисы Совкомбанка', href: '/' },\n { text: 'Программы реструктуризации долга', href: '/' }\n ]\n },\n {\n groupLabel: 'Услуги банка',\n links: [\n { text: 'Карты', href: '/' },\n { text: 'Кредиты', href: '/' },\n { text: 'Кредиты наличными', href: '/' },\n { text: 'Ипотека', href: '/' },\n { text: 'Автокредиты', href: '/' },\n { text: 'Кредитный калькулятор', href: '/' },\n { text: 'Вклады', href: '/' },\n { text: 'Инвестиции', href: '/' },\n { text: 'Платежи', href: '/' },\n { text: 'Сервисы', href: '/' },\n { text: 'Малому бизнесу и ИП', href: '/' },\n { text: 'Корпоративным клиентам', href: '/' },\n { text: 'CIB', href: '/' },\n { text: 'Драгоценные металлы в слитках', href: '/' },\n { text: 'Счета в драгоценных металлах', href: '/' }\n ]\n },\n {\n groupLabel: 'Клиентам других банков',\n links: [\n { text: 'Держателям карт рассрочки Банка Хоум Кредит', href: '/' },\n { text: 'ПАО КБ «Восточный»', href: '/' },\n { text: 'Держателям карт «Совесть»', href: '/' },\n { text: 'АО «Нордеа Банк»', href: '/' },\n { text: 'ЗАО «ДжиИ Мани банк»', href: '/' },\n { text: 'АО «Меткомбанк»', href: '/' },\n { text: 'АКБ «РосЕвроБанк» (АО)', href: '/' },\n { text: 'ПАО «Татфондбанк»', href: '/' },\n { text: 'АО АКБ «Экспресс-Волга»', href: '/' },\n { text: 'АО «ВКАБАНК»', href: '/' },\n { text: 'ООО «ОНЕЙ БАНК»', href: '/' },\n { text: 'АО «Евразийский»', href: '/' },\n { text: 'АО «НФК»', href: '/' },\n { text: 'ООО «РТС-Капитал»', href: '/' },\n { text: 'ООО «ИК Септем Капитал»', href: '/' },\n { text: 'Помощь', href: '/' },\n { text: 'Офисы и банкоматы', href: '/' }\n ]\n }\n]\n","import type { FooterSocialLinks } from '../model/types'\nimport { Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type SocialLinksClasses = {\n socialRoot?: string\n socialLink?: string\n socialIcon?: string\n}\n\ninterface ISocialLinksProps {\n socialsLinks: FooterSocialLinks[]\n classes?: SocialLinksClasses\n}\n\nexport const SocialLinks = ({ socialsLinks, classes }: ISocialLinksProps) => {\n return (\n <div className={cn('mt-4 flex items-center gap-2 desktop:mt-6', classes?.socialRoot)}>\n {socialsLinks?.map(({ iconName, href }) => (\n <a\n className={cn('flex size-8 items-center justify-center rounded-full bg-[#52576a] p-2', classes?.socialLink)}\n href={href}\n key={href}\n aria-label={iconName.replace('social/', '')}\n >\n <Icon name={iconName} className={cn('h-full w-full text-icon-white', classes?.socialIcon)} />\n </a>\n ))}\n </div>\n )\n}\n","import type { FooterPhones } from '../model/types'\nimport { PhoneView } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type PhoneBlockClasses = {\n phonesRoot?: string\n phoneWrapper?: string\n phoneText?: string\n phoneLink?: string\n}\n\ninterface PhonesBlockProps {\n phones: FooterPhones[]\n classes?: PhoneBlockClasses\n}\n\nexport const PhonesBlock = ({ phones, classes }: PhonesBlockProps) => {\n return (\n <div className={cn('flex flex-col gap-4 desktop:items-end', classes?.phonesRoot)}>\n {phones?.map(({ phone, text }) => (\n <PhoneView\n key={phone}\n phone={phone}\n text={text}\n classes={{\n wrapper: cn(classes?.phoneWrapper),\n text: cn('text-color-footer', classes?.phoneText),\n link: cn('text-color-white mobile:m-0', classes?.phoneLink)\n }}\n />\n ))}\n </div>\n )\n}\n","import type { FooterNavLinks } from '../model/types'\nimport { CustomLink } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type NavigationLinksClasses = {\n navRoot?: string\n navGroup?: string\n navLabel?: string\n navLinks?: string\n navLink?: string\n navLinkIcon?: string\n}\n\ninterface NavLinksProps {\n navigationLinks: FooterNavLinks[]\n classes?: NavigationLinksClasses\n}\n\nexport const NavLinks = ({ navigationLinks, classes }: NavLinksProps) => {\n return (\n <div\n className={cn(\n 'mt-6 grid grid-cols-1 gap-6 border-b border-blue-grey-500 pb-6 desktop:my-8 desktop:grid-cols-4 desktop:gap-10 desktop:pb-8',\n classes?.navRoot\n )}\n >\n {navigationLinks?.map(({ groupLabel, links }) => (\n <div key={groupLabel} className={cn('flex flex-col gap-4', classes?.navGroup)}>\n <div className={cn('desk-body-medium-l text-color-white', classes?.navLabel)}>{groupLabel}</div>\n <div className={cn('flex flex-col gap-1', classes?.navLinks)}>\n {links?.map(({ text, href }) => (\n <CustomLink\n key={text}\n href={href}\n aria-label={text}\n intent='white'\n classes={{\n link: classes?.navLink,\n icon: classes?.navLinkIcon\n }}\n >\n {text}\n </CustomLink>\n ))}\n </div>\n </div>\n ))}\n </div>\n )\n}\n","import * as React from 'react'\nimport { cn } from '$/shared/utils'\n\nexport type CopyrightClasses = {\n copyRight?: string\n}\n\ninterface CopyrightProps {\n text?: string | React.ReactElement\n classes?: CopyrightClasses\n}\n\nexport const Copyright = ({ text, classes }: CopyrightProps) => {\n return <div className={cn('desk-body-regular-m text-color-footer', classes?.copyRight)}>{text}</div>\n}\n","import { Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type FooterLogoClasses = {\n footerLogo?: string\n footerLogoIcon?: string\n}\n\nexport interface FooterLogoProps {\n classes?: FooterLogoClasses\n}\n\nexport const FooterLogo = ({ classes }: FooterLogoProps) => {\n return (\n <a\n aria-label='logo'\n href='https://sovcombank.ru/'\n className={cn('block h-[24px] w-[132px] desktop:h-[32px] desktop:w-[194px]', classes?.footerLogo)}\n >\n <Icon name='brandLogos/logoWhite' className={cn('size-full', classes?.footerLogoIcon)} />\n </a>\n )\n}\n","import { CustomLink } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type SiteMapClasses = {\n siteMapLink?: string\n siteMapLinkIcon?: string\n}\n\nexport interface SiteMapProps {\n classes?: SiteMapClasses\n}\n\nexport const SiteMap = ({ classes }: SiteMapProps) => {\n return (\n <CustomLink\n intent='white'\n href='https://sovcombank.ru/site-map'\n target='_blank'\n aria-label='site-map'\n rel='noreferrer'\n classes={{\n link: cn('mobile:mt-6', classes?.siteMapLink),\n icon: classes?.siteMapLinkIcon\n }}\n >\n Карта сайта\n </CustomLink>\n )\n}\n","import * as React from 'react'\nimport { defaultCopyright, defaultNavigationLinks, defaultPhones, defaultSocialsLinks } from './model/defaultValues'\nimport type { FooterClasses, FooterNavLinks, FooterPhones, FooterRenderBlocks, FooterSocialLinks } from './model/types'\nimport { Copyright, FooterLogo, NavLinks, PhonesBlock, SiteMap, SocialLinks } from './ui'\nimport { ResponsiveContainer } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport interface FooterProps {\n classes?: FooterClasses\n renderBlocks?: FooterRenderBlocks\n socialsLinks?: FooterSocialLinks[]\n phones?: FooterPhones[]\n navigationLinks?: FooterNavLinks[]\n ligal?: string | React.ReactElement\n copyright?: string | React.ReactElement\n}\n\nexport const Footer = ({\n renderBlocks: { withSocial = true, withPhones = true, withNavLinks = true, withCopyright = true, withSiteMap = true } = {},\n socialsLinks = defaultSocialsLinks,\n phones = defaultPhones,\n navigationLinks = defaultNavigationLinks,\n ligal,\n copyright = defaultCopyright,\n classes\n}: FooterProps) => {\n return (\n <footer className={cn('w-full bg-color-footer py-8 desktop:py-10', classes?.root)}>\n <ResponsiveContainer className={cn(classes?.footerContainer)}>\n <div className={cn('mobile:pb-[176px]', classes?.footerWrapper)}>\n <div\n className={cn(\n 'flex flex-col items-start justify-between gap-4 border-b border-solid border-blue-grey-500 pb-6 desktop:flex-row desktop:gap-6 desktop:pb-8',\n classes?.footerHead\n )}\n >\n <div className={cn(classes?.footerSocialBlock)}>\n <FooterLogo classes={classes?.footerLogo} />\n {withSocial && <SocialLinks socialsLinks={socialsLinks} classes={classes?.socialLinks} />}\n </div>\n\n {withPhones && <PhonesBlock phones={phones} classes={classes?.phonesBlock} />}\n </div>\n\n {withNavLinks && <NavLinks navigationLinks={navigationLinks} classes={classes?.navLinks} />}\n {ligal && ligal}\n\n <div\n className={cn(\n 'mt-6 flex flex-col-reverse items-start justify-between gap-4 desktop:mt-8 desktop:flex-row desktop:gap-6',\n classes?.footerBottom\n )}\n >\n {withCopyright && <Copyright text={copyright} classes={classes?.copyright} />}\n {withSiteMap && <SiteMap classes={classes?.siteMap} />}\n </div>\n </div>\n </ResponsiveContainer>\n </footer>\n )\n}\n","import type { SingleStepProps } from '../model/types'\nimport { Heading } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type SingleStepClasses = {\n singleStep?: string\n numeric?: string\n textBlock?: string\n title?: string\n description?: string\n}\n\nexport const SingleStep = ({ classes, index, variant, title, description }: SingleStepProps) => {\n const withTitles = variant === 'withTitleAndDescription' && title\n\n return (\n <div\n className={cn(\n 'flex w-[328px] max-w-[328px] flex-col gap-4 rounded-md border border-solid border-blue-grey-500 p-4 desktop:w-[348px] desktop:max-w-[348px] desktop:border-none desktop:p-0',\n classes?.singleStep\n )}\n >\n <div\n className={cn(\n 'mob-headline-bold-s flex size-10 items-center justify-center rounded-sm bg-color-blue-grey-500 text-color-white desktop:desk-title-bold-l desktop:size-12',\n classes?.numeric\n )}\n >\n {index}\n </div>\n\n <div className={cn('flex flex-col gap-2')}>\n {withTitles && (\n <Heading as='h4' className={cn('text-color-dark', classes?.title)}>\n {title}\n </Heading>\n )}\n <div\n dangerouslySetInnerHTML={{ __html: description ?? '' }}\n className={cn('desk-body-regular-l text-color-tetriary', classes?.description)}\n />\n </div>\n </div>\n )\n}\n","import { type HTMLAttributes } from 'react'\nimport type { SingleStepItem, StepperVariant } from './model/types'\nimport { SingleStep, type SingleStepClasses } from './ui/SingleStep'\nimport { Heading, ResponsiveContainer, Section } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type StepperClasses = {\n root?: string\n container?: string\n wrapper?: string\n headline?: string\n stepsWrapper?: string\n step?: SingleStepClasses\n}\n\nexport interface StepperProps extends HTMLAttributes<HTMLDivElement> {\n headline: string\n config: {\n variant: StepperVariant\n details: SingleStepItem[]\n }\n classes?: StepperClasses\n}\n\nexport const Stepper = ({ headline, config, classes }: StepperProps) => {\n const { variant, details: stepsList } = config\n\n return (\n <Section className={classes?.root}>\n <ResponsiveContainer className={classes?.container}>\n <div className={cn('flex flex-col gap-6 desktop:items-start desktop:gap-12', classes?.wrapper)}>\n <Heading as='h2' className={cn('text-color-dark', classes?.headline)}>\n {headline}\n </Heading>\n <div\n className={cn(\n 'flex w-full flex-col items-start gap-6 desktop:flex-row desktop:items-start desktop:gap-12',\n classes?.stepsWrapper\n )}\n >\n {stepsList?.map((step, index) => (\n <SingleStep variant={variant} key={step.description} {...step} index={index + 1} classes={classes?.step} />\n ))}\n </div>\n </div>\n </ResponsiveContainer>\n </Section>\n )\n}\n","import { cva } from 'class-variance-authority'\r\n\r\nexport const titleConfig = cva('', {\r\n variants: {\r\n intent: {\r\n twoItems: 'mob-headline-bold-s mb-6 desktop:desk-headline-bold-m desktop:mb-12',\r\n fourItems: 'mob-title-bold-l desktop:desk-title-bold-l mb-8'\r\n },\r\n desktopHidden: {\r\n true: 'desktop:hidden'\r\n },\r\n mobileHidden: {\r\n true: 'mobile:hidden'\r\n }\r\n },\r\n defaultVariants: {\r\n intent: 'twoItems'\r\n }\r\n})\r\n\r\nexport const listItemConfig = cva('', {\r\n variants: {\r\n intent: {\r\n twoItems: '',\r\n fourItems: ''\r\n },\r\n withButton: {\r\n true: ''\r\n }\r\n },\r\n compoundVariants: [\r\n {\r\n intent: 'twoItems',\r\n withButton: true,\r\n class: 'mb-8 desktop:flex'\r\n },\r\n {\r\n intent: 'twoItems',\r\n withButton: false,\r\n class: 'desktop:flex'\r\n },\r\n {\r\n intent: 'fourItems',\r\n withButton: true,\r\n class: 'desktop:grid grid-rows-2 mb-8 desktop:gap-x-10 desktop:gap-y-4 grid-flow-col'\r\n },\r\n {\r\n intent: 'fourItems',\r\n withButton: false,\r\n class: 'desktop:grid grid-rows-2 desktop:gap-x-10 desktop:gap-y-4 grid-flow-col'\r\n }\r\n ]\r\n})\r\n\r\nexport const itemConfig = cva('border-blue-grey-500 pb-6 mobile:mb-6 mobile:border-b mobile:last:pb-0 mobile:last:mb-0', {\r\n variants: {\r\n intent: {\r\n twoItems:\r\n 'last:border-none relative desktop:first:after:top-1/2 desktop:first:after:-translate-y-1/2 desktop:first:after:right-0 desktop:first:after:content-[\"\"] desktop:first:after:block desktop:first:after:absolute desktop:first:after:w-[1px] desktop:first:after:h-[64px] desktop:first:after:bg-color-blue-grey-500 desktop:ml-8 desktop:pr-8 desktop:first:ml-0 desktop:last:pr-0 desktop:pb-3',\r\n fourItems: ' mobile:last:border-none desktop:w-[264px] desktop:odd:border-b desktop:pb-0 desktop:odd:pb-3'\r\n }\r\n },\r\n defaultVariants: {\r\n intent: 'twoItems'\r\n }\r\n})\r\n\r\nexport const containerImgConfig = cva('mobile:mx-auto mobile:mb-8, h-[172px] w-[280px] ', {\r\n variants: {\r\n intent: {\r\n twoItems: 'desktop:h-[232px] desktop:w-[500px]',\r\n fourItems: ' '\r\n },\r\n withButton: {\r\n true: true,\r\n false: false\r\n }\r\n },\r\n defaultVariants: {\r\n intent: 'twoItems'\r\n },\r\n compoundVariants: [\r\n {\r\n intent: 'fourItems',\r\n withButton: true,\r\n class: 'desktop:h-[360px] desktop:w-[500px]'\r\n },\r\n {\r\n intent: 'fourItems',\r\n withButton: false,\r\n class: 'desktop:h-[272px] desktop:w-[500px]'\r\n }\r\n ]\r\n})\r\n","import { itemConfig } from '../model/cva'\r\nimport { type TextItemProps } from '../model/types'\r\nimport { Icon, Popover } from '$/shared/ui'\r\nimport { cn } from '$/shared/utils'\r\n\r\nexport const TextItem = ({ data, intent }: TextItemProps) => {\r\n const { title, description, popoverText } = data\r\n return (\r\n <li className={cn(itemConfig({ intent }))}>\r\n <div className='desktop:max-w-[264px]'>\r\n <div className={cn('mb-2 flex items-center gap-2')}>\r\n <h4 className={cn('mob-title-bold-m text-color-dark')}>{title}</h4>\r\n {popoverText && (\r\n <Popover triggerElement={<Icon className={cn('size-5 text-icon-blue-grey-600')} name='info/helpCircle' />}>\r\n {popoverText}\r\n </Popover>\r\n )}\r\n </div>\r\n\r\n <p className={cn('mob-body-regular-l text-color-secondary')}>{description}</p>\r\n </div>\r\n </li>\r\n )\r\n}\r\n","import { type ReactElement } from 'react'\r\nimport { titleConfig } from '../model/cva'\r\nimport { type LongBannerConfig } from '../model/types'\r\nimport { cn } from '$/shared/utils'\r\n\r\ninterface TitleProps {\r\n intent: LongBannerConfig['intent']\r\n title: string | ReactElement\r\n desktopHidden?: boolean\r\n mobileHidden?: boolean\r\n}\r\n\r\nexport const Title = ({ intent, title, desktopHidden = false, mobileHidden = false }: TitleProps) => {\r\n return <h2 className={cn(titleConfig({ intent, desktopHidden, mobileHidden }))}>{title}</h2>\r\n}\r\n","import { listItemConfig } from '../model/cva'\r\nimport { type ITextContent, type LongBannerConfig } from '../model/types'\r\nimport { TextItem } from './TextItem'\r\nimport { cn } from '$/shared/utils'\r\n\r\ninterface ListItemsProps {\r\n textContent: ITextContent[]\r\n intent: LongBannerConfig['intent']\r\n withButton: boolean\r\n}\r\n\r\nexport const TextList = ({ textContent, intent, withButton }: ListItemsProps) => {\r\n return (\r\n <ul className={cn(listItemConfig({ intent, withButton }))}>\r\n {textContent?.map((element, index) => <TextItem intent={intent} data={element} key={index} />)}\r\n </ul>\r\n )\r\n}\r\n","import { type ReactElement } from 'react'\r\nimport { containerImgConfig } from './model/cva'\r\nimport { type IButtonConfig, type ILongBannerClasses, type ITextContent, type LongBannerConfig } from './model/types'\r\nimport { TextList, Title } from './ui'\r\nimport { Button, ResponsiveContainer } from '$/shared/ui'\r\nimport { cn } from '$/shared/utils'\r\n\r\nexport interface LongBannerProps extends LongBannerConfig {\r\n title: string | ReactElement\r\n buttonConfig?: IButtonConfig\r\n textContent: ITextContent[]\r\n imageComponent: ReactElement\r\n classes?: ILongBannerClasses\r\n}\r\n\r\nexport const LongBanner = ({\r\n title,\r\n buttonConfig,\r\n intent = 'twoItems',\r\n textContent,\r\n imageComponent,\r\n classes\r\n}: LongBannerProps) => {\r\n const withButton = !!buttonConfig\r\n const isFourItems = intent === 'fourItems'\r\n const isTwoItems = intent === 'twoItems'\r\n\r\n return (\r\n <section className={cn(classes?.root)}>\r\n <ResponsiveContainer className={cn(classes?.container)}>\r\n {isTwoItems && <Title intent={intent} title={title} />}\r\n\r\n <div\r\n className={cn(\r\n 'bg-banner-skyblue-100 px-6 pb-8 pt-6 desktop:flex desktop:flex-row-reverse desktop:justify-between desktop:px-0 desktop:py-0 desktop:pl-12',\r\n classes?.contentContainer\r\n )}\r\n >\r\n {isFourItems && <Title intent={intent} title={title} desktopHidden={true} />}\r\n <div className={cn(containerImgConfig({ intent, withButton }), classes?.imgContainer)}>{imageComponent}</div>\r\n <div\r\n className={cn('desktop:flex desktop:flex-col desktop:justify-center desktop:py-10', classes?.textWithBtnContainer)}\r\n >\r\n {isFourItems && <Title intent={intent} title={title} mobileHidden={true} />}\r\n <TextList textContent={textContent} intent={intent} withButton={withButton} />\r\n {withButton && (\r\n <Button\r\n className={cn('w-full px-4 desktop:w-max', classes?.button)}\r\n size='lg'\r\n onClick={buttonConfig.onClick}\r\n intent='secondary'\r\n >\r\n {buttonConfig.text}\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </ResponsiveContainer>\r\n </section>\r\n )\r\n}\r\n","export const AUTH_PROVIDER_MODE = {\n ESIA: 'esia',\n MOBILE_ID: 'mobileId',\n COMBINE: 'combine'\n} as const\n","import { Loader, type LoaderProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type AuthWrapperClasses = {\n root?: string\n wrapper?: string\n}\n\nexport interface AuthWrapperProps {\n children: React.ReactElement\n classes?: AuthWrapperClasses\n isLoading?: boolean\n loaderProps?: LoaderProps\n}\n\nexport const AuthWrapper = ({ children, isLoading, classes, loaderProps }: AuthWrapperProps) => {\n return (\n <div\n tabIndex={0}\n className={cn(\n 'relative flex h-[90px] w-full max-w-[328px] items-center justify-center rounded-sm p-2 desktop:max-w-[524px]',\n 'bg-color-white outline outline-1 outline-warm-grey-200 transition-colors focus-visible:outline-primary-focus',\n classes?.root\n )}\n >\n <div\n className={cn(\n 'flex h-[74px] flex-1 cursor-pointer rounded-sm px-2 py-3 transition-colors desktop:px-4 desktop:py-3',\n 'bg-color-blue-grey-100 hover:bg-color-blue-grey-200 active:bg-color-blue-grey-300',\n { 'items-center': isLoading },\n classes?.wrapper\n )}\n >\n {isLoading ? <Loader position='static' classes={{ wrapper: 'size-8 m-auto' }} {...loaderProps} /> : children}\n </div>\n </div>\n )\n}\n","import { type SVGProps } from 'react'\n\nexport const EsiaLogo = ({ ...props }: SVGProps<SVGSVGElement>) => {\n return (\n <svg width='32' height='32' viewBox='0 0 32 32' fill='none' xmlns='http://www.w3.org/2000/svg' {...props}>\n <path\n d='M30.3986 10.6149C30.2728 8.96576 29.014 6.85155 27.7553 5.83672C26.3398 4.79816 24.8691 3.83828 23.3497 2.96139C21.8418 2.06068 20.2871 1.24201 18.6923 0.508895C17.8404 0.15868 16.927 -0.0139306 16.007 0.00148264C15.0868 -0.0180029 14.1725 0.154761 13.3217 0.508895C11.7272 1.24253 10.1725 2.06119 8.66438 2.96139C6.23081 4.44134 4.25878 5.83672 4.25878 5.83672C3.22329 6.71008 2.43892 7.83418 1.97146 9.09195C1.87834 9.34251 2.07032 9.59987 2.33762 9.59987H4.2568C4.55401 9.59987 4.82321 9.43281 4.98085 9.18085C5.33539 8.61417 5.77902 8.10202 6.29948 7.66607C6.29948 7.66607 7.92774 6.52186 9.93709 5.3083C11.1823 4.57013 12.466 3.89884 13.7826 3.29725C14.485 3.00687 15.2399 2.8652 15.9998 2.88118C16.7593 2.86854 17.5136 3.01008 18.217 3.29725C19.5337 3.89841 20.8174 4.56972 22.0624 5.3083C23.317 6.02735 24.5313 6.81445 25.7 7.66607C26.7394 8.49823 27.7787 10.2319 27.8826 11.5841C27.8826 11.5841 28.1251 13.5952 28.1598 15.9772C28.1576 17.4483 28.0767 18.9183 27.9173 20.3807C27.6755 21.912 26.8879 23.3038 25.7 24.2988C25.7 24.2988 24.0718 25.4777 22.0624 26.6912C20.8172 27.4294 19.5335 28.1007 18.217 28.7023C17.5145 28.9927 16.7596 29.1343 15.9998 29.1184C15.2409 29.1343 14.4867 28.9963 13.7826 28.7127C12.4658 28.1115 11.1821 27.4402 9.93709 26.7016C7.92774 25.5228 6.29948 24.3092 6.29948 24.3092C5.84515 23.9454 5.39081 23.4094 5.01172 22.8082C4.85581 22.561 4.5896 22.3997 4.2973 22.3997H2.34718C2.07645 22.3997 1.88475 22.6629 1.98611 22.914C2.49249 24.168 3.37564 25.4212 4.25878 26.1332C4.25878 26.1332 6.23081 27.6132 8.66438 29.0508C10.1723 29.9515 11.7269 30.7702 13.3217 31.5033C14.1745 31.8492 15.088 32.0175 16.007 31.998C16.9273 32.0175 17.8416 31.8448 18.6923 31.4906C20.2869 30.757 21.8415 29.9383 23.3497 29.0381C25.7833 27.5582 27.7553 26.1205 27.7553 26.1205C29.1939 24.9072 30.1478 23.2098 30.4406 21.3424C30.6337 19.5589 30.7317 17.7663 30.7343 15.9723C30.6923 13.0673 30.3986 10.6149 30.3986 10.6149Z'\n fill='url(#paint0_linear_6493_452)'\n />\n <path\n d='M1.27985 12.4821C1.27985 12.1286 1.56638 11.8421 1.91985 11.8421H11.8398C12.1933 11.8421 12.4798 12.1286 12.4798 12.4821V14.4021C12.4798 14.7555 12.1933 15.0421 11.8398 15.0421H1.27985V12.4821Z'\n fill='#0066B3'\n />\n <path\n d='M1.27985 16.9618H21.4398C21.7933 16.9618 22.0798 17.2484 22.0798 17.6018V19.5218C22.0798 19.8752 21.7933 20.1618 21.4398 20.1618H1.91985C1.56638 20.1618 1.27985 19.8752 1.27985 19.5218V16.9618Z'\n fill='#EE2F53'\n />\n <defs>\n <linearGradient id='paint0_linear_6493_452' x1='16.0071' y1='0' x2='16.0071' y2='31.9996' gradientUnits='userSpaceOnUse'>\n <stop stopColor='#0066B3' />\n <stop offset='0.354167' stopColor='#0066B3' />\n <stop offset='0.6875' stopColor='#EE2F53' />\n <stop offset='1' stopColor='#EE2F53' />\n </linearGradient>\n </defs>\n </svg>\n )\n}\n","import type { SingleAuthSchema } from '../../model/types'\nimport { CustomLink } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type TLinksClasses = {\n linksWrapper?: string\n linksMainLink?: string\n linksSubLink?: string\n}\n\ninterface ILinksProps extends Pick<SingleAuthSchema, 'subLink' | 'mainLink'> {\n isMobile: boolean\n classes?: TLinksClasses\n}\n\nexport const Links = ({ mainLink, subLink, isMobile, classes }: ILinksProps) => {\n return (\n <div className={cn('flex flex-col', classes?.linksWrapper)}>\n <a\n href={mainLink.href}\n target='_blank'\n rel='noreferrer'\n className={cn(\n 'before:content=[\" \"] desk-body-medium-l z-[4] text-color-dark before:absolute before:left-1/2 before:top-1/2 before:h-full before:w-full before:-translate-x-1/2 before:-translate-y-1/2',\n classes?.linksMainLink\n )}\n >\n {isMobile ? mainLink.mobileTitle : mainLink.title}\n </a>\n\n {subLink?.text && subLink?.href && (\n <CustomLink\n intent='blue'\n withUnderline\n href={subLink?.href}\n target='_blank'\n rel='noreferrer'\n classes={{\n link: cn('w-max relative z-[6] p-0 desk-body-regular-m text-color-tetriary', classes?.linksSubLink)\n }}\n >\n {subLink?.text}\n </CustomLink>\n )}\n </div>\n )\n}\n","import { type TMobileIdProps } from '../model/types'\nimport { AuthWrapper, Links } from './ui/'\nimport { useDevice } from '$/shared/hooks'\nimport { Badge, Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport const MobileId = ({ mainLink, subLink, isLoading, badge, loaderProps, classes }: TMobileIdProps) => {\n const { isMobile } = useDevice()\n\n return (\n <AuthWrapper isLoading={isLoading} loaderProps={loaderProps} classes={classes?.authWrapper}>\n <div\n className={cn(\n 'flex flex-1 items-center justify-between gap-1',\n { 'justify-center': !badge && isMobile },\n classes?.innerWrapper\n )}\n >\n <div className={cn('flex items-center gap-1 desktop:gap-4', classes?.textContent)}>\n <div>\n <Icon name='logos/mts' className={cn('relative z-[9] size-7 desktop:size-8', classes?.mtsLogo)} />\n <Icon name='logos/megafon' className={cn('relative z-[8] -ml-4 size-7 desktop:size-8', classes?.megafonLogo)} />\n <Icon name='logos/beeline' className={cn('relative z-[7] -ml-4 size-7 desktop:size-8', classes?.beelineLogo)} />\n </div>\n <Links mainLink={mainLink} subLink={subLink} isMobile={isMobile} classes={classes?.links} />\n <Icon name='arrows/arrowRight' className={cn('mobile:hidden', classes?.arrowIcon)} />\n </div>\n {badge && <Badge className={cn('bg-color-positive', classes?.badge)}>{badge}</Badge>}\n </div>\n </AuthWrapper>\n )\n}\n","import type { TEsiaProps } from '../model/types'\nimport { AuthWrapper, EsiaLogo, Links } from './ui'\nimport { useDevice } from '$/shared/hooks'\nimport { Badge, Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport const Esia = ({ mainLink, subLink, isLoading, badge, loaderProps, classes }: TEsiaProps) => {\n const { isMobile } = useDevice()\n\n return (\n <AuthWrapper isLoading={isLoading} loaderProps={loaderProps} classes={classes?.authWrapper}>\n <div\n className={cn(\n 'flex flex-1 items-center justify-between gap-1',\n { 'justify-center': !badge && isMobile },\n classes?.innerWrapper\n )}\n >\n <div className={cn('flex items-center gap-1 desktop:gap-4', classes?.textContent)}>\n <EsiaLogo className={cn('size-7 desktop:size-8', classes?.esiaLogo)} />\n <Links mainLink={mainLink} subLink={subLink} isMobile={isMobile} classes={classes?.links} />\n <Icon name='arrows/arrowRight' className={cn('mobile:hidden', classes?.arrowIcon)} />\n </div>\n {badge && <Badge className={cn('bg-color-positive', classes?.badge)}>{badge}</Badge>}\n </div>\n </AuthWrapper>\n )\n}\n","import * as React from 'react'\nimport { AUTH_PROVIDER_MODE } from './model/helpers'\nimport type { AuthProviderProps } from './model/types'\nimport { Esia, MobileId } from './ui'\nimport { Badge } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nconst renderProvider = (props: AuthProviderProps): React.ReactElement => {\n switch (props.mode) {\n case AUTH_PROVIDER_MODE.ESIA:\n return <Esia {...props} />\n case AUTH_PROVIDER_MODE.MOBILE_ID:\n return <MobileId {...props} />\n case AUTH_PROVIDER_MODE.COMBINE:\n default:\n const { esiaConfig, mobileIdConfig, subtitle, badge, classes } = props\n\n const HeadWrapper = !subtitle && !badge ? React.Fragment : 'div'\n\n return (\n <div\n className={cn(\n 'flex w-[328px] flex-col items-center justify-center gap-2 rounded-sm bg-color-white px-2 py-4 outline outline-1 outline-warm-grey-200 desktop:w-[524px] desktop:p-4',\n classes?.root\n )}\n >\n <HeadWrapper className={cn('flex w-full items-center justify-between gap-2', classes?.topContent)}>\n {subtitle && <h5 className={cn('desk-body-regular-l flex flex-1 text-color-dark', classes?.subtitle)}>{subtitle}</h5>}\n {badge && <Badge className={cn('bg-color-positive', classes?.badge)}>{badge}</Badge>}\n </HeadWrapper>\n <div className={cn('grid w-full grid-cols-2 gap-2 desktop:gap-4', classes?.authWrapper)}>\n <Esia\n {...esiaConfig}\n classes={{\n root: 'p-0 outline-0 h-[74px]',\n arrowIcon: 'hidden',\n ...esiaConfig.classes\n }}\n />\n <MobileId\n {...mobileIdConfig}\n classes={{\n root: 'p-0 outline-0 h-[74px]',\n arrowIcon: 'hidden',\n ...mobileIdConfig.classes\n }}\n />\n </div>\n </div>\n )\n }\n}\n\nexport const AuthProvider = (props: AuthProviderProps) => {\n return renderProvider(props)\n}\n","import type { Link } from '../model/types'\nimport { CustomLink } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type LinksListClasses = {\n linksWrapper?: string\n linkText?: string\n linkIcon?: string\n}\n\nexport interface LinksListProps {\n links: Link[]\n classes?: LinksListClasses\n}\n\nexport const LinksList = ({ links, classes }: LinksListProps) => {\n return (\n <nav className={cn('flex flex-col gap-1', classes?.linksWrapper)}>\n {links?.map(({ path, label }) => (\n <CustomLink\n classes={{\n link: cn('w-max', classes?.linkText),\n icon: cn(classes?.linkIcon)\n }}\n intent='dark'\n key={path}\n href={path}\n >\n {label}\n </CustomLink>\n ))}\n </nav>\n )\n}\n","import type { Group } from '../model/types'\nimport { LinksList, type LinksListClasses } from './LinksList'\nimport { useDevice } from '$/shared/hooks'\nimport { Accordion, type AccordionProps, Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type ColumnGroupClasses = {\n columnGroup?: string\n columnGroupHeading?: string\n linksList?: LinksListClasses\n}\n\nexport interface ColumnGroupProps extends Group {\n mobileAccordionProps?: AccordionProps\n classes?: ColumnGroupClasses\n}\n\nexport const ColumnGroup = ({ groupLabel, links, mobileAccordionProps, classes }: ColumnGroupProps) => {\n const { isMobile } = useDevice()\n\n return (\n <div className={cn('flex flex-col gap-2', classes?.columnGroup)}>\n {!isMobile && (\n <>\n <h5 className={cn('mob-body-medium-l text-color-dark desktop:desk-body-medium-l', classes?.columnGroupHeading)}>\n {groupLabel}\n </h5>\n <LinksList key='desktop' links={links} classes={classes?.linksList} />\n </>\n )}\n\n {isMobile && (\n <Accordion\n defaultOpen\n label={groupLabel}\n icon={\n <Icon name='arrows/arrowRight' className={cn('rotate-90 transition-transform group-data-[state=open]:-rotate-90')} />\n }\n {...mobileAccordionProps}\n classes={{\n ...mobileAccordionProps?.classes,\n header: {\n trigger: cn('p-0 bg-color-blue-grey-100', mobileAccordionProps?.classes?.header?.trigger)\n },\n contentInner: cn('py-2 px-4', mobileAccordionProps?.classes?.contentInner)\n }}\n >\n <LinksList key='mobile' links={links} classes={classes?.linksList} />\n </Accordion>\n )}\n </div>\n )\n}\n","import type { Group } from '../model/types'\nimport { ColumnGroup, type ColumnGroupClasses } from './ColumnGroup'\nimport type { AccordionProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type ColumnClasses = {\n column?: string\n columnGroup?: ColumnGroupClasses\n}\n\nexport interface ColumnProps {\n column: Group[]\n mobileAccordionProps?: AccordionProps\n classes?: ColumnClasses\n}\n\nexport const Column = ({ column, mobileAccordionProps, classes }: ColumnProps) => {\n return (\n <div className={cn('flex flex-col gap-4 desktop:gap-6', classes?.column)}>\n {column?.map((group) => (\n <ColumnGroup key={group.groupLabel} {...mobileAccordionProps} {...group} classes={classes?.columnGroup} />\n ))}\n </div>\n )\n}\n","import { cva } from 'class-variance-authority'\nimport type { InterLinkingRoot } from './model/types'\nimport { Column, type ColumnClasses } from './ui'\nimport { Accordion, type AccordionProps, Heading, ResponsiveContainer } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nconst columnsWrapper = cva('grid gap-4 grid-cols-1', {\n variants: {\n variant: {\n twoCols: 'desktop:grid-cols-2',\n threeCols: 'desktop:grid-cols-3',\n fourCols: 'desktop:grid-cols-4'\n }\n },\n defaultVariants: {\n variant: 'fourCols'\n }\n})\n\nexport type InterLinkingClasses = {\n root?: string\n headline?: string\n columnsWrapper?: string\n column?: ColumnClasses\n}\n\nexport interface InterLinkingProps extends InterLinkingRoot {\n mobileAccordionProps?: Partial<AccordionProps>\n rootAccordionProps?: Partial<AccordionProps>\n classes?: InterLinkingClasses\n}\n\nexport const InterLinking = ({ config, headline, mobileAccordionProps, rootAccordionProps, classes }: InterLinkingProps) => {\n const { variant, details: columns } = config\n\n return (\n <section id='inter-linking' className={cn('min-w-full desktop:min-w-[1140px]', classes?.root)}>\n <ResponsiveContainer>\n <Accordion\n defaultOpen\n label={\n <Heading as='h4' className={cn('text-left', classes?.headline)}>\n {headline}\n </Heading>\n }\n {...rootAccordionProps}\n classes={{\n ...rootAccordionProps?.classes,\n header: {\n trigger: cn('bg-color-blue-grey-100', rootAccordionProps?.classes?.header?.trigger)\n },\n content: cn('max-w-full bg-color-blue-grey-100 relative', rootAccordionProps?.classes?.content)\n }}\n >\n <div className={cn(columnsWrapper({ variant: variant }), classes?.columnsWrapper)}>\n {columns?.map((column, index) => (\n <Column key={index} {...column} {...mobileAccordionProps} classes={classes?.column} />\n ))}\n </div>\n </Accordion>\n </ResponsiveContainer>\n </section>\n )\n}\n"],"names":["itemConfig","cva","BenefitItem","description","title","img","mobileImg","classes","withButton","buttonText","intent","cardColor","isDesktop","useDevice","button","jsx","Fragment","Button","cn","scrollToElement","jsxs","Heading","gridConfig","Benefit","heading","cards","ResponsiveContainer","card","renderContentVariant","config","variant","details","PhoneView","Header","logoPath","logoType","BannerButtonsGroup","buttonsConfig","className","withSecondaryBtn","BannerImageFull","headTitle","subtitle","advantagesConfig","imgSets","isMobile","advantage","_a","Advantages","BannerWithSeparateImg","Banner","bannerVariant","props","advantagesList","defaultCopyright","defaultPhones","defaultSocialsLinks","defaultNavigationLinks","SocialLinks","socialsLinks","iconName","href","Icon","PhonesBlock","phones","phone","text","NavLinks","navigationLinks","groupLabel","links","CustomLink","Copyright","FooterLogo","SiteMap","Footer","withSocial","withPhones","withNavLinks","withCopyright","withSiteMap","ligal","copyright","SingleStep","index","withTitles","Stepper","headline","stepsList","Section","step","titleConfig","listItemConfig","containerImgConfig","TextItem","data","popoverText","Popover","Title","desktopHidden","mobileHidden","TextList","textContent","element","LongBanner","buttonConfig","imageComponent","isFourItems","isTwoItems","AUTH_PROVIDER_MODE","AuthWrapper","children","isLoading","loaderProps","Loader","EsiaLogo","Links","mainLink","subLink","MobileId","badge","Badge","Esia","renderProvider","esiaConfig","mobileIdConfig","HeadWrapper","React","AuthProvider","LinksList","path","label","ColumnGroup","mobileAccordionProps","Accordion","_b","_c","Column","column","group","columnsWrapper","InterLinking","rootAccordionProps","columns"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"widget.js","sources":["../lib/widgets/benefit/ui/BenefitItem.tsx","../lib/widgets/benefit/Benefit.tsx","../lib/widgets/header/model/helpers.tsx","../lib/widgets/header/Header.tsx","../lib/widgets/banner/ui/BannerButtonsGroup.tsx","../lib/widgets/banner/ui/banners/BannerImageFull.tsx","../lib/widgets/banner/ui/banners/BannerWithSeparateImg.tsx","../lib/widgets/banner/Banner.tsx","../lib/widgets/advantages/Advantages.tsx","../lib/widgets/footer/ui/SocialLinks.tsx","../lib/widgets/footer/ui/PhonesBlock.tsx","../lib/widgets/footer/ui/NavLinks.tsx","../lib/widgets/footer/ui/Copyright.tsx","../lib/widgets/footer/ui/FooterLogo.tsx","../lib/widgets/footer/ui/SiteMap.tsx","../lib/widgets/footer/ui/Ligal.tsx","../lib/widgets/footer/Footer.tsx","../lib/widgets/stepper/ui/SingleStep.tsx","../lib/widgets/stepper/Stepper.tsx","../lib/widgets/longBanner/model/cva.ts","../lib/widgets/longBanner/ui/TextItem.tsx","../lib/widgets/longBanner/ui/Title.tsx","../lib/widgets/longBanner/ui/TextList.tsx","../lib/widgets/longBanner/LongBanner.tsx","../lib/widgets/authProvider/model/helpers.ts","../lib/widgets/authProvider/ui/ui/AuthWrapper.tsx","../lib/widgets/authProvider/ui/ui/EsiaLogo.tsx","../lib/widgets/authProvider/ui/ui/Links.tsx","../lib/widgets/authProvider/ui/MobileId.tsx","../lib/widgets/authProvider/ui/Esia.tsx","../lib/widgets/authProvider/AuthProvider.tsx","../lib/widgets/interLinking/ui/LinksList.tsx","../lib/widgets/interLinking/ui/ColumnGroup.tsx","../lib/widgets/interLinking/ui/Column.tsx","../lib/widgets/interLinking/InterLinking.tsx"],"sourcesContent":["import { type ReactElement } from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { useDevice } from '$/shared/hooks'\nimport { Button, Heading } from '$/shared/ui'\nimport { cn, scrollToElement } from '$/shared/utils'\nimport { type AllowedBannerBackgroundColor } from '$/widgets/benefit/model'\n\nexport type BenefitItemClasses = {\n root?: string\n button?: string\n wrapper?: string\n textContainer?: string\n description?: string\n img?: string\n imgContainer?: string\n title?: string\n}\n\nconst itemConfig = cva(\n 'flex flex-col justify-between overflow-hidden rounded-md bg-color-blue-grey-100 py-6 desktop:flex-row desktop:px-0 desktop:py-0',\n {\n variants: {\n intent: {\n twoCards: '',\n threeCards: 'desktop:first:col-span-full',\n fourCards: 'desktop:first:col-span-2 desktop:last:col-span-2'\n }\n }\n }\n)\n\nexport interface BenefitItemProps extends VariantProps<typeof itemConfig> {\n title: string\n description: string | ReactElement\n img?: string\n mobileImg?: boolean\n classes?: BenefitItemClasses\n withButton?: boolean\n buttonText?: string\n cardColor?: AllowedBannerBackgroundColor\n}\n\nexport const BenefitItem = ({\n description,\n title,\n img,\n mobileImg,\n classes,\n withButton,\n buttonText,\n intent,\n cardColor\n}: BenefitItemProps) => {\n const { isDesktop } = useDevice()\n\n const button = (\n <>\n <Button\n intent='primary'\n className={cn('desktop:w-[200px]', classes?.button)}\n onClick={() => scrollToElement('personal_form')}\n size='lg'\n >\n {buttonText}\n </Button>\n </>\n )\n\n return (\n <li\n key={img}\n className={cn(itemConfig({ intent }), { 'pb-0': mobileImg }, { 'pb-12': !mobileImg }, cardColor, classes?.root)}\n >\n <div className={cn('flex flex-col items-start justify-between px-4 desktop:px-8 desktop:py-8', classes?.wrapper)}>\n <div className={cn('flex flex-col gap-4', classes?.textContainer)}>\n <Heading as='h4' className={cn('desktop:desk-title-bold-s', classes?.title)}>\n {title}\n </Heading>\n <p className={cn('mob-body-regular-l text-icon-blue-grey-800 desktop:desk-body-regular-l', classes?.description)}>\n {description}\n </p>\n </div>\n {withButton && isDesktop && button}\n </div>\n\n {(mobileImg || isDesktop) && img && (\n <div className={cn('flex w-full justify-end', classes?.imgContainer)}>\n <img className={cn('h-[246px] object-cover', classes?.img)} src={img} alt={title} />\n </div>\n )}\n </li>\n )\n}\n","'use client'\n\nimport { type ReactElement } from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { BenefitItem, type BenefitItemClasses, type BenefitItemProps } from './ui/BenefitItem'\nimport { Heading, ResponsiveContainer } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type BenefitClasses = {\n root?: string\n container?: string\n item?: BenefitItemClasses\n heading?: string\n grid?: string\n}\n\nconst gridConfig = cva('grid gap-4', {\n variants: {\n intent: {\n twoCards: 'grid-cols-1 mobile:grid-rows-[repeat(2,400px)] desktop:grid-cols-2',\n threeCards: 'grid-cols-1 desktop:grid-cols-2',\n fourCards: 'grid-cols-1 mobile:grid-rows-[400px,1fr,1fr,400px] desktop:grid-cols-3'\n }\n }\n})\n\nexport interface BenefitProps extends VariantProps<typeof gridConfig> {\n heading: string | ReactElement\n cards: BenefitItemProps[]\n classes?: BenefitClasses\n}\n\nexport const Benefit = ({ heading, cards, classes, intent }: BenefitProps) => {\n return (\n <section className={cn('pb-20', classes?.root)}>\n <ResponsiveContainer className={classes?.container}>\n <Heading className={cn('mb-8', classes?.heading)} as='h2'>\n {heading}\n </Heading>\n <ul className={cn(gridConfig({ intent }), classes?.grid)}>\n {cards?.map((card) => <BenefitItem intent={intent} key={card.img} classes={classes?.item} {...card} />)}\n </ul>\n </ResponsiveContainer>\n </section>\n )\n}\n","import type { HeaderProps } from './types'\nimport { Button, PhoneView } from '$/shared/ui'\n\nexport const renderContentVariant = (config: HeaderProps['config']) => {\n const { variant, details } = config\n switch (variant) {\n case 'withButton':\n return (\n <Button intent='secondary' size='sm' {...details}>\n {details?.children || 'Оформить заявку'}\n </Button>\n )\n case 'withPhone':\n return <PhoneView {...details} />\n default:\n return null\n }\n}\n","import { renderContentVariant } from './model/helpers'\nimport type { HeaderProps } from './model/types'\nimport { brandLogos, ResponsiveContainer } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport const Header = ({ logoPath = '/', logoType = 'main', config, classes }: HeaderProps) => {\n return (\n <header className={cn('flex h-[64px] items-center justify-center bg-color-white desktop:h-[72px]', classes?.header)}>\n <ResponsiveContainer className={cn(classes?.container)}>\n <div className={cn('flex items-center justify-between gap-5', classes?.wrapper)}>\n <a\n href={logoPath}\n aria-label='logo'\n target='_blank'\n rel='noreferrer'\n className={cn(\n 'flex items-center justify-center [&_svg]:w-[132px] desktop:[&_svg]:h-[32px] desktop:[&_svg]:w-[192px]',\n classes?.logo\n )}\n >\n {brandLogos[logoType]}\n </a>\n {renderContentVariant(config)}\n </div>\n </ResponsiveContainer>\n </header>\n )\n}\n","import { type ButtonsConfig } from '../model'\nimport { Button } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport interface BannerButtonsGroupClasses {\n group?: string\n primary?: string\n secondary?: string\n}\ninterface BannerButtonsGroupProps {\n buttonsConfig: ButtonsConfig\n classes?: Partial<BannerButtonsGroupClasses>\n className?: string\n}\n\nexport const BannerButtonsGroup = ({ buttonsConfig, classes, className }: BannerButtonsGroupProps) => {\n const withSecondaryBtn = buttonsConfig?.secondary && buttonsConfig.secondary.children\n\n return (\n <div\n data-id='banner-buttons-group'\n className={cn(\n 'grid-buttons-apply absolute bottom-6 left-1/2 flex w-full -translate-x-1/2 flex-col justify-self-center px-4 desktop:static desktop:left-auto desktop:max-w-full desktop:translate-x-0 desktop:flex-row desktop:justify-normal desktop:px-0',\n { 'flex items-center gap-4': withSecondaryBtn },\n classes?.group,\n className\n )}\n >\n <Button intent='primary' {...buttonsConfig.primary} isFull className={cn('desktop:max-w-[216px]', classes?.primary)}>\n {buttonsConfig.primary.children}\n </Button>\n {withSecondaryBtn && (\n <Button\n intent='secondary'\n {...buttonsConfig?.secondary}\n isFull\n className={cn('desktop:max-w-[216px]', classes?.secondary)}\n >\n {buttonsConfig?.secondary?.children}\n </Button>\n )}\n </div>\n )\n}\n","'use client'\n\nimport { BannerButtonsGroup } from '../BannerButtonsGroup'\nimport { useDevice } from '$/shared/hooks'\nimport { Heading, ResponsiveContainer } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\nimport { Advantages, type BannerProps } from '$/widgets'\n\nexport const BannerImageFull = ({\n headTitle,\n subtitle,\n buttonsConfig,\n advantagesConfig,\n classes,\n img,\n imgSets\n}: Omit<BannerProps, 'bannerVariant'>) => {\n const { isDesktop, isMobile } = useDevice()\n const advantage = (\n <div\n data-id='banner-advantages'\n className={cn(\n 'flex items-center justify-center pt-4 desktop:absolute desktop:bottom-[-50px] desktop:right-1/2 desktop:translate-x-1/2 desktop:pt-0',\n classes?.advantageContainer\n )}\n >\n {advantagesConfig?.config.details && advantagesConfig?.config.details?.length > 0 && <Advantages {...advantagesConfig} />}\n </div>\n )\n\n return (\n <>\n <section data-id='banner-section' className={cn('relative h-[552px] desktop:h-[456px]', classes?.root)}>\n <div\n data-id='banner-img-wrapper'\n className='absolute bottom-0 left-0 right-0 top-0 z-[-1] mx-auto h-full max-w-[1920px] desktop:h-[456px]'\n >\n <picture>\n <source media='(min-width: 1128px)' srcSet={imgSets?.large} />\n <source media='(max-width: 1127px)' srcSet={imgSets?.mob} />\n <img\n data-id='banner-image'\n src={img}\n alt='Картинка баннера'\n className={cn('h-full w-full object-cover object-center', classes?.image)}\n />\n </picture>\n </div>\n <ResponsiveContainer data-id='banner-container' className={cn('h-full', classes?.container)}>\n <div data-id='banner' className={cn('flex h-full', classes?.wrapper)}>\n <div\n data-id='banner-text-block'\n className={cn('flex w-[328px] flex-col gap-10 pt-6 desktop:w-full desktop:pt-20', classes?.textBlock)}\n >\n <div className='flex flex-col gap-4'>\n <Heading data-id='banner-title' as='h1' className={cn('text-color-white', classes?.title)}>\n {headTitle}\n </Heading>\n <p data-id='banner-subtitle' className={cn('desk-body-regular-l text-color-white', classes?.subtitle)}>\n {subtitle}\n </p>\n </div>\n <BannerButtonsGroup\n className='self-end desktop:self-center'\n data-id='banner-buttons-group'\n buttonsConfig={buttonsConfig}\n classes={classes}\n />\n </div>\n </div>\n\n {isDesktop && advantage}\n </ResponsiveContainer>\n </section>\n {isMobile && advantage}\n </>\n )\n}\n","import { BannerButtonsGroup } from '../BannerButtonsGroup'\nimport { useDevice } from '$/shared/hooks'\nimport { Heading, ResponsiveContainer } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\nimport { Advantages, type BannerProps } from '$/widgets'\n\nexport const BannerWithSeparateImg = ({\n headTitle,\n subtitle,\n buttonsConfig,\n advantagesConfig,\n classes,\n img,\n imgSets\n}: Omit<BannerProps, 'bannerVariant'>) => {\n const { isDesktop, isMobile } = useDevice()\n const advantage = (\n <div\n data-id='banner-advantages'\n className={cn(\n 'flex items-center justify-center rounded-md bg-color-blue-grey-100 p-4 pb-8 desktop:absolute desktop:bottom-[-50px] desktop:right-1/2 desktop:translate-x-1/2 desktop:p-0',\n classes?.advantageContainer\n )}\n >\n {advantagesConfig?.config.details && advantagesConfig?.config.details?.length > 0 && <Advantages {...advantagesConfig} />}\n </div>\n )\n return (\n <>\n <section data-id='banner-section' className={cn('bg-banner-skyblue-300 desktop:h-[456px]', classes?.root)}>\n <ResponsiveContainer data-id='banner-container' className={cn('relative', classes?.container)}>\n <div data-id='banner' className={cn('flex flex-col desktop:flex-row desktop:justify-between', classes?.wrapper)}>\n <div className='flex flex-col desktop:gap-10 desktop:pt-20'>\n <div data-id='banner-text-block' className={cn('flex flex-col gap-4 pt-6 desktop:pt-0', classes?.textBlock)}>\n <Heading data-id='banner-title' as='h1' className={cn('text-color-dark', classes?.title)}>\n {headTitle}\n </Heading>\n <p data-id='banner-subtitle' className={cn('desk-body-regular-l text-color-dark', classes?.subtitle)}>\n {subtitle}\n </p>\n </div>\n\n <BannerButtonsGroup buttonsConfig={buttonsConfig} classes={classes} />\n </div>\n\n <div\n data-id='banner-image-wrapper'\n className={cn('flex h-[356px] justify-center desktop:h-[456px] desktop:w-[550px]', classes?.imageContainer)}\n >\n <picture>\n <source media='(min-width: 1128px)' srcSet={imgSets?.large} />\n <source media='(max-width: 1127px)' srcSet={imgSets?.mob} />\n <img\n data-id='banner-image'\n src={img}\n alt='Картинка баннера'\n className={cn('h-full object-cover', classes?.image)}\n />\n </picture>\n </div>\n </div>\n\n {isDesktop && advantage}\n </ResponsiveContainer>\n </section>\n {isMobile && advantage}\n </>\n )\n}\n","'use client'\n\nimport { type ReactElement } from 'react'\nimport { type AdvantageClasses, type AdvantagesProps } from '../advantages/Advantages'\nimport { type BannerClasses, type ButtonsConfig } from './model/types'\nimport { BannerWithSeparateImg } from './ui/banners'\nimport { BannerImageFull } from './ui/banners'\n\nexport interface BannerProps {\n headTitle: string | ReactElement\n subtitle: string | ReactElement\n img?: string\n imgSets?: {\n large: string\n mob: string\n type?: string\n }\n buttonsConfig: ButtonsConfig\n advantagesConfig?: AdvantagesProps\n classes?: BannerClasses & {\n advantages?: AdvantageClasses\n }\n bannerVariant?: 'separateImg' | 'fullImg'\n}\n\nexport const Banner = ({ bannerVariant, ...props }: BannerProps) => {\n switch (bannerVariant) {\n case 'separateImg':\n return <BannerWithSeparateImg {...props} />\n case 'fullImg':\n return <BannerImageFull {...props} />\n default:\n return <BannerWithSeparateImg {...props} />\n }\n}\n","'use client'\n\nimport type { AdvantageItem } from './model'\nimport { Heading } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport interface AdvantageClasses {\n root?: string\n item?: string\n title?: string\n description?: string\n}\n\nexport interface AdvantagesProps {\n config: {\n variant: 'threeCards' | 'fourCards'\n details: AdvantageItem[]\n }\n classes?: AdvantageClasses\n}\n\nexport const Advantages = ({ config, classes }: AdvantagesProps) => {\n const { variant, details: advantagesList } = config\n\n return (\n <div\n className={cn(\n 'm-auto flex w-full min-w-[328px] max-w-[636px] flex-col gap-8 rounded-md bg-color-white p-6 shadow-sm desktop:w-full desktop:flex-row desktop:items-start desktop:gap-0 desktop:p-0 desktop:py-6',\n { 'desktop:max-w-[860px]': variant === 'threeCards' },\n { 'desktop:max-w-[1140px]': variant === 'fourCards' },\n classes?.root\n )}\n >\n {advantagesList?.map(({ title, description }) => (\n <div\n key={title}\n className={cn(\n 'after:content-[\" \"] relative flex h-full w-full flex-col gap-1 after:absolute after:-bottom-4 after:left-1/2 after:h-[1px] after:w-full after:-translate-x-1/2 after:bg-color-blue-grey-300 last:after:hidden desktop:w-[285px] desktop:px-8 desktop:after:bottom-auto desktop:after:left-auto desktop:after:right-0 desktop:after:top-1/2 desktop:after:h-10 desktop:after:w-[1px] desktop:after:-translate-y-1/2 desktop:after:translate-x-0',\n classes?.item\n )}\n >\n <Heading as='h4' className={cn('text-color-dark', classes?.title)}>\n {title}\n </Heading>\n <p className={cn('desk-body-regular-l text-color-secondary', classes?.description)}>{description}</p>\n </div>\n ))}\n </div>\n )\n}\n","import type { FooterSocialLinks } from '../model/types'\nimport { Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type SocialLinksClasses = {\n socialRoot?: string\n socialLink?: string\n socialIcon?: string\n}\n\ninterface ISocialLinksProps {\n socialsLinks: FooterSocialLinks[]\n classes?: SocialLinksClasses\n}\n\nexport const SocialLinks = ({ socialsLinks, classes }: ISocialLinksProps) => {\n return (\n <div className={cn('mt-4 flex items-center gap-2 desktop:mt-6', classes?.socialRoot)}>\n {socialsLinks?.map(({ iconName, href }) => (\n <a\n className={cn('flex size-8 items-center justify-center rounded-full bg-[#52576a] p-2', classes?.socialLink)}\n href={href}\n key={href}\n aria-label={iconName.replace('social/', '')}\n >\n <Icon name={iconName} className={cn('h-full w-full text-icon-white', classes?.socialIcon)} />\n </a>\n ))}\n </div>\n )\n}\n","import type { FooterPhones } from '../model/types'\nimport { PhoneView } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type PhoneBlockClasses = {\n phonesRoot?: string\n phoneWrapper?: string\n phoneText?: string\n phoneLink?: string\n}\n\ninterface PhonesBlockProps {\n phones: FooterPhones[]\n classes?: PhoneBlockClasses\n}\n\nexport const PhonesBlock = ({ phones, classes }: PhonesBlockProps) => {\n return (\n <div className={cn('flex flex-col gap-4 desktop:items-end', classes?.phonesRoot)}>\n {phones?.map(({ phone, text }) => (\n <PhoneView\n key={phone}\n phone={phone}\n text={text}\n classes={{\n wrapper: cn(classes?.phoneWrapper),\n text: cn('text-color-footer', classes?.phoneText),\n link: cn('text-color-white mobile:m-0', classes?.phoneLink)\n }}\n />\n ))}\n </div>\n )\n}\n","import type { Config } from '../model/types'\nimport { CustomLink } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type NavigationLinksClasses = {\n navRoot?: string\n navGroup?: string\n navLabel?: string\n navLinks?: string\n navLink?: string\n navLinkIcon?: string\n}\n\ninterface NavLinksProps {\n classes?: NavigationLinksClasses\n config: Config\n}\n\nexport const NavLinks = ({ classes, config }: NavLinksProps) => {\n const { details } = config || {}\n return (\n <div\n className={cn(\n 'mt-6 grid grid-cols-1 gap-6 border-b border-blue-grey-500 pb-6 desktop:my-8 desktop:grid-cols-4 desktop:gap-10 desktop:pb-8',\n classes?.navRoot\n )}\n >\n {details?.map(({ column }) =>\n column?.map(({ groupLabel, links }) => (\n <div key={groupLabel} className={cn('flex flex-col gap-4', classes?.navGroup)}>\n <div className={cn('desk-body-medium-l text-color-white', classes?.navLabel)}>{groupLabel}</div>\n <div className={cn('flex flex-col gap-1', classes?.navLinks)}>\n {links?.map(({ path, label }) => (\n <CustomLink\n key={label}\n href={path}\n aria-label={label}\n intent='white'\n classes={{\n link: classes?.navLink,\n icon: classes?.navLinkIcon\n }}\n >\n {label}\n </CustomLink>\n ))}\n </div>\n </div>\n ))\n )}\n </div>\n )\n}\n","import { cn } from '$/shared/utils'\n\nexport type CopyrightClasses = {\n copyRight?: string\n}\n\ninterface CopyrightProps {\n text: string\n classes?: CopyrightClasses\n}\n\nexport const Copyright = ({ text, classes }: CopyrightProps) => {\n return (\n <div\n className={cn('desk-body-regular-m text-color-footer', classes?.copyRight)}\n dangerouslySetInnerHTML={{ __html: text }}\n ></div>\n )\n}\n","import { Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type FooterLogoClasses = {\n footerLogo?: string\n footerLogoIcon?: string\n}\n\nexport interface FooterLogoProps {\n classes?: FooterLogoClasses\n}\n\nexport const FooterLogo = ({ classes }: FooterLogoProps) => {\n return (\n <a\n aria-label='logo'\n href='https://sovcombank.ru/'\n className={cn('block h-[24px] w-[132px] desktop:h-[32px] desktop:w-[194px]', classes?.footerLogo)}\n >\n <Icon name='brandLogos/logoWhite' className={cn('size-full', classes?.footerLogoIcon)} />\n </a>\n )\n}\n","import { CustomLink } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type SiteMapClasses = {\n siteMapLink?: string\n siteMapLinkIcon?: string\n}\n\nexport interface SiteMapProps {\n classes?: SiteMapClasses\n}\n\nexport const SiteMap = ({ classes }: SiteMapProps) => {\n return (\n <CustomLink\n intent='white'\n href='https://sovcombank.ru/site-map'\n target='_blank'\n aria-label='site-map'\n rel='noreferrer'\n classes={{\n link: cn('mobile:mt-6', classes?.siteMapLink),\n icon: classes?.siteMapLinkIcon\n }}\n >\n Карта сайта\n </CustomLink>\n )\n}\n","'use client'\n\nimport * as React from 'react'\nimport { cn } from '$/shared/utils'\n\ntype LigalClasses = {\n ligalRoot?: string\n ligalText?: string\n ligalButton?: string\n}\n\nexport interface LigalProps {\n text: string\n classes?: LigalClasses\n}\n\nexport const Ligal = ({ text, classes }: LigalProps) => {\n const [isExpanded, setIsExpanded] = React.useState(false)\n const [isClamped, setIsClamped] = React.useState(false)\n const ligalRef = React.useRef<HTMLParagraphElement | null>(null)\n\n React.useEffect(() => {\n const element = ligalRef.current\n if (element) {\n setIsClamped(element.scrollHeight > element.clientHeight)\n }\n }, [])\n\n return (\n <div className={cn('mt-8 flex flex-col gap-4', classes?.ligalRoot)}>\n <div\n ref={ligalRef}\n className={cn('desk-body-regular-m text-color-footer', { 'line-clamp-3': !isExpanded }, classes?.ligalText)}\n dangerouslySetInnerHTML={{ __html: text }}\n />\n\n {isClamped && (\n <div\n tabIndex={0}\n role='button'\n onClick={() => setIsExpanded((prev) => !prev)}\n className={cn(\n 'desk-body-regular-l w-max cursor-pointer font-medium text-color-footer transition-colors hover:text-color-white',\n classes?.ligalButton\n )}\n >\n Подробнее\n </div>\n )}\n </div>\n )\n}\n","import type { Config, FooterClasses, FooterPhones, FooterRenderBlocks, FooterSocialLinks } from './model/types'\nimport { Copyright, FooterLogo, NavLinks, PhonesBlock, SiteMap, SocialLinks } from './ui'\nimport { Ligal } from './ui/Ligal'\nimport { ResponsiveContainer } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport interface FooterProps {\n classes?: FooterClasses\n renderBlocks?: FooterRenderBlocks\n socialsLinks?: FooterSocialLinks[]\n phones?: FooterPhones[]\n ligal?: string\n copyright?: string\n config: Config\n}\n\nexport const Footer = ({\n renderBlocks: {\n withSocialsLinks = true,\n withPhones = true,\n withNavLinks = true,\n withCopyright = true,\n withSiteMap = true,\n withLigal = true\n } = {},\n socialsLinks = [],\n phones = [],\n ligal,\n copyright = '',\n classes,\n config\n}: FooterProps) => {\n return (\n <footer className={cn('w-full bg-color-footer py-8 desktop:py-10', classes?.root)}>\n <ResponsiveContainer className={cn(classes?.footerContainer)}>\n <div className={cn('mobile:pb-[176px]', classes?.footerWrapper)}>\n <div\n className={cn(\n 'flex flex-col items-start justify-between gap-4 border-b border-solid border-blue-grey-500 pb-6 desktop:flex-row desktop:gap-6 desktop:pb-8',\n classes?.footerHead\n )}\n >\n <div className={cn(classes?.footerSocialBlock)}>\n <FooterLogo classes={classes?.footerLogo} />\n {withSocialsLinks && <SocialLinks socialsLinks={socialsLinks} classes={classes?.socialLinks} />}\n </div>\n\n {withPhones && <PhonesBlock phones={phones} classes={classes?.phonesBlock} />}\n </div>\n\n {withNavLinks && <NavLinks config={config} classes={classes?.navLinks} />}\n {withLigal && <Ligal text={ligal || ''} />}\n\n <div\n className={cn(\n 'mt-6 flex flex-col-reverse items-start justify-between gap-4 desktop:mt-8 desktop:flex-row desktop:gap-6',\n classes?.footerBottom\n )}\n >\n {withCopyright && <Copyright text={copyright} classes={classes?.copyright} />}\n {withSiteMap && <SiteMap classes={classes?.siteMap} />}\n </div>\n </div>\n </ResponsiveContainer>\n </footer>\n )\n}\n","import type { SingleStepProps } from '../model/types'\nimport { Heading } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type SingleStepClasses = {\n singleStep?: string\n numeric?: string\n textBlock?: string\n title?: string\n description?: string\n}\n\nexport const SingleStep = ({ classes, index, variant, title, description }: SingleStepProps) => {\n const withTitles = variant === 'withTitleAndDescription' && title\n\n return (\n <div\n className={cn(\n 'flex w-[328px] max-w-[328px] flex-col gap-4 rounded-md border border-solid border-blue-grey-500 p-4 desktop:w-[348px] desktop:max-w-[348px] desktop:border-none desktop:p-0',\n classes?.singleStep\n )}\n >\n <div\n className={cn(\n 'mob-headline-bold-s flex size-10 items-center justify-center rounded-sm bg-color-blue-grey-500 text-color-white desktop:desk-title-bold-l desktop:size-12',\n classes?.numeric\n )}\n >\n {index}\n </div>\n\n <div className={cn('flex flex-col gap-2')}>\n {withTitles && (\n <Heading as='h4' className={cn('text-color-dark', classes?.title)}>\n {title}\n </Heading>\n )}\n <div\n dangerouslySetInnerHTML={{ __html: description ?? '' }}\n className={cn('desk-body-regular-l text-color-tetriary', classes?.description)}\n />\n </div>\n </div>\n )\n}\n","import { type HTMLAttributes } from 'react'\nimport type { SingleStepItem, StepperVariant } from './model/types'\nimport { SingleStep, type SingleStepClasses } from './ui/SingleStep'\nimport { Heading, ResponsiveContainer, Section } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type StepperClasses = {\n root?: string\n container?: string\n wrapper?: string\n headline?: string\n stepsWrapper?: string\n step?: SingleStepClasses\n}\n\nexport interface StepperProps extends HTMLAttributes<HTMLDivElement> {\n headline: string\n config: {\n variant: StepperVariant\n details: SingleStepItem[]\n }\n classes?: StepperClasses\n}\n\nexport const Stepper = ({ headline, config, classes }: StepperProps) => {\n const { variant, details: stepsList } = config\n\n return (\n <Section className={classes?.root}>\n <ResponsiveContainer className={classes?.container}>\n <div className={cn('flex flex-col gap-6 desktop:items-start desktop:gap-12', classes?.wrapper)}>\n <Heading as='h2' className={cn('text-color-dark', classes?.headline)}>\n {headline}\n </Heading>\n <div\n className={cn(\n 'flex w-full flex-col items-start gap-6 desktop:flex-row desktop:items-start desktop:gap-12',\n classes?.stepsWrapper\n )}\n >\n {stepsList?.map((step, index) => (\n <SingleStep variant={variant} key={step.description} {...step} index={index + 1} classes={classes?.step} />\n ))}\n </div>\n </div>\n </ResponsiveContainer>\n </Section>\n )\n}\n","import { cva } from 'class-variance-authority'\r\n\r\nexport const titleConfig = cva('', {\r\n variants: {\r\n intent: {\r\n twoItems: 'mob-headline-bold-s mb-6 desktop:desk-headline-bold-m desktop:mb-12',\r\n fourItems: 'mob-title-bold-l desktop:desk-title-bold-l mb-8'\r\n },\r\n desktopHidden: {\r\n true: 'desktop:hidden'\r\n },\r\n mobileHidden: {\r\n true: 'mobile:hidden'\r\n }\r\n },\r\n defaultVariants: {\r\n intent: 'twoItems'\r\n }\r\n})\r\n\r\nexport const listItemConfig = cva('', {\r\n variants: {\r\n intent: {\r\n twoItems: '',\r\n fourItems: ''\r\n },\r\n withButton: {\r\n true: ''\r\n }\r\n },\r\n compoundVariants: [\r\n {\r\n intent: 'twoItems',\r\n withButton: true,\r\n class: 'mb-8 desktop:flex'\r\n },\r\n {\r\n intent: 'twoItems',\r\n withButton: false,\r\n class: 'desktop:flex'\r\n },\r\n {\r\n intent: 'fourItems',\r\n withButton: true,\r\n class: 'desktop:grid grid-rows-2 mb-8 desktop:gap-x-10 desktop:gap-y-4 grid-flow-col'\r\n },\r\n {\r\n intent: 'fourItems',\r\n withButton: false,\r\n class: 'desktop:grid grid-rows-2 desktop:gap-x-10 desktop:gap-y-4 grid-flow-col'\r\n }\r\n ]\r\n})\r\n\r\nexport const itemConfig = cva('border-blue-grey-500 pb-6 mobile:mb-6 mobile:border-b mobile:last:pb-0 mobile:last:mb-0', {\r\n variants: {\r\n intent: {\r\n twoItems:\r\n 'last:border-none relative desktop:first:after:top-1/2 desktop:first:after:-translate-y-1/2 desktop:first:after:right-0 desktop:first:after:content-[\"\"] desktop:first:after:block desktop:first:after:absolute desktop:first:after:w-[1px] desktop:first:after:h-[64px] desktop:first:after:bg-color-blue-grey-500 desktop:ml-8 desktop:pr-8 desktop:first:ml-0 desktop:last:pr-0 desktop:pb-3',\r\n fourItems: ' mobile:last:border-none desktop:w-[264px] desktop:odd:border-b desktop:pb-0 desktop:odd:pb-3'\r\n }\r\n },\r\n defaultVariants: {\r\n intent: 'twoItems'\r\n }\r\n})\r\n\r\nexport const containerImgConfig = cva('mobile:mx-auto mobile:mb-8, h-[172px] w-[280px] ', {\r\n variants: {\r\n intent: {\r\n twoItems: 'desktop:h-[232px] desktop:w-[500px]',\r\n fourItems: ' '\r\n },\r\n withButton: {\r\n true: true,\r\n false: false\r\n }\r\n },\r\n defaultVariants: {\r\n intent: 'twoItems'\r\n },\r\n compoundVariants: [\r\n {\r\n intent: 'fourItems',\r\n withButton: true,\r\n class: 'desktop:h-[360px] desktop:w-[500px]'\r\n },\r\n {\r\n intent: 'fourItems',\r\n withButton: false,\r\n class: 'desktop:h-[272px] desktop:w-[500px]'\r\n }\r\n ]\r\n})\r\n","import { itemConfig } from '../model/cva'\r\nimport { type TextItemProps } from '../model/types'\r\nimport { Icon, Popover } from '$/shared/ui'\r\nimport { cn } from '$/shared/utils'\r\n\r\nexport const TextItem = ({ data, intent }: TextItemProps) => {\r\n const {\r\n title,\r\n description,\r\n popover = {\r\n enabled: false\r\n }\r\n } = data\r\n return (\r\n <li className={cn(itemConfig({ intent }))}>\r\n <div className='desktop:max-w-[264px]'>\r\n <div className={cn('mb-2 flex items-center gap-2')}>\r\n <h4 className={cn('mob-title-bold-m text-color-dark')}>{title}</h4>\r\n {popover.enabled && (\r\n <Popover triggerElement={<Icon className={cn('size-5 text-icon-blue-grey-600')} name='info/helpCircle' />}>\r\n {popover?.text}\r\n </Popover>\r\n )}\r\n </div>\r\n\r\n <div className={cn('mob-body-regular-l text-color-secondary')} dangerouslySetInnerHTML={{ __html: description }} />\r\n </div>\r\n </li>\r\n )\r\n}\r\n","import { type ReactElement } from 'react'\r\nimport { titleConfig } from '../model/cva'\r\nimport { type LongBannerConfig } from '../model/types'\r\nimport { cn } from '$/shared/utils'\r\n\r\ninterface TitleProps {\r\n intent: LongBannerConfig['intent']\r\n headline: string | ReactElement\r\n desktopHidden?: boolean\r\n mobileHidden?: boolean\r\n}\r\n\r\nexport const Title = ({ intent, headline, desktopHidden = false, mobileHidden = false }: TitleProps) => {\r\n return <h2 className={cn(titleConfig({ intent, desktopHidden, mobileHidden }))}>{headline}</h2>\r\n}\r\n","import { listItemConfig } from '../model/cva'\r\nimport { type Details, type LongBannerConfig } from '../model/types'\r\nimport { TextItem } from './TextItem'\r\nimport { cn } from '$/shared/utils'\r\n\r\ninterface ListItemsProps {\r\n details: Details[]\r\n intent: LongBannerConfig['intent']\r\n withButton: boolean\r\n}\r\n\r\nexport const TextList = ({ details, intent, withButton }: ListItemsProps) => {\r\n return (\r\n <ul className={cn(listItemConfig({ intent, withButton }))}>\r\n {details?.map((element, index) => <TextItem intent={intent} data={element} key={index} />)}\r\n </ul>\r\n )\r\n}\r\n","import { type ReactElement } from 'react'\r\nimport { containerImgConfig } from './model/cva'\r\nimport { type ButtonConfig, type Config, type LongBannerClasses, type LongBannerConfig } from './model/types'\r\nimport { TextList, Title } from './ui'\r\nimport { Button, ResponsiveContainer } from '$/shared/ui'\r\nimport { cn } from '$/shared/utils'\r\n\r\nexport interface LongBannerProps extends LongBannerConfig {\r\n headline: string | ReactElement\r\n buttonConfig?: ButtonConfig\r\n config: Config\r\n imageComponent: ReactElement\r\n withButton?: boolean\r\n classes?: LongBannerClasses\r\n}\r\n\r\nexport const LongBanner = ({ headline, buttonConfig, withButton = false, config, imageComponent, classes }: LongBannerProps) => {\r\n const { intent = 'twoItems', details } = config\r\n const isFourItems = intent === 'fourItems'\r\n const isTwoItems = intent === 'twoItems'\r\n\r\n return (\r\n <section className={cn(classes?.root)}>\r\n <ResponsiveContainer className={cn(classes?.container)}>\r\n {isTwoItems && <Title intent={intent} headline={headline} />}\r\n\r\n <div\r\n className={cn(\r\n 'bg-banner-skyblue-100 px-6 pb-8 pt-6 desktop:flex desktop:flex-row-reverse desktop:justify-between desktop:px-0 desktop:py-0 desktop:pl-12',\r\n classes?.contentContainer\r\n )}\r\n >\r\n {isFourItems && <Title intent={intent} headline={headline} desktopHidden={true} />}\r\n <div className={cn(containerImgConfig({ intent, withButton }), classes?.imgContainer)}>{imageComponent}</div>\r\n <div\r\n className={cn('desktop:flex desktop:flex-col desktop:justify-center desktop:py-10', classes?.textWithBtnContainer)}\r\n >\r\n {isFourItems && <Title intent={intent} headline={headline} mobileHidden={true} />}\r\n <TextList details={details} intent={intent} withButton={withButton} />\r\n {withButton && (\r\n <Button\r\n className={cn('w-full px-4 desktop:w-max', classes?.button)}\r\n size='lg'\r\n onClick={buttonConfig?.onClick}\r\n intent='secondary'\r\n >\r\n {buttonConfig?.text}\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </ResponsiveContainer>\r\n </section>\r\n )\r\n}\r\n","export const AUTH_PROVIDER_MODE = {\n ESIA: 'esia',\n MOBILE_ID: 'mobileId',\n COMBINE: 'combine'\n} as const\n","import { Loader, type LoaderProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type AuthWrapperClasses = {\n root?: string\n wrapper?: string\n}\n\nexport interface AuthWrapperProps {\n children: React.ReactElement\n classes?: AuthWrapperClasses\n isLoading?: boolean\n loaderProps?: LoaderProps\n}\n\nexport const AuthWrapper = ({ children, isLoading, classes, loaderProps }: AuthWrapperProps) => {\n return (\n <div\n tabIndex={0}\n className={cn(\n 'relative flex h-[90px] w-full max-w-[328px] items-center justify-center rounded-sm p-2 desktop:max-w-[524px]',\n 'bg-color-white outline outline-1 outline-warm-grey-200 transition-colors focus-visible:outline-primary-focus',\n classes?.root\n )}\n >\n <div\n className={cn(\n 'flex h-[74px] flex-1 cursor-pointer rounded-sm px-2 py-3 transition-colors desktop:px-4 desktop:py-3',\n 'bg-color-blue-grey-100 hover:bg-color-blue-grey-200 active:bg-color-blue-grey-300',\n { 'items-center': isLoading },\n classes?.wrapper\n )}\n >\n {isLoading ? <Loader position='static' classes={{ wrapper: 'size-8 m-auto' }} {...loaderProps} /> : children}\n </div>\n </div>\n )\n}\n","import { type SVGProps } from 'react'\n\nexport const EsiaLogo = ({ ...props }: SVGProps<SVGSVGElement>) => {\n return (\n <svg width='32' height='32' viewBox='0 0 32 32' fill='none' xmlns='http://www.w3.org/2000/svg' {...props}>\n <path\n d='M30.3986 10.6149C30.2728 8.96576 29.014 6.85155 27.7553 5.83672C26.3398 4.79816 24.8691 3.83828 23.3497 2.96139C21.8418 2.06068 20.2871 1.24201 18.6923 0.508895C17.8404 0.15868 16.927 -0.0139306 16.007 0.00148264C15.0868 -0.0180029 14.1725 0.154761 13.3217 0.508895C11.7272 1.24253 10.1725 2.06119 8.66438 2.96139C6.23081 4.44134 4.25878 5.83672 4.25878 5.83672C3.22329 6.71008 2.43892 7.83418 1.97146 9.09195C1.87834 9.34251 2.07032 9.59987 2.33762 9.59987H4.2568C4.55401 9.59987 4.82321 9.43281 4.98085 9.18085C5.33539 8.61417 5.77902 8.10202 6.29948 7.66607C6.29948 7.66607 7.92774 6.52186 9.93709 5.3083C11.1823 4.57013 12.466 3.89884 13.7826 3.29725C14.485 3.00687 15.2399 2.8652 15.9998 2.88118C16.7593 2.86854 17.5136 3.01008 18.217 3.29725C19.5337 3.89841 20.8174 4.56972 22.0624 5.3083C23.317 6.02735 24.5313 6.81445 25.7 7.66607C26.7394 8.49823 27.7787 10.2319 27.8826 11.5841C27.8826 11.5841 28.1251 13.5952 28.1598 15.9772C28.1576 17.4483 28.0767 18.9183 27.9173 20.3807C27.6755 21.912 26.8879 23.3038 25.7 24.2988C25.7 24.2988 24.0718 25.4777 22.0624 26.6912C20.8172 27.4294 19.5335 28.1007 18.217 28.7023C17.5145 28.9927 16.7596 29.1343 15.9998 29.1184C15.2409 29.1343 14.4867 28.9963 13.7826 28.7127C12.4658 28.1115 11.1821 27.4402 9.93709 26.7016C7.92774 25.5228 6.29948 24.3092 6.29948 24.3092C5.84515 23.9454 5.39081 23.4094 5.01172 22.8082C4.85581 22.561 4.5896 22.3997 4.2973 22.3997H2.34718C2.07645 22.3997 1.88475 22.6629 1.98611 22.914C2.49249 24.168 3.37564 25.4212 4.25878 26.1332C4.25878 26.1332 6.23081 27.6132 8.66438 29.0508C10.1723 29.9515 11.7269 30.7702 13.3217 31.5033C14.1745 31.8492 15.088 32.0175 16.007 31.998C16.9273 32.0175 17.8416 31.8448 18.6923 31.4906C20.2869 30.757 21.8415 29.9383 23.3497 29.0381C25.7833 27.5582 27.7553 26.1205 27.7553 26.1205C29.1939 24.9072 30.1478 23.2098 30.4406 21.3424C30.6337 19.5589 30.7317 17.7663 30.7343 15.9723C30.6923 13.0673 30.3986 10.6149 30.3986 10.6149Z'\n fill='url(#paint0_linear_6493_452)'\n />\n <path\n d='M1.27985 12.4821C1.27985 12.1286 1.56638 11.8421 1.91985 11.8421H11.8398C12.1933 11.8421 12.4798 12.1286 12.4798 12.4821V14.4021C12.4798 14.7555 12.1933 15.0421 11.8398 15.0421H1.27985V12.4821Z'\n fill='#0066B3'\n />\n <path\n d='M1.27985 16.9618H21.4398C21.7933 16.9618 22.0798 17.2484 22.0798 17.6018V19.5218C22.0798 19.8752 21.7933 20.1618 21.4398 20.1618H1.91985C1.56638 20.1618 1.27985 19.8752 1.27985 19.5218V16.9618Z'\n fill='#EE2F53'\n />\n <defs>\n <linearGradient id='paint0_linear_6493_452' x1='16.0071' y1='0' x2='16.0071' y2='31.9996' gradientUnits='userSpaceOnUse'>\n <stop stopColor='#0066B3' />\n <stop offset='0.354167' stopColor='#0066B3' />\n <stop offset='0.6875' stopColor='#EE2F53' />\n <stop offset='1' stopColor='#EE2F53' />\n </linearGradient>\n </defs>\n </svg>\n )\n}\n","import type { SingleAuthSchema } from '../../model/types'\nimport { CustomLink } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type TLinksClasses = {\n linksWrapper?: string\n linksMainLink?: string\n linksSubLink?: string\n}\n\ninterface ILinksProps extends Pick<SingleAuthSchema, 'subLink' | 'mainLink'> {\n isMobile: boolean\n classes?: TLinksClasses\n}\n\nexport const Links = ({ mainLink, subLink, isMobile, classes }: ILinksProps) => {\n return (\n <div className={cn('flex flex-col', classes?.linksWrapper)}>\n <a\n href={mainLink.href}\n target='_blank'\n rel='noreferrer'\n className={cn(\n 'before:content=[\" \"] desk-body-medium-l z-[4] text-color-dark before:absolute before:left-1/2 before:top-1/2 before:h-full before:w-full before:-translate-x-1/2 before:-translate-y-1/2',\n classes?.linksMainLink\n )}\n >\n {isMobile ? mainLink.mobileTitle : mainLink.title}\n </a>\n\n {subLink?.text && subLink?.href && (\n <CustomLink\n intent='blue'\n withUnderline\n href={subLink?.href}\n target='_blank'\n rel='noreferrer'\n classes={{\n link: cn('w-max relative z-[6] p-0 desk-body-regular-m text-color-tetriary', classes?.linksSubLink)\n }}\n >\n {subLink?.text}\n </CustomLink>\n )}\n </div>\n )\n}\n","import { type TMobileIdProps } from '../model/types'\nimport { AuthWrapper, Links } from './ui/'\nimport { useDevice } from '$/shared/hooks'\nimport { Badge, Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport const MobileId = ({ mainLink, subLink, isLoading, badge, loaderProps, classes }: TMobileIdProps) => {\n const { isMobile } = useDevice()\n\n return (\n <AuthWrapper isLoading={isLoading} loaderProps={loaderProps} classes={classes?.authWrapper}>\n <div\n className={cn(\n 'flex flex-1 items-center justify-between gap-1',\n { 'justify-center': !badge && isMobile },\n classes?.innerWrapper\n )}\n >\n <div className={cn('flex items-center gap-1 desktop:gap-4', classes?.textContent)}>\n <div>\n <Icon name='logos/mts' className={cn('relative z-[9] size-7 desktop:size-8', classes?.mtsLogo)} />\n <Icon name='logos/megafon' className={cn('relative z-[8] -ml-4 size-7 desktop:size-8', classes?.megafonLogo)} />\n <Icon name='logos/beeline' className={cn('relative z-[7] -ml-4 size-7 desktop:size-8', classes?.beelineLogo)} />\n </div>\n <Links mainLink={mainLink} subLink={subLink} isMobile={isMobile} classes={classes?.links} />\n <Icon name='arrows/arrowRight' className={cn('mobile:hidden', classes?.arrowIcon)} />\n </div>\n {badge && <Badge className={cn('bg-color-positive', classes?.badge)}>{badge}</Badge>}\n </div>\n </AuthWrapper>\n )\n}\n","import type { TEsiaProps } from '../model/types'\nimport { AuthWrapper, EsiaLogo, Links } from './ui'\nimport { useDevice } from '$/shared/hooks'\nimport { Badge, Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport const Esia = ({ mainLink, subLink, isLoading, badge, loaderProps, classes }: TEsiaProps) => {\n const { isMobile } = useDevice()\n\n return (\n <AuthWrapper isLoading={isLoading} loaderProps={loaderProps} classes={classes?.authWrapper}>\n <div\n className={cn(\n 'flex flex-1 items-center justify-between gap-1',\n { 'justify-center': !badge && isMobile },\n classes?.innerWrapper\n )}\n >\n <div className={cn('flex items-center gap-1 desktop:gap-4', classes?.textContent)}>\n <EsiaLogo className={cn('size-7 desktop:size-8', classes?.esiaLogo)} />\n <Links mainLink={mainLink} subLink={subLink} isMobile={isMobile} classes={classes?.links} />\n <Icon name='arrows/arrowRight' className={cn('mobile:hidden', classes?.arrowIcon)} />\n </div>\n {badge && <Badge className={cn('bg-color-positive', classes?.badge)}>{badge}</Badge>}\n </div>\n </AuthWrapper>\n )\n}\n","import * as React from 'react'\nimport { AUTH_PROVIDER_MODE } from './model/helpers'\nimport type { AuthProviderProps } from './model/types'\nimport { Esia, MobileId } from './ui'\nimport { Badge } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nconst renderProvider = (props: AuthProviderProps): React.ReactElement => {\n switch (props.mode) {\n case AUTH_PROVIDER_MODE.ESIA:\n return <Esia {...props} />\n case AUTH_PROVIDER_MODE.MOBILE_ID:\n return <MobileId {...props} />\n case AUTH_PROVIDER_MODE.COMBINE:\n default:\n const { esiaConfig, mobileIdConfig, subtitle, badge, classes } = props\n\n const HeadWrapper = !subtitle && !badge ? React.Fragment : 'div'\n\n return (\n <div\n className={cn(\n 'flex w-[328px] flex-col items-center justify-center gap-2 rounded-sm bg-color-white px-2 py-4 outline outline-1 outline-warm-grey-200 desktop:w-[524px] desktop:p-4',\n classes?.root\n )}\n >\n <HeadWrapper className={cn('flex w-full items-center justify-between gap-2', classes?.topContent)}>\n {subtitle && <h5 className={cn('desk-body-regular-l flex flex-1 text-color-dark', classes?.subtitle)}>{subtitle}</h5>}\n {badge && <Badge className={cn('bg-color-positive', classes?.badge)}>{badge}</Badge>}\n </HeadWrapper>\n <div className={cn('grid w-full grid-cols-2 gap-2 desktop:gap-4', classes?.authWrapper)}>\n <Esia\n {...esiaConfig}\n classes={{\n root: 'p-0 outline-0 h-[74px]',\n arrowIcon: 'hidden',\n ...esiaConfig.classes\n }}\n />\n <MobileId\n {...mobileIdConfig}\n classes={{\n root: 'p-0 outline-0 h-[74px]',\n arrowIcon: 'hidden',\n ...mobileIdConfig.classes\n }}\n />\n </div>\n </div>\n )\n }\n}\n\nexport const AuthProvider = (props: AuthProviderProps) => {\n return renderProvider(props)\n}\n","import type { Link } from '../model/types'\nimport { CustomLink } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type LinksListClasses = {\n linksWrapper?: string\n linkText?: string\n linkIcon?: string\n}\n\nexport interface LinksListProps {\n links: Link[]\n classes?: LinksListClasses\n}\n\nexport const LinksList = ({ links, classes }: LinksListProps) => {\n return (\n <nav className={cn('flex flex-col gap-1', classes?.linksWrapper)}>\n {links?.map(({ path, label }) => (\n <CustomLink\n classes={{\n link: cn('w-max', classes?.linkText),\n icon: cn(classes?.linkIcon)\n }}\n intent='dark'\n key={path}\n href={path}\n >\n {label}\n </CustomLink>\n ))}\n </nav>\n )\n}\n","import type { Group } from '../model/types'\nimport { LinksList, type LinksListClasses } from './LinksList'\nimport { useDevice } from '$/shared/hooks'\nimport { Accordion, type AccordionProps, Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type ColumnGroupClasses = {\n columnGroup?: string\n columnGroupHeading?: string\n linksList?: LinksListClasses\n}\n\nexport interface ColumnGroupProps extends Group {\n mobileAccordionProps?: AccordionProps\n classes?: ColumnGroupClasses\n}\n\nexport const ColumnGroup = ({ groupLabel, links, mobileAccordionProps, classes }: ColumnGroupProps) => {\n const { isMobile } = useDevice()\n\n return (\n <div className={cn('flex flex-col gap-2', classes?.columnGroup)}>\n {!isMobile && (\n <>\n <h5 className={cn('mob-body-medium-l text-color-dark desktop:desk-body-medium-l', classes?.columnGroupHeading)}>\n {groupLabel}\n </h5>\n <LinksList key='desktop' links={links} classes={classes?.linksList} />\n </>\n )}\n\n {isMobile && (\n <Accordion\n defaultOpen\n label={groupLabel}\n icon={\n <Icon name='arrows/arrowRight' className={cn('rotate-90 transition-transform group-data-[state=open]:-rotate-90')} />\n }\n {...mobileAccordionProps}\n classes={{\n ...mobileAccordionProps?.classes,\n header: {\n trigger: cn('p-0 bg-color-blue-grey-100', mobileAccordionProps?.classes?.header?.trigger)\n },\n contentInner: cn('py-2 px-4', mobileAccordionProps?.classes?.contentInner)\n }}\n >\n <LinksList key='mobile' links={links} classes={classes?.linksList} />\n </Accordion>\n )}\n </div>\n )\n}\n","import type { Group } from '../model/types'\nimport { ColumnGroup, type ColumnGroupClasses } from './ColumnGroup'\nimport type { AccordionProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type ColumnClasses = {\n column?: string\n columnGroup?: ColumnGroupClasses\n}\n\nexport interface ColumnProps {\n column: Group[]\n mobileAccordionProps?: AccordionProps\n classes?: ColumnClasses\n}\n\nexport const Column = ({ column, mobileAccordionProps, classes }: ColumnProps) => {\n return (\n <div className={cn('flex flex-col gap-4 desktop:gap-6', classes?.column)}>\n {column?.map((group) => (\n <ColumnGroup key={group.groupLabel} {...mobileAccordionProps} {...group} classes={classes?.columnGroup} />\n ))}\n </div>\n )\n}\n","import { cva } from 'class-variance-authority'\nimport type { InterLinkingRoot } from './model/types'\nimport { Column, type ColumnClasses } from './ui'\nimport { Accordion, type AccordionProps, Heading, ResponsiveContainer } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nconst columnsWrapper = cva('grid gap-4 grid-cols-1', {\n variants: {\n variant: {\n twoCols: 'desktop:grid-cols-2',\n threeCols: 'desktop:grid-cols-3',\n fourCols: 'desktop:grid-cols-4'\n }\n },\n defaultVariants: {\n variant: 'fourCols'\n }\n})\n\nexport type InterLinkingClasses = {\n root?: string\n headline?: string\n columnsWrapper?: string\n column?: ColumnClasses\n}\n\nexport interface InterLinkingProps extends InterLinkingRoot {\n mobileAccordionProps?: Partial<AccordionProps>\n rootAccordionProps?: Partial<AccordionProps>\n classes?: InterLinkingClasses\n}\n\nexport const InterLinking = ({ config, headline, mobileAccordionProps, rootAccordionProps, classes }: InterLinkingProps) => {\n const { variant, details: columns } = config\n\n return (\n <section id='inter-linking' className={cn('min-w-full desktop:min-w-[1140px]', classes?.root)}>\n <ResponsiveContainer>\n <Accordion\n defaultOpen\n label={\n <Heading as='h4' className={cn('text-left', classes?.headline)}>\n {headline}\n </Heading>\n }\n {...rootAccordionProps}\n classes={{\n ...rootAccordionProps?.classes,\n header: {\n trigger: cn('bg-color-blue-grey-100', rootAccordionProps?.classes?.header?.trigger)\n },\n content: cn('max-w-full bg-color-blue-grey-100 relative', rootAccordionProps?.classes?.content)\n }}\n >\n <div className={cn(columnsWrapper({ variant: variant }), classes?.columnsWrapper)}>\n {columns?.map((column, index) => (\n <Column key={index} {...column} {...mobileAccordionProps} classes={classes?.column} />\n ))}\n </div>\n </Accordion>\n </ResponsiveContainer>\n </section>\n )\n}\n"],"names":["itemConfig","cva","BenefitItem","description","title","img","mobileImg","classes","withButton","buttonText","intent","cardColor","isDesktop","useDevice","button","jsx","Fragment","Button","cn","scrollToElement","jsxs","Heading","gridConfig","Benefit","heading","cards","ResponsiveContainer","card","renderContentVariant","config","variant","details","PhoneView","Header","logoPath","logoType","BannerButtonsGroup","buttonsConfig","className","withSecondaryBtn","BannerImageFull","headTitle","subtitle","advantagesConfig","imgSets","isMobile","advantage","_a","Advantages","BannerWithSeparateImg","Banner","bannerVariant","props","advantagesList","SocialLinks","socialsLinks","iconName","href","Icon","PhonesBlock","phones","phone","text","NavLinks","column","groupLabel","links","path","label","CustomLink","Copyright","FooterLogo","SiteMap","Ligal","isExpanded","setIsExpanded","React","isClamped","setIsClamped","ligalRef","element","prev","Footer","withSocialsLinks","withPhones","withNavLinks","withCopyright","withSiteMap","withLigal","ligal","copyright","SingleStep","index","withTitles","Stepper","headline","stepsList","Section","step","titleConfig","listItemConfig","containerImgConfig","TextItem","data","popover","Popover","Title","desktopHidden","mobileHidden","TextList","LongBanner","buttonConfig","imageComponent","isFourItems","isTwoItems","AUTH_PROVIDER_MODE","AuthWrapper","children","isLoading","loaderProps","Loader","EsiaLogo","Links","mainLink","subLink","MobileId","badge","Badge","Esia","renderProvider","esiaConfig","mobileIdConfig","HeadWrapper","AuthProvider","LinksList","ColumnGroup","mobileAccordionProps","Accordion","_b","_c","Column","group","columnsWrapper","InterLinking","rootAccordionProps","columns"],"mappings":"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"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import * as React from 'react';
|
|
1
|
+
import { Config, FooterClasses, FooterPhones, FooterRenderBlocks, FooterSocialLinks } from './model/types';
|
|
3
2
|
export interface FooterProps {
|
|
4
3
|
classes?: FooterClasses;
|
|
5
4
|
renderBlocks?: FooterRenderBlocks;
|
|
6
5
|
socialsLinks?: FooterSocialLinks[];
|
|
7
6
|
phones?: FooterPhones[];
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
ligal?: string;
|
|
8
|
+
copyright?: string;
|
|
9
|
+
config: Config;
|
|
11
10
|
}
|
|
12
|
-
export declare const Footer: ({ renderBlocks: {
|
|
11
|
+
export declare const Footer: ({ renderBlocks: { withSocialsLinks, withPhones, withNavLinks, withCopyright, withSiteMap, withLigal }, socialsLinks, phones, ligal, copyright, classes, config }: FooterProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -4,23 +4,32 @@ export interface FooterSocialLinks {
|
|
|
4
4
|
iconName: `social/${SpritesMap['social']}`;
|
|
5
5
|
href: string;
|
|
6
6
|
}
|
|
7
|
-
export interface
|
|
7
|
+
export interface Config {
|
|
8
|
+
variant?: string;
|
|
9
|
+
details: Detail[];
|
|
10
|
+
}
|
|
11
|
+
export interface Detail {
|
|
12
|
+
column: Column[];
|
|
13
|
+
}
|
|
14
|
+
export interface Column {
|
|
8
15
|
groupLabel: string;
|
|
9
|
-
links:
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
16
|
+
links: Link[];
|
|
17
|
+
}
|
|
18
|
+
export interface Link {
|
|
19
|
+
label: string;
|
|
20
|
+
path: string;
|
|
13
21
|
}
|
|
14
22
|
export interface FooterPhones {
|
|
15
23
|
phone: string;
|
|
16
24
|
text: string;
|
|
17
25
|
}
|
|
18
26
|
export type FooterRenderBlocks = {
|
|
19
|
-
|
|
27
|
+
withSocialsLinks?: boolean;
|
|
20
28
|
withPhones?: boolean;
|
|
21
29
|
withNavLinks?: boolean;
|
|
22
30
|
withCopyright?: boolean;
|
|
23
31
|
withSiteMap?: boolean;
|
|
32
|
+
withLigal?: boolean;
|
|
24
33
|
};
|
|
25
34
|
export type FooterClasses = {
|
|
26
35
|
root?: string;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
1
|
export type CopyrightClasses = {
|
|
3
2
|
copyRight?: string;
|
|
4
3
|
};
|
|
5
4
|
interface CopyrightProps {
|
|
6
|
-
text
|
|
5
|
+
text: string;
|
|
7
6
|
classes?: CopyrightClasses;
|
|
8
7
|
}
|
|
9
8
|
export declare const Copyright: ({ text, classes }: CopyrightProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
1
|
type LigalClasses = {
|
|
3
2
|
ligalRoot?: string;
|
|
4
3
|
ligalText?: string;
|
|
5
4
|
ligalButton?: string;
|
|
6
5
|
};
|
|
7
6
|
export interface LigalProps {
|
|
8
|
-
text: string
|
|
7
|
+
text: string;
|
|
9
8
|
classes?: LigalClasses;
|
|
10
9
|
}
|
|
11
10
|
export declare const Ligal: ({ text, classes }: LigalProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Config } from '../model/types';
|
|
2
2
|
export type NavigationLinksClasses = {
|
|
3
3
|
navRoot?: string;
|
|
4
4
|
navGroup?: string;
|
|
@@ -8,8 +8,8 @@ export type NavigationLinksClasses = {
|
|
|
8
8
|
navLinkIcon?: string;
|
|
9
9
|
};
|
|
10
10
|
interface NavLinksProps {
|
|
11
|
-
navigationLinks: FooterNavLinks[];
|
|
12
11
|
classes?: NavigationLinksClasses;
|
|
12
|
+
config: Config;
|
|
13
13
|
}
|
|
14
|
-
export declare const NavLinks: ({
|
|
14
|
+
export declare const NavLinks: ({ classes, config }: NavLinksProps) => import("react/jsx-runtime").JSX.Element;
|
|
15
15
|
export {};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { ReactElement } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { ButtonConfig, Config, LongBannerClasses, LongBannerConfig } from './model/types';
|
|
3
3
|
export interface LongBannerProps extends LongBannerConfig {
|
|
4
|
-
|
|
5
|
-
buttonConfig?:
|
|
6
|
-
|
|
4
|
+
headline: string | ReactElement;
|
|
5
|
+
buttonConfig?: ButtonConfig;
|
|
6
|
+
config: Config;
|
|
7
7
|
imageComponent: ReactElement;
|
|
8
|
-
|
|
8
|
+
withButton?: boolean;
|
|
9
|
+
classes?: LongBannerClasses;
|
|
9
10
|
}
|
|
10
|
-
export declare const LongBanner: ({
|
|
11
|
+
export declare const LongBanner: ({ headline, buttonConfig, withButton, config, imageComponent, classes }: LongBannerProps) => import("react/jsx-runtime").JSX.Element;
|