# users

updated_at: 2026-01-15T09:36:30.447Z
created_at: 2025-11-17T09:47:44.177Z
email: admin@asiapartner.ru
salt: fc431f7a63b65578f9248adef65f65eddb3999f78f4c665b8426d2aba5981ee0
hash:
  b021b2c41cef32ddf76f0e2895c835e447ec73bfc47d04805d6b388d1623db9a31f82f54b59321728f217246ecb0e5df4d29d5b2c6628c959d693916cb2f4f959b557a65efa065191ace7c74371308434fb5ca16893e1e926ee03f4842761bcea6aac4aaa726cc0cdcf88ccf0c998f65fe1e29a4ada690dddd30456f7ac359e1f544327f837263343b686c8584ee839a32bcac87609f0ce3f89a8e04d85de8b59ccaf40238016f77e68d155baf9e84790cd8dc87f1fb118cfb334319db6d24e0d8199af1cab8ab04fe033bf19ebbc3868e5dc0fcbb2d39588aa1afa822645ba235d07dbff94ee7758af51db45579c84698e39bf0e6597e0f863de27a769ea9b5751659aad23992b8182435b888ffca6d78eaeb6371e31995a4b51624da117a709e51743ee4e51952314da53340c396ad134e6f18ec82fa19a8481b9697b5d36c9111b44d1339101b96e4a04789635eb83f5be3b7af91f0789597f9f449a44eac1c7668a79e22a0b862954a268eacc8437a9197b2c209d4fe80dfe95a824d2546f8beaa009724c37ec094bbc29f9abf7072c5a655000440c5fed377c3af8168087205380dbe7828587783ae5b4c5a62717278d7fd4ec3fa24978f3fdbf2dbae7ecd1f499060ba108606edef57b4c5b2c7bf4bcb41a6a105b8c5d8c4a9dd17b8f1e6f3f13a34bef85adc790c4858b18e144fba1f3dd0e51ae2db4c59f4b1eb26e5


# components

name: Accordion
updated_at: 2025-11-17T09:47:44.699Z
created_at: 2025-11-17T09:47:44.699Z
jsx:
  import type { CSSProperties } from 'react'
  import type { ComponentJsx } from 'scripts/bootstrap/types'

  export default (function Accordion({
    runtime,
    props: { accordionData, className, style },
    deps: {
      rb: { Accordion },
    },
  }) {
    return (
      <Accordion
        flush
        className={className}
        style={
          {
            '--bs-accordion-bg': 'transparent',
            '--bs-accordion-border-color': 'transparent',
            // '--bs-accordion-active-bg': 'var(--bs-primary-bg-subtle)',
            '--bs-accordion-btn-focus-box-shadow': 'transparent',
            '--bs-accordion-btn-icon': `url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 12h14m-7-7v14'/%3E%3C/svg%3E")`,
            '--bs-accordion-btn-active-icon': `url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 12h14'/%3E%3C/svg%3E")`,
            ...style,
          } as CSSProperties
        }
      >
        {accordionData.length === 0
          ? null
          : accordionData.map((item, idx) => (
              <Accordion.Item
                eventKey={String(idx)}
                key={item.id ?? idx}
                style={{ borderBottom: 'dashed 2px black' }}
              >
                <Accordion.Button className="py-4 fw-semibold">{item.header}</Accordion.Button>
                <Accordion.Body>{item.body}</Accordion.Body>
              </Accordion.Item>
            ))}
      </Accordion>
    )
  } satisfies ComponentJsx<{
    accordionData: {
      header: string
      body: string
      id?: string | number
    }[]
    className?: string
    style?: object
  }>)

code:
  export default function({runtime:o,props:{accordionData:e,className:n,style:s},deps:{rb:{Accordion:r}}}){return o.jsx(r,{flush:!0,className:n,style:{"--bs-accordion-bg":"transparent","--bs-accordion-border-color":"transparent","--bs-accordion-btn-focus-box-shadow":"transparent","--bs-accordion-btn-icon":"url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 12h14m-7-7v14'/%3E%3C/svg%3E\")","--bs-accordion-btn-active-icon":"url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 12h14'/%3E%3C/svg%3E\")",...s},children:0===e.length?null:e.map((e,n)=>o.jsxs(r.Item,{eventKey:String(n),style:{borderBottom:"dashed 2px black"},children:[o.jsx(r.Button,{className:"py-4 fw-semibold",children:e.header}),o.jsx(r.Body,{children:e.body})]},e.id??n))})}


name: CategoriesGrid
updated_at: 2025-11-18T11:49:59.318Z
created_at: 2025-11-17T09:47:44.754Z
jsx:
  import type { Category } from '@/payload-types'
  import type { ComponentJsx } from 'scripts/bootstrap/types'

  export default (function CategoriesGrid({
    runtime,
    props: { categories, className, style },
    deps: {
      rb: { Container, Row, Col, Image },
      next: { Link },
    },
  }) {
    return (
      <Container className={className} style={style}>
        <Row
          className="d-md-grid row-gap-3 row-gap-md-2"
          style={{
            gridTemplateColumns: 'repeat(7, 1fr)',
          }}
        >
          {categories.map((category) => {
            const attr = category.attributes?.find((x) => x.key === 'homeWidth')

            const imgUrl = typeof category.img !== 'number' && category.img?.sizes?.main?.url
            return (
              <Col
                xs={12}
                key={category.id}
                className="overflow-hidden px-md-1 text-white"
                style={{
                  gridColumn: `span ${attr?.number || '2'}`,
                  height: '350px',
                }}
              >
                <Link
                  href={`/categories/${category.slug}`}
                  className="link-light rounded overflow-hidden hover-zoom"
                  style={{ display: 'block', position: 'relative', height: '100%' }}
                >
                  <Image
                    src={imgUrl || ''}
                    alt={category.name}
                    rounded
                    className="hz-target"
                    style={{
                      width: '100%',
                      height: '100%',
                      objectFit: 'cover',
                      display: 'block',
                    }}
                  />
                  <div
                    style={{
                      position: 'absolute',
                      bottom: 0,
                      left: 0,
                      width: '100%',
                      height: '50%',
                      background:
                        'linear-gradient(to bottom, rgba(0,0,0,0) 0%, rgba(0,0,0,0.8) 100%)',
                      pointerEvents: 'none',
                      borderRadius: 'var(--bs-border-radius)',
                    }}
                  />
                  <h5 className="position-absolute bottom-0 mx-4 mb-4 fw-semibold">
                    {category.name}
                  </h5>
                </Link>
              </Col>
            )
          })}
        </Row>
      </Container>
    )
  } satisfies ComponentJsx<{ categories: [Category]; className?: string; style?: object }>)

code:
  export default function({runtime:e,props:{categories:t,className:s,style:i},deps:{rb:{Container:r,Row:o,Col:a,Image:l},next:{Link:d}}}){return e.jsx(r,{className:s,style:i,children:e.jsx(o,{className:"d-md-grid row-gap-3 row-gap-md-2",style:{gridTemplateColumns:"repeat(7, 1fr)"},children:t.map(t=>{let s=t.attributes?.find(e=>"homeWidth"===e.key),i="number"!=typeof t.img&&t.img?.sizes?.main?.url;return e.jsx(a,{xs:12,className:"overflow-hidden px-md-1 text-white",style:{gridColumn:`span ${s?.number||"2"}`,height:"350px"},children:e.jsxs(d,{href:`/categories/${t.slug}`,className:"link-light rounded overflow-hidden hover-zoom",style:{display:"block",position:"relative",height:"100%"},children:[e.jsx(l,{src:i||"",alt:t.name,rounded:!0,className:"hz-target",style:{width:"100%",height:"100%",objectFit:"cover",display:"block"}}),e.jsx("div",{style:{position:"absolute",bottom:0,left:0,width:"100%",height:"50%",background:"linear-gradient(to bottom, rgba(0,0,0,0) 0%, rgba(0,0,0,0.8) 100%)",pointerEvents:"none",borderRadius:"var(--bs-border-radius)"}}),e.jsx("h5",{className:"position-absolute bottom-0 mx-4 mb-4 fw-semibold",children:t.name})]})},t.id)})})})}


name: ClientReviews
updated_at: 2025-11-17T09:47:44.791Z
created_at: 2025-11-17T09:47:44.791Z
jsx:
  import type { MouseEventHandler } from 'react'
  import type { ComponentJsx } from 'scripts/bootstrap/types'

  export default (function ClientReviews({
    runtime,
    props: { className, style },
    components: { SnappingSlider },
    deps: {
      rb: { Container, Row, Col, Button },
    },
  }) {
    const reviewData: { client: string; title: string; body: string }[] = [
      {
        client: 'Александра Волкова',
        title: 'Клиент из Новосибирска',
        body: 'Закрыли срочный заказ на кофейное оборудование — 200 кофемашин доставлены в Бишкек за 9 дней',
      },
      {
        client: 'Александра Волкова',
        title: 'Клиент из Новосибирска',
        body: 'Закрыли срочный заказ на кофейное оборудование — 200 кофемашин доставлены в Бишкек за 9 дней',
      },
      {
        client: 'Александра Волкова',
        title: 'Клиент из Новосибирска',
        body: 'Закрыли срочный заказ на кофейное оборудование — 200 кофемашин доставлены в Бишкек за 9 дней',
      },
      {
        client: 'Александра Волкова',
        title: 'Клиент из Новосибирска',
        body: 'Закрыли срочный заказ на кофейное оборудование — 200 кофемашин доставлены в Бишкек за 9 дней',
      },
      {
        client: 'Александра Волкова',
        title: 'Клиент из Новосибирска',
        body: 'Закрыли срочный заказ на кофейное оборудование — 200 кофемашин доставлены в Бишкек за 9 дней',
      },
      {
        client: 'Александра Волкова',
        title: 'Клиент из Новосибирска',
        body: 'Закрыли срочный заказ на кофейное оборудование — 200 кофемашин доставлены в Бишкек за 9 дней',
      },
      {
        client: 'Александра Волкова',
        title: 'Клиент из Новосибирска',
        body: 'Закрыли срочный заказ на кофейное оборудование — 200 кофемашин доставлены в Бишкек за 9 дней',
      },
      {
        client: 'Александра Волкова',
        title: 'Клиент из Новосибирска',
        body: 'Закрыли срочный заказ на кофейное оборудование — 200 кофемашин доставлены в Бишкек за 9 дней',
      },
      {
        client: 'Александра Волкова',
        title: 'Клиент из Новосибирска',
        body: 'Закрыли срочный заказ на кофейное оборудование — 200 кофемашин доставлены в Бишкек за 9 дней',
      },
    ]

    return (
      <div className={className} style={style}>
        <div className="overflow-x-hidden">
          <Container className="d-flex flex-column row-gap-5">
            <Row>
              <Col lg={5} className="d-flex column-gap-2 z-1">
                <h1 className="text-uppercase">отзывы</h1>
                <h1 className="text-uppercase text-primary">клиентов</h1>
              </Col>
              <Col lg={4} className="mt-2 z-1">
                <span>Посмотрите, что говорят те, кто уже получил свой товар быстро, надёжно</span>
              </Col>
            </Row>
            <Row>
              <SnappingSlider
                itemsXs={1}
                itemsMd={2}
                itemsLg={3}
                renderPrev={({
                  onClick,
                  disabled,
                }: {
                  onClick: MouseEventHandler<HTMLButtonElement>
                  disabled: boolean
                }) => (
                  <>
                    <Button
                      onClick={onClick}
                      disabled={disabled}
                      variant="secondary"
                      className="position-absolute d-none d-md-block p-0 text-primary"
                      style={{
                        right: '70px',
                        top: '-75px',
                        opacity: disabled ? 0.3 : 1,
                        cursor: disabled ? 'not-allowed' : 'pointer',
                      }}
                    >
                      <iconify-icon icon="lucide:chevron-left" className="fs-1" />
                    </Button>

                    <Button
                      onClick={onClick}
                      disabled={disabled}
                      variant="secondary"
                      className="d-block d-md-none position-absolute top-50 start-0 translate-middle-y p-0 text-primary z-1"
                      style={{
                        opacity: disabled ? 0.3 : 1,
                        cursor: disabled ? 'not-allowed' : 'pointer',
                      }}
                    >
                      <iconify-icon icon="lucide:chevron-left" className="fs-1" />
                    </Button>
                  </>
                )}
                renderNext={({
                  onClick,
                  disabled,
                }: {
                  onClick: MouseEventHandler<HTMLButtonElement>
                  disabled: boolean
                }) => (
                  <>
                    <Button
                      onClick={onClick}
                      disabled={disabled}
                      variant="secondary"
                      className="position-absolute d-none d-md-block p-0 text-primary"
                      style={{
                        right: '20px',
                        top: '-75px',
                        opacity: disabled ? 0.3 : 1,
                        cursor: disabled ? 'not-allowed' : 'pointer',
                      }}
                    >
                      <iconify-icon icon="lucide:chevron-right" className="fs-1" />
                    </Button>

                    <Button
                      onClick={onClick}
                      disabled={disabled}
                      variant="secondary"
                      className="d-block d-md-none position-absolute top-50 end-0 translate-middle-y p-0 text-primary z-1"
                      style={{
                        opacity: disabled ? 0.3 : 1,
                        cursor: disabled ? 'not-allowed' : 'pointer',
                      }}
                    >
                      <iconify-icon icon="lucide:chevron-right" className="fs-1" />
                    </Button>
                  </>
                )}
                className="position-relative"
              >
                {reviewData.map((item, index) => (
                  <Col className="d-flex flex-column bg-secondary rounded-1 mx-2 p-3" key={index}>
                    <h4 className="fw-semibold">{item.client}</h4>
                    <span className="mb-3">{item.title}</span>
                    <span>{item.body}</span>
                  </Col>
                ))}
              </SnappingSlider>
            </Row>
          </Container>
        </div>
      </div>
    )
  } satisfies ComponentJsx<{ className?: string; style?: object }>)

code:
  export default function({runtime:e,props:{className:s,style:l},components:{SnappingSlider:i},deps:{rb:{Container:t,Row:n,Col:c,Button:o}}}){return e.jsx("div",{className:s,style:l,children:e.jsx("div",{className:"overflow-x-hidden",children:e.jsxs(t,{className:"d-flex flex-column row-gap-5",children:[e.jsxs(n,{children:[e.jsxs(c,{lg:5,className:"d-flex column-gap-2 z-1",children:[e.jsx("h1",{className:"text-uppercase",children:"отзывы"}),e.jsx("h1",{className:"text-uppercase text-primary",children:"клиентов"})]}),e.jsx(c,{lg:4,className:"mt-2 z-1",children:e.jsx("span",{children:"Посмотрите, что говорят те, кто уже получил свой товар быстро, надёжно"})})]}),e.jsx(n,{children:e.jsx(i,{itemsXs:1,itemsMd:2,itemsLg:3,renderPrev:({onClick:s,disabled:l})=>e.jsxs(e.Fragment,{children:[e.jsx(o,{onClick:s,disabled:l,variant:"secondary",className:"position-absolute d-none d-md-block p-0 text-primary",style:{right:"70px",top:"-75px",opacity:l?.3:1,cursor:l?"not-allowed":"pointer"},children:e.jsx("iconify-icon",{icon:"lucide:chevron-left",className:"fs-1"})}),e.jsx(o,{onClick:s,disabled:l,variant:"secondary",className:"d-block d-md-none position-absolute top-50 start-0 translate-middle-y p-0 text-primary z-1",style:{opacity:l?.3:1,cursor:l?"not-allowed":"pointer"},children:e.jsx("iconify-icon",{icon:"lucide:chevron-left",className:"fs-1"})})]}),renderNext:({onClick:s,disabled:l})=>e.jsxs(e.Fragment,{children:[e.jsx(o,{onClick:s,disabled:l,variant:"secondary",className:"position-absolute d-none d-md-block p-0 text-primary",style:{right:"20px",top:"-75px",opacity:l?.3:1,cursor:l?"not-allowed":"pointer"},children:e.jsx("iconify-icon",{icon:"lucide:chevron-right",className:"fs-1"})}),e.jsx(o,{onClick:s,disabled:l,variant:"secondary",className:"d-block d-md-none position-absolute top-50 end-0 translate-middle-y p-0 text-primary z-1",style:{opacity:l?.3:1,cursor:l?"not-allowed":"pointer"},children:e.jsx("iconify-icon",{icon:"lucide:chevron-right",className:"fs-1"})})]}),className:"position-relative",children:[{client:"Александра Волкова",title:"Клиент из Новосибирска",body:"Закрыли срочный заказ на кофейное оборудование — 200 кофемашин доставлены в Бишкек за 9 дней"},{client:"Александра Волкова",title:"Клиент из Новосибирска",body:"Закрыли срочный заказ на кофейное оборудование — 200 кофемашин доставлены в Бишкек за 9 дней"},{client:"Александра Волкова",title:"Клиент из Новосибирска",body:"Закрыли срочный заказ на кофейное оборудование — 200 кофемашин доставлены в Бишкек за 9 дней"},{client:"Александра Волкова",title:"Клиент из Новосибирска",body:"Закрыли срочный заказ на кофейное оборудование — 200 кофемашин доставлены в Бишкек за 9 дней"},{client:"Александра Волкова",title:"Клиент из Новосибирска",body:"Закрыли срочный заказ на кофейное оборудование — 200 кофемашин доставлены в Бишкек за 9 дней"},{client:"Александра Волкова",title:"Клиент из Новосибирска",body:"Закрыли срочный заказ на кофейное оборудование — 200 кофемашин доставлены в Бишкек за 9 дней"},{client:"Александра Волкова",title:"Клиент из Новосибирска",body:"Закрыли срочный заказ на кофейное оборудование — 200 кофемашин доставлены в Бишкек за 9 дней"},{client:"Александра Волкова",title:"Клиент из Новосибирска",body:"Закрыли срочный заказ на кофейное оборудование — 200 кофемашин доставлены в Бишкек за 9 дней"},{client:"Александра Волкова",title:"Клиент из Новосибирска",body:"Закрыли срочный заказ на кофейное оборудование — 200 кофемашин доставлены в Бишкек за 9 дней"}].map((s,l)=>e.jsxs(c,{className:"d-flex flex-column bg-secondary rounded-1 mx-2 p-3",children:[e.jsx("h4",{className:"fw-semibold",children:s.client}),e.jsx("span",{className:"mb-3",children:s.title}),e.jsx("span",{children:s.body})]},l))})})]})})})}


name: CompanyBenefits
updated_at: 2025-11-21T04:44:27.441Z
created_at: 2025-11-17T09:47:44.829Z
jsx:
  import type { ComponentJsx } from '../../types'

  export default (function CompanyBenefits({
    runtime,
    props: { className, style },
    deps: {
      rb: { Container, Row, Col },
    },
  }) {
    const classes = 'position-relative' + (className ? ` ${className}` : '')
    return (
      <div className={classes} style={style}>
        <div
          style={{
            position: 'absolute',
            top: 0,
            right: 0,
            bottom: 0,
            left: 0,
          }}
        >
          <div className="h-100 d-flex">
            <div
              className="d-none d-lg-flex w-100 overflow-hidden"
              style={{
                position: 'absolute',
                top: 0,
                right: 0,
                bottom: 0,
                left: 0,
              }}
            >
              <div
                className="w-50"
                style={{
                  backgroundImage: 'url(/api/media/file/wheel.webp)',
                  backgroundSize: 'cover',
                  backgroundPosition: 'center',
                }}
              >
                <div
                  className="h-100"
                  style={{
                    backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.8)',
                  }}
                ></div>
              </div>
              <div
                className="w-50"
                style={{
                  backgroundImage: 'url(/api/media/file/wheel.webp)',
                  backgroundSize: 'cover',
                  backgroundPosition: 'center',
                }}
              >
                <div
                  className="h-100"
                  style={{
                    backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.8)',
                  }}
                ></div>
              </div>
            </div>
            <div className="container d-none d-lg-block h-100">
              <div className="row h-100">
                <div className="col col-3"></div>
                <div className="col col-9 bg-secondary" style={{ transform: 'skewX(-15deg)' }}></div>
              </div>
            </div>
            <div
              className="w-100 d-lg-none"
              style={{
                backgroundImage: 'url(/api/media/file/wheel.webp)',
                backgroundSize: 'cover',
                backgroundPosition: 'center',
                clipPath: 'polygon(0 0, 66% 0, 33% 100%, 0% 100%)',
              }}
            >
              <div
                className="h-100"
                style={{
                  backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.8)',
                }}
              ></div>
            </div>
          </div>
        </div>
        <Container className="position-relative z-1">
          <Row
            className="justify-content-between row-gap-5"
            style={{ padding: '60px 0 clamp(60px, 10vw, 100px) 0' }}
          >
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle"
                style={{
                  
                }}
              >
                <iconify-icon icon="line-md:calendar" className="text-primary" style={{fontSize: '72px'}}></iconify-icon>
              </div>
              <h4 className="fw-semibold">20 лет опыта работы с Китаем</h4>
              <span>
                Знаем специфику китайского рынка: подбираем поставщиков, проверяем качество и снижаем
                риски.
              </span>
            </Col>
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle"
                style={{
                }}
              >
                <iconify-icon icon="line-md:security" className="text-primary" style={{fontSize: '72px'}}></iconify-icon>
              </div>
              <h4 className="fw-semibold">Официально с гарантией</h4>
              <span>
                Работаем по договору: расчётный счёт, юридические гарантии, чёткие этапы — от запроса
                до доставки.
              </span>
            </Col>
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle"
                style={{
                }}
              >
                <iconify-icon icon="line-md:speed" className="text-primary" style={{fontSize: '72px'}}></iconify-icon>
              </div>
              <h4 className="fw-semibold">300+ успешных поставок по СНГ</h4>
              <span>
                Сотни поставок по СНГ — от первых заказов до постоянного импорта для малого и крупного
                бизнеса.
              </span>
            </Col>
          </Row>
        </Container>
      </div>
    )
  } satisfies ComponentJsx<{ className?: string; style?: object }>)

code:
  export default function({runtime:e,props:{className:s,style:l},deps:{rb:{Container:a,Row:i,Col:c}}}){let o="position-relative"+(s?` ${s}`:"");return e.jsxs("div",{className:o,style:l,children:[e.jsx("div",{style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:e.jsxs("div",{className:"h-100 d-flex",children:[e.jsxs("div",{className:"d-none d-lg-flex w-100 overflow-hidden",style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:[e.jsx("div",{className:"w-50",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.8)"}})}),e.jsx("div",{className:"w-50",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.8)"}})})]}),e.jsx("div",{className:"container d-none d-lg-block h-100",children:e.jsxs("div",{className:"row h-100",children:[e.jsx("div",{className:"col col-3"}),e.jsx("div",{className:"col col-9 bg-secondary",style:{transform:"skewX(-15deg)"}})]})}),e.jsx("div",{className:"w-100 d-lg-none",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center",clipPath:"polygon(0 0, 66% 0, 33% 100%, 0% 100%)"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.8)"}})})]})}),e.jsx(a,{className:"position-relative z-1",children:e.jsxs(i,{className:"justify-content-between row-gap-5",style:{padding:"60px 0 clamp(60px, 10vw, 100px) 0"},children:[e.jsxs(c,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle",style:{},children:e.jsx("iconify-icon",{icon:"line-md:calendar",className:"text-primary",style:{fontSize:"72px"}})}),e.jsx("h4",{className:"fw-semibold",children:"20 лет опыта работы с Китаем"}),e.jsx("span",{children:"Знаем специфику китайского рынка: подбираем поставщиков, проверяем качество и снижаем риски."})]}),e.jsxs(c,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle",style:{},children:e.jsx("iconify-icon",{icon:"line-md:security",className:"text-primary",style:{fontSize:"72px"}})}),e.jsx("h4",{className:"fw-semibold",children:"Официально с гарантией"}),e.jsx("span",{children:"Работаем по договору: расчётный счёт, юридические гарантии, чёткие этапы — от запроса до доставки."})]}),e.jsxs(c,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle",style:{},children:e.jsx("iconify-icon",{icon:"line-md:speed",className:"text-primary",style:{fontSize:"72px"}})}),e.jsx("h4",{className:"fw-semibold",children:"300+ успешных поставок по СНГ"}),e.jsx("span",{children:"Сотни поставок по СНГ — от первых заказов до постоянного импорта для малого и крупного бизнеса."})]})]})})]})}


name: FAQ
updated_at: 2025-11-21T04:48:02.309Z
created_at: 2025-11-17T09:47:44.885Z
jsx:
  import type { ComponentJsx } from 'scripts/bootstrap/types'

  export default (function FAQ({
    runtime,
    props: { className, style },
    components: { Accordion },
    deps: {
      rb: { Container, Row, Col },
    },
  }) {
    return (
      <div style={style} className={`position-relative pt-5 ${className}`}>
        <div
          className="d-block d-lg-none overflow-hidden bg-secondary"
          style={{ position: 'absolute', top: 0, right: 0, bottom: 0, left: 0 }}
        >
          <div
            className="h-100"
            style={{
              backgroundImage: 'url(/api/media/file/car.webp)',
              backgroundSize: 'cover',
              backgroundPosition: 'center',
              clipPath: 'polygon(0 0, 60% 0, 30% 100%, 0 100%)',
            }}
          >
            <div
              className="h-100"
              style={{ backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.5)' }}
            ></div>
          </div>
        </div>
        <div
          className="d-none d-lg-block overflow-hidden"
          style={{ position: 'absolute', top: 0, right: 0, bottom: 0, left: 0 }}
        >
          <div
            className="d-flex"
            style={{ position: 'absolute', top: 0, right: 0, bottom: 0, left: 0 }}
          >
            <div
              className="h-100 w-50"
              style={{
                backgroundImage: 'url(/api/media/file/car.webp)',
                backgroundSize: 'cover',
                backgroundPosition: 'center',
              }}
            >
              <div
                className="h-100"
                style={{ backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.5)' }}
              ></div>
            </div>
            <div
              className="h-100 w-50"
              style={{
                backgroundImage: 'url(/api/media/file/car.webp)',
                backgroundSize: 'cover',
                backgroundPosition: 'center',
              }}
            >
              <div
                className="h-100"
                style={{ backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.5)' }}
              ></div>
            </div>
          </div>
          <Container className="h-100">
            <Row className="h-100">
              <Col />
              <Col lg={9} className="mx-n5 bg-secondary" style={{ transform: 'skewX(-20deg)' }}></Col>
            </Row>
          </Container>
        </div>
        <Container>
          <Row className="position-relative z-1 justify-content-between row-gap-4">
            <Col lg={3} className="d-flex flex-column row-gap-lg-4 row-gap-2">
              <div className="d-flex flex-column justify-content-between text-uppercase">
                <h1 className="lh-1 text-primary">часто&nbsp;</h1>
                <h1 className="mx-lg-auto lh-1">задаваемые</h1>
                <h1 className="ms-lg-auto lh-1">вопросы</h1>
              </div>

              <span>
                Все ответы на ваши вопросы — собраны в одном месте, чтобы вы экономили время и силы.
              </span>
            </Col>
            <Col lg={8}>
              <Accordion
                accordionData={[
                  {
                    header: 'Как долго длится доставка из Китая?',
                    body: 'Asia Partner доставляет сертифицированные товары из Азии напрямую. Срок доставки товара с момента подписания договора составляет от 10 до 30 календарных дней.',
                    id: 'q1,',
                  },
                  {
                    header: 'Можно ли оформить заказ официально по договору?',
                    body: 'Абсолютно все товары оформляются официально, согласно договора поставки.',
                    id: 'q2,',
                  },
                  {
                    header: 'Какие способы оплаты вы принимаете?',
                    body: 'Asia Partner работает официально, принимая оплату на расчетный счет нашей компании в Кыргызстане.',
                    id: 'q3,',
                  },
                  {
                    header: 'Что делать, если товар пришёл с браком?',
                    body: 'В случае брака возвращается стоимость товара, либо осуществляется его замена.',
                    id: 'q4,',
                  },
                ]}
              />
            </Col>
          </Row>
        </Container>
      </div>
    )
  } satisfies ComponentJsx<{ className?: string; style?: object }>)

code:
  export default function({runtime:e,props:{className:s,style:a},components:{Accordion:r},deps:{rb:{Container:l,Row:o,Col:d}}}){return e.jsxs("div",{style:a,className:`position-relative pt-5 ${s}`,children:[e.jsx("div",{className:"d-block d-lg-none overflow-hidden bg-secondary",style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:e.jsx("div",{className:"h-100",style:{backgroundImage:"url(/api/media/file/car.webp)",backgroundSize:"cover",backgroundPosition:"center",clipPath:"polygon(0 0, 60% 0, 30% 100%, 0 100%)"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.5)"}})})}),e.jsxs("div",{className:"d-none d-lg-block overflow-hidden",style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:[e.jsxs("div",{className:"d-flex",style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:[e.jsx("div",{className:"h-100 w-50",style:{backgroundImage:"url(/api/media/file/car.webp)",backgroundSize:"cover",backgroundPosition:"center"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.5)"}})}),e.jsx("div",{className:"h-100 w-50",style:{backgroundImage:"url(/api/media/file/car.webp)",backgroundSize:"cover",backgroundPosition:"center"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.5)"}})})]}),e.jsx(l,{className:"h-100",children:e.jsxs(o,{className:"h-100",children:[e.jsx(d,{}),e.jsx(d,{lg:9,className:"mx-n5 bg-secondary",style:{transform:"skewX(-20deg)"}})]})})]}),e.jsx(l,{children:e.jsxs(o,{className:"position-relative z-1 justify-content-between row-gap-4",children:[e.jsxs(d,{lg:3,className:"d-flex flex-column row-gap-lg-4 row-gap-2",children:[e.jsxs("div",{className:"d-flex flex-column justify-content-between text-uppercase",children:[e.jsx("h1",{className:"lh-1 text-primary",children:"часто "}),e.jsx("h1",{className:"mx-lg-auto lh-1",children:"задаваемые"}),e.jsx("h1",{className:"ms-lg-auto lh-1",children:"вопросы"})]}),e.jsx("span",{children:"Все ответы на ваши вопросы — собраны в одном месте, чтобы вы экономили время и силы."})]}),e.jsx(d,{lg:8,children:e.jsx(r,{accordionData:[{header:"Как долго длится доставка из Китая?",body:"Asia Partner доставляет сертифицированные товары из Азии напрямую. Срок доставки товара с момента подписания договора составляет от 10 до 30 календарных дней.",id:"q1,"},{header:"Можно ли оформить заказ официально по договору?",body:"Абсолютно все товары оформляются официально, согласно договора поставки.",id:"q2,"},{header:"Какие способы оплаты вы принимаете?",body:"Asia Partner работает официально, принимая оплату на расчетный счет нашей компании в Кыргызстане.",id:"q3,"},{header:"Что делать, если товар пришёл с браком?",body:"В случае брака возвращается стоимость товара, либо осуществляется его замена.",id:"q4,"}]})})]})})]})}


name: NavBar
updated_at: 2025-11-17T09:47:44.916Z
created_at: 2025-11-17T09:47:44.916Z
jsx:
  import type { ComponentJsx } from 'scripts/bootstrap/types'

  export default (function NavBar({
    runtime,
    props: { linkClass, className, style },
    deps: {
      rb: { Navbar, Container, Nav },
      next: { usePathname, Link },
    },
  }) {
    const pathname = usePathname()
    const linkClassName = linkClass || 'link-dark'

    return (
      <Navbar
        expand="lg"
        fixed="top"
        className={className}
        style={{ ...(style ?? {}), minHeight: '70px', backgroundColor: 'var(--bs-body-bg)' }}
      >
        <Container>
          <Navbar.Brand
            className="my-n4 navbar-brand d-inline-flex align-items-center gap-3 fw-bold"
            as={Link}
            href="/"
          >
            <img
              src="/api/media/file/logo.png"
              height="56"
              className="d-inline-block align-top"
              alt="Asia Partner logo"
            />
            <span className="ml-2">ASIAPARTNER</span>
          </Navbar.Brand>
          <Navbar.Toggle aria-controls="basic-navbar-nav" />
          <Navbar.Collapse id="basic-navbar-nav">
            <Nav className="column-gap-4 mx-auto navbar-nav text-center">
              <Nav.Link
                as={Link}
                className={`${pathname === '/' ? 'link-primary' : linkClassName}`}
                // nav-link internally applies text-decoration-none, idk if I need to worry about it
                href="/"
              >
                Главная страница
              </Nav.Link>
              <Nav.Link
                as={Link}
                className={`${pathname === '/about' ? 'link-primary' : linkClassName}`}
                href="/about"
              >
                О компании
              </Nav.Link>
              <Nav.Link
                as={Link}
                className={`${pathname.startsWith('/categories') ? 'link-primary' : linkClassName} nav-link`}
                href="/categories"
              >
                Каталог
              </Nav.Link>
              <Nav.Link
                as={Link}
                className={`${pathname === '/contacts' ? 'link-primary' : linkClassName} nav-link`}
                href="/contacts"
              >
                Контакты
              </Nav.Link>
            </Nav>
            <Nav>
              <Link // should it change color on hover?
                className="mx-auto bg-primary text-white fs-5"
                href="#footer-anchor"
                style={{
                  display: 'inline-flex',
                  padding: '0.8rem 3.5rem',
                  textDecoration: 'none',
                  clipPath: 'polygon(5% 0%, 100% 0%, 95% 100%, 0% 100%)',
                  transition: '#1D1D1D .2s',
                }}
              >
                Оставить заявку
              </Link>
            </Nav>
          </Navbar.Collapse>
        </Container>
      </Navbar>
    )
  } satisfies ComponentJsx<{ linkClass?: string; className?: string; style?: object }>)

code:
  export default function({runtime:a,props:{linkClass:e,className:n,style:s},deps:{rb:{Navbar:i,Container:r,Nav:l},next:{usePathname:t,Link:c}}}){let o=t(),d=e||"link-dark";return a.jsx(i,{expand:"lg",fixed:"top",className:n,style:{...s??{},minHeight:"70px",backgroundColor:"var(--bs-body-bg)"},children:a.jsxs(r,{children:[a.jsxs(i.Brand,{className:"my-n4 navbar-brand d-inline-flex align-items-center gap-3 fw-bold",as:c,href:"/",children:[a.jsx("img",{src:"/api/media/file/logo.png",height:"56",className:"d-inline-block align-top",alt:"Asia Partner logo"}),a.jsx("span",{className:"ml-2",children:"ASIAPARTNER"})]}),a.jsx(i.Toggle,{"aria-controls":"basic-navbar-nav"}),a.jsxs(i.Collapse,{id:"basic-navbar-nav",children:[a.jsxs(l,{className:"column-gap-4 mx-auto navbar-nav text-center",children:[a.jsx(l.Link,{as:c,className:`${"/"===o?"link-primary":d}`,href:"/",children:"Главная страница"}),a.jsx(l.Link,{as:c,className:`${"/about"===o?"link-primary":d}`,href:"/about",children:"О компании"}),a.jsx(l.Link,{as:c,className:`${o.startsWith("/categories")?"link-primary":d} nav-link`,href:"/categories",children:"Каталог"}),a.jsx(l.Link,{as:c,className:`${"/contacts"===o?"link-primary":d} nav-link`,href:"/contacts",children:"Контакты"})]}),a.jsx(l,{children:a.jsx(c,{className:"mx-auto bg-primary text-white fs-5",href:"#footer-anchor",style:{display:"inline-flex",padding:"0.8rem 3.5rem",textDecoration:"none",clipPath:"polygon(5% 0%, 100% 0%, 95% 100%, 0% 100%)",transition:"#1D1D1D .2s"},children:"Оставить заявку"})})]})]})})}


name: Footer
updated_at: 2026-01-15T09:37:40.987Z
created_at: 2025-11-17T09:47:44.949Z
jsx:
  import type { Form } from '@/payload-types'
  import type { ComponentJsx } from 'scripts/bootstrap/types'

  export default (function Footer({
  	runtime,
  	components: { Form },
  	deps: {
  		rb: { Container, Row, Col, Image },
  	},
  	props: { formData },
  }) {
  	return (
  		<footer className="position-relative z-1 bg-dark py-5 text-white overflow-hidden">
  			<div id="footer-anchor" className="position-absolute" style={{ top: '-50px' }} />
  			<Container className="pt-3" style={{ minHeight: '250px' }}>
  				{/* Text on the upper left side */}
  				<Row xs={1} lg={2} className="row-gap-4" style={{ paddingBottom: '120px' }}>
  					<Col className="position-relative z-2">
  						<div
  							className="d-flex flex-column mb-lg-4 mb-2 text-uppercase"
  							style={{ maxWidth: '500px' }}
  						>
  							<h1>Оставьте заявку — </h1>
  							<h1 className="ms-lg-auto text-primary">поможем с выбором</h1>
  						</div>
  						<div className="me-auto fw-light" style={{ maxWidth: '350px' }}>
  							Заполните заявку — получите помощь в подборе товаров и развернутые ответы.
  						</div>
  						<Image
  							className="position-absolute d-none d-lg-block mt-3"
  							src="/api/media/file/footer-map.svg"
  							style={{ width: '850px' }}
  							alt="footer-map"
  						/>
  					</Col>

  					{/* The Form */}
  					<Col className="position-relative z-3">
  						{formData && <Form formData={formData} />}

  						<Image
  							className="position-absolute d-block d-lg-none mt-2 mr-2"
  							src="/api/media/file/footer-map.svg"
  							style={{ maxWidth: '95%', height: 'auto', color: 'rgb(var(--bs-primary))' }}
  							alt="footer-map"
  						/>
  					</Col>
  				</Row>

  				{/* Contacts */}
  				<Row
  					xs={1}
  					lg={3}
  					className="position-relative z-3 justify-content-between row-gap-4 mb-5 fw-light"
  				>
  					<Col className="d-flex flex-column row-gap-lg-3 row-gap-2">
  						<div className="d-flex gap-2">
  							<a
  								href="tel:+79956499457"
  								className="d-flex align-items-center column-gap-2 me-auto link-light link-underline-opacity-0 link-underline-opacity-100-hover"
  							>
  								<iconify-icon className="fs-4" icon="lucide:phone"></iconify-icon>
  								<span className="fs-6 fw-normal">+7 995 649 94 57</span>
  							</a>
  							<a
  								href="https://wa.me/996770914500"
  								className="d-flex align-items-center column-gap-2 me-auto link-light link-underline-opacity-0 link-underline-opacity-100-hover"
  							>
  								<iconify-icon className="fs-4" icon="ic:baseline-whatsapp"></iconify-icon>
  								<span className="fs-6 fw-normal">+996 770 914 500</span>
  							</a>
  						</div>
  						<span>Позвоните — ответим на вопросы и поможем решить задачи</span>
  					</Col>
  					<Col className="d-flex flex-column row-gap-lg-3 row-gap-2">
  						<div className="d-flex gap-2">

  							<a
  								href="mailto:info@asiapartner.ru"
  								className="d-flex align-items-center column-gap-2 me-auto link-light link-underline-opacity-0 link-underline-opacity-100-hover"
  							>
  								<iconify-icon className="fs-4" icon="lucide:mail"></iconify-icon>
  								<span className="fs-6 fw-normal">info@asiapartner.ru</span>
  							</a>
  						</div>
  						<span>Напишите на email — подберём товары, расскажем об условиях и оформим</span>
  					</Col>
  					<Col className="d-flex flex-column row-gap-lg-3 row-gap-2">
  						<a
  							href="#"
  							className="d-flex align-items-center column-gap-2 me-auto link-light link-underline-opacity-0 link-underline-opacity-100-hover"
  						>
  							<iconify-icon className="fs-4" icon="lucide:map-pinned"></iconify-icon>
  							<span className="fs-6 fw-normal">г. Бишкек, ул.Боконбаева 196</span>
  						</a>
  						<span>Загляните в офис — познакомимся лично и покажем ассортимент</span>
  					</Col>
  				</Row>

  				<div className="position-relative z-2">
  					<hr />
  					<div className="d-flex flex-column flex-lg-row justify-content-start justify-content-lg-between row-gap-3 mt-4 fw-light">
  						<span>&copy; 2025 Asia Partner. Все права защищены.</span>
  						<a
  							href="#privacy"
  							className="link-light link-underline-opacity-0 link-underline-opacity-75-hover"
  						>
  							Политика конфиденциальности
  						</a>
  					</div>
  				</div>
  			</Container>
  		</footer>
  	)
  } satisfies ComponentJsx<{ formData: Form }>)

code:
  export default function({runtime:e,components:{Form:s},deps:{rb:{Container:l,Row:a,Col:i,Image:n}},props:{formData:c}}){return e.jsxs("footer",{className:"position-relative z-1 bg-dark py-5 text-white overflow-hidden",children:[e.jsx("div",{id:"footer-anchor",className:"position-absolute",style:{top:"-50px"}}),e.jsxs(l,{className:"pt-3",style:{minHeight:"250px"},children:[e.jsxs(a,{xs:1,lg:2,className:"row-gap-4",style:{paddingBottom:"120px"},children:[e.jsxs(i,{className:"position-relative z-2",children:[e.jsxs("div",{className:"d-flex flex-column mb-lg-4 mb-2 text-uppercase",style:{maxWidth:"500px"},children:[e.jsx("h1",{children:"Оставьте заявку — "}),e.jsx("h1",{className:"ms-lg-auto text-primary",children:"поможем с выбором"})]}),e.jsx("div",{className:"me-auto fw-light",style:{maxWidth:"350px"},children:"Заполните заявку — получите помощь в подборе товаров и развернутые ответы."}),e.jsx(n,{className:"position-absolute d-none d-lg-block mt-3",src:"/api/media/file/footer-map.svg",style:{width:"850px"},alt:"footer-map"})]}),e.jsxs(i,{className:"position-relative z-3",children:[c&&e.jsx(s,{formData:c}),e.jsx(n,{className:"position-absolute d-block d-lg-none mt-2 mr-2",src:"/api/media/file/footer-map.svg",style:{maxWidth:"95%",height:"auto",color:"rgb(var(--bs-primary))"},alt:"footer-map"})]})]}),e.jsxs(a,{xs:1,lg:3,className:"position-relative z-3 justify-content-between row-gap-4 mb-5 fw-light",children:[e.jsxs(i,{className:"d-flex flex-column row-gap-lg-3 row-gap-2",children:[e.jsxs("div",{className:"d-flex gap-2",children:[e.jsxs("a",{href:"tel:+79956499457",className:"d-flex align-items-center column-gap-2 me-auto link-light link-underline-opacity-0 link-underline-opacity-100-hover",children:[e.jsx("iconify-icon",{className:"fs-4",icon:"lucide:phone"}),e.jsx("span",{className:"fs-6 fw-normal",children:"+7 995 649 94 57"})]}),e.jsxs("a",{href:"https://wa.me/996770914500",className:"d-flex align-items-center column-gap-2 me-auto link-light link-underline-opacity-0 link-underline-opacity-100-hover",children:[e.jsx("iconify-icon",{className:"fs-4",icon:"ic:baseline-whatsapp"}),e.jsx("span",{className:"fs-6 fw-normal",children:"+996 770 914 500"})]})]}),e.jsx("span",{children:"Позвоните — ответим на вопросы и поможем решить задачи"})]}),e.jsxs(i,{className:"d-flex flex-column row-gap-lg-3 row-gap-2",children:[e.jsx("div",{className:"d-flex gap-2",children:e.jsxs("a",{href:"mailto:info@asiapartner.ru",className:"d-flex align-items-center column-gap-2 me-auto link-light link-underline-opacity-0 link-underline-opacity-100-hover",children:[e.jsx("iconify-icon",{className:"fs-4",icon:"lucide:mail"}),e.jsx("span",{className:"fs-6 fw-normal",children:"info@asiapartner.ru"})]})}),e.jsx("span",{children:"Напишите на email — подберём товары, расскажем об условиях и оформим"})]}),e.jsxs(i,{className:"d-flex flex-column row-gap-lg-3 row-gap-2",children:[e.jsxs("a",{href:"#",className:"d-flex align-items-center column-gap-2 me-auto link-light link-underline-opacity-0 link-underline-opacity-100-hover",children:[e.jsx("iconify-icon",{className:"fs-4",icon:"lucide:map-pinned"}),e.jsx("span",{className:"fs-6 fw-normal",children:"г. Бишкек, ул.Боконбаева 196"})]}),e.jsx("span",{children:"Загляните в офис — познакомимся лично и покажем ассортимент"})]})]}),e.jsxs("div",{className:"position-relative z-2",children:[e.jsx("hr",{}),e.jsxs("div",{className:"d-flex flex-column flex-lg-row justify-content-start justify-content-lg-between row-gap-3 mt-4 fw-light",children:[e.jsx("span",{children:"© 2025 Asia Partner. Все права защищены."}),e.jsx("a",{href:"#privacy",className:"link-light link-underline-opacity-0 link-underline-opacity-75-hover",children:"Политика конфиденциальности"})]})]})]})]})};


name: Form
updated_at: 2025-11-21T09:50:19.553Z
created_at: 2025-11-17T09:47:44.995Z
jsx:
  import type { Form } from '@/payload-types'
  import type { FormEventHandler, ReactElement } from 'react'
  import type { ComponentJsx } from 'scripts/bootstrap/types'

  export default (function Form({
    runtime,
    props: { formData, onSuccess, onError, className, style },
    components: { RichText, Toast },
    deps: {
      rb: { Form, FormGroup, FormCheck, FormSelect, FormLabel, Button, Spinner },
      next: { useRouter, usePathname, useSearchParams },
      react: { useRef, useState, useEffect },
    },
  }) {
    const pathname = usePathname()
    const searchParams = useSearchParams()
    const [origin, setOrigin] = useState('')
    useEffect(() => {
      const fullUrl =
        window.location.origin + pathname + (searchParams.toString() ? `?${searchParams}` : '')
      setOrigin(fullUrl)
    }, [pathname, searchParams])
    const fieldClasses = 'bg-dark border-white rounded-1'
    const fieldErrorClasses = 'bg-dark border-danger rounded-1'
    const formRef = useRef(null)
    const [loading, setLoading] = useState(false)
    const [showToast, setShowToast] = useState(false)
    const [isSuccess, setIsSuccess] = useState<boolean | null>(null)
    const [toastMessage, setToastMessage] = useState<ReactElement | null>(null)

    // This state will hold an object like { "policy-field": ["Error message"] }
    const [fieldErrors, setFieldErrors] = useState<Record<string, string[] | undefined>>({})

    const formFields = formData.fields?.map((field) => {
      // For each field, check if there's a corresponding error message
      const errorMessages = 'name' in field ? fieldErrors[field.name] : undefined

      switch (field.blockType) {
        case 'text': {
          return (
            <FormGroup key={field.id}>
              <Form.Control
                name={field.name}
                type="text"
                placeholder={field.label ?? ''}
                className={!!errorMessages ? fieldErrorClasses : fieldClasses}
                isInvalid={!!errorMessages}
              />
              {errorMessages && (
                <Form.Control.Feedback type="invalid">{errorMessages[0]}</Form.Control.Feedback>
              )}
            </FormGroup>
          )
        }
        case 'textarea': {
          return (
            <FormGroup key={field.id}>
              <Form.Control
                name={field.name}
                as="textarea"
                className={!!errorMessages ? fieldErrorClasses : fieldClasses}
                placeholder={field.label ?? ''}
                isInvalid={!!errorMessages}
              />
              {errorMessages && (
                <Form.Control.Feedback type="invalid">{errorMessages[0]}</Form.Control.Feedback>
              )}
            </FormGroup>
          )
        }
        case 'select': {
          return (
            <FormGroup key={field.id}>
              <FormLabel>{field.label} </FormLabel>
              <FormSelect
                className={!!errorMessages ? fieldErrorClasses : fieldClasses}
                name={field.name}
                isInvalid={!!errorMessages}
              >
                {field.options?.map((option) => (
                  <option key={option.id} value={option.value}>
                    {option.label}
                  </option>
                ))}
              </FormSelect>
              {errorMessages && (
                <Form.Control.Feedback type="invalid">{errorMessages[0]}</Form.Control.Feedback>
              )}
            </FormGroup>
          )
        }
        case 'checkbox': {
          return (
            <FormGroup key={field.id}>
              <FormCheck
                name={field.name}
                type="checkbox"
                className={!!errorMessages ? fieldErrorClasses : fieldClasses}
                label={<span dangerouslySetInnerHTML={{ __html: field.label || '' }} />}
                isInvalid={!!errorMessages}
                // Feedback for checkboxes needs to be a sibling
                feedback={errorMessages ? errorMessages[0] : undefined}
                feedbackType="invalid"
              />
            </FormGroup>
          )
        }
        case 'email': {
          return (
            <FormGroup key={field.id}>
              <Form.Control
                name={field.name}
                className={!!errorMessages ? fieldErrorClasses : fieldClasses}
                type="email"
                placeholder={field.label ?? ''}
                isInvalid={!!errorMessages}
              />
              {errorMessages && (
                <Form.Control.Feedback type="invalid">{errorMessages[0]}</Form.Control.Feedback>
              )}
            </FormGroup>
          )
        }
        case 'number': {
          return (
            <FormGroup key={field.id}>
              <Form.Control
                name={field.name}
                className={!!errorMessages ? fieldErrorClasses : fieldClasses}
                type="number"
                placeholder={field.label ?? ''}
                isInvalid={!!errorMessages}
              />
              {errorMessages && (
                <Form.Control.Feedback type="invalid">{errorMessages[0]}</Form.Control.Feedback>
              )}
            </FormGroup>
          )
        }
        case 'message': {
          return (
            <FormGroup key={field.id}>
              <RichText data={field.message} />
            </FormGroup>
          )
        }
      }
    })

    const router = useRouter()
    const handleSubmit: FormEventHandler<HTMLFormElement> = async (e) => {
      e.preventDefault()
      setLoading(true)
      // clear previous errors on submission
      setFieldErrors({})

      try {
        const res = await fetch(`/api/forms/${formData.id}/submit`, {
          method: 'POST',
          body: new FormData(formRef.current || undefined),
          headers: {
            Accept: 'application/json',
          },
        })
        const data = await res.json()
        const success = data.success || false
        setIsSuccess(success)

        if (success) {
          if (typeof onSuccess === 'function') onSuccess(data)
          if (formData.confirmationType === 'redirect' && formData.redirect?.url) {
            router.push(formData.redirect.url)
            return
          }
          if (formData.confirmationType === 'message' && formData.confirmationMessage) {
            setToastMessage(<RichText data={formData.confirmationMessage} />)
          } else {
            setToastMessage(<span>{data.message || 'Form submitted successfully!'}</span>)
          }
          setShowToast(true)
        } else {
          if (data.error?.fieldErrors) {
            setFieldErrors(data.error.fieldErrors)
          }
          if (typeof onError === 'function') onError(data)

          setToastMessage(<span>{data.message || 'Please correct the errors and try again.'}</span>)
          setShowToast(true)
        }
      } catch (err) {
        setIsSuccess(false)
        setToastMessage(
          <span>{err instanceof Error ? err.message : 'A network error occurred.'}</span>,
        )
        setShowToast(true)
      } finally {
        setLoading(false)
      }
    }

    return (
      <>
        <Form
          ref={formRef}
          onSubmit={handleSubmit}
          data-bs-theme="dark"
          className={`text-white ${className}`}
          style={{ ...style, display: 'flex', flexDirection: 'column', rowGap: '1.5rem' }}
        >
          {formData.title.length ? <h1 className="text-uppercase">{formData.title}</h1> : null}
          <input type="hidden" name="_origin" value={origin} />
          {formFields}
          <Button
            variant="primary"
            type="submit"
            className="rounded-0 text-white"
            style={{ padding: '0.8rem 2rem' }}
            disabled={loading}
          >
            {loading ? (
              <Spinner as="span" animation="border" size="sm" role="status" aria-hidden="true" />
            ) : (
              formData.submitButtonLabel
            )}
          </Button>
        </Form>
        <Toast
          showToast={showToast}
          setShowToast={setShowToast}
          toastMessage={toastMessage}
          isSuccess={isSuccess}
        />
      </>
    )
  } satisfies ComponentJsx<{
    formData: Form
    onSuccess?: (data: any) => void
    onError?: (data: any) => void
    className?: string
    style?: object
  }>)

code:
  export default function({runtime:e,props:{formData:a,onSuccess:s,onError:r,className:n,style:t},components:{RichText:i,Toast:l},deps:{rb:{Form:d,FormGroup:o,FormCheck:c,FormSelect:m,FormLabel:p,Button:u,Spinner:h},next:{useRouter:x,usePathname:b,useSearchParams:j},react:{useRef:y,useState:f,useEffect:v}}}){let g=b(),k=j(),[w,C]=f("");v(()=>{C(window.location.origin+g+(k.toString()?`?${k}`:""))},[g,k]);let N="bg-dark border-white rounded-1",F="bg-dark border-danger rounded-1",T=y(null),[I,S]=f(!1),[M,D]=f(!1),[E,$]=f(null),[_,A]=f(null),[L,P]=f({}),z=a.fields?.map(a=>{let s="name"in a?L[a.name]:void 0;switch(a.blockType){case"text":return e.jsxs(o,{children:[e.jsx(d.Control,{name:a.name,type:"text",placeholder:a.label??"",className:s?F:N,isInvalid:!!s}),s&&e.jsx(d.Control.Feedback,{type:"invalid",children:s[0]})]},a.id);case"textarea":return e.jsxs(o,{children:[e.jsx(d.Control,{name:a.name,as:"textarea",className:s?F:N,placeholder:a.label??"",isInvalid:!!s}),s&&e.jsx(d.Control.Feedback,{type:"invalid",children:s[0]})]},a.id);case"select":return e.jsxs(o,{children:[e.jsxs(p,{children:[a.label," "]}),e.jsx(m,{className:s?F:N,name:a.name,isInvalid:!!s,children:a.options?.map(a=>e.jsx("option",{value:a.value,children:a.label},a.id))}),s&&e.jsx(d.Control.Feedback,{type:"invalid",children:s[0]})]},a.id);case"checkbox":return e.jsx(o,{children:e.jsx(c,{name:a.name,type:"checkbox",className:s?F:N,label:e.jsx("span",{dangerouslySetInnerHTML:{__html:a.label||""}}),isInvalid:!!s,feedback:s?s[0]:void 0,feedbackType:"invalid"})},a.id);case"email":return e.jsxs(o,{children:[e.jsx(d.Control,{name:a.name,className:s?F:N,type:"email",placeholder:a.label??"",isInvalid:!!s}),s&&e.jsx(d.Control.Feedback,{type:"invalid",children:s[0]})]},a.id);case"number":return e.jsxs(o,{children:[e.jsx(d.Control,{name:a.name,className:s?F:N,type:"number",placeholder:a.label??"",isInvalid:!!s}),s&&e.jsx(d.Control.Feedback,{type:"invalid",children:s[0]})]},a.id);case"message":return e.jsx(o,{children:e.jsx(i,{data:a.message})},a.id)}}),B=x(),G=async n=>{n.preventDefault(),S(!0),P({});try{let n=await fetch(`/api/forms/${a.id}/submit`,{method:"POST",body:new FormData(T.current||void 0),headers:{Accept:"application/json"}}),t=await n.json(),l=t.success||!1;if($(l),l){if("function"==typeof s&&s(t),"redirect"===a.confirmationType&&a.redirect?.url)return void B.push(a.redirect.url);"message"===a.confirmationType&&a.confirmationMessage?A(e.jsx(i,{data:a.confirmationMessage})):A(e.jsx("span",{children:t.message||"Form submitted successfully!"})),D(!0)}else t.error?.fieldErrors&&P(t.error.fieldErrors),"function"==typeof r&&r(t),A(e.jsx("span",{children:t.message||"Please correct the errors and try again."})),D(!0)}catch(a){$(!1),A(e.jsx("span",{children:a instanceof Error?a.message:"A network error occurred."})),D(!0)}finally{S(!1)}};return e.jsxs(e.Fragment,{children:[e.jsxs(d,{ref:T,onSubmit:G,"data-bs-theme":"dark",className:`text-white ${n}`,style:{...t,display:"flex",flexDirection:"column",rowGap:"1.5rem"},children:[a.title.length?e.jsx("h1",{className:"text-uppercase",children:a.title}):null,e.jsx("input",{type:"hidden",name:"_origin",value:w}),z,e.jsx(u,{variant:"primary",type:"submit",className:"rounded-0 text-white",style:{padding:"0.8rem 2rem"},disabled:I,children:I?e.jsx(h,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"}):a.submitButtonLabel})]}),e.jsx(l,{showToast:M,setShowToast:D,toastMessage:_,isSuccess:E})]})}


name: OurPartners
updated_at: 2025-11-20T10:47:43.081Z
created_at: 2025-11-17T09:47:45.017Z
jsx:
  import type { ComponentJsx } from '../../types'

  export default (function OurPartners({
    runtime,
    props: { className, style },
    components: { ParallelogramGrid },
    deps: {
      rb: { Container, Row, Col },
    },
  }) {
    return (
      <Container className={`overflow-hidden ${className}`} style={style}>
        <Row>
          <Col
            lg={3}
            className="d-flex flex-lg-column mb-lg-0 mb-3 text-uppercase"
            style={{ maxWidth: '500px' }}
          >
            <h1 className="lh-1">наши&nbsp;</h1>
            <h1 className="mb-0 ms-lg-auto lh-1 text-primary">партнеры</h1>
          </Col>
          <Col lg={1}></Col>
          <Col lg={5} className="mt-auto">
            За каждым нашим успехом стоит команда надёжных друзей и коллег — наши партнёры
          </Col>
          <Col lg={12} className="d-flex flex-column py-5 row-gap-3 text-white">
            {/* Parallelograms lg */}
            <Row className="justify-content-end d-lg-flex d-none" style={{ minHeight: '180px' }}>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginRight: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="var(--bs-primary)"
                  preserveAspectRatio="none"
                  mask={'1'}
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Бизнес-клиенты</h5>
                  <span>
                    Предприниматели и организации, точные договоренности по срокам и качеству
                  </span>
                </div>
              </Col>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginLeft: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#1d1d1d"
                  preserveAspectRatio="none"
                  mask={'1'}
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Перевозчики</h5>
                  <span>
                    Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно
                    в срок
                  </span>
                </div>
              </Col>
            </Row>

            <Row className="justify-content-start d-lg-flex d-none" style={{ minHeight: '180px' }}>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginRight: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Дистрибьюторы</h5>
                  <span>
                    Получаем товары напрямую от официальных партнёров и дилеров — надёжно и без
                    посредников
                  </span>
                </div>
              </Col>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginLeft: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="var(--bs-primary)"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Производители</h5>
                  <span>
                    Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем
                    выгодные условия
                  </span>
                </div>
              </Col>
            </Row>

            {/* Parallelograms mobile */}
            <Row className="d-lg-none d-grid flex-column row-gap-2">
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={-10}
                  fill="var(--bs-primary)"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Бизнес-клиенты</h5>
                  <span className="fw-light">
                    Предприниматели и организации, точные договоренности по срокам и качеству
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={10}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Перевозчики</h5>
                  <span className="fw-light">
                    Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно
                    в срок
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={-10}
                  fill="var(--bs-primary)"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Производители</h5>
                  <span className="fw-light">
                    Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем
                    выгодные условия
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={10}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Дистрибьюторы</h5>
                  <span className="fw-light">
                    Получаем товары напрямую от официальных партнёров и дилеров — надёжно и без
                    посредников
                  </span>
                </div>
              </Col>
            </Row>
          </Col>
        </Row>
      </Container>
    )
  } satisfies ComponentJsx<{ className?: string; style?: object }>)

code:
  export default function({runtime:s,props:{className:e,style:l},components:{ParallelogramGrid:i},deps:{rb:{Container:a,Row:n,Col:t}}}){return s.jsx(a,{className:`overflow-hidden ${e}`,style:l,children:s.jsxs(n,{children:[s.jsxs(t,{lg:3,className:"d-flex flex-lg-column mb-lg-0 mb-3 text-uppercase",style:{maxWidth:"500px"},children:[s.jsx("h1",{className:"lh-1",children:"наши "}),s.jsx("h1",{className:"mb-0 ms-lg-auto lh-1 text-primary",children:"партнеры"})]}),s.jsx(t,{lg:1}),s.jsx(t,{lg:5,className:"mt-auto",children:"За каждым нашим успехом стоит команда надёжных друзей и коллег — наши партнёры"}),s.jsxs(t,{lg:12,className:"d-flex flex-column py-5 row-gap-3 text-white",children:[s.jsxs(n,{className:"justify-content-end d-lg-flex d-none",style:{minHeight:"180px"},children:[s.jsxs(t,{lg:6,className:"position-relative",style:{marginRight:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"var(--bs-primary)",preserveAspectRatio:"none",mask:"1",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Бизнес-клиенты"}),s.jsx("span",{children:"Предприниматели и организации, точные договоренности по срокам и качеству"})]})]}),s.jsxs(t,{lg:6,className:"position-relative",style:{marginLeft:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#1d1d1d",preserveAspectRatio:"none",mask:"1",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Перевозчики"}),s.jsx("span",{children:"Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно в срок"})]})]})]}),s.jsxs(n,{className:"justify-content-start d-lg-flex d-none",style:{minHeight:"180px"},children:[s.jsxs(t,{lg:6,className:"position-relative",style:{marginRight:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Дистрибьюторы"}),s.jsx("span",{children:"Получаем товары напрямую от официальных партнёров и дилеров — надёжно и без посредников"})]})]}),s.jsxs(t,{lg:6,className:"position-relative",style:{marginLeft:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"var(--bs-primary)",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Производители"}),s.jsx("span",{children:"Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем выгодные условия"})]})]})]}),s.jsxs(n,{className:"d-lg-none d-grid flex-column row-gap-2",children:[s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:-10,fill:"var(--bs-primary)",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Бизнес-клиенты"}),s.jsx("span",{className:"fw-light",children:"Предприниматели и организации, точные договоренности по срокам и качеству"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:10,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Перевозчики"}),s.jsx("span",{className:"fw-light",children:"Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно в срок"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:-10,fill:"var(--bs-primary)",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Производители"}),s.jsx("span",{className:"fw-light",children:"Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем выгодные условия"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:10,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Дистрибьюторы"}),s.jsx("span",{className:"fw-light",children:"Получаем товары напрямую от официальных партнёров и дилеров — надёжно и без посредников"})]})]})]})]})]})})}


name: ParallelogramGrid
updated_at: 2025-11-17T09:47:45.038Z
created_at: 2025-11-17T09:47:45.038Z
jsx:
  import type { ComponentJsx } from '../../types'

  export default (function ParallelogramGrid({
    runtime,
    props: {
      rows,
      columns,
      cellWidth,
      cellHeight,
      skewAngle,
      fill,
      mask,
      maskId,
      preserveAspectRatio = 'xMidYMid meet',
      className,
      style,
    },
  }) {
    // Default mask to draw all cells if not provided
    const cellCount = rows * columns
    const m = mask && mask.length === cellCount ? mask : Array(cellCount).fill(true)

    // Precompute values based on the skew angle
    const skewRad = (Math.PI / 180) * skewAngle
    const xOffset = Math.tan(skewRad) * cellHeight

    // --- Robust SVG ViewBox Calculation ---
    // This handles both positive and negative skew angles correctly.
    const gridCornersX = [
      0, // Grid's top-left corner x
      columns * cellWidth, // Grid's top-right corner x
      rows * xOffset, // Grid's bottom-left corner x
      columns * cellWidth + rows * xOffset, // Grid's bottom-right corner x
    ]
    const minX = Math.min(...gridCornersX)
    const maxX = Math.max(...gridCornersX)

    const viewboxWidth = maxX - minX
    const svgHeight = rows * cellHeight
    const viewBox = `${minX} 0 ${viewboxWidth} ${svgHeight}`

    // Build one <polygon> for each cell marked 'true' in the mask
    const polys = []
    for (let row = 0; row < rows; row++) {
      for (let col = 0; col < columns; col++) {
        const idx = row * columns + col
        if (m[idx] === '0') continue

        // --- Corrected Parallelogram Point Calculation ---
        // The horizontal shift is different for the top and bottom edges.
        const topShift = row * xOffset
        const bottomShift = (row + 1) * xOffset
        const baseX = col * cellWidth
        const baseY = row * cellHeight

        const points = [
          [baseX + topShift, baseY], // Top-left
          [baseX + cellWidth + topShift, baseY], // Top-right
          [baseX + cellWidth + bottomShift, baseY + cellHeight], // Bottom-right
          [baseX + bottomShift, baseY + cellHeight], // Bottom-left
        ]
          .map((p) => p.join(','))
          .join(' ')

        polys.push(<polygon key={idx} points={points} fill={fill} />)
      }
    }

    if (maskId) {
      // Mask definition mode
      return (
        <svg
          width="0"
          height="0"
          aria-hidden="true"
          focusable="false"
          style={{ position: 'absolute' }}
        >
          <defs>
            <mask id={maskId} maskUnits="userSpaceOnUse" maskContentUnits="userSpaceOnUse">
              <use href={`#${maskId}-shapes`} />
            </mask>

            <g id={`${maskId}-shapes`}>
              <rect
                x={minX}
                y={0}
                width={viewboxWidth}
                height={svgHeight}
                fill={fill === 'black' ? 'white' : 'black'}
              />
              {polys}
            </g>
          </defs>
        </svg>
      )
    }

    return (
      <svg
        viewBox={viewBox}
        // Using viewBox allows for responsive scaling. Set width via CSS or props as needed.
        width="100%"
        preserveAspectRatio={preserveAspectRatio}
        style={style}
        className={className}
      >
        {polys}
      </svg>
    )
  } satisfies ComponentJsx<{
    rows: number
    columns: number
    cellWidth: number
    cellHeight: number
    skewAngle: number // degrees
    fill: string // e.g. "#3498db" or "teal"
    mask?: string // defaults to all true
    maskId?: string
    preserveAspectRatio?: string // defaults to "xMidYMid meet"
    className?: string
    style?: object
  }>)

code:
  export default function({runtime:e,props:{rows:s,columns:t,cellWidth:i,cellHeight:l,skewAngle:a,fill:n,mask:h,maskId:r,preserveAspectRatio:o="xMidYMid meet",className:d,style:c}}){let p=s*t,x=h&&h.length===p?h:Array(p).fill(!0),f=Math.tan(Math.PI/180*a)*l,u=[0,t*i,s*f,t*i+s*f],j=Math.min(...u),m=Math.max(...u)-j,g=s*l,M=`${j} 0 ${m} ${g}`,k=[];for(let a=0;a<s;a++)for(let s=0;s<t;s++){let h=a*t+s;if("0"===x[h])continue;let r=a*f,o=(a+1)*f,d=s*i,c=a*l,p=[[d+r,c],[d+i+r,c],[d+i+o,c+l],[d+o,c+l]].map(e=>e.join(",")).join(" ");k.push(e.jsx("polygon",{points:p,fill:n},h))}return r?e.jsx("svg",{width:"0",height:"0","aria-hidden":"true",focusable:"false",style:{position:"absolute"},children:e.jsxs("defs",{children:[e.jsx("mask",{id:r,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse",children:e.jsx("use",{href:`#${r}-shapes`})}),e.jsxs("g",{id:`${r}-shapes`,children:[e.jsx("rect",{x:j,y:0,width:m,height:g,fill:"black"===n?"white":"black"}),k]})]})}):e.jsx("svg",{viewBox:M,width:"100%",preserveAspectRatio:o,style:c,className:d,children:k})}


name: Breadcrumb
updated_at: 2025-11-17T09:47:45.057Z
created_at: 2025-11-17T09:47:45.057Z
jsx:
  import type { ComponentJsx } from '../../types'

  export default (function Breadcrumb({
    runtime,
    props: { pathMap, className = 'py-4', style },
    deps: {
      next: { Link },
    },
  }) {
    const pathElements: React.ReactNode[] = []
    for (let i = 0; i < pathMap.length; i++) {
      const element = pathMap[i]
      if (i + 1 < pathMap.length) {
        const path = (
          <Link
            href={element.link || '#'}
            className="link-dark link-underline-opacity-0 link-underline-opacity-100-hover"
            key={`link-${i}`}
          >
            {element.label}
          </Link>
        )
        pathElements.push(path)
        pathElements.push(<span key={`separator-${i}`}>&emsp;/&emsp;</span>)
      } else {
        const path = <span key={`link-${i}`}>{element.label}</span>
        pathElements.push(path)
      }
    }
    const pathTree = (
      <div className={className} style={style}>
        {pathElements}
      </div>
    )

    return pathTree
  } satisfies ComponentJsx<{
    pathMap: { label: string; link: string | null }[]
    className?: string
    style?: object
  }>)

code:
  export default function({runtime:e,props:{pathMap:l,className:n="py-4",style:s},deps:{next:{Link:i}}}){let r=[];for(let n=0;n<l.length;n++){let s=l[n];if(n+1<l.length){let l=e.jsx(i,{href:s.link||"#",className:"link-dark link-underline-opacity-0 link-underline-opacity-100-hover",children:s.label},`link-${n}`);r.push(l),r.push(e.jsx("span",{children:" / "},`separator-${n}`))}else{let l=e.jsx("span",{children:s.label},`link-${n}`);r.push(l)}}return e.jsx("div",{className:n,style:s,children:r})}


name: ProductsGrid
updated_at: 2025-11-17T10:54:56.392Z
created_at: 2025-11-17T09:47:45.079Z
jsx:
  import type { ComponentJsx } from '../../types'
  import type { PaginatedDocs } from 'payload'
  import type { Product } from '@/payload-types'

  export default (function ProductsGrid({
    runtime,
    props: { productData, path, className, style },
    deps: {
      rb: { Container, Image, Row, Col, Pagination },
      next: { Link },
    },
  }) {
    const docs = productData.docs
    const totalPages = productData.totalPages
    const page = productData.page || 1

    return (
      <div className={className} style={style}>
        <Container className="d-flex flex-column row-gap-5 mt-5">
          <Row className="row-gap-4">
            {docs.map((product) => {
              const categorySlug =
                typeof product.category === 'number' ? undefined : product.category?.slug
              const href = categorySlug ? `/categories/${categorySlug}/${product.slug}` : undefined
              const imgUrl =
                (product.img &&
                  product.img[0] &&
                  typeof product.img[0] !== 'number' &&
                  product.img[0].sizes?.preview?.url) ||
                undefined
              return href ? (
                <Col sm={6} lg={3} key={product.id}>
                  <Link
                    href={href}
                    className="d-flex flex-column row-gap-2 h-100 pb-3 px-3 link-dark link-underline-opacity-0 link-underline-opacity-100-hover"
                    style={{ background: 'white' }}
                  >
                    <Image
                      src={imgUrl}
                      alt={product.name}
                      className="img-fluid"
                      style={{
                        aspectRatio: '1 / 1',
                        objectFit: 'cover',
                        width: '100%',
                      }}
                    />
                    <span>{product.name}</span>
                  </Link>
                </Col>
              ) : undefined
            })}
          </Row>
          {path && (
            <Row>
              <Pagination className="justify-content-center">
                <Pagination.First
                  as={Link}
                  href={`${path}?p=1`}
                  disabled={page === 1}
                  className="d-none d-sm-block"
                />
                <Pagination.Prev as={Link} href={`${path}?p=${page - 1}`} disabled={page === 1} />

                {page > 1 && (
                  <Pagination.Item as={Link} href={`${path}?p=1`}>
                    {1}
                  </Pagination.Item>
                )}
                {page > 3 && (
                  <Pagination.Item as={Link} href={`${path}?p=2`} className="d-none d-sm-block">
                    {2}
                  </Pagination.Item>
                )}
                {page > 4 && <Pagination.Ellipsis className="d-none d-sm-block" />}

                {page > 2 && (
                  <Pagination.Item as={Link} href={`${path}?p=${page - 1}`}>
                    {page - 1}
                  </Pagination.Item>
                )}
                <Pagination.Item as={Link} active>
                  {page}
                </Pagination.Item>
                {page < totalPages - 1 && (
                  <Pagination.Item as={Link} href={`${path}?p=${page + 1}`}>
                    {page + 1}
                  </Pagination.Item>
                )}

                {page < totalPages - 3 && <Pagination.Ellipsis className="d-none d-sm-block" />}
                {page < totalPages - 2 && (
                  <Pagination.Item
                    as={Link}
                    href={`${path}?p=${totalPages - 1}`}
                    className="d-none d-sm-block"
                  >
                    {totalPages - 1}
                  </Pagination.Item>
                )}
                {page < totalPages && (
                  <Pagination.Item as={Link} href={`${path}?p=${totalPages}`}>
                    {totalPages}
                  </Pagination.Item>
                )}

                <Pagination.Next
                  as={Link}
                  href={`${path}?p=${page + 1}`}
                  disabled={page === totalPages}
                />
                <Pagination.Last
                  as={Link}
                  href={`${path}?p=${totalPages}`}
                  disabled={page === totalPages}
                  className="d-none d-sm-block"
                />
              </Pagination>
            </Row>
          )}
        </Container>
      </div>
    )
  } satisfies ComponentJsx<{
    productData: PaginatedDocs<Product>
    path?: string
    className?: string
    style?: object
  }>)

code:
  export default function({runtime:e,props:{productData:s,path:l,className:a,style:i},deps:{rb:{Container:r,Image:d,Row:c,Col:n,Pagination:t},next:{Link:m}}}){let o=s.docs,h=s.totalPages,p=s.page||1;return e.jsx("div",{className:a,style:i,children:e.jsxs(r,{className:"d-flex flex-column row-gap-5 mt-5",children:[e.jsx(c,{className:"row-gap-4",children:o.map(s=>{let l="number"==typeof s.category?void 0:s.category?.slug,a=l?`/categories/${l}/${s.slug}`:void 0,i=s.img&&s.img[0]&&"number"!=typeof s.img[0]&&s.img[0].sizes?.preview?.url||void 0;return a?e.jsx(n,{sm:6,lg:3,children:e.jsxs(m,{href:a,className:"d-flex flex-column row-gap-2 h-100 pb-3 px-3 link-dark link-underline-opacity-0 link-underline-opacity-100-hover",style:{background:"white"},children:[e.jsx(d,{src:i,alt:s.name,className:"img-fluid",style:{aspectRatio:"1 / 1",objectFit:"cover",width:"100%"}}),e.jsx("span",{children:s.name})]})},s.id):void 0})}),l&&e.jsx(c,{children:e.jsxs(t,{className:"justify-content-center",children:[e.jsx(t.First,{as:m,href:`${l}?p=1`,disabled:1===p,className:"d-none d-sm-block"}),e.jsx(t.Prev,{as:m,href:`${l}?p=${p-1}`,disabled:1===p}),p>1&&e.jsx(t.Item,{as:m,href:`${l}?p=1`,children:1}),p>3&&e.jsx(t.Item,{as:m,href:`${l}?p=2`,className:"d-none d-sm-block",children:2}),p>4&&e.jsx(t.Ellipsis,{className:"d-none d-sm-block"}),p>2&&e.jsx(t.Item,{as:m,href:`${l}?p=${p-1}`,children:p-1}),e.jsx(t.Item,{as:m,active:!0,children:p}),p<h-1&&e.jsx(t.Item,{as:m,href:`${l}?p=${p+1}`,children:p+1}),p<h-3&&e.jsx(t.Ellipsis,{className:"d-none d-sm-block"}),p<h-2&&e.jsx(t.Item,{as:m,href:`${l}?p=${h-1}`,className:"d-none d-sm-block",children:h-1}),p<h&&e.jsx(t.Item,{as:m,href:`${l}?p=${h}`,children:h}),e.jsx(t.Next,{as:m,href:`${l}?p=${p+1}`,disabled:p===h}),e.jsx(t.Last,{as:m,href:`${l}?p=${h}`,disabled:p===h,className:"d-none d-sm-block"})]})})]})})}


name: Slider
updated_at: 2025-11-17T09:47:45.104Z
created_at: 2025-11-17T09:47:45.104Z
jsx:
  import type { ComponentJsx } from 'scripts/bootstrap/types'
  import type React from 'react'

  export default (function Slider({
    runtime,
    props: { children, className, style },
    deps: {
      react: { useState, useRef, useEffect },
    },
  }) {
    // Refs
    const sliderRef = useRef<HTMLDivElement | null>(null)
    const contentRef = useRef<HTMLDivElement | null>(null)

    const hasDraggedRef = useRef<boolean>(false)
    const lastMoveTimeRef = useRef<number>(0)
    const lastMoveXRef = useRef<number>(0)
    const velocityRef = useRef<number>(0)

    // State
    const [position, setPosition] = useState<number>(0)
    const [startPosition, setStartPosition] = useState<number>(0)

    const [isDragging, setIsDragging] = useState<boolean>(false)
    const [dragStart, setDragStart] = useState<number>(0)

    const [boundaries, setBoundaries] = useState<{ min: number; max: number }>({ min: 0, max: 0 })

    // Effect to calculate boundaries when children or window size change
    useEffect(() => {
      const calculateBoundaries = () => {
        const container = sliderRef.current
        const content = contentRef.current
        if (container && content) {
          const containerWidth = container.offsetWidth
          const contentWidth = content.scrollWidth

          const minBoundary = Math.min(0, containerWidth - contentWidth)
          setBoundaries({ min: minBoundary, max: 0 })

          // Clamp position if it's outside new boundaries after resize
          setPosition((currentPos) => Math.max(minBoundary, Math.min(currentPos, 0)))
        }
      }

      calculateBoundaries()

      // Using ResizeObserver is more performant than the 'resize' event
      // Guard for environment where ResizeObserver exists
      if (typeof ResizeObserver !== 'undefined') {
        const observer = new ResizeObserver(calculateBoundaries)
        if (sliderRef.current) observer.observe(sliderRef.current)
        if (contentRef.current) observer.observe(contentRef.current)
        return () => observer.disconnect()
      }

      // Fallback: recompute on window resize
      const onResize = () => calculateBoundaries()
      window.addEventListener('resize', onResize)
      return () => window.removeEventListener('resize', onResize)
    }, [children])

    useEffect(() => {
      const el = sliderRef.current
      if (!el) return

      // addEventListener uses the browser WheelEvent type
      const onWheel = (e: WheelEvent) => {
        // Only intercept when Shift is held
        if (!e.shiftKey) return

        // Prevent page vertical scroll when shifting horizontally
        e.preventDefault()

        const wheelDelta = e.deltaY !== 0 ? e.deltaY : e.deltaX

        if (contentRef.current) {
          contentRef.current.style.transition = 'none'
        }

        setPosition((p) => {
          const next = p - wheelDelta
          return Math.max(boundaries.min, Math.min(next, boundaries.max))
        })
      }

      // passive: false is required so preventDefault() works
      el.addEventListener('wheel', onWheel, { passive: false } as AddEventListenerOptions)

      return () => el.removeEventListener('wheel', onWheel as EventListener)
    }, [boundaries])

    // Helper to get clientX from both mouse and touch events (React event types)
    const getClientX = (
      e: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement> | PointerEvent,
    ): number => {
      // React Touch event has touches on the event object
      if ('touches' in e && e.touches && e.touches.length > 0) {
        return e.touches[0].clientX
      }
      // React MouseEvent has clientX
      if ('clientX' in e && typeof e.clientX === 'number') {
        return (e as React.MouseEvent<HTMLDivElement> | PointerEvent).clientX
      }
      // As a fallback, try nativeEvent if it's present (rare)
      if ((e as any).nativeEvent && 'clientX' in (e as any).nativeEvent) {
        return (e as any).nativeEvent.clientX
      }
      return 0
    }

    // Drag / touch handlers
    const handleDragStart = (
      e: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>,
    ) => {
      setIsDragging(true)
      hasDraggedRef.current = false

      const currentX = getClientX(e)
      setDragStart(currentX)
      setStartPosition(position)

      lastMoveTimeRef.current = Date.now()
      lastMoveXRef.current = currentX
      velocityRef.current = 0

      if (contentRef.current) {
        contentRef.current.style.transition = 'none'
      }
    }

    const handleDragMove = (
      e: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>,
    ) => {
      if (!isDragging) return

      const currentX = getClientX(e)
      const currentTime = Date.now()
      const dragDelta = currentX - dragStart

      const timeDelta = currentTime - lastMoveTimeRef.current
      if (timeDelta > 0) {
        const moveDelta = currentX - lastMoveXRef.current
        velocityRef.current = moveDelta / timeDelta // pixels per millisecond
        lastMoveTimeRef.current = currentTime
        lastMoveXRef.current = currentX
      }

      if (!hasDraggedRef.current && Math.abs(dragDelta) > 5) {
        hasDraggedRef.current = true
      }

      const newPosition = startPosition + dragDelta
      setPosition(newPosition)
    }

    const handleDragEnd = () => {
      if (!isDragging) return

      if (contentRef.current) {
        contentRef.current.style.transition = 'transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94)'
      }

      // Apply momentum based on velocity
      const momentum = velocityRef.current * 250 // Multiply by factor to increase momentum effect
      const momentumPosition = position + momentum

      // Clamp to boundaries
      const newPosition = Math.max(boundaries.min, Math.min(momentumPosition, boundaries.max))

      // Add a slight bounce effect if we hit the boundaries
      let finalPosition = newPosition
      if (momentumPosition < boundaries.min) {
        const overshoot = Math.abs(momentumPosition - boundaries.min)
        const bounceBack = Math.min(overshoot * 0.1, 50) // Limit bounce to 50px
        finalPosition = boundaries.min + bounceBack

        // Animate back to boundary after bounce
        setTimeout(() => {
          setPosition(boundaries.min)
          if (contentRef.current) {
            contentRef.current.style.transition = 'transform 0.3s ease-out'
          }
        }, 100)
      } else if (momentumPosition > boundaries.max) {
        const overshoot = momentumPosition - boundaries.max
        const bounceBack = Math.min(overshoot * 0.1, 50)
        finalPosition = boundaries.max - bounceBack

        // Animate back to boundary after bounce
        setTimeout(() => {
          setPosition(boundaries.max)
          if (contentRef.current) {
            contentRef.current.style.transition = 'transform 0.3s ease-out'
          }
        }, 100)
      }

      setPosition(finalPosition)
      setIsDragging(false)
    }

    // Click capture: prevent clicks after dragging
    const handleClickCapture: React.MouseEventHandler<HTMLDivElement> = (e) => {
      if (hasDraggedRef.current) {
        e.preventDefault()
        e.stopPropagation()
      }
    }

    const preventDefault: React.DragEventHandler<HTMLDivElement> = (e) => {
      e.preventDefault()
    }

    if (!Array.isArray(children)) {
      return null
    }

    return (
      <div ref={sliderRef} className={className} style={{ ...style, overflow: 'hidden' }}>
        <div
          ref={contentRef}
          onMouseDown={handleDragStart}
          onTouchStart={handleDragStart as unknown as React.TouchEventHandler<HTMLDivElement>}
          onMouseMove={handleDragMove}
          onTouchMove={handleDragMove as unknown as React.TouchEventHandler<HTMLDivElement>}
          onMouseUp={handleDragEnd as unknown as React.MouseEventHandler<HTMLDivElement>}
          onTouchEnd={handleDragEnd as unknown as React.TouchEventHandler<HTMLDivElement>}
          onMouseLeave={handleDragEnd as unknown as React.MouseEventHandler<HTMLDivElement>}
          onDragStart={preventDefault}
          onClickCapture={handleClickCapture}
          className="position-relative d-inline-flex column-gap-2"
          style={{
            transform: `translateX(${position}px)`,
            transition: 'transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94)',
            userSelect: 'none',
            cursor: isDragging ? 'grabbing' : 'grab',
          }}
        >
          {children.map((child, index) => (
            <div key={index}>{child}</div>
          ))}
        </div>
      </div>
    )
  } satisfies ComponentJsx<{
    children: React.ReactNode
    className?: string
    style?: object
  }>)

code:
  export default function({runtime:e,props:{children:t,className:n,style:r},deps:{react:{useState:i,useRef:a,useEffect:s}}}){let u=a(null),o=a(null),c=a(!1),l=a(0),m=a(0),f=a(0),[h,v]=i(0),[d,p]=i(0),[x,M]=i(!1),[b,y]=i(0),[w,E]=i({min:0,max:0});s(()=>{let e=()=>{let e=u.current,t=o.current;if(e&&t){let n=Math.min(0,e.offsetWidth-t.scrollWidth);E({min:n,max:0}),v(e=>Math.max(n,Math.min(e,0)))}};if(e(),"undefined"!=typeof ResizeObserver){let t=new ResizeObserver(e);return u.current&&t.observe(u.current),o.current&&t.observe(o.current),()=>t.disconnect()}let t=()=>e();return window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[t]),s(()=>{let e=u.current;if(!e)return;let t=e=>{if(!e.shiftKey)return;e.preventDefault();let t=0!==e.deltaY?e.deltaY:e.deltaX;o.current&&(o.current.style.transition="none"),v(e=>Math.max(w.min,Math.min(e-t,w.max)))};return e.addEventListener("wheel",t,{passive:!1}),()=>e.removeEventListener("wheel",t)},[w]);let X=e=>"touches"in e&&e.touches&&e.touches.length>0?e.touches[0].clientX:"clientX"in e&&"number"==typeof e.clientX?e.clientX:e.nativeEvent&&"clientX"in e.nativeEvent?e.nativeEvent.clientX:0,g=e=>{M(!0),c.current=!1;let t=X(e);y(t),p(h),l.current=Date.now(),m.current=t,f.current=0,o.current&&(o.current.style.transition="none")},D=e=>{if(!x)return;let t=X(e),n=Date.now(),r=t-b,i=n-l.current;i>0&&(f.current=(t-m.current)/i,l.current=n,m.current=t),!c.current&&Math.abs(r)>5&&(c.current=!0),v(d+r)},z=()=>{if(!x)return;o.current&&(o.current.style.transition="transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94)");let e=h+250*f.current,t=Math.max(w.min,Math.min(e,w.max));if(e<w.min){let n=Math.min(.1*Math.abs(e-w.min),50);t=w.min+n,setTimeout(()=>{v(w.min),o.current&&(o.current.style.transition="transform 0.3s ease-out")},100)}else if(e>w.max){let n=Math.min(.1*(e-w.max),50);t=w.max-n,setTimeout(()=>{v(w.max),o.current&&(o.current.style.transition="transform 0.3s ease-out")},100)}v(t),M(!1)};return Array.isArray(t)?e.jsx("div",{ref:u,className:n,style:{...r,overflow:"hidden"},children:e.jsx("div",{ref:o,onMouseDown:g,onTouchStart:g,onMouseMove:D,onTouchMove:D,onMouseUp:z,onTouchEnd:z,onMouseLeave:z,onDragStart:e=>{e.preventDefault()},onClickCapture:e=>{c.current&&(e.preventDefault(),e.stopPropagation())},className:"position-relative d-inline-flex column-gap-2",style:{transform:`translateX(${h}px)`,transition:"transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94)",userSelect:"none",cursor:x?"grabbing":"grab"},children:t.map((t,n)=>e.jsx("div",{children:t},n))})}):null}


name: SnappingSlider
updated_at: 2025-11-17T09:47:45.129Z
created_at: 2025-11-17T09:47:45.129Z
jsx:
  import type { CSSProperties, JSX, MouseEventHandler, ReactNode } from 'react'
  import type { ComponentJsx } from 'scripts/bootstrap/types'

  export default (function SnappingSlider({
    runtime,
    props: {
      children,
      renderPrev,
      renderNext,
      itemsXs = 1,
      itemsSm,
      itemsMd,
      itemsLg,
      itemsXl,
      itemsXxl,
      className = 'position-relative',
      style,
    },
    deps: {
      react: { useState, useRef, useEffect },
    },
  }) {
    const [currentIndex, setCurrentIndex] = useState(0)
    const [currentItemsToShow, setCurrentItemsToShow] = useState(itemsXs)
    // Ref for the slider container to measure its width
    const sliderRef = useRef<HTMLDivElement | null>(null)

    // State variables for dragging logic
    const [isDragging, setIsDragging] = useState(false)
    const [dragStart, setDragStart] = useState(0)
    const [dragOffset, setDragOffset] = useState(0)

    const totalSlides = children.length

    // TODO: use breakpoints from bootstrap config
    const breakpoints = {
      sm: 576,
      md: 768,
      lg: 992,
      xl: 1200,
      xxl: 1400,
    }

    // Function to determine current items to show based on screen width
    const updateItemsToShow = () => {
      const width = window.innerWidth
      let newItemsToShow = itemsXs // default

      // Check breakpoints from largest to smallest
      if (itemsXxl !== undefined && width >= breakpoints.xxl) {
        newItemsToShow = itemsXxl
      } else if (itemsXl !== undefined && width >= breakpoints.xl) {
        newItemsToShow = itemsXl
      } else if (itemsLg !== undefined && width >= breakpoints.lg) {
        newItemsToShow = itemsLg
      } else if (itemsMd !== undefined && width >= breakpoints.md) {
        newItemsToShow = itemsMd
      } else if (itemsSm !== undefined && width >= breakpoints.sm) {
        newItemsToShow = itemsSm
      }

      if (newItemsToShow !== currentItemsToShow) {
        setCurrentItemsToShow(newItemsToShow)
        // Adjust currentIndex if it would show empty slides
        const newMaxIndex = Math.max(0, totalSlides - newItemsToShow)
        if (currentIndex > newMaxIndex) {
          setCurrentIndex(newMaxIndex)
        }
      }
    }

    // Set up resize listener
    useEffect(() => {
      updateItemsToShow() // Set initial value

      const handleResize = () => {
        updateItemsToShow()
      }

      window.addEventListener('resize', handleResize)
      return () => window.removeEventListener('resize', handleResize)
    }, [
      itemsXs,
      itemsSm,
      itemsMd,
      itemsLg,
      itemsXl,
      itemsXxl,
      currentItemsToShow,
      currentIndex,
      children,
    ])

    if (typeof children !== 'object' || !Array.isArray(children)) {
      return
    }

    const slideWidthPercentage = 100 / currentItemsToShow
    const maxIndex = Math.max(0, totalSlides - currentItemsToShow)

    const handleNext = () => {
      setCurrentIndex((prevIndex) => Math.min(prevIndex + 1, maxIndex))
    }

    const handlePrev = () => {
      setCurrentIndex((prevIndex) => Math.max(prevIndex - 1, 0))
    }

    // --- Drag Handlers ---

    // Helper to get clientX from both mouse and touch events (React event types)
    const getClientX = (
      e: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement> | PointerEvent,
    ): number => {
      // React Touch event has touches on the event object
      if ('touches' in e && e.touches && e.touches.length > 0) {
        return e.touches[0].clientX
      }
      // React MouseEvent has clientX
      if ('clientX' in e && typeof e.clientX === 'number') {
        return (e as React.MouseEvent<HTMLDivElement> | PointerEvent).clientX
      }
      // As a fallback, try nativeEvent if it's present (rare)
      if ((e as any).nativeEvent && 'clientX' in (e as any).nativeEvent) {
        return (e as any).nativeEvent.clientX
      }
      return 0
    }

    const handleDragStart = (
      e: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>,
    ) => {
      setIsDragging(true)
      setDragStart(getClientX(e))
      // We don't reset dragOffset here to allow for quick successive drags
    }

    const handleDragMove = (
      e: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>,
    ) => {
      if (!isDragging) return
      const currentX = getClientX(e)
      setDragOffset(currentX - dragStart)
    }

    const handleDragEnd = (
      e: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>,
    ) => {
      if (!isDragging) return

      // Calculate the width of one slide in pixels
      const sliderWidth = sliderRef.current ? sliderRef.current.offsetWidth : 0
      const slideWidthInPixels = sliderWidth / currentItemsToShow
      const snapThreshold = slideWidthInPixels / 4 // Minimum threshold to trigger a slide change

      // Calculate how many slides to move based on drag distance
      let slidesToMove = 0

      if (Math.abs(dragOffset) > snapThreshold) {
        // Calculate the number of slides based on drag distance
        // Add 0.5 to round to the nearest slide when crossing the halfway point
        slidesToMove = Math.round(Math.abs(dragOffset) / slideWidthInPixels)

        // Ensure we move at least one slide if we exceeded the threshold
        slidesToMove = Math.max(1, slidesToMove)
      }

      if (dragOffset < -snapThreshold) {
        // Dragged left - move forward by calculated slides
        const newIndex = Math.min(currentIndex + slidesToMove, maxIndex)
        setCurrentIndex(newIndex)
      } else if (dragOffset > snapThreshold) {
        // Dragged right - move backward by calculated slides
        const newIndex = Math.max(currentIndex - slidesToMove, 0)
        setCurrentIndex(newIndex)
      }
      // If drag was not enough to pass the threshold, it will snap back to current index

      // Reset drag state
      setIsDragging(false)
      setDragOffset(0)
    }

    const onPointerDown = (e: React.PointerEvent) => {
      // capture all subsequent pointer events, even outside the element
      e.currentTarget.setPointerCapture(e.pointerId)
    }

    const onPointerUp = (e: React.PointerEvent) => {
      e.currentTarget.releasePointerCapture(e.pointerId)
    }

    // Prevent default image drag behavior
    const preventDefault: React.DragEventHandler<HTMLDivElement> = (e) => e.preventDefault()

    return (
      <div className={className} style={style as CSSProperties}>
        {/* Render “Prev” via render-prop or fallback to default */}
        {renderPrev ? (
          renderPrev({ onClick: handlePrev, disabled: currentIndex === 0 })
        ) : (
          <button
            onClick={handlePrev}
            disabled={currentIndex === 0}
            className="btn btn-light position-absolute top-50 start-0 translate-middle-y ms-2"
            style={{ zIndex: 1 }}
          >
            &#8592;
          </button>
        )}
        <div
          ref={sliderRef}
          onMouseDown={handleDragStart}
          onTouchStart={handleDragStart}
          onMouseMove={handleDragMove}
          onTouchMove={handleDragMove}
          onMouseUp={handleDragEnd}
          onTouchEnd={handleDragEnd}
          onDragStart={preventDefault} // Prevent browser's default drag-and-drop
          onPointerDown={onPointerDown} // Capture pointer events outside the element
          onPointerUp={onPointerUp}
          onClick={preventDefault} // Prevent clicks during a drag gesture
          className="d-flex"
          style={{
            // The transform combines the base position (from currentIndex) and the live drag offset
            transform: `translateX(calc(-${currentIndex * slideWidthPercentage}% + ${dragOffset}px))`,
            // Disable transition during drag for immediate feedback, enable for snap-back
            transition: isDragging ? 'none' : 'transform 0.5s ease-in-out',
            // Prevent text selection while dragging
            userSelect: isDragging ? 'none' : 'auto',
            cursor: isDragging ? 'grabbing' : 'grab',
          }}
        >
          {children.map((child, index) => (
            <div
              key={index}
              style={{
                flex: `0 0 ${slideWidthPercentage}%`,
                pointerEvents: isDragging ? 'none' : 'auto', // Prevent interaction with slide content while dragging
              }}
            >
              {child}
            </div>
          ))}
        </div>

        {/* Render “Next” via render-prop or fallback */}
        {renderNext ? (
          renderNext({ onClick: handleNext, disabled: currentIndex >= maxIndex })
        ) : (
          <button
            onClick={handleNext}
            disabled={currentIndex >= maxIndex}
            className="btn btn-light position-absolute top-50 end-0 translate-middle-y me-2"
            style={{ zIndex: 1 }}
          >
            &#8594;
          </button>
        )}
      </div>
    )
  } satisfies ComponentJsx<{
    children: JSX.Element[]
    renderPrev?: (props: {
      onClick: MouseEventHandler<HTMLButtonElement>
      disabled: boolean
    }) => ReactNode
    renderNext?: (props: {
      onClick: MouseEventHandler<HTMLButtonElement>
      disabled: boolean
    }) => ReactNode
    itemsXs?: number
    itemsSm?: number
    itemsMd?: number
    itemsLg?: number
    itemsXl?: number
    itemsXxl?: number
    className?: string
    style?: string
  }>)

code:
  export default function({runtime:e,props:{children:t,renderPrev:n,renderNext:o,itemsXs:i=1,itemsSm:r,itemsMd:a,itemsLg:s,itemsXl:l,itemsXxl:d,className:c="position-relative",style:u},deps:{react:{useState:h,useRef:v,useEffect:p}}}){let[m,b]=h(0),[x,f]=h(i),M=v(null),[y,g]=h(!1),[w,C]=h(0),[E,X]=h(0),j=t.length,k=()=>{let e=window.innerWidth,t=i;if(void 0!==d&&e>=1400?t=d:void 0!==l&&e>=1200?t=l:void 0!==s&&e>=992?t=s:void 0!==a&&e>=768?t=a:void 0!==r&&e>=576&&(t=r),t!==x){f(t);let e=Math.max(0,j-t);m>e&&b(e)}};if(p(()=>{k();let e=()=>{k()};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[i,r,a,s,l,d,x,m,t]),"object"!=typeof t||!Array.isArray(t))return;let T=100/x,z=Math.max(0,j-x),D=()=>{b(e=>Math.min(e+1,z))},I=()=>{b(e=>Math.max(e-1,0))},N=e=>"touches"in e&&e.touches&&e.touches.length>0?e.touches[0].clientX:"clientX"in e&&"number"==typeof e.clientX?e.clientX:e.nativeEvent&&"clientX"in e.nativeEvent?e.nativeEvent.clientX:0,P=e=>{g(!0),C(N(e))},S=e=>{y&&X(N(e)-w)},$=e=>{if(!y)return;let t=(M.current?M.current.offsetWidth:0)/x,n=t/4,o=0;Math.abs(E)>n&&(o=Math.max(1,o=Math.round(Math.abs(E)/t))),E<-n?b(Math.min(m+o,z)):E>n&&b(Math.max(m-o,0)),g(!1),X(0)},A=e=>e.preventDefault();return e.jsxs("div",{className:c,style:u,children:[n?n({onClick:I,disabled:0===m}):e.jsx("button",{onClick:I,disabled:0===m,className:"btn btn-light position-absolute top-50 start-0 translate-middle-y ms-2",style:{zIndex:1},children:"←"}),e.jsx("div",{ref:M,onMouseDown:P,onTouchStart:P,onMouseMove:S,onTouchMove:S,onMouseUp:$,onTouchEnd:$,onDragStart:A,onPointerDown:e=>{e.currentTarget.setPointerCapture(e.pointerId)},onPointerUp:e=>{e.currentTarget.releasePointerCapture(e.pointerId)},onClick:A,className:"d-flex",style:{transform:`translateX(calc(-${m*T}% + ${E}px))`,transition:y?"none":"transform 0.5s ease-in-out",userSelect:y?"none":"auto",cursor:y?"grabbing":"grab"},children:t.map((t,n)=>e.jsx("div",{style:{flex:`0 0 ${T}%`,pointerEvents:y?"none":"auto"},children:t},n))}),o?o({onClick:D,disabled:m>=z}):e.jsx("button",{onClick:D,disabled:m>=z,className:"btn btn-light position-absolute top-50 end-0 translate-middle-y me-2",style:{zIndex:1},children:"→"})]})}


name: Toast
updated_at: 2025-11-17T09:47:45.151Z
created_at: 2025-11-17T09:47:45.151Z
jsx:
  import type { CSSProperties, Dispatch, JSX, SetStateAction } from 'react'
  import type { ComponentJsx } from 'scripts/bootstrap/types'

  export default (function Toast({
    runtime,
    props: { showToast, setShowToast, toastMessage, isSuccess, className, style },
    deps: {
      rb: { Toast, ToastContainer },
    },
  }) {
    const toastStyle: CSSProperties = {
      borderWidth: '2px',
      borderStyle: 'solid',
      borderColor: !isSuccess ? 'var(--bs-danger)' : 'var(--bs-primary)',
      maxWidth: '500px',
      position: 'fixed',
      right: '5%',
      bottom: '10%',
    }
    let toastHeaderClass = !isSuccess ? 'text-dark' : 'text-primary fw-semibold'
    toastHeaderClass += ' rounded'

    return (
      <ToastContainer>
        <Toast
          show={showToast}
          onClose={() => setShowToast(false)}
          autohide
          delay={100000} // 10 seconds
          style={{ ...toastStyle, ...style }}
          className={className}
        >
          <Toast.Header
            className={toastHeaderClass}
            closeButton={true}
            style={{
              whiteSpace: isSuccess ? 'normal' : 'pre-wrap',
              fontFamily: isSuccess ? 'inherit' : 'monospace',
            }}
          >
            <div className="me-auto py-2">{toastMessage}</div>
          </Toast.Header>
        </Toast>
      </ToastContainer>
    )
  } satisfies ComponentJsx<{
    showToast: boolean
    setShowToast: Dispatch<SetStateAction<boolean>>
    toastMessage: JSX.Element | null
    isSuccess?: JSX.Element | null
    className?: string
    style?: CSSProperties
  }>)

code:
  export default function({runtime:e,props:{showToast:r,setShowToast:o,toastMessage:t,isSuccess:a,className:s,style:d},deps:{rb:{Toast:i,ToastContainer:l}}}){let n=a?"text-primary fw-semibold":"text-dark";return n+=" rounded",e.jsx(l,{children:e.jsx(i,{show:r,onClose:()=>o(!1),autohide:!0,delay:1e5,style:{borderWidth:"2px",borderStyle:"solid",borderColor:a?"var(--bs-primary)":"var(--bs-danger)",maxWidth:"500px",position:"fixed",right:"5%",bottom:"10%",...d},className:s,children:e.jsx(i.Header,{className:n,closeButton:!0,style:{whiteSpace:a?"normal":"pre-wrap",fontFamily:a?"inherit":"monospace"},children:e.jsx("div",{className:"me-auto py-2",children:t})})})})}


name: PrivacyPolicyModal
updated_at: 2026-01-15T09:39:27.436Z
created_at: 2025-11-17T09:47:45.174Z
jsx:
  import type { ComponentJsx } from '../../types'

  export default (function ProductsGrid({
    runtime,
    props: { className, style },
    deps: {
      rb: { Modal },
      next: { useRouter, usePathname, useSearchParams },
      react: { useState, useEffect },
    },
  }) {
    const policy = (
      <>
        <div>
          Настоящая Политика конфиденциальности описывает, как мы собираем, используем, храним и
          защищаем персональные данные пользователей, посещающих наш сайт или использующих наши
          сервисы. Мы придаем большое значение защите ваших персональных данных и стремимся обеспечить
          прозрачность в том, как с ними обращаются.
        </div>
        <div className="h5 mt-4">1. Сбор информации</div>
        <div className="fw-semibold">Мы можем собирать следующие данные:</div>
        <ul>
          <li>
            Имя, адрес электронной почты и другие контактные данные, если вы предоставляете их
            добровольно (например, при регистрации или заполнении формы обратной связи);
          </li>
          <li>
            Технические данные: IP-адрес, тип браузера, данные об устройстве и файлы cookie для
            улучшения работы сайта.
          </li>
        </ul>

        <div className="h5 mt-4">2. Использование информации</div>
        <div className="fw-semibold">Мы используем собранные данные для:</div>
        <ul>
          <li>Предоставления и улучшения наших услуг;</li>
          <li>Ответов на ваши запросы и обращений;</li>
          <li>Анализа использования сайта и улучшения его работы;</li>
          <li>Отправки уведомлений и новостей (только при вашем согласии).</li>
        </ul>

        <div className="h5 mt-4">3. Передача данных третьим лицам</div>
        <div>
          Мы <strong>не передаём</strong> ваши персональные данные третьим лицам, за исключением
          случаев, когда это требуется законом или необходимо для предоставления услуг (например,
          хостинг-провайдеры, почтовые сервисы).
        </div>

        <div className="h5 mt-4">4. Хранение данных</div>

        <div>
          Мы храним ваши персональные данные только столько, сколько необходимо для целей, указанных
          выше, или в соответствии с требованиями законодательства.
        </div>

        <div className="h5 mt-4">5. Защита данных</div>

        <div>
          Мы принимаем все разумные меры для защиты ваших данных от несанкционированного доступа,
          изменения, раскрытия или уничтожения.
        </div>

        <div className="h5 mt-4">6. Ваши права</div>
        <div className="fw-semibold">Вы имеете право:</div>
        <ul>
          <li>Запросить доступ к вашим данным;</li>
          <li>Исправить или удалить их;</li>
          <li>Отозвать согласие на обработку данных.</li>
        </ul>
        <div>
          Для реализации этих прав вы можете связаться с нами по адресу: <a href="mailto:info@asiapartner.ru"><strong>info@asiapartner.ru</strong></a>.
        </div>
        <div className="h5 mt-4">7. Изменения политики</div>
        <div>
          Мы можем время от времени обновлять настоящую Политику конфиденциальности. Новая версия
          будет опубликована на этой странице с обновлённой датой вступления в силу.
        </div>
      </>
    )
    const searchParams = useSearchParams()
    const router = useRouter()
    const pathname = usePathname()
    const [show, setShow] = useState(false)
    const handleClose = () => {
      setShow(false)
      const params = searchParams.toString()
      router.replace(`${pathname}${params ? `?${params}` : ''}`, { scroll: false })
    }
    useEffect(() => {
      if (!window?.location) {
        return
      }
      const onHashChange = () => setShow(window.location.hash === '#privacy')
      onHashChange()
      window.addEventListener('hashchange', onHashChange)
      return () => window.removeEventListener('hashchange', onHashChange)
    }, [])
    return (
      <Modal scrollable size="lg" show={show} onHide={handleClose}>
        <Modal.Header closeButton>
          <Modal.Title>Политика конфиденциальности</Modal.Title>
        </Modal.Header>
        <Modal.Body>{policy}</Modal.Body>
      </Modal>
    )
  } satisfies ComponentJsx<{
    className?: string
    style?: React.CSSProperties
  }>)

code:
  export default function({runtime:i,props:{className:e,style:s},deps:{rb:{Modal:l},next:{useRouter:d,usePathname:r,useSearchParams:n},react:{useState:c,useEffect:h}}}){let a=i.jsxs(i.Fragment,{children:[i.jsx("div",{children:"Настоящая Политика конфиденциальности описывает, как мы собираем, используем, храним и защищаем персональные данные пользователей, посещающих наш сайт или использующих наши сервисы. Мы придаем большое значение защите ваших персональных данных и стремимся обеспечить прозрачность в том, как с ними обращаются."}),i.jsx("div",{className:"h5 mt-4",children:"1. Сбор информации"}),i.jsx("div",{className:"fw-semibold",children:"Мы можем собирать следующие данные:"}),i.jsxs("ul",{children:[i.jsx("li",{children:"Имя, адрес электронной почты и другие контактные данные, если вы предоставляете их добровольно (например, при регистрации или заполнении формы обратной связи);"}),i.jsx("li",{children:"Технические данные: IP-адрес, тип браузера, данные об устройстве и файлы cookie для улучшения работы сайта."})]}),i.jsx("div",{className:"h5 mt-4",children:"2. Использование информации"}),i.jsx("div",{className:"fw-semibold",children:"Мы используем собранные данные для:"}),i.jsxs("ul",{children:[i.jsx("li",{children:"Предоставления и улучшения наших услуг;"}),i.jsx("li",{children:"Ответов на ваши запросы и обращений;"}),i.jsx("li",{children:"Анализа использования сайта и улучшения его работы;"}),i.jsx("li",{children:"Отправки уведомлений и новостей (только при вашем согласии)."})]}),i.jsx("div",{className:"h5 mt-4",children:"3. Передача данных третьим лицам"}),i.jsxs("div",{children:["Мы ",i.jsx("strong",{children:"не передаём"})," ваши персональные данные третьим лицам, за исключением случаев, когда это требуется законом или необходимо для предоставления услуг (например, хостинг-провайдеры, почтовые сервисы)."]}),i.jsx("div",{className:"h5 mt-4",children:"4. Хранение данных"}),i.jsx("div",{children:"Мы храним ваши персональные данные только столько, сколько необходимо для целей, указанных выше, или в соответствии с требованиями законодательства."}),i.jsx("div",{className:"h5 mt-4",children:"5. Защита данных"}),i.jsx("div",{children:"Мы принимаем все разумные меры для защиты ваших данных от несанкционированного доступа, изменения, раскрытия или уничтожения."}),i.jsx("div",{className:"h5 mt-4",children:"6. Ваши права"}),i.jsx("div",{className:"fw-semibold",children:"Вы имеете право:"}),i.jsxs("ul",{children:[i.jsx("li",{children:"Запросить доступ к вашим данным;"}),i.jsx("li",{children:"Исправить или удалить их;"}),i.jsx("li",{children:"Отозвать согласие на обработку данных."})]}),i.jsxs("div",{children:["Для реализации этих прав вы можете связаться с нами по адресу: ",i.jsx("a",{href:"mailto:info@asiapartner.ru",children:i.jsx("strong",{children:"info@asiapartner.ru"})}),"."]}),i.jsx("div",{className:"h5 mt-4",children:"7. Изменения политики"}),i.jsx("div",{children:"Мы можем время от времени обновлять настоящую Политику конфиденциальности. Новая версия будет опубликована на этой странице с обновлённой датой вступления в силу."})]}),x=n(),j=d(),t=r(),[o,m]=c(!1);return h(()=>{if(!window?.location)return;let i=()=>m("#privacy"===window.location.hash);return i(),window.addEventListener("hashchange",i),()=>window.removeEventListener("hashchange",i)},[]),i.jsxs(l,{scrollable:!0,size:"lg",show:o,onHide:()=>{m(!1);let i=x.toString();j.replace(`${t}${i?`?${i}`:""}`,{scroll:!1})},children:[i.jsx(l.Header,{closeButton:!0,children:i.jsx(l.Title,{children:"Политика конфиденциальности"})}),i.jsx(l.Body,{children:a})]})};


name: ProductCard
updated_at: 2025-11-21T05:21:45.446Z
created_at: 2025-11-18T04:12:25.627Z
jsx:
  import type { ComponentJsx } from '../../types'
  import type { Product } from '@/payload-types'

  export default (function ProductCard({
    runtime,
    props: { product, className, style },
    deps: {
      app: { isPopulated },
      rb: { Card },
    },
  }) {
    const img = product.img?.at(0)
    const imgSrc = isPopulated(img)
      ? img.url!
      : `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyBmaWxsPSJub25lIiBzdHJva2U9IiNlMWUxZTEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxwYXRoIGQ9Ik0xMiAyMEg1YTIgMiAwIDAgMS0yLTJWOWEyIDIgMCAwIDEgMi0yaDFhMiAyIDAgMCAwIDItMmExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMWEyIDIgMCAwIDAgMiAyaDFhMiAyIDAgMCAxIDIgMnYzLjUiLz48cGF0aCBkPSJNMTQuOTg0IDEzLjMwN2EzIDMgMCAxIDAtMi4zMiAyLjYyTTE2IDE5YTMgMyAwIDEgMCA2IDBhMyAzIDAgMSAwLTYgMG0xIDJsNC00Ii8+PC9nPjwvc3ZnPg==`
    return (
      <Card
        className={`h-100 d-flex flex-column bg-white border-0 hover-zoom ${className || ''}`}
        style={style}
      >
        <div className="flex-grow-1 m-2 rounded overflow-hidden">
          <Card.Img
            variant="top"
            src={imgSrc}
            className="img-fluid hz-target"
            style={{
              aspectRatio: '1 / 1',
              objectFit: 'cover',
            }}
          />
        </div>
        <Card.Body className="flex-grow-0">
          <Card.Subtitle className="text-truncate"> {product.name}</Card.Subtitle>
        </Card.Body>
      </Card>
    )
  } satisfies ComponentJsx<{
    product: Product
    className?: string
    style?: object
  }>)

code:
  export default function({runtime:I,props:{product:e,className:M,style:g},deps:{app:{isPopulated:a},rb:{Card:i}}}){let l=e.img?.at(0),s=a(l)?l.url:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyBmaWxsPSJub25lIiBzdHJva2U9IiNlMWUxZTEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxwYXRoIGQ9Ik0xMiAyMEg1YTIgMiAwIDAgMS0yLTJWOWEyIDIgMCAwIDEgMi0yaDFhMiAyIDAgMCAwIDItMmExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMWEyIDIgMCAwIDAgMiAyaDFhMiAyIDAgMCAxIDIgMnYzLjUiLz48cGF0aCBkPSJNMTQuOTg0IDEzLjMwN2EzIDMgMCAxIDAtMi4zMiAyLjYyTTE2IDE5YTMgMyAwIDEgMCA2IDBhMyAzIDAgMSAwLTYgMG0xIDJsNC00Ii8+PC9nPjwvc3ZnPg==";return I.jsxs(i,{className:`h-100 d-flex flex-column bg-white border-0 hover-zoom ${M||""}`,style:g,children:[I.jsx("div",{className:"flex-grow-1 m-2 rounded overflow-hidden",children:I.jsx(i.Img,{variant:"top",src:s,className:"img-fluid hz-target",style:{aspectRatio:"1 / 1",objectFit:"cover"}})}),I.jsx(i.Body,{className:"flex-grow-0",children:I.jsxs(i.Subtitle,{className:"text-truncate",children:[" ",e.name]})})]})}


# _components_v

version_name: CategoriesGrid
version_updated_at: 2025-11-17T09:47:44.754Z
version_created_at: 2025-11-17T09:47:44.754Z
created_at: 2025-11-17T09:47:44.769Z
updated_at: 2025-11-17T09:47:44.769Z
version_jsx:
  import type { Category } from '@/payload-types'
  import type { ComponentJsx } from 'scripts/bootstrap/types'

  export default (function CategoriesGrid({
    runtime,
    props: { categories, className, style },
    deps: {
      rb: { Container, Row, Col, Image },
      next: { Link },
    },
  }) {
    return (
      <Container className={className} style={style}>
        <Row
          className="d-md-grid row-gap-3 row-gap-md-2"
          style={{
            gridTemplateColumns: 'repeat(7, 1fr)',
          }}
        >
          {categories.map((category) => {
            const attr = category.attributes?.find((x) => x.key === 'homeWidth')

            const imgUrl = typeof category.img !== 'number' && category.img?.sizes?.main?.url
            return (
              <Col
                xs={12}
                key={category.id}
                className="overflow-hidden px-md-1 text-white"
                style={{
                  gridColumn: `span ${attr?.number || '2'}`,
                  height: '350px',
                }}
              >
                <style>
                  {`
                    .hover-zoom {
                      transition: transform 0.6s cubic-bezier(0.25, 0.1, 0.25, 1),
                                  filter 0.6s cubic-bezier(0.25, 0.1, 0.25, 1);
                      will-change: transform;
                      transform-origin: center center;
                    }

                    .hover-zoom:hover {
                      transform: scale(1.08);
                    }
                  `}
                </style>
                <Link
                  href={`/categories/${category.slug}`}
                  className="link-light rounded overflow-hidden"
                  style={{ display: 'block', position: 'relative', height: '100%' }}
                >
                  <Image
                    src={imgUrl || ''}
                    alt={category.name}
                    rounded
                    className="hover-zoom"
                    style={{
                      width: '100%',
                      height: '100%',
                      objectFit: 'cover',
                      display: 'block',
                    }}
                  />
                  <div
                    style={{
                      position: 'absolute',
                      bottom: 0,
                      left: 0,
                      width: '100%',
                      height: '50%',
                      background:
                        'linear-gradient(to bottom, rgba(0,0,0,0) 0%, rgba(0,0,0,0.8) 100%)',
                      pointerEvents: 'none',
                      borderRadius: 'var(--bs-border-radius)',
                    }}
                  />
                  <h5 className="position-absolute bottom-0 mx-4 mb-4 fw-semibold">
                    {category.name}
                  </h5>
                </Link>
              </Col>
            )
          })}
        </Row>
      </Container>
    )
  } satisfies ComponentJsx<{ categories: [Category]; className?: string; style?: object }>)

version_code:
  export default function({runtime:e,props:{categories:r,className:t,style:s},deps:{rb:{Container:i,Row:o,Col:a,Image:l},next:{Link:n}}}){return e.jsx(i,{className:t,style:s,children:e.jsx(o,{className:"d-md-grid row-gap-3 row-gap-md-2",style:{gridTemplateColumns:"repeat(7, 1fr)"},children:r.map(r=>{let t=r.attributes?.find(e=>"homeWidth"===e.key),s="number"!=typeof r.img&&r.img?.sizes?.main?.url;return e.jsxs(a,{xs:12,className:"overflow-hidden px-md-1 text-white",style:{gridColumn:`span ${t?.number||"2"}`,height:"350px"},children:[e.jsx("style",{children:`
                    .hover-zoom {
                      transition: transform 0.6s cubic-bezier(0.25, 0.1, 0.25, 1),
                                  filter 0.6s cubic-bezier(0.25, 0.1, 0.25, 1);
                      will-change: transform;
                      transform-origin: center center;
                    }

                    .hover-zoom:hover {
                      transform: scale(1.08);
                    }
                  `}),e.jsxs(n,{href:`/categories/${r.slug}`,className:"link-light rounded overflow-hidden",style:{display:"block",position:"relative",height:"100%"},children:[e.jsx(l,{src:s||"",alt:r.name,rounded:!0,className:"hover-zoom",style:{width:"100%",height:"100%",objectFit:"cover",display:"block"}}),e.jsx("div",{style:{position:"absolute",bottom:0,left:0,width:"100%",height:"50%",background:"linear-gradient(to bottom, rgba(0,0,0,0) 0%, rgba(0,0,0,0.8) 100%)",pointerEvents:"none",borderRadius:"var(--bs-border-radius)"}}),e.jsx("h5",{className:"position-absolute bottom-0 mx-4 mb-4 fw-semibold",children:r.name})]})]},r.id)})})})}


version_name: FAQ
version_updated_at: 2025-11-17T09:47:44.885Z
version_created_at: 2025-11-17T09:47:44.885Z
created_at: 2025-11-17T09:47:44.899Z
updated_at: 2025-11-17T09:47:44.899Z
version_jsx:
  import type { ComponentJsx } from 'scripts/bootstrap/types'

  export default (function FAQ({
    runtime,
    props: { className, style },
    components: { Accordion },
    deps: {
      rb: { Container, Row, Col },
    },
  }) {
    return (
      <div style={style} className={`position-relative pt-5 ${className}`}>
        <div
          className="d-block d-lg-none overflow-hidden bg-secondary"
          style={{ position: 'absolute', top: 0, right: 0, bottom: 0, left: 0 }}
        >
          <div
            className="h-100"
            style={{
              backgroundImage: 'url(/api/media/file/car.webp)',
              backgroundSize: 'cover',
              backgroundPosition: 'center',
              clipPath: 'polygon(0 0, 60% 0, 30% 100%, 0 100%)',
            }}
          >
            <div
              className="h-100"
              style={{ backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.5)' }}
            ></div>
          </div>
        </div>
        <div
          className="d-none d-lg-block overflow-hidden"
          style={{ position: 'absolute', top: 0, right: 0, bottom: 0, left: 0 }}
        >
          <div
            className="d-flex"
            style={{ position: 'absolute', top: 0, right: 0, bottom: 0, left: 0 }}
          >
            <div
              className="h-100 w-50"
              style={{
                backgroundImage: 'url(/api/media/file/car.webp)',
                backgroundSize: 'cover',
                backgroundPosition: 'center',
              }}
            >
              <div
                className="h-100"
                style={{ backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.5)' }}
              ></div>
            </div>
            <div
              className="h-100 w-50"
              style={{
                backgroundImage: 'url(/api/media/file/car.webp)',
                backgroundSize: 'cover',
                backgroundPosition: 'center',
              }}
            >
              <div
                className="h-100"
                style={{ backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.5)' }}
              ></div>
            </div>
          </div>
          <Container className="h-100">
            <Row className="h-100">
              <Col />
              <Col lg={9} className="mx-n5 bg-secondary" style={{ transform: 'skewX(-20deg)' }}></Col>
            </Row>
          </Container>
        </div>
        <Container>
          <Row className="position-relative z-1 justify-content-between row-gap-4">
            <Col lg={3} className="d-flex flex-column row-gap-lg-4 row-gap-2">
              <div className="d-flex flex-column justify-content-between text-uppercase">
                <h1 className="lh-1 text-primary">часто&nbsp;</h1>
                <h1 className="mx-lg-auto lh-1">задаваемые</h1>
                <h1 className="ms-lg-auto lh-1">вопросы</h1>
              </div>

              <span>
                Все ответы на ваши вопросы — собраны в одном месте, чтобы вы экономили время и силы.
              </span>
            </Col>
            <Col lg={8}>
              <Accordion
                accordionData={[
                  {
                    header: 'Как долго длится доставка из Китая?',
                    body: 'Asia Partner доставляет сертифицированные товары из Азии напрямую. Срок доставки товара с момента подписания договора состовляет от 10 до 30 календарных дней.',
                    id: 'q1,',
                  },
                  {
                    header: 'Можно ли оформить заказ официально по договору?',
                    body: 'Абсолютно все товары оформляются официально, согласно договра поставки.',
                    id: 'q2,',
                  },
                  {
                    header: 'Какие способы оплаты вы принимаете?',
                    body: 'Asia Partner работает офицально, принмая оплату на рассчетный счет нашей компании в Кыргызстане.',
                    id: 'q3,',
                  },
                  {
                    header: 'Что делать, если товар пришёл с браком?',
                    body: 'В случае брака возвращается стоимость товара, либо осуществляется его замена.',
                    id: 'q4,',
                  },
                ]}
              />
            </Col>
          </Row>
        </Container>
      </div>
    )
  } satisfies ComponentJsx<{ className?: string; style?: object }>)

version_code:
  export default function({runtime:e,props:{className:s,style:a},components:{Accordion:r},deps:{rb:{Container:l,Row:o,Col:d}}}){return e.jsxs("div",{style:a,className:`position-relative pt-5 ${s}`,children:[e.jsx("div",{className:"d-block d-lg-none overflow-hidden bg-secondary",style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:e.jsx("div",{className:"h-100",style:{backgroundImage:"url(/api/media/file/car.webp)",backgroundSize:"cover",backgroundPosition:"center",clipPath:"polygon(0 0, 60% 0, 30% 100%, 0 100%)"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.5)"}})})}),e.jsxs("div",{className:"d-none d-lg-block overflow-hidden",style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:[e.jsxs("div",{className:"d-flex",style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:[e.jsx("div",{className:"h-100 w-50",style:{backgroundImage:"url(/api/media/file/car.webp)",backgroundSize:"cover",backgroundPosition:"center"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.5)"}})}),e.jsx("div",{className:"h-100 w-50",style:{backgroundImage:"url(/api/media/file/car.webp)",backgroundSize:"cover",backgroundPosition:"center"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.5)"}})})]}),e.jsx(l,{className:"h-100",children:e.jsxs(o,{className:"h-100",children:[e.jsx(d,{}),e.jsx(d,{lg:9,className:"mx-n5 bg-secondary",style:{transform:"skewX(-20deg)"}})]})})]}),e.jsx(l,{children:e.jsxs(o,{className:"position-relative z-1 justify-content-between row-gap-4",children:[e.jsxs(d,{lg:3,className:"d-flex flex-column row-gap-lg-4 row-gap-2",children:[e.jsxs("div",{className:"d-flex flex-column justify-content-between text-uppercase",children:[e.jsx("h1",{className:"lh-1 text-primary",children:"часто "}),e.jsx("h1",{className:"mx-lg-auto lh-1",children:"задаваемые"}),e.jsx("h1",{className:"ms-lg-auto lh-1",children:"вопросы"})]}),e.jsx("span",{children:"Все ответы на ваши вопросы — собраны в одном месте, чтобы вы экономили время и силы."})]}),e.jsx(d,{lg:8,children:e.jsx(r,{accordionData:[{header:"Как долго длится доставка из Китая?",body:"Asia Partner доставляет сертифицированные товары из Азии напрямую. Срок доставки товара с момента подписания договора состовляет от 10 до 30 календарных дней.",id:"q1,"},{header:"Можно ли оформить заказ официально по договору?",body:"Абсолютно все товары оформляются официально, согласно договра поставки.",id:"q2,"},{header:"Какие способы оплаты вы принимаете?",body:"Asia Partner работает офицально, принмая оплату на рассчетный счет нашей компании в Кыргызстане.",id:"q3,"},{header:"Что делать, если товар пришёл с браком?",body:"В случае брака возвращается стоимость товара, либо осуществляется его замена.",id:"q4,"}]})})]})})]})}


version_name: Footer
version_updated_at: 2025-11-17T09:47:44.949Z
version_created_at: 2025-11-17T09:47:44.949Z
created_at: 2025-11-17T09:47:44.960Z
updated_at: 2025-11-17T09:47:44.960Z
version_jsx:
  import type { Form } from '@/payload-types'
  import type { ComponentJsx } from 'scripts/bootstrap/types'

  export default (function Footer({
    runtime,
    components: { Form },
    deps: {
      rb: { Container, Row, Col, Image },
    },
    props: { formData },
  }) {
    return (
      <footer className="position-relative z-1 bg-dark py-5 text-white overflow-hidden">
        <div id="footer-anchor" className="position-absolute" style={{ top: '-50px' }} />
        <Container className="pt-3" style={{ minHeight: '250px' }}>
          {/* Text on the upper left side */}
          <Row xs={1} lg={2} className="row-gap-4" style={{ paddingBottom: '120px' }}>
            <Col className="position-relative z-2">
              <div
                className="d-flex flex-column mb-lg-4 mb-2 text-uppercase"
                style={{ maxWidth: '500px' }}
              >
                <h1>Оставьте заявку — </h1>
                <h1 className="ms-lg-auto text-primary">поможем с выбором</h1>
              </div>
              <div className="me-auto fw-light" style={{ maxWidth: '350px' }}>
                Заполните заявку — получите помощь в подборе товаров и развернутые ответы.
              </div>
              <Image
                className="position-absolute d-none d-lg-block mt-3"
                src="/api/media/file/footer-map.svg"
                style={{ width: '850px' }}
                alt="footer-map"
              />
            </Col>

            {/* The Form */}
            <Col className="position-relative z-3">
              {formData && <Form formData={formData} />}

              <Image
                className="position-absolute d-block d-lg-none mt-2 mr-2"
                src="/api/media/file/footer-map.svg"
                style={{ maxWidth: '95%', height: 'auto', color: 'rgb(var(--bs-primary))' }}
                alt="footer-map"
              />
            </Col>
          </Row>

          {/* Contacts */}
          <Row
            xs={1}
            lg={4}
            className="position-relative z-3 justify-content-between row-gap-4 mb-5 fw-light"
          >
            <Col className="d-flex flex-column row-gap-lg-3 row-gap-2">
              <a
                href="tel:+996770914500"
                className="d-flex align-items-center column-gap-2 me-auto link-light link-underline-opacity-0 link-underline-opacity-100-hover"
              >
                <iconify-icon className="fs-4" icon="lucide:phone"></iconify-icon>
                <span className="fs-6 fw-normal">+996 770 914 500</span>
              </a>
              <span>Позвоните — ответим на вопросы и поможем решить задачи</span>
            </Col>
            <Col className="d-flex flex-column row-gap-lg-3 row-gap-2">
              <div className="d-flex gap-2">
                <a
                  href="mailto:imp@solbi.kg"
                  className="d-flex align-items-center column-gap-2 me-auto link-light link-underline-opacity-0 link-underline-opacity-100-hover"
                >
                  <iconify-icon className="fs-4" icon="lucide:mail"></iconify-icon>
                  <span className="fs-6 fw-normal">imp@solbi.kg</span>
                </a>
                <a
                  href="mailto:info@asiapartner.ru"
                  className="d-flex align-items-center column-gap-2 me-auto link-light link-underline-opacity-0 link-underline-opacity-100-hover"
                >
                  <iconify-icon className="fs-4" icon="lucide:mail"></iconify-icon>
                  <span className="fs-6 fw-normal">info@asiapartner.ru</span>
                </a>
              </div>
              <span>Напишите на email — подберём товары, расскажем об условиях и оформим</span>
            </Col>
            <Col className="d-flex flex-column row-gap-lg-3 row-gap-2">
              <a
                href="#"
                className="d-flex align-items-center column-gap-2 me-auto link-light link-underline-opacity-0 link-underline-opacity-100-hover"
              >
                <iconify-icon className="fs-4" icon="lucide:map-pinned"></iconify-icon>
                <span className="fs-6 fw-normal">г. Бишкек, ул.Боконбаева 196</span>
              </a>
              <span>Загляните в офис — познакомимся лично и покажем ассортимент</span>
            </Col>
          </Row>

          <div className="position-relative z-2">
            <hr />
            <div className="d-flex flex-column flex-lg-row justify-content-start justify-content-lg-between row-gap-3 mt-4 fw-light">
              <span>&copy; 2025 Asia Partner. Все права защищены.</span>
              <a
                href="#privacy"
                className="link-light link-underline-opacity-0 link-underline-opacity-75-hover"
              >
                Политика конфиденциальности
              </a>
            </div>
          </div>
        </Container>
      </footer>
    )
  } satisfies ComponentJsx<{ formData: Form }>)

version_code:
  export default function({runtime:e,components:{Form:s},deps:{rb:{Container:l,Row:i,Col:a,Image:n}},props:{formData:o}}){return e.jsxs("footer",{className:"position-relative z-1 bg-dark py-5 text-white overflow-hidden",children:[e.jsx("div",{id:"footer-anchor",className:"position-absolute",style:{top:"-50px"}}),e.jsxs(l,{className:"pt-3",style:{minHeight:"250px"},children:[e.jsxs(i,{xs:1,lg:2,className:"row-gap-4",style:{paddingBottom:"120px"},children:[e.jsxs(a,{className:"position-relative z-2",children:[e.jsxs("div",{className:"d-flex flex-column mb-lg-4 mb-2 text-uppercase",style:{maxWidth:"500px"},children:[e.jsx("h1",{children:"Оставьте заявку — "}),e.jsx("h1",{className:"ms-lg-auto text-primary",children:"поможем с выбором"})]}),e.jsx("div",{className:"me-auto fw-light",style:{maxWidth:"350px"},children:"Заполните заявку — получите помощь в подборе товаров и развернутые ответы."}),e.jsx(n,{className:"position-absolute d-none d-lg-block mt-3",src:"/api/media/file/footer-map.svg",style:{width:"850px"},alt:"footer-map"})]}),e.jsxs(a,{className:"position-relative z-3",children:[o&&e.jsx(s,{formData:o}),e.jsx(n,{className:"position-absolute d-block d-lg-none mt-2 mr-2",src:"/api/media/file/footer-map.svg",style:{maxWidth:"95%",height:"auto",color:"rgb(var(--bs-primary))"},alt:"footer-map"})]})]}),e.jsxs(i,{xs:1,lg:4,className:"position-relative z-3 justify-content-between row-gap-4 mb-5 fw-light",children:[e.jsxs(a,{className:"d-flex flex-column row-gap-lg-3 row-gap-2",children:[e.jsxs("a",{href:"tel:+996770914500",className:"d-flex align-items-center column-gap-2 me-auto link-light link-underline-opacity-0 link-underline-opacity-100-hover",children:[e.jsx("iconify-icon",{className:"fs-4",icon:"lucide:phone"}),e.jsx("span",{className:"fs-6 fw-normal",children:"+996 770 914 500"})]}),e.jsx("span",{children:"Позвоните — ответим на вопросы и поможем решить задачи"})]}),e.jsxs(a,{className:"d-flex flex-column row-gap-lg-3 row-gap-2",children:[e.jsxs("div",{className:"d-flex gap-2",children:[e.jsxs("a",{href:"mailto:imp@solbi.kg",className:"d-flex align-items-center column-gap-2 me-auto link-light link-underline-opacity-0 link-underline-opacity-100-hover",children:[e.jsx("iconify-icon",{className:"fs-4",icon:"lucide:mail"}),e.jsx("span",{className:"fs-6 fw-normal",children:"imp@solbi.kg"})]}),e.jsxs("a",{href:"mailto:info@asiapartner.ru",className:"d-flex align-items-center column-gap-2 me-auto link-light link-underline-opacity-0 link-underline-opacity-100-hover",children:[e.jsx("iconify-icon",{className:"fs-4",icon:"lucide:mail"}),e.jsx("span",{className:"fs-6 fw-normal",children:"info@asiapartner.ru"})]})]}),e.jsx("span",{children:"Напишите на email — подберём товары, расскажем об условиях и оформим"})]}),e.jsxs(a,{className:"d-flex flex-column row-gap-lg-3 row-gap-2",children:[e.jsxs("a",{href:"#",className:"d-flex align-items-center column-gap-2 me-auto link-light link-underline-opacity-0 link-underline-opacity-100-hover",children:[e.jsx("iconify-icon",{className:"fs-4",icon:"lucide:map-pinned"}),e.jsx("span",{className:"fs-6 fw-normal",children:"г. Бишкек, ул.Боконбаева 196"})]}),e.jsx("span",{children:"Загляните в офис — познакомимся лично и покажем ассортимент"})]})]}),e.jsxs("div",{className:"position-relative z-2",children:[e.jsx("hr",{}),e.jsxs("div",{className:"d-flex flex-column flex-lg-row justify-content-start justify-content-lg-between row-gap-3 mt-4 fw-light",children:[e.jsx("span",{children:"© 2025 Asia Partner. Все права защищены."}),e.jsx("a",{href:"#privacy",className:"link-light link-underline-opacity-0 link-underline-opacity-75-hover",children:"Политика конфиденциальности"})]})]})]})]})}


version_name: Form
version_updated_at: 2025-11-17T09:47:44.995Z
version_created_at: 2025-11-17T09:47:44.995Z
created_at: 2025-11-17T09:47:45.003Z
updated_at: 2025-11-17T09:47:45.003Z
version_jsx:
  import type { Form } from '@/payload-types'
  import type { FormEventHandler, ReactElement } from 'react'
  import type { ComponentJsx } from 'scripts/bootstrap/types'

  export default (function Form({
    runtime,
    props: { formData, onSuccess, onError, className, style },
    components: { RichText, Toast },
    deps: {
      rb: { Form, FormGroup, FormCheck, FormSelect, FormLabel, Button, Spinner },
      next: { useRouter },
      react: { useRef, useState },
    },
  }) {
    const fieldClasses = 'bg-dark border-white rounded-1'
    const fieldErrorClasses = 'bg-dark border-danger rounded-1'
    const formRef = useRef(null)
    const [loading, setLoading] = useState(false)
    const [showToast, setShowToast] = useState(false)
    const [isSuccess, setIsSuccess] = useState<boolean | null>(null)
    const [toastMessage, setToastMessage] = useState<ReactElement | null>(null)

    // This state will hold an object like { "policy-field": ["Error message"] }
    const [fieldErrors, setFieldErrors] = useState<Record<string, string[] | undefined>>({})

    const formFields = formData.fields?.map((field) => {
      // For each field, check if there's a corresponding error message
      const errorMessages = 'name' in field ? fieldErrors[field.name] : undefined

      switch (field.blockType) {
        case 'text': {
          return (
            <FormGroup key={field.id}>
              <Form.Control
                name={field.name}
                type="text"
                placeholder={field.label ?? ''}
                className={!!errorMessages ? fieldErrorClasses : fieldClasses}
                isInvalid={!!errorMessages}
              />
              {errorMessages && (
                <Form.Control.Feedback type="invalid">{errorMessages[0]}</Form.Control.Feedback>
              )}
            </FormGroup>
          )
        }
        case 'textarea': {
          return (
            <FormGroup key={field.id}>
              <Form.Control
                name={field.name}
                as="textarea"
                className={!!errorMessages ? fieldErrorClasses : fieldClasses}
                placeholder={field.label ?? ''}
                isInvalid={!!errorMessages}
              />
              {errorMessages && (
                <Form.Control.Feedback type="invalid">{errorMessages[0]}</Form.Control.Feedback>
              )}
            </FormGroup>
          )
        }
        case 'select': {
          return (
            <FormGroup key={field.id}>
              <FormLabel>{field.label} </FormLabel>
              <FormSelect
                className={!!errorMessages ? fieldErrorClasses : fieldClasses}
                name={field.name}
                isInvalid={!!errorMessages}
              >
                {field.options?.map((option) => (
                  <option key={option.id} value={option.value}>
                    {option.label}
                  </option>
                ))}
              </FormSelect>
              {errorMessages && (
                <Form.Control.Feedback type="invalid">{errorMessages[0]}</Form.Control.Feedback>
              )}
            </FormGroup>
          )
        }
        case 'checkbox': {
          return (
            <FormGroup key={field.id}>
              <FormCheck
                name={field.name}
                type="checkbox"
                className={!!errorMessages ? fieldErrorClasses : fieldClasses}
                label={<span dangerouslySetInnerHTML={{ __html: field.label || '' }} />}
                isInvalid={!!errorMessages}
                // Feedback for checkboxes needs to be a sibling
                feedback={errorMessages ? errorMessages[0] : undefined}
                feedbackType="invalid"
              />
            </FormGroup>
          )
        }
        case 'email': {
          return (
            <FormGroup key={field.id}>
              <Form.Control
                name={field.name}
                className={!!errorMessages ? fieldErrorClasses : fieldClasses}
                type="email"
                placeholder={field.label ?? ''}
                isInvalid={!!errorMessages}
              />
              {errorMessages && (
                <Form.Control.Feedback type="invalid">{errorMessages[0]}</Form.Control.Feedback>
              )}
            </FormGroup>
          )
        }
        case 'number': {
          return (
            <FormGroup key={field.id}>
              <Form.Control
                name={field.name}
                className={!!errorMessages ? fieldErrorClasses : fieldClasses}
                type="number"
                placeholder={field.label ?? ''}
                isInvalid={!!errorMessages}
              />
              {errorMessages && (
                <Form.Control.Feedback type="invalid">{errorMessages[0]}</Form.Control.Feedback>
              )}
            </FormGroup>
          )
        }
        case 'message': {
          return (
            <FormGroup key={field.id}>
              <RichText data={field.message} />
            </FormGroup>
          )
        }
      }
    })

    const router = useRouter()
    const handleSubmit: FormEventHandler<HTMLFormElement> = async (e) => {
      e.preventDefault()
      setLoading(true)
      // clear previous errors on submission
      setFieldErrors({})

      try {
        const res = await fetch(`/api/forms/${formData.id}/submit`, {
          method: 'POST',
          body: new FormData(formRef.current || undefined),
          headers: {
            Accept: 'application/json',
          },
        })
        const data = await res.json()
        const success = data.success || false
        setIsSuccess(success)

        if (success) {
          if (typeof onSuccess === 'function') onSuccess(data)
          if (formData.confirmationType === 'redirect' && formData.redirect?.url) {
            router.push(formData.redirect.url)
            return
          }
          if (formData.confirmationType === 'message' && formData.confirmationMessage) {
            setToastMessage(<RichText data={formData.confirmationMessage} />)
          } else {
            setToastMessage(<span>{data.message || 'Form submitted successfully!'}</span>)
          }
          setShowToast(true)
        } else {
          if (data.error?.fieldErrors) {
            setFieldErrors(data.error.fieldErrors)
          }
          if (typeof onError === 'function') onError(data)

          setToastMessage(<span>{data.message || 'Please correct the errors and try again.'}</span>)
          setShowToast(true)
        }
      } catch (err) {
        setIsSuccess(false)
        setToastMessage(
          <span>{err instanceof Error ? err.message : 'A network error occurred.'}</span>,
        )
        setShowToast(true)
      } finally {
        setLoading(false)
      }
    }

    return (
      <>
        <Form
          ref={formRef}
          onSubmit={handleSubmit}
          data-bs-theme="dark"
          className={`text-white ${className}`}
          style={{ ...style, display: 'flex', flexDirection: 'column', rowGap: '1.5rem' }}
        >
          {formData.title.length ? <h1 className="text-uppercase">{formData.title}</h1> : null}
          {formFields}
          <Button
            variant="primary"
            type="submit"
            className="rounded-0 text-white"
            style={{ padding: '0.8rem 2rem' }}
            disabled={loading}
          >
            {loading ? (
              <Spinner as="span" animation="border" size="sm" role="status" aria-hidden="true" />
            ) : (
              formData.submitButtonLabel
            )}
          </Button>
        </Form>
        <Toast
          showToast={showToast}
          setShowToast={setShowToast}
          toastMessage={toastMessage}
          isSuccess={isSuccess}
        />
      </>
    )
  } satisfies ComponentJsx<{
    formData: Form
    onSuccess?: (data: any) => void
    onError?: (data: any) => void
    className?: string
    style?: object
  }>)

version_code:
  export default function({runtime:e,props:{formData:a,onSuccess:s,onError:r,className:n,style:l},components:{RichText:t,Toast:i},deps:{rb:{Form:d,FormGroup:c,FormCheck:o,FormSelect:m,FormLabel:p,Button:h,Spinner:u},next:{useRouter:x},react:{useRef:b,useState:j}}}){let y="bg-dark border-white rounded-1",f="bg-dark border-danger rounded-1",v=b(null),[g,k]=j(!1),[w,C]=j(!1),[N,F]=j(null),[T,I]=j(null),[S,M]=j({}),D=a.fields?.map(a=>{let s="name"in a?S[a.name]:void 0;switch(a.blockType){case"text":return e.jsxs(c,{children:[e.jsx(d.Control,{name:a.name,type:"text",placeholder:a.label??"",className:s?f:y,isInvalid:!!s}),s&&e.jsx(d.Control.Feedback,{type:"invalid",children:s[0]})]},a.id);case"textarea":return e.jsxs(c,{children:[e.jsx(d.Control,{name:a.name,as:"textarea",className:s?f:y,placeholder:a.label??"",isInvalid:!!s}),s&&e.jsx(d.Control.Feedback,{type:"invalid",children:s[0]})]},a.id);case"select":return e.jsxs(c,{children:[e.jsxs(p,{children:[a.label," "]}),e.jsx(m,{className:s?f:y,name:a.name,isInvalid:!!s,children:a.options?.map(a=>e.jsx("option",{value:a.value,children:a.label},a.id))}),s&&e.jsx(d.Control.Feedback,{type:"invalid",children:s[0]})]},a.id);case"checkbox":return e.jsx(c,{children:e.jsx(o,{name:a.name,type:"checkbox",className:s?f:y,label:e.jsx("span",{dangerouslySetInnerHTML:{__html:a.label||""}}),isInvalid:!!s,feedback:s?s[0]:void 0,feedbackType:"invalid"})},a.id);case"email":return e.jsxs(c,{children:[e.jsx(d.Control,{name:a.name,className:s?f:y,type:"email",placeholder:a.label??"",isInvalid:!!s}),s&&e.jsx(d.Control.Feedback,{type:"invalid",children:s[0]})]},a.id);case"number":return e.jsxs(c,{children:[e.jsx(d.Control,{name:a.name,className:s?f:y,type:"number",placeholder:a.label??"",isInvalid:!!s}),s&&e.jsx(d.Control.Feedback,{type:"invalid",children:s[0]})]},a.id);case"message":return e.jsx(c,{children:e.jsx(t,{data:a.message})},a.id)}}),E=x(),A=async n=>{n.preventDefault(),k(!0),M({});try{let n=await fetch(`/api/forms/${a.id}/submit`,{method:"POST",body:new FormData(v.current||void 0),headers:{Accept:"application/json"}}),l=await n.json(),i=l.success||!1;if(F(i),i){if("function"==typeof s&&s(l),"redirect"===a.confirmationType&&a.redirect?.url)return void E.push(a.redirect.url);"message"===a.confirmationType&&a.confirmationMessage?I(e.jsx(t,{data:a.confirmationMessage})):I(e.jsx("span",{children:l.message||"Form submitted successfully!"})),C(!0)}else l.error?.fieldErrors&&M(l.error.fieldErrors),"function"==typeof r&&r(l),I(e.jsx("span",{children:l.message||"Please correct the errors and try again."})),C(!0)}catch(a){F(!1),I(e.jsx("span",{children:a instanceof Error?a.message:"A network error occurred."})),C(!0)}finally{k(!1)}};return e.jsxs(e.Fragment,{children:[e.jsxs(d,{ref:v,onSubmit:A,"data-bs-theme":"dark",className:`text-white ${n}`,style:{...l,display:"flex",flexDirection:"column",rowGap:"1.5rem"},children:[a.title.length?e.jsx("h1",{className:"text-uppercase",children:a.title}):null,D,e.jsx(h,{variant:"primary",type:"submit",className:"rounded-0 text-white",style:{padding:"0.8rem 2rem"},disabled:g,children:g?e.jsx(u,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"}):a.submitButtonLabel})]}),e.jsx(i,{showToast:w,setShowToast:C,toastMessage:T,isSuccess:N})]})}


version_name: ProductsGrid
version_updated_at: 2025-11-17T09:47:45.079Z
version_created_at: 2025-11-17T09:47:45.079Z
created_at: 2025-11-17T09:47:45.087Z
updated_at: 2025-11-17T09:47:45.087Z
version_jsx:
  import type { ComponentJsx } from '../../types'
  import type { PaginatedDocs } from 'payload'
  import type { Product } from '@/payload-types'

  export default (function ProductsGrid({
    runtime,
    props: { productData, path, className, style },
    deps: {
      rb: { Container, Image, Row, Col, Pagination },
      next: { Link },
    },
  }) {
    const docs = productData.docs
    const totalPages = productData.totalPages
    const page = productData.page || 1

    return (
      <div className={className} style={style}>
        <Container className="d-flex flex-column row-gap-5 mt-5">
          <Row className="row-gap-4">
            {docs.map((product) => {
              const categorySlug =
                typeof product.category === 'number' ? undefined : product.category?.slug
              const href = categorySlug ? `/categories/${categorySlug}/${product.slug}` : undefined
              const imgUrl =
                (product.img &&
                  product.img[0] &&
                  typeof product.img[0] !== 'number' &&
                  product.img[0].sizes?.preview?.url) ||
                undefined
              return href ? (
                <Col sm={6} md={4} lg={3} key={product.id}>
                  <Link
                    href={href}
                    className="d-flex flex-column row-gap-2 h-100 pb-3 px-3 link-dark link-underline-opacity-0 link-underline-opacity-100-hover"
                    style={{ background: 'white' }}
                  >
                    <Image
                      src={imgUrl}
                      alt={product.name}
                      className="img-fluid"
                      style={{
                        aspectRatio: '1 / 1',
                        objectFit: 'cover',
                        width: '100%',
                      }}
                    />
                    <span>{product.name}</span>
                  </Link>
                </Col>
              ) : undefined
            })}
          </Row>
          {path && (
            <Row>
              <Pagination className="justify-content-center">
                <Pagination.First
                  as={Link}
                  href={`${path}?p=1`}
                  disabled={page === 1}
                  className="d-none d-sm-block"
                />
                <Pagination.Prev as={Link} href={`${path}?p=${page - 1}`} disabled={page === 1} />

                {page > 1 && (
                  <Pagination.Item as={Link} href={`${path}?p=1`}>
                    {1}
                  </Pagination.Item>
                )}
                {page > 3 && (
                  <Pagination.Item as={Link} href={`${path}?p=2`} className="d-none d-sm-block">
                    {2}
                  </Pagination.Item>
                )}
                {page > 4 && <Pagination.Ellipsis className="d-none d-sm-block" />}

                {page > 2 && (
                  <Pagination.Item as={Link} href={`${path}?p=${page - 1}`}>
                    {page - 1}
                  </Pagination.Item>
                )}
                <Pagination.Item as={Link} active>
                  {page}
                </Pagination.Item>
                {page < totalPages - 1 && (
                  <Pagination.Item as={Link} href={`${path}?p=${page + 1}`}>
                    {page + 1}
                  </Pagination.Item>
                )}

                {page < totalPages - 3 && <Pagination.Ellipsis className="d-none d-sm-block" />}
                {page < totalPages - 2 && (
                  <Pagination.Item
                    as={Link}
                    href={`${path}?p=${totalPages - 1}`}
                    className="d-none d-sm-block"
                  >
                    {totalPages - 1}
                  </Pagination.Item>
                )}
                {page < totalPages && (
                  <Pagination.Item as={Link} href={`${path}?p=${totalPages}`}>
                    {totalPages}
                  </Pagination.Item>
                )}

                <Pagination.Next
                  as={Link}
                  href={`${path}?p=${page + 1}`}
                  disabled={page === totalPages}
                />
                <Pagination.Last
                  as={Link}
                  href={`${path}?p=${totalPages}`}
                  disabled={page === totalPages}
                  className="d-none d-sm-block"
                />
              </Pagination>
            </Row>
          )}
        </Container>
      </div>
    )
  } satisfies ComponentJsx<{
    productData: PaginatedDocs<Product>
    path?: string
    className?: string
    style?: object
  }>)

version_code:
  export default function({runtime:e,props:{productData:s,path:l,className:a,style:d},deps:{rb:{Container:i,Image:r,Row:c,Col:n,Pagination:t},next:{Link:m}}}){let o=s.docs,h=s.totalPages,p=s.page||1;return e.jsx("div",{className:a,style:d,children:e.jsxs(i,{className:"d-flex flex-column row-gap-5 mt-5",children:[e.jsx(c,{className:"row-gap-4",children:o.map(s=>{let l="number"==typeof s.category?void 0:s.category?.slug,a=l?`/categories/${l}/${s.slug}`:void 0,d=s.img&&s.img[0]&&"number"!=typeof s.img[0]&&s.img[0].sizes?.preview?.url||void 0;return a?e.jsx(n,{sm:6,md:4,lg:3,children:e.jsxs(m,{href:a,className:"d-flex flex-column row-gap-2 h-100 pb-3 px-3 link-dark link-underline-opacity-0 link-underline-opacity-100-hover",style:{background:"white"},children:[e.jsx(r,{src:d,alt:s.name,className:"img-fluid",style:{aspectRatio:"1 / 1",objectFit:"cover",width:"100%"}}),e.jsx("span",{children:s.name})]})},s.id):void 0})}),l&&e.jsx(c,{children:e.jsxs(t,{className:"justify-content-center",children:[e.jsx(t.First,{as:m,href:`${l}?p=1`,disabled:1===p,className:"d-none d-sm-block"}),e.jsx(t.Prev,{as:m,href:`${l}?p=${p-1}`,disabled:1===p}),p>1&&e.jsx(t.Item,{as:m,href:`${l}?p=1`,children:1}),p>3&&e.jsx(t.Item,{as:m,href:`${l}?p=2`,className:"d-none d-sm-block",children:2}),p>4&&e.jsx(t.Ellipsis,{className:"d-none d-sm-block"}),p>2&&e.jsx(t.Item,{as:m,href:`${l}?p=${p-1}`,children:p-1}),e.jsx(t.Item,{as:m,active:!0,children:p}),p<h-1&&e.jsx(t.Item,{as:m,href:`${l}?p=${p+1}`,children:p+1}),p<h-3&&e.jsx(t.Ellipsis,{className:"d-none d-sm-block"}),p<h-2&&e.jsx(t.Item,{as:m,href:`${l}?p=${h-1}`,className:"d-none d-sm-block",children:h-1}),p<h&&e.jsx(t.Item,{as:m,href:`${l}?p=${h}`,children:h}),e.jsx(t.Next,{as:m,href:`${l}?p=${p+1}`,disabled:p===h}),e.jsx(t.Last,{as:m,href:`${l}?p=${h}`,disabled:p===h,className:"d-none d-sm-block"})]})})]})})}


version_name: PrivacyPolicyModal
version_updated_at: 2025-11-17T09:47:45.174Z
version_created_at: 2025-11-17T09:47:45.174Z
created_at: 2025-11-17T09:47:45.182Z
updated_at: 2025-11-17T09:47:45.182Z
version_jsx:
  import type { ComponentJsx } from '../../types'

  export default (function ProductsGrid({
    runtime,
    props: { className, style },
    deps: {
      rb: { Modal },
      next: { useRouter, usePathname, useSearchParams },
      react: { useState, useEffect },
    },
  }) {
    const policy = (
      <>
        <div>
          Настоящая Политика конфиденциальности описывает, как мы собираем, используем, храним и
          защищаем персональные данные пользователей, посещающих наш сайт или использующих наши
          сервисы. Мы придаем большое значение защите ваших персональных данных и стремимся обеспечить
          прозрачность в том, как с ними обращаются.
        </div>
        <div className="h5 mt-4">1. Сбор информации</div>
        <div className="fw-semibold">Мы можем собирать следующие данные:</div>
        <ul>
          <li>
            Имя, адрес электронной почты и другие контактные данные, если вы предоставляете их
            добровольно (например, при регистрации или заполнении формы обратной связи);
          </li>
          <li>
            Технические данные: IP-адрес, тип браузера, данные об устройстве и файлы cookie для
            улучшения работы сайта.
          </li>
        </ul>

        <div className="h5 mt-4">2. Использование информации</div>
        <div className="fw-semibold">Мы используем собранные данные для:</div>
        <ul>
          <li>Предоставления и улучшения наших услуг;</li>
          <li>Ответов на ваши запросы и обращений;</li>
          <li>Анализа использования сайта и улучшения его работы;</li>
          <li>Отправки уведомлений и новостей (только при вашем согласии).</li>
        </ul>

        <div className="h5 mt-4">3. Передача данных третьим лицам</div>
        <div>
          Мы <strong>не передаём</strong> ваши персональные данные третьим лицам, за исключением
          случаев, когда это требуется законом или необходимо для предоставления услуг (например,
          хостинг-провайдеры, почтовые сервисы).
        </div>

        <div className="h5 mt-4">4. Хранение данных</div>

        <div>
          Мы храним ваши персональные данные только столько, сколько необходимо для целей, указанных
          выше, или в соответствии с требованиями законодательства.
        </div>

        <div className="h5 mt-4">5. Защита данных</div>

        <div>
          Мы принимаем все разумные меры для защиты ваших данных от несанкционированного доступа,
          изменения, раскрытия или уничтожения.
        </div>

        <div className="h5 mt-4">6. Ваши права</div>
        <div className="fw-semibold">Вы имеете право:</div>
        <ul>
          <li>Запросить доступ к вашим данным;</li>
          <li>Исправить или удалить их;</li>
          <li>Отозвать согласие на обработку данных.</li>
        </ul>
        <div>
          Для реализации этих прав вы можете связаться с нами по адресу:
          <strong>[укажите контактный email]</strong>.
        </div>
        <div className="h5 mt-4">7. Изменения политики</div>
        <div>
          Мы можем время от времени обновлять настоящую Политику конфиденциальности. Новая версия
          будет опубликована на этой странице с обновлённой датой вступления в силу.
        </div>
      </>
    )
    const searchParams = useSearchParams()
    const router = useRouter()
    const pathname = usePathname()
    const [show, setShow] = useState(false)
    const handleClose = () => {
      setShow(false)
      const params = searchParams.toString()
      router.replace(`${pathname}${params ? `?${params}` : ''}`, { scroll: false })
    }
    useEffect(() => {
      if (!window?.location) {
        return
      }
      const onHashChange = () => setShow(window.location.hash === '#privacy')
      onHashChange()
      window.addEventListener('hashchange', onHashChange)
      return () => window.removeEventListener('hashchange', onHashChange)
    }, [])
    return (
      <Modal scrollable size="lg" show={show} onHide={handleClose}>
        <Modal.Header closeButton>
          <Modal.Title>Политика конфиденциальности</Modal.Title>
        </Modal.Header>
        <Modal.Body>{policy}</Modal.Body>
      </Modal>
    )
  } satisfies ComponentJsx<{
    className?: string
    style?: React.CSSProperties
  }>)

version_code:
  export default function({runtime:e,props:{className:i,style:s},deps:{rb:{Modal:l},next:{useRouter:d,usePathname:n,useSearchParams:c},react:{useState:r,useEffect:h}}}){let x=e.jsxs(e.Fragment,{children:[e.jsx("div",{children:"Настоящая Политика конфиденциальности описывает, как мы собираем, используем, храним и защищаем персональные данные пользователей, посещающих наш сайт или использующих наши сервисы. Мы придаем большое значение защите ваших персональных данных и стремимся обеспечить прозрачность в том, как с ними обращаются."}),e.jsx("div",{className:"h5 mt-4",children:"1. Сбор информации"}),e.jsx("div",{className:"fw-semibold",children:"Мы можем собирать следующие данные:"}),e.jsxs("ul",{children:[e.jsx("li",{children:"Имя, адрес электронной почты и другие контактные данные, если вы предоставляете их добровольно (например, при регистрации или заполнении формы обратной связи);"}),e.jsx("li",{children:"Технические данные: IP-адрес, тип браузера, данные об устройстве и файлы cookie для улучшения работы сайта."})]}),e.jsx("div",{className:"h5 mt-4",children:"2. Использование информации"}),e.jsx("div",{className:"fw-semibold",children:"Мы используем собранные данные для:"}),e.jsxs("ul",{children:[e.jsx("li",{children:"Предоставления и улучшения наших услуг;"}),e.jsx("li",{children:"Ответов на ваши запросы и обращений;"}),e.jsx("li",{children:"Анализа использования сайта и улучшения его работы;"}),e.jsx("li",{children:"Отправки уведомлений и новостей (только при вашем согласии)."})]}),e.jsx("div",{className:"h5 mt-4",children:"3. Передача данных третьим лицам"}),e.jsxs("div",{children:["Мы ",e.jsx("strong",{children:"не передаём"})," ваши персональные данные третьим лицам, за исключением случаев, когда это требуется законом или необходимо для предоставления услуг (например, хостинг-провайдеры, почтовые сервисы)."]}),e.jsx("div",{className:"h5 mt-4",children:"4. Хранение данных"}),e.jsx("div",{children:"Мы храним ваши персональные данные только столько, сколько необходимо для целей, указанных выше, или в соответствии с требованиями законодательства."}),e.jsx("div",{className:"h5 mt-4",children:"5. Защита данных"}),e.jsx("div",{children:"Мы принимаем все разумные меры для защиты ваших данных от несанкционированного доступа, изменения, раскрытия или уничтожения."}),e.jsx("div",{className:"h5 mt-4",children:"6. Ваши права"}),e.jsx("div",{className:"fw-semibold",children:"Вы имеете право:"}),e.jsxs("ul",{children:[e.jsx("li",{children:"Запросить доступ к вашим данным;"}),e.jsx("li",{children:"Исправить или удалить их;"}),e.jsx("li",{children:"Отозвать согласие на обработку данных."})]}),e.jsxs("div",{children:["Для реализации этих прав вы можете связаться с нами по адресу:",e.jsx("strong",{children:"[укажите контактный email]"}),"."]}),e.jsx("div",{className:"h5 mt-4",children:"7. Изменения политики"}),e.jsx("div",{children:"Мы можем время от времени обновлять настоящую Политику конфиденциальности. Новая версия будет опубликована на этой странице с обновлённой датой вступления в силу."})]}),a=c(),j=d(),t=n(),[o,m]=r(!1);return h(()=>{if(!window?.location)return;let e=()=>m("#privacy"===window.location.hash);return e(),window.addEventListener("hashchange",e),()=>window.removeEventListener("hashchange",e)},[]),e.jsxs(l,{scrollable:!0,size:"lg",show:o,onHide:()=>{m(!1);let e=a.toString();j.replace(`${t}${e?`?${e}`:""}`,{scroll:!1})},children:[e.jsx(l.Header,{closeButton:!0,children:e.jsx(l.Title,{children:"Политика конфиденциальности"})}),e.jsx(l.Body,{children:x})]})}


version_name: OurPartners
version_updated_at: 2025-11-17T09:52:59.337Z
version_created_at: 2025-11-17T09:47:45.017Z
created_at: 2025-11-17T09:52:59.349Z
updated_at: 2025-11-17T09:52:59.349Z
version_jsx:
  import type { ComponentJsx } from '../../types'

  export default (function OurPartners({
    runtime,
    props: { className, style },
    components: { ParallelogramGrid },
    deps: {
      rb: { Container, Row, Col },
    },
  }) {
    return (
      <Container className={`overflow-hidden ${className}`} style={style}>
        <Row>
          <Col
            lg={3}
            className="d-flex flex-lg-column mb-lg-0 mb-3 text-uppercase"
            style={{ maxWidth: '500px' }}
          >
            <h1 className="lh-1">наши&nbsp;</h1>
            <h1 className="mb-0 ms-lg-auto lh-1 text-primary">партнеры</h1>
          </Col>
          <Col lg={1}></Col>
          <Col lg={5} className="mt-auto">
            За каждым нашим успехом стоит команда надёжных друзей и коллег — наши партнёры
          </Col>
          <Col lg={12} className="d-flex flex-column py-5 row-gap-3 text-white">
            {/* Parallelograms lg */}
            <Row className="justify-content-end d-lg-flex d-none" style={{ minHeight: '180px' }}>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginRight: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#f1ca1a"
                  preserveAspectRatio="none"
                  mask={'1'}
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Бизнес-клиенты</h5>
                  <span>
                    Предприятия и магазины сотрудничают с поставщиком, который выполняет
                    договорённости по срокам и качеству
                  </span>
                </div>
              </Col>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginLeft: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#1d1d1d"
                  preserveAspectRatio="none"
                  mask={'1'}
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Перевозчики</h5>
                  <span>
                    Сотрудничаем с надёжными транспортными компаниями, чтобы заказы доставлялись точно
                    в срок и без повреждений
                  </span>
                </div>
              </Col>
            </Row>

            <Row className="justify-content-start d-lg-flex d-none" style={{ minHeight: '180px' }}>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginRight: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Дистрибьюторы</h5>
                  <span>
                    Получаем товары напрямую от официальных партнёров брендов в Азии — надёжно и без
                    посредников
                  </span>
                </div>
              </Col>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginLeft: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#f1ca1a"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Производители</h5>
                  <span>
                    Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем
                    выгодные условия
                  </span>
                </div>
              </Col>
            </Row>

            {/* Parallelograms mobile */}
            <Row className="d-lg-none d-grid flex-column row-gap-2">
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={-10}
                  fill="#f1ca1a"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Бизнес-клиенты</h5>
                  <span className="fw-light">
                    Предприятия и магазины сотрудничают с поставщиком, который выполняет
                    договорённости по срокам и качеству
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={10}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Перевозчики</h5>
                  <span className="fw-light">
                    Сотрудничаем с надёжными транспортными компаниями, чтобы заказы доставлялись точно
                    в срок и без повреждений
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={-10}
                  fill="#f1ca1a"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Производители</h5>
                  <span className="fw-light">
                    Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем
                    выгодные условия
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={10}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Дистрибьюторы</h5>
                  <span className="fw-light">
                    Получаем товары напрямую от официальных партнёров брендов в Азии — надёжно и без
                    посредников
                  </span>
                </div>
              </Col>
            </Row>
          </Col>
        </Row>
      </Container>
    )
  } satisfies ComponentJsx<{ className?: string; style?: object }>)

version_code:
  export default function({runtime:s,props:{className:e,style:l},components:{ParallelogramGrid:i},deps:{rb:{Container:a,Row:n,Col:t}}}){return s.jsx(a,{className:`overflow-hidden ${e}`,style:l,children:s.jsxs(n,{children:[s.jsxs(t,{lg:3,className:"d-flex flex-lg-column mb-lg-0 mb-3 text-uppercase",style:{maxWidth:"500px"},children:[s.jsx("h1",{className:"lh-1",children:"наши "}),s.jsx("h1",{className:"mb-0 ms-lg-auto lh-1 text-primary",children:"партнеры"})]}),s.jsx(t,{lg:1}),s.jsx(t,{lg:5,className:"mt-auto",children:"За каждым нашим успехом стоит команда надёжных друзей и коллег — наши партнёры"}),s.jsxs(t,{lg:12,className:"d-flex flex-column py-5 row-gap-3 text-white",children:[s.jsxs(n,{className:"justify-content-end d-lg-flex d-none",style:{minHeight:"180px"},children:[s.jsxs(t,{lg:6,className:"position-relative",style:{marginRight:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#f1ca1a",preserveAspectRatio:"none",mask:"1",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Бизнес-клиенты"}),s.jsx("span",{children:"Предприятия и магазины сотрудничают с поставщиком, который выполняет договорённости по срокам и качеству"})]})]}),s.jsxs(t,{lg:6,className:"position-relative",style:{marginLeft:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#1d1d1d",preserveAspectRatio:"none",mask:"1",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Перевозчики"}),s.jsx("span",{children:"Сотрудничаем с надёжными транспортными компаниями, чтобы заказы доставлялись точно в срок и без повреждений"})]})]})]}),s.jsxs(n,{className:"justify-content-start d-lg-flex d-none",style:{minHeight:"180px"},children:[s.jsxs(t,{lg:6,className:"position-relative",style:{marginRight:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Дистрибьюторы"}),s.jsx("span",{children:"Получаем товары напрямую от официальных партнёров брендов в Азии — надёжно и без посредников"})]})]}),s.jsxs(t,{lg:6,className:"position-relative",style:{marginLeft:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#f1ca1a",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Производители"}),s.jsx("span",{children:"Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем выгодные условия"})]})]})]}),s.jsxs(n,{className:"d-lg-none d-grid flex-column row-gap-2",children:[s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:-10,fill:"#f1ca1a",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Бизнес-клиенты"}),s.jsx("span",{className:"fw-light",children:"Предприятия и магазины сотрудничают с поставщиком, который выполняет договорённости по срокам и качеству"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:10,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Перевозчики"}),s.jsx("span",{className:"fw-light",children:"Сотрудничаем с надёжными транспортными компаниями, чтобы заказы доставлялись точно в срок и без повреждений"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:-10,fill:"#f1ca1a",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Производители"}),s.jsx("span",{className:"fw-light",children:"Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем выгодные условия"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:10,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Дистрибьюторы"}),s.jsx("span",{className:"fw-light",children:"Получаем товары напрямую от официальных партнёров брендов в Азии — надёжно и без посредников"})]})]})]})]})]})})}


version_name: OurPartners
version_updated_at: 2025-11-17T09:53:32.485Z
version_created_at: 2025-11-17T09:47:45.017Z
created_at: 2025-11-17T09:53:32.496Z
updated_at: 2025-11-17T09:53:32.496Z
version_jsx:
  import type { ComponentJsx } from '../../types'

  export default (function OurPartners({
    runtime,
    props: { className, style },
    components: { ParallelogramGrid },
    deps: {
      rb: { Container, Row, Col },
    },
  }) {
    return (
      <Container className={`overflow-hidden ${className}`} style={style}>
        <Row>
          <Col
            lg={3}
            className="d-flex flex-lg-column mb-lg-0 mb-3 text-uppercase"
            style={{ maxWidth: '500px' }}
          >
            <h1 className="lh-1">наши&nbsp;</h1>
            <h1 className="mb-0 ms-lg-auto lh-1 text-primary">партнеры</h1>
          </Col>
          <Col lg={1}></Col>
          <Col lg={5} className="mt-auto">
            За каждым нашим успехом стоит команда надёжных друзей и коллег — наши партнёры
          </Col>
          <Col lg={12} className="d-flex flex-column py-5 row-gap-3 text-white">
            {/* Parallelograms lg */}
            <Row className="justify-content-end d-lg-flex d-none" style={{ minHeight: '180px' }}>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginRight: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#bf1907"
                  preserveAspectRatio="none"
                  mask={'1'}
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Бизнес-клиенты</h5>
                  <span>
                    Предприятия и магазины сотрудничают с поставщиком, который выполняет
                    договорённости по срокам и качеству
                  </span>
                </div>
              </Col>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginLeft: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#1d1d1d"
                  preserveAspectRatio="none"
                  mask={'1'}
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Перевозчики</h5>
                  <span>
                    Сотрудничаем с надёжными транспортными компаниями, чтобы заказы доставлялись точно
                    в срок и без повреждений
                  </span>
                </div>
              </Col>
            </Row>

            <Row className="justify-content-start d-lg-flex d-none" style={{ minHeight: '180px' }}>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginRight: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Дистрибьюторы</h5>
                  <span>
                    Получаем товары напрямую от официальных партнёров брендов в Азии — надёжно и без
                    посредников
                  </span>
                </div>
              </Col>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginLeft: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#bf1907"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Производители</h5>
                  <span>
                    Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем
                    выгодные условия
                  </span>
                </div>
              </Col>
            </Row>

            {/* Parallelograms mobile */}
            <Row className="d-lg-none d-grid flex-column row-gap-2">
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={-10}
                  fill="#bf1907"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Бизнес-клиенты</h5>
                  <span className="fw-light">
                    Предприятия и магазины сотрудничают с поставщиком, который выполняет
                    договорённости по срокам и качеству
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={10}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Перевозчики</h5>
                  <span className="fw-light">
                    Сотрудничаем с надёжными транспортными компаниями, чтобы заказы доставлялись точно
                    в срок и без повреждений
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={-10}
                  fill="#bf1907"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Производители</h5>
                  <span className="fw-light">
                    Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем
                    выгодные условия
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={10}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Дистрибьюторы</h5>
                  <span className="fw-light">
                    Получаем товары напрямую от официальных партнёров брендов в Азии — надёжно и без
                    посредников
                  </span>
                </div>
              </Col>
            </Row>
          </Col>
        </Row>
      </Container>
    )
  } satisfies ComponentJsx<{ className?: string; style?: object }>)

version_code:
  export default function({runtime:s,props:{className:e,style:l},components:{ParallelogramGrid:i},deps:{rb:{Container:a,Row:n,Col:t}}}){return s.jsx(a,{className:`overflow-hidden ${e}`,style:l,children:s.jsxs(n,{children:[s.jsxs(t,{lg:3,className:"d-flex flex-lg-column mb-lg-0 mb-3 text-uppercase",style:{maxWidth:"500px"},children:[s.jsx("h1",{className:"lh-1",children:"наши "}),s.jsx("h1",{className:"mb-0 ms-lg-auto lh-1 text-primary",children:"партнеры"})]}),s.jsx(t,{lg:1}),s.jsx(t,{lg:5,className:"mt-auto",children:"За каждым нашим успехом стоит команда надёжных друзей и коллег — наши партнёры"}),s.jsxs(t,{lg:12,className:"d-flex flex-column py-5 row-gap-3 text-white",children:[s.jsxs(n,{className:"justify-content-end d-lg-flex d-none",style:{minHeight:"180px"},children:[s.jsxs(t,{lg:6,className:"position-relative",style:{marginRight:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#bf1907",preserveAspectRatio:"none",mask:"1",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Бизнес-клиенты"}),s.jsx("span",{children:"Предприятия и магазины сотрудничают с поставщиком, который выполняет договорённости по срокам и качеству"})]})]}),s.jsxs(t,{lg:6,className:"position-relative",style:{marginLeft:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#1d1d1d",preserveAspectRatio:"none",mask:"1",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Перевозчики"}),s.jsx("span",{children:"Сотрудничаем с надёжными транспортными компаниями, чтобы заказы доставлялись точно в срок и без повреждений"})]})]})]}),s.jsxs(n,{className:"justify-content-start d-lg-flex d-none",style:{minHeight:"180px"},children:[s.jsxs(t,{lg:6,className:"position-relative",style:{marginRight:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Дистрибьюторы"}),s.jsx("span",{children:"Получаем товары напрямую от официальных партнёров брендов в Азии — надёжно и без посредников"})]})]}),s.jsxs(t,{lg:6,className:"position-relative",style:{marginLeft:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#bf1907",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Производители"}),s.jsx("span",{children:"Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем выгодные условия"})]})]})]}),s.jsxs(n,{className:"d-lg-none d-grid flex-column row-gap-2",children:[s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:-10,fill:"#bf1907",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Бизнес-клиенты"}),s.jsx("span",{className:"fw-light",children:"Предприятия и магазины сотрудничают с поставщиком, который выполняет договорённости по срокам и качеству"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:10,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Перевозчики"}),s.jsx("span",{className:"fw-light",children:"Сотрудничаем с надёжными транспортными компаниями, чтобы заказы доставлялись точно в срок и без повреждений"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:-10,fill:"#bf1907",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Производители"}),s.jsx("span",{className:"fw-light",children:"Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем выгодные условия"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:10,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Дистрибьюторы"}),s.jsx("span",{className:"fw-light",children:"Получаем товары напрямую от официальных партнёров брендов в Азии — надёжно и без посредников"})]})]})]})]})]})})}


version_name: CompanyBenefits
version_updated_at: 2025-11-17T10:13:16.949Z
version_created_at: 2025-11-17T09:47:44.829Z
created_at: 2025-11-17T10:13:16.960Z
updated_at: 2025-11-17T10:13:16.960Z
version_jsx:
  import type { ComponentJsx } from '../../types'

  export default (function CompanyBenefits({
    runtime,
    props: { className, style },
    deps: {
      rb: { Container, Row, Col },
    },
  }) {
    const classes = 'position-relative' + (className ? ` ${className}` : '')
    return (
      <div className={classes} style={style}>
        <div
          style={{
            position: 'absolute',
            top: 0,
            right: 0,
            bottom: 0,
            left: 0,
          }}
        >
          <div className="h-100 d-flex">
            <div
              className="d-none d-lg-flex w-100 overflow-hidden"
              style={{
                position: 'absolute',
                top: 0,
                right: 0,
                bottom: 0,
                left: 0,
              }}
            >
              <div
                className="w-50"
                style={{
                  backgroundImage: 'url(/api/media/file/wheel.webp)',
                  backgroundSize: 'cover',
                  backgroundPosition: 'center',
                }}
              >
                <div
                  className="h-100"
                  style={{
                    backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.5)',
                  }}
                ></div>
              </div>
              <div
                className="w-50"
                style={{
                  backgroundImage: 'url(/api/media/file/wheel.webp)',
                  backgroundSize: 'cover',
                  backgroundPosition: 'center',
                }}
              >
                <div
                  className="h-100"
                  style={{
                    backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.5)',
                  }}
                ></div>
              </div>
            </div>
            <div className="container d-none d-lg-block h-100">
              <div className="row h-100">
                <div className="col col-3"></div>
                <div className="col col-9 bg-secondary" style={{ transform: 'skewX(-15deg)' }}></div>
              </div>
            </div>
            <div
              className="w-100 d-lg-none"
              style={{
                backgroundImage: 'url(/api/media/file/wheel.webp)',
                backgroundSize: 'cover',
                backgroundPosition: 'center',
                clipPath: 'polygon(0 0, 66% 0, 33% 100%, 0% 100%)',
              }}
            >
              <div
                className="h-100"
                style={{
                  backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.5)',
                }}
              ></div>
            </div>
          </div>
        </div>
        <Container className="position-relative z-1">
          <Row
            className="justify-content-between row-gap-5"
            style={{ padding: '60px 0 clamp(60px, 10vw, 100px) 0' }}
          >
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle bg-primary"
                style={{
                  padding: '12px',
                }}
              >
                <iconify-icon icon="line-md:calendar" className="fs-1 text-light"></iconify-icon>
              </div>
              <h4 className="fw-semibold">20 лет опыта работы с Китаем</h4>
              <span>
                Знаем специфику китайского рынка: подбираем поставщиков, проверяем качество и снижаем
                риски.
              </span>
            </Col>
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle border-primary bg-white"
                style={{
                  border: '3px dashed',
                  padding: '12px',
                }}
              >
                <iconify-icon icon="lucide:shield" className="fs-1 text-primary"></iconify-icon>
              </div>
              <h4 className="fw-semibold">Официально с гарантией</h4>
              <span>
                Работаем по договору: расчётный счёт, юридические гарантии, чёткие этапы — от запроса
                до доставки.
              </span>
            </Col>
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle border-primary bg-white"
                style={{
                  border: '3px dashed',
                  padding: '12px',
                }}
              >
                <iconify-icon icon="lucide:package-2" className="fs-1 text-primary"></iconify-icon>
              </div>
              <h4 className="fw-semibold">300+ успешных поставок по СНГ</h4>
              <span>
                Сотни поставок по СНГ — от первых заказов до постоянного импорта для малого и крупного
                бизнеса.
              </span>
            </Col>
          </Row>
        </Container>
      </div>
    )
  } satisfies ComponentJsx<{ className?: string; style?: object }>)

version_code:
  export default function({runtime:e,props:{className:s,style:l},deps:{rb:{Container:a,Row:i,Col:r}}}){let c="position-relative"+(s?` ${s}`:"");return e.jsxs("div",{className:c,style:l,children:[e.jsx("div",{style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:e.jsxs("div",{className:"h-100 d-flex",children:[e.jsxs("div",{className:"d-none d-lg-flex w-100 overflow-hidden",style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:[e.jsx("div",{className:"w-50",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.5)"}})}),e.jsx("div",{className:"w-50",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.5)"}})})]}),e.jsx("div",{className:"container d-none d-lg-block h-100",children:e.jsxs("div",{className:"row h-100",children:[e.jsx("div",{className:"col col-3"}),e.jsx("div",{className:"col col-9 bg-secondary",style:{transform:"skewX(-15deg)"}})]})}),e.jsx("div",{className:"w-100 d-lg-none",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center",clipPath:"polygon(0 0, 66% 0, 33% 100%, 0% 100%)"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.5)"}})})]})}),e.jsx(a,{className:"position-relative z-1",children:e.jsxs(i,{className:"justify-content-between row-gap-5",style:{padding:"60px 0 clamp(60px, 10vw, 100px) 0"},children:[e.jsxs(r,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle bg-primary",style:{padding:"12px"},children:e.jsx("iconify-icon",{icon:"line-md:calendar",className:"fs-1 text-light"})}),e.jsx("h4",{className:"fw-semibold",children:"20 лет опыта работы с Китаем"}),e.jsx("span",{children:"Знаем специфику китайского рынка: подбираем поставщиков, проверяем качество и снижаем риски."})]}),e.jsxs(r,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle border-primary bg-white",style:{border:"3px dashed",padding:"12px"},children:e.jsx("iconify-icon",{icon:"lucide:shield",className:"fs-1 text-primary"})}),e.jsx("h4",{className:"fw-semibold",children:"Официально с гарантией"}),e.jsx("span",{children:"Работаем по договору: расчётный счёт, юридические гарантии, чёткие этапы — от запроса до доставки."})]}),e.jsxs(r,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle border-primary bg-white",style:{border:"3px dashed",padding:"12px"},children:e.jsx("iconify-icon",{icon:"lucide:package-2",className:"fs-1 text-primary"})}),e.jsx("h4",{className:"fw-semibold",children:"300+ успешных поставок по СНГ"}),e.jsx("span",{children:"Сотни поставок по СНГ — от первых заказов до постоянного импорта для малого и крупного бизнеса."})]})]})})]})}


version_name: CompanyBenefits
version_updated_at: 2025-11-17T10:13:43.061Z
version_created_at: 2025-11-17T09:47:44.829Z
created_at: 2025-11-17T10:13:43.071Z
updated_at: 2025-11-17T10:13:43.071Z
version_jsx:
  import type { ComponentJsx } from '../../types'

  export default (function CompanyBenefits({
    runtime,
    props: { className, style },
    deps: {
      rb: { Container, Row, Col },
    },
  }) {
    const classes = 'position-relative' + (className ? ` ${className}` : '')
    return (
      <div className={classes} style={style}>
        <div
          style={{
            position: 'absolute',
            top: 0,
            right: 0,
            bottom: 0,
            left: 0,
          }}
        >
          <div className="h-100 d-flex">
            <div
              className="d-none d-lg-flex w-100 overflow-hidden"
              style={{
                position: 'absolute',
                top: 0,
                right: 0,
                bottom: 0,
                left: 0,
              }}
            >
              <div
                className="w-50"
                style={{
                  backgroundImage: 'url(/api/media/file/wheel.webp)',
                  backgroundSize: 'cover',
                  backgroundPosition: 'center',
                }}
              >
                <div
                  className="h-100"
                  style={{
                    backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.5)',
                  }}
                ></div>
              </div>
              <div
                className="w-50"
                style={{
                  backgroundImage: 'url(/api/media/file/wheel.webp)',
                  backgroundSize: 'cover',
                  backgroundPosition: 'center',
                }}
              >
                <div
                  className="h-100"
                  style={{
                    backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.5)',
                  }}
                ></div>
              </div>
            </div>
            <div className="container d-none d-lg-block h-100">
              <div className="row h-100">
                <div className="col col-3"></div>
                <div className="col col-9 bg-secondary" style={{ transform: 'skewX(-15deg)' }}></div>
              </div>
            </div>
            <div
              className="w-100 d-lg-none"
              style={{
                backgroundImage: 'url(/api/media/file/wheel.webp)',
                backgroundSize: 'cover',
                backgroundPosition: 'center',
                clipPath: 'polygon(0 0, 66% 0, 33% 100%, 0% 100%)',
              }}
            >
              <div
                className="h-100"
                style={{
                  backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.5)',
                }}
              ></div>
            </div>
          </div>
        </div>
        <Container className="position-relative z-1">
          <Row
            className="justify-content-between row-gap-5"
            style={{ padding: '60px 0 clamp(60px, 10vw, 100px) 0' }}
          >
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle"
                style={{
                  padding: '12px',
                }}
              >
                <iconify-icon icon="line-md:calendar" className="fs-1 text-primary"></iconify-icon>
              </div>
              <h4 className="fw-semibold">20 лет опыта работы с Китаем</h4>
              <span>
                Знаем специфику китайского рынка: подбираем поставщиков, проверяем качество и снижаем
                риски.
              </span>
            </Col>
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle border-primary bg-white"
                style={{
                  border: '3px dashed',
                  padding: '12px',
                }}
              >
                <iconify-icon icon="lucide:shield" className="fs-1 text-primary"></iconify-icon>
              </div>
              <h4 className="fw-semibold">Официально с гарантией</h4>
              <span>
                Работаем по договору: расчётный счёт, юридические гарантии, чёткие этапы — от запроса
                до доставки.
              </span>
            </Col>
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle border-primary bg-white"
                style={{
                  border: '3px dashed',
                  padding: '12px',
                }}
              >
                <iconify-icon icon="lucide:package-2" className="fs-1 text-primary"></iconify-icon>
              </div>
              <h4 className="fw-semibold">300+ успешных поставок по СНГ</h4>
              <span>
                Сотни поставок по СНГ — от первых заказов до постоянного импорта для малого и крупного
                бизнеса.
              </span>
            </Col>
          </Row>
        </Container>
      </div>
    )
  } satisfies ComponentJsx<{ className?: string; style?: object }>)

version_code:
  export default function({runtime:e,props:{className:s,style:l},deps:{rb:{Container:a,Row:i,Col:r}}}){let c="position-relative"+(s?` ${s}`:"");return e.jsxs("div",{className:c,style:l,children:[e.jsx("div",{style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:e.jsxs("div",{className:"h-100 d-flex",children:[e.jsxs("div",{className:"d-none d-lg-flex w-100 overflow-hidden",style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:[e.jsx("div",{className:"w-50",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.5)"}})}),e.jsx("div",{className:"w-50",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.5)"}})})]}),e.jsx("div",{className:"container d-none d-lg-block h-100",children:e.jsxs("div",{className:"row h-100",children:[e.jsx("div",{className:"col col-3"}),e.jsx("div",{className:"col col-9 bg-secondary",style:{transform:"skewX(-15deg)"}})]})}),e.jsx("div",{className:"w-100 d-lg-none",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center",clipPath:"polygon(0 0, 66% 0, 33% 100%, 0% 100%)"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.5)"}})})]})}),e.jsx(a,{className:"position-relative z-1",children:e.jsxs(i,{className:"justify-content-between row-gap-5",style:{padding:"60px 0 clamp(60px, 10vw, 100px) 0"},children:[e.jsxs(r,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle",style:{padding:"12px"},children:e.jsx("iconify-icon",{icon:"line-md:calendar",className:"fs-1 text-primary"})}),e.jsx("h4",{className:"fw-semibold",children:"20 лет опыта работы с Китаем"}),e.jsx("span",{children:"Знаем специфику китайского рынка: подбираем поставщиков, проверяем качество и снижаем риски."})]}),e.jsxs(r,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle border-primary bg-white",style:{border:"3px dashed",padding:"12px"},children:e.jsx("iconify-icon",{icon:"lucide:shield",className:"fs-1 text-primary"})}),e.jsx("h4",{className:"fw-semibold",children:"Официально с гарантией"}),e.jsx("span",{children:"Работаем по договору: расчётный счёт, юридические гарантии, чёткие этапы — от запроса до доставки."})]}),e.jsxs(r,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle border-primary bg-white",style:{border:"3px dashed",padding:"12px"},children:e.jsx("iconify-icon",{icon:"lucide:package-2",className:"fs-1 text-primary"})}),e.jsx("h4",{className:"fw-semibold",children:"300+ успешных поставок по СНГ"}),e.jsx("span",{children:"Сотни поставок по СНГ — от первых заказов до постоянного импорта для малого и крупного бизнеса."})]})]})})]})}


version_name: CompanyBenefits
version_updated_at: 2025-11-17T10:14:45.951Z
version_created_at: 2025-11-17T09:47:44.829Z
created_at: 2025-11-17T10:14:45.963Z
updated_at: 2025-11-17T10:14:45.963Z
version_jsx:
  import type { ComponentJsx } from '../../types'

  export default (function CompanyBenefits({
    runtime,
    props: { className, style },
    deps: {
      rb: { Container, Row, Col },
    },
  }) {
    const classes = 'position-relative' + (className ? ` ${className}` : '')
    return (
      <div className={classes} style={style}>
        <div
          style={{
            position: 'absolute',
            top: 0,
            right: 0,
            bottom: 0,
            left: 0,
          }}
        >
          <div className="h-100 d-flex">
            <div
              className="d-none d-lg-flex w-100 overflow-hidden"
              style={{
                position: 'absolute',
                top: 0,
                right: 0,
                bottom: 0,
                left: 0,
              }}
            >
              <div
                className="w-50"
                style={{
                  backgroundImage: 'url(/api/media/file/wheel.webp)',
                  backgroundSize: 'cover',
                  backgroundPosition: 'center',
                }}
              >
                <div
                  className="h-100"
                  style={{
                    backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.5)',
                  }}
                ></div>
              </div>
              <div
                className="w-50"
                style={{
                  backgroundImage: 'url(/api/media/file/wheel.webp)',
                  backgroundSize: 'cover',
                  backgroundPosition: 'center',
                }}
              >
                <div
                  className="h-100"
                  style={{
                    backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.5)',
                  }}
                ></div>
              </div>
            </div>
            <div className="container d-none d-lg-block h-100">
              <div className="row h-100">
                <div className="col col-3"></div>
                <div className="col col-9 bg-secondary" style={{ transform: 'skewX(-15deg)' }}></div>
              </div>
            </div>
            <div
              className="w-100 d-lg-none"
              style={{
                backgroundImage: 'url(/api/media/file/wheel.webp)',
                backgroundSize: 'cover',
                backgroundPosition: 'center',
                clipPath: 'polygon(0 0, 66% 0, 33% 100%, 0% 100%)',
              }}
            >
              <div
                className="h-100"
                style={{
                  backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.5)',
                }}
              ></div>
            </div>
          </div>
        </div>
        <Container className="position-relative z-1">
          <Row
            className="justify-content-between row-gap-5"
            style={{ padding: '60px 0 clamp(60px, 10vw, 100px) 0' }}
          >
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle"
                style={{
                  padding: '12px',
                }}
              >
                <iconify-icon icon="line-md:calendar" className="text-primary" style={{fontSize: '72px'}}></iconify-icon>
              </div>
              <h4 className="fw-semibold">20 лет опыта работы с Китаем</h4>
              <span>
                Знаем специфику китайского рынка: подбираем поставщиков, проверяем качество и снижаем
                риски.
              </span>
            </Col>
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle border-primary bg-white"
                style={{
                  border: '3px dashed',
                  padding: '12px',
                }}
              >
                <iconify-icon icon="lucide:shield" className="fs-1 text-primary"></iconify-icon>
              </div>
              <h4 className="fw-semibold">Официально с гарантией</h4>
              <span>
                Работаем по договору: расчётный счёт, юридические гарантии, чёткие этапы — от запроса
                до доставки.
              </span>
            </Col>
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle border-primary bg-white"
                style={{
                  border: '3px dashed',
                  padding: '12px',
                }}
              >
                <iconify-icon icon="lucide:package-2" className="fs-1 text-primary"></iconify-icon>
              </div>
              <h4 className="fw-semibold">300+ успешных поставок по СНГ</h4>
              <span>
                Сотни поставок по СНГ — от первых заказов до постоянного импорта для малого и крупного
                бизнеса.
              </span>
            </Col>
          </Row>
        </Container>
      </div>
    )
  } satisfies ComponentJsx<{ className?: string; style?: object }>)

version_code:
  export default function({runtime:e,props:{className:s,style:l},deps:{rb:{Container:a,Row:i,Col:r}}}){let c="position-relative"+(s?` ${s}`:"");return e.jsxs("div",{className:c,style:l,children:[e.jsx("div",{style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:e.jsxs("div",{className:"h-100 d-flex",children:[e.jsxs("div",{className:"d-none d-lg-flex w-100 overflow-hidden",style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:[e.jsx("div",{className:"w-50",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.5)"}})}),e.jsx("div",{className:"w-50",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.5)"}})})]}),e.jsx("div",{className:"container d-none d-lg-block h-100",children:e.jsxs("div",{className:"row h-100",children:[e.jsx("div",{className:"col col-3"}),e.jsx("div",{className:"col col-9 bg-secondary",style:{transform:"skewX(-15deg)"}})]})}),e.jsx("div",{className:"w-100 d-lg-none",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center",clipPath:"polygon(0 0, 66% 0, 33% 100%, 0% 100%)"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.5)"}})})]})}),e.jsx(a,{className:"position-relative z-1",children:e.jsxs(i,{className:"justify-content-between row-gap-5",style:{padding:"60px 0 clamp(60px, 10vw, 100px) 0"},children:[e.jsxs(r,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle",style:{padding:"12px"},children:e.jsx("iconify-icon",{icon:"line-md:calendar",className:"text-primary",style:{fontSize:"72px"}})}),e.jsx("h4",{className:"fw-semibold",children:"20 лет опыта работы с Китаем"}),e.jsx("span",{children:"Знаем специфику китайского рынка: подбираем поставщиков, проверяем качество и снижаем риски."})]}),e.jsxs(r,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle border-primary bg-white",style:{border:"3px dashed",padding:"12px"},children:e.jsx("iconify-icon",{icon:"lucide:shield",className:"fs-1 text-primary"})}),e.jsx("h4",{className:"fw-semibold",children:"Официально с гарантией"}),e.jsx("span",{children:"Работаем по договору: расчётный счёт, юридические гарантии, чёткие этапы — от запроса до доставки."})]}),e.jsxs(r,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle border-primary bg-white",style:{border:"3px dashed",padding:"12px"},children:e.jsx("iconify-icon",{icon:"lucide:package-2",className:"fs-1 text-primary"})}),e.jsx("h4",{className:"fw-semibold",children:"300+ успешных поставок по СНГ"}),e.jsx("span",{children:"Сотни поставок по СНГ — от первых заказов до постоянного импорта для малого и крупного бизнеса."})]})]})})]})}


version_name: CompanyBenefits
version_updated_at: 2025-11-17T10:15:19.697Z
version_created_at: 2025-11-17T09:47:44.829Z
created_at: 2025-11-17T10:15:19.708Z
updated_at: 2025-11-17T10:15:19.708Z
version_jsx:
  import type { ComponentJsx } from '../../types'

  export default (function CompanyBenefits({
    runtime,
    props: { className, style },
    deps: {
      rb: { Container, Row, Col },
    },
  }) {
    const classes = 'position-relative' + (className ? ` ${className}` : '')
    return (
      <div className={classes} style={style}>
        <div
          style={{
            position: 'absolute',
            top: 0,
            right: 0,
            bottom: 0,
            left: 0,
          }}
        >
          <div className="h-100 d-flex">
            <div
              className="d-none d-lg-flex w-100 overflow-hidden"
              style={{
                position: 'absolute',
                top: 0,
                right: 0,
                bottom: 0,
                left: 0,
              }}
            >
              <div
                className="w-50"
                style={{
                  backgroundImage: 'url(/api/media/file/wheel.webp)',
                  backgroundSize: 'cover',
                  backgroundPosition: 'center',
                }}
              >
                <div
                  className="h-100"
                  style={{
                    backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.5)',
                  }}
                ></div>
              </div>
              <div
                className="w-50"
                style={{
                  backgroundImage: 'url(/api/media/file/wheel.webp)',
                  backgroundSize: 'cover',
                  backgroundPosition: 'center',
                }}
              >
                <div
                  className="h-100"
                  style={{
                    backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.5)',
                  }}
                ></div>
              </div>
            </div>
            <div className="container d-none d-lg-block h-100">
              <div className="row h-100">
                <div className="col col-3"></div>
                <div className="col col-9 bg-secondary" style={{ transform: 'skewX(-15deg)' }}></div>
              </div>
            </div>
            <div
              className="w-100 d-lg-none"
              style={{
                backgroundImage: 'url(/api/media/file/wheel.webp)',
                backgroundSize: 'cover',
                backgroundPosition: 'center',
                clipPath: 'polygon(0 0, 66% 0, 33% 100%, 0% 100%)',
              }}
            >
              <div
                className="h-100"
                style={{
                  backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.5)',
                }}
              ></div>
            </div>
          </div>
        </div>
        <Container className="position-relative z-1">
          <Row
            className="justify-content-between row-gap-5"
            style={{ padding: '60px 0 clamp(60px, 10vw, 100px) 0' }}
          >
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle"
                style={{
                  
                }}
              >
                <iconify-icon icon="line-md:calendar" className="text-primary" style={{fontSize: '72px'}}></iconify-icon>
              </div>
              <h4 className="fw-semibold">20 лет опыта работы с Китаем</h4>
              <span>
                Знаем специфику китайского рынка: подбираем поставщиков, проверяем качество и снижаем
                риски.
              </span>
            </Col>
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle border-primary bg-white"
                style={{
                  border: '3px dashed',
                  padding: '12px',
                }}
              >
                <iconify-icon icon="lucide:shield" className="fs-1 text-primary"></iconify-icon>
              </div>
              <h4 className="fw-semibold">Официально с гарантией</h4>
              <span>
                Работаем по договору: расчётный счёт, юридические гарантии, чёткие этапы — от запроса
                до доставки.
              </span>
            </Col>
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle border-primary bg-white"
                style={{
                  border: '3px dashed',
                  padding: '12px',
                }}
              >
                <iconify-icon icon="lucide:package-2" className="fs-1 text-primary"></iconify-icon>
              </div>
              <h4 className="fw-semibold">300+ успешных поставок по СНГ</h4>
              <span>
                Сотни поставок по СНГ — от первых заказов до постоянного импорта для малого и крупного
                бизнеса.
              </span>
            </Col>
          </Row>
        </Container>
      </div>
    )
  } satisfies ComponentJsx<{ className?: string; style?: object }>)

version_code:
  export default function({runtime:e,props:{className:s,style:l},deps:{rb:{Container:a,Row:i,Col:r}}}){let c="position-relative"+(s?` ${s}`:"");return e.jsxs("div",{className:c,style:l,children:[e.jsx("div",{style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:e.jsxs("div",{className:"h-100 d-flex",children:[e.jsxs("div",{className:"d-none d-lg-flex w-100 overflow-hidden",style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:[e.jsx("div",{className:"w-50",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.5)"}})}),e.jsx("div",{className:"w-50",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.5)"}})})]}),e.jsx("div",{className:"container d-none d-lg-block h-100",children:e.jsxs("div",{className:"row h-100",children:[e.jsx("div",{className:"col col-3"}),e.jsx("div",{className:"col col-9 bg-secondary",style:{transform:"skewX(-15deg)"}})]})}),e.jsx("div",{className:"w-100 d-lg-none",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center",clipPath:"polygon(0 0, 66% 0, 33% 100%, 0% 100%)"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.5)"}})})]})}),e.jsx(a,{className:"position-relative z-1",children:e.jsxs(i,{className:"justify-content-between row-gap-5",style:{padding:"60px 0 clamp(60px, 10vw, 100px) 0"},children:[e.jsxs(r,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle",style:{},children:e.jsx("iconify-icon",{icon:"line-md:calendar",className:"text-primary",style:{fontSize:"72px"}})}),e.jsx("h4",{className:"fw-semibold",children:"20 лет опыта работы с Китаем"}),e.jsx("span",{children:"Знаем специфику китайского рынка: подбираем поставщиков, проверяем качество и снижаем риски."})]}),e.jsxs(r,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle border-primary bg-white",style:{border:"3px dashed",padding:"12px"},children:e.jsx("iconify-icon",{icon:"lucide:shield",className:"fs-1 text-primary"})}),e.jsx("h4",{className:"fw-semibold",children:"Официально с гарантией"}),e.jsx("span",{children:"Работаем по договору: расчётный счёт, юридические гарантии, чёткие этапы — от запроса до доставки."})]}),e.jsxs(r,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle border-primary bg-white",style:{border:"3px dashed",padding:"12px"},children:e.jsx("iconify-icon",{icon:"lucide:package-2",className:"fs-1 text-primary"})}),e.jsx("h4",{className:"fw-semibold",children:"300+ успешных поставок по СНГ"}),e.jsx("span",{children:"Сотни поставок по СНГ — от первых заказов до постоянного импорта для малого и крупного бизнеса."})]})]})})]})}


version_name: CompanyBenefits
version_updated_at: 2025-11-17T10:18:22.332Z
version_created_at: 2025-11-17T09:47:44.829Z
created_at: 2025-11-17T10:18:22.342Z
updated_at: 2025-11-17T10:18:22.342Z
version_jsx:
  import type { ComponentJsx } from '../../types'

  export default (function CompanyBenefits({
    runtime,
    props: { className, style },
    deps: {
      rb: { Container, Row, Col },
    },
  }) {
    const classes = 'position-relative' + (className ? ` ${className}` : '')
    return (
      <div className={classes} style={style}>
        <div
          style={{
            position: 'absolute',
            top: 0,
            right: 0,
            bottom: 0,
            left: 0,
          }}
        >
          <div className="h-100 d-flex">
            <div
              className="d-none d-lg-flex w-100 overflow-hidden"
              style={{
                position: 'absolute',
                top: 0,
                right: 0,
                bottom: 0,
                left: 0,
              }}
            >
              <div
                className="w-50"
                style={{
                  backgroundImage: 'url(/api/media/file/wheel.webp)',
                  backgroundSize: 'cover',
                  backgroundPosition: 'center',
                }}
              >
                <div
                  className="h-100"
                  style={{
                    backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.8)',
                  }}
                ></div>
              </div>
              <div
                className="w-50"
                style={{
                  backgroundImage: 'url(/api/media/file/wheel.webp)',
                  backgroundSize: 'cover',
                  backgroundPosition: 'center',
                }}
              >
                <div
                  className="h-100"
                  style={{
                    backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.8)',
                  }}
                ></div>
              </div>
            </div>
            <div className="container d-none d-lg-block h-100">
              <div className="row h-100">
                <div className="col col-3"></div>
                <div className="col col-9 bg-secondary" style={{ transform: 'skewX(-15deg)' }}></div>
              </div>
            </div>
            <div
              className="w-100 d-lg-none"
              style={{
                backgroundImage: 'url(/api/media/file/wheel.webp)',
                backgroundSize: 'cover',
                backgroundPosition: 'center',
                clipPath: 'polygon(0 0, 66% 0, 33% 100%, 0% 100%)',
              }}
            >
              <div
                className="h-100"
                style={{
                  backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.8)',
                }}
              ></div>
            </div>
          </div>
        </div>
        <Container className="position-relative z-1">
          <Row
            className="justify-content-between row-gap-5"
            style={{ padding: '60px 0 clamp(60px, 10vw, 100px) 0' }}
          >
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle"
                style={{
                  
                }}
              >
                <iconify-icon icon="line-md:calendar" className="text-primary" style={{fontSize: '72px'}}></iconify-icon>
              </div>
              <h4 className="fw-semibold">20 лет опыта работы с Китаем</h4>
              <span>
                Знаем специфику китайского рынка: подбираем поставщиков, проверяем качество и снижаем
                риски.
              </span>
            </Col>
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle border-primary bg-white"
                style={{
                  border: '3px dashed',
                  padding: '12px',
                }}
              >
                <iconify-icon icon="lucide:shield" className="fs-1 text-primary"></iconify-icon>
              </div>
              <h4 className="fw-semibold">Официально с гарантией</h4>
              <span>
                Работаем по договору: расчётный счёт, юридические гарантии, чёткие этапы — от запроса
                до доставки.
              </span>
            </Col>
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle border-primary bg-white"
                style={{
                  border: '3px dashed',
                  padding: '12px',
                }}
              >
                <iconify-icon icon="lucide:package-2" className="fs-1 text-primary"></iconify-icon>
              </div>
              <h4 className="fw-semibold">300+ успешных поставок по СНГ</h4>
              <span>
                Сотни поставок по СНГ — от первых заказов до постоянного импорта для малого и крупного
                бизнеса.
              </span>
            </Col>
          </Row>
        </Container>
      </div>
    )
  } satisfies ComponentJsx<{ className?: string; style?: object }>)

version_code:
  export default function({runtime:e,props:{className:s,style:l},deps:{rb:{Container:a,Row:i,Col:r}}}){let c="position-relative"+(s?` ${s}`:"");return e.jsxs("div",{className:c,style:l,children:[e.jsx("div",{style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:e.jsxs("div",{className:"h-100 d-flex",children:[e.jsxs("div",{className:"d-none d-lg-flex w-100 overflow-hidden",style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:[e.jsx("div",{className:"w-50",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.8)"}})}),e.jsx("div",{className:"w-50",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.8)"}})})]}),e.jsx("div",{className:"container d-none d-lg-block h-100",children:e.jsxs("div",{className:"row h-100",children:[e.jsx("div",{className:"col col-3"}),e.jsx("div",{className:"col col-9 bg-secondary",style:{transform:"skewX(-15deg)"}})]})}),e.jsx("div",{className:"w-100 d-lg-none",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center",clipPath:"polygon(0 0, 66% 0, 33% 100%, 0% 100%)"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.8)"}})})]})}),e.jsx(a,{className:"position-relative z-1",children:e.jsxs(i,{className:"justify-content-between row-gap-5",style:{padding:"60px 0 clamp(60px, 10vw, 100px) 0"},children:[e.jsxs(r,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle",style:{},children:e.jsx("iconify-icon",{icon:"line-md:calendar",className:"text-primary",style:{fontSize:"72px"}})}),e.jsx("h4",{className:"fw-semibold",children:"20 лет опыта работы с Китаем"}),e.jsx("span",{children:"Знаем специфику китайского рынка: подбираем поставщиков, проверяем качество и снижаем риски."})]}),e.jsxs(r,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle border-primary bg-white",style:{border:"3px dashed",padding:"12px"},children:e.jsx("iconify-icon",{icon:"lucide:shield",className:"fs-1 text-primary"})}),e.jsx("h4",{className:"fw-semibold",children:"Официально с гарантией"}),e.jsx("span",{children:"Работаем по договору: расчётный счёт, юридические гарантии, чёткие этапы — от запроса до доставки."})]}),e.jsxs(r,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle border-primary bg-white",style:{border:"3px dashed",padding:"12px"},children:e.jsx("iconify-icon",{icon:"lucide:package-2",className:"fs-1 text-primary"})}),e.jsx("h4",{className:"fw-semibold",children:"300+ успешных поставок по СНГ"}),e.jsx("span",{children:"Сотни поставок по СНГ — от первых заказов до постоянного импорта для малого и крупного бизнеса."})]})]})})]})}


version_name: OurPartners
version_updated_at: 2025-11-17T10:20:05.456Z
version_created_at: 2025-11-17T09:47:45.017Z
created_at: 2025-11-17T10:20:05.465Z
updated_at: 2025-11-17T10:20:05.465Z
version_jsx:
  import type { ComponentJsx } from '../../types'

  export default (function OurPartners({
    runtime,
    props: { className, style },
    components: { ParallelogramGrid },
    deps: {
      rb: { Container, Row, Col },
    },
  }) {
    return (
      <Container className={`overflow-hidden ${className}`} style={style}>
        <Row>
          <Col
            lg={3}
            className="d-flex flex-lg-column mb-lg-0 mb-3 text-uppercase"
            style={{ maxWidth: '500px' }}
          >
            <h1 className="lh-1">наши&nbsp;</h1>
            <h1 className="mb-0 ms-lg-auto lh-1 text-primary">партнеры</h1>
          </Col>
          <Col lg={1}></Col>
          <Col lg={5} className="mt-auto">
            За каждым нашим успехом стоит команда надёжных друзей и коллег — наши партнёры
          </Col>
          <Col lg={12} className="d-flex flex-column py-5 row-gap-3 text-white">
            {/* Parallelograms lg */}
            <Row className="justify-content-end d-lg-flex d-none" style={{ minHeight: '180px' }}>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginRight: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#bf1907"
                  preserveAspectRatio="none"
                  mask={'1'}
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Бизнес-клиенты</h5>
                  <span>
                    Предприятия и магазины сотрудничают с поставщиком, который выполняет
                    договорённости по срокам и качеству
                  </span>
                </div>
              </Col>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginLeft: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#1d1d1d"
                  preserveAspectRatio="none"
                  mask={'1'}
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Перевозчики</h5>
                  <span>
                    Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно в срок.
                  </span>
                </div>
              </Col>
            </Row>

            <Row className="justify-content-start d-lg-flex d-none" style={{ minHeight: '180px' }}>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginRight: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Дистрибьюторы</h5>
                  <span>
                    Получаем товары напрямую от официальных партнёров брендов в Азии — надёжно и без
                    посредников
                  </span>
                </div>
              </Col>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginLeft: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#bf1907"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Производители</h5>
                  <span>
                    Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем
                    выгодные условия
                  </span>
                </div>
              </Col>
            </Row>

            {/* Parallelograms mobile */}
            <Row className="d-lg-none d-grid flex-column row-gap-2">
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={-10}
                  fill="#bf1907"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Бизнес-клиенты</h5>
                  <span className="fw-light">
                    Предприятия и магазины сотрудничают с поставщиком, который выполняет
                    договорённости по срокам и качеству
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={10}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Перевозчики</h5>
                  <span className="fw-light">
                    Сотрудничаем с надёжными транспортными компаниями, чтобы заказы доставлялись точно
                    в срок и без повреждений
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={-10}
                  fill="#bf1907"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Производители</h5>
                  <span className="fw-light">
                    Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем
                    выгодные условия
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={10}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Дистрибьюторы</h5>
                  <span className="fw-light">
                    Получаем товары напрямую от официальных партнёров брендов в Азии — надёжно и без
                    посредников
                  </span>
                </div>
              </Col>
            </Row>
          </Col>
        </Row>
      </Container>
    )
  } satisfies ComponentJsx<{ className?: string; style?: object }>)

version_code:
  export default function({runtime:s,props:{className:e,style:l},components:{ParallelogramGrid:i},deps:{rb:{Container:a,Row:n,Col:t}}}){return s.jsx(a,{className:`overflow-hidden ${e}`,style:l,children:s.jsxs(n,{children:[s.jsxs(t,{lg:3,className:"d-flex flex-lg-column mb-lg-0 mb-3 text-uppercase",style:{maxWidth:"500px"},children:[s.jsx("h1",{className:"lh-1",children:"наши "}),s.jsx("h1",{className:"mb-0 ms-lg-auto lh-1 text-primary",children:"партнеры"})]}),s.jsx(t,{lg:1}),s.jsx(t,{lg:5,className:"mt-auto",children:"За каждым нашим успехом стоит команда надёжных друзей и коллег — наши партнёры"}),s.jsxs(t,{lg:12,className:"d-flex flex-column py-5 row-gap-3 text-white",children:[s.jsxs(n,{className:"justify-content-end d-lg-flex d-none",style:{minHeight:"180px"},children:[s.jsxs(t,{lg:6,className:"position-relative",style:{marginRight:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#bf1907",preserveAspectRatio:"none",mask:"1",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Бизнес-клиенты"}),s.jsx("span",{children:"Предприятия и магазины сотрудничают с поставщиком, который выполняет договорённости по срокам и качеству"})]})]}),s.jsxs(t,{lg:6,className:"position-relative",style:{marginLeft:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#1d1d1d",preserveAspectRatio:"none",mask:"1",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Перевозчики"}),s.jsx("span",{children:"Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно в срок."})]})]})]}),s.jsxs(n,{className:"justify-content-start d-lg-flex d-none",style:{minHeight:"180px"},children:[s.jsxs(t,{lg:6,className:"position-relative",style:{marginRight:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Дистрибьюторы"}),s.jsx("span",{children:"Получаем товары напрямую от официальных партнёров брендов в Азии — надёжно и без посредников"})]})]}),s.jsxs(t,{lg:6,className:"position-relative",style:{marginLeft:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#bf1907",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Производители"}),s.jsx("span",{children:"Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем выгодные условия"})]})]})]}),s.jsxs(n,{className:"d-lg-none d-grid flex-column row-gap-2",children:[s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:-10,fill:"#bf1907",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Бизнес-клиенты"}),s.jsx("span",{className:"fw-light",children:"Предприятия и магазины сотрудничают с поставщиком, который выполняет договорённости по срокам и качеству"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:10,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Перевозчики"}),s.jsx("span",{className:"fw-light",children:"Сотрудничаем с надёжными транспортными компаниями, чтобы заказы доставлялись точно в срок и без повреждений"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:-10,fill:"#bf1907",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Производители"}),s.jsx("span",{className:"fw-light",children:"Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем выгодные условия"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:10,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Дистрибьюторы"}),s.jsx("span",{className:"fw-light",children:"Получаем товары напрямую от официальных партнёров брендов в Азии — надёжно и без посредников"})]})]})]})]})]})})}


version_name: OurPartners
version_updated_at: 2025-11-17T10:20:17.172Z
version_created_at: 2025-11-17T09:47:45.017Z
created_at: 2025-11-17T10:20:17.192Z
updated_at: 2025-11-17T10:20:17.192Z
version_jsx:
  import type { ComponentJsx } from '../../types'

  export default (function OurPartners({
    runtime,
    props: { className, style },
    components: { ParallelogramGrid },
    deps: {
      rb: { Container, Row, Col },
    },
  }) {
    return (
      <Container className={`overflow-hidden ${className}`} style={style}>
        <Row>
          <Col
            lg={3}
            className="d-flex flex-lg-column mb-lg-0 mb-3 text-uppercase"
            style={{ maxWidth: '500px' }}
          >
            <h1 className="lh-1">наши&nbsp;</h1>
            <h1 className="mb-0 ms-lg-auto lh-1 text-primary">партнеры</h1>
          </Col>
          <Col lg={1}></Col>
          <Col lg={5} className="mt-auto">
            За каждым нашим успехом стоит команда надёжных друзей и коллег — наши партнёры
          </Col>
          <Col lg={12} className="d-flex flex-column py-5 row-gap-3 text-white">
            {/* Parallelograms lg */}
            <Row className="justify-content-end d-lg-flex d-none" style={{ minHeight: '180px' }}>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginRight: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#bf1907"
                  preserveAspectRatio="none"
                  mask={'1'}
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Бизнес-клиенты</h5>
                  <span>
                    Предприятия и магазины сотрудничают с поставщиком, который выполняет
                    договорённости по срокам и качеству
                  </span>
                </div>
              </Col>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginLeft: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#1d1d1d"
                  preserveAspectRatio="none"
                  mask={'1'}
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Перевозчики</h5>
                  <span>
                    Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно в срок
                  </span>
                </div>
              </Col>
            </Row>

            <Row className="justify-content-start d-lg-flex d-none" style={{ minHeight: '180px' }}>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginRight: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Дистрибьюторы</h5>
                  <span>
                    Получаем товары напрямую от официальных партнёров брендов в Азии — надёжно и без
                    посредников
                  </span>
                </div>
              </Col>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginLeft: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#bf1907"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Производители</h5>
                  <span>
                    Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем
                    выгодные условия
                  </span>
                </div>
              </Col>
            </Row>

            {/* Parallelograms mobile */}
            <Row className="d-lg-none d-grid flex-column row-gap-2">
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={-10}
                  fill="#bf1907"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Бизнес-клиенты</h5>
                  <span className="fw-light">
                    Предприятия и магазины сотрудничают с поставщиком, который выполняет
                    договорённости по срокам и качеству
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={10}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Перевозчики</h5>
                  <span className="fw-light">
                    Сотрудничаем с надёжными транспортными компаниями, чтобы заказы доставлялись точно
                    в срок и без повреждений
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={-10}
                  fill="#bf1907"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Производители</h5>
                  <span className="fw-light">
                    Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем
                    выгодные условия
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={10}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Дистрибьюторы</h5>
                  <span className="fw-light">
                    Получаем товары напрямую от официальных партнёров брендов в Азии — надёжно и без
                    посредников
                  </span>
                </div>
              </Col>
            </Row>
          </Col>
        </Row>
      </Container>
    )
  } satisfies ComponentJsx<{ className?: string; style?: object }>)

version_code:
  export default function({runtime:s,props:{className:e,style:l},components:{ParallelogramGrid:i},deps:{rb:{Container:a,Row:n,Col:t}}}){return s.jsx(a,{className:`overflow-hidden ${e}`,style:l,children:s.jsxs(n,{children:[s.jsxs(t,{lg:3,className:"d-flex flex-lg-column mb-lg-0 mb-3 text-uppercase",style:{maxWidth:"500px"},children:[s.jsx("h1",{className:"lh-1",children:"наши "}),s.jsx("h1",{className:"mb-0 ms-lg-auto lh-1 text-primary",children:"партнеры"})]}),s.jsx(t,{lg:1}),s.jsx(t,{lg:5,className:"mt-auto",children:"За каждым нашим успехом стоит команда надёжных друзей и коллег — наши партнёры"}),s.jsxs(t,{lg:12,className:"d-flex flex-column py-5 row-gap-3 text-white",children:[s.jsxs(n,{className:"justify-content-end d-lg-flex d-none",style:{minHeight:"180px"},children:[s.jsxs(t,{lg:6,className:"position-relative",style:{marginRight:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#bf1907",preserveAspectRatio:"none",mask:"1",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Бизнес-клиенты"}),s.jsx("span",{children:"Предприятия и магазины сотрудничают с поставщиком, который выполняет договорённости по срокам и качеству"})]})]}),s.jsxs(t,{lg:6,className:"position-relative",style:{marginLeft:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#1d1d1d",preserveAspectRatio:"none",mask:"1",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Перевозчики"}),s.jsx("span",{children:"Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно в срок"})]})]})]}),s.jsxs(n,{className:"justify-content-start d-lg-flex d-none",style:{minHeight:"180px"},children:[s.jsxs(t,{lg:6,className:"position-relative",style:{marginRight:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Дистрибьюторы"}),s.jsx("span",{children:"Получаем товары напрямую от официальных партнёров брендов в Азии — надёжно и без посредников"})]})]}),s.jsxs(t,{lg:6,className:"position-relative",style:{marginLeft:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#bf1907",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Производители"}),s.jsx("span",{children:"Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем выгодные условия"})]})]})]}),s.jsxs(n,{className:"d-lg-none d-grid flex-column row-gap-2",children:[s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:-10,fill:"#bf1907",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Бизнес-клиенты"}),s.jsx("span",{className:"fw-light",children:"Предприятия и магазины сотрудничают с поставщиком, который выполняет договорённости по срокам и качеству"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:10,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Перевозчики"}),s.jsx("span",{className:"fw-light",children:"Сотрудничаем с надёжными транспортными компаниями, чтобы заказы доставлялись точно в срок и без повреждений"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:-10,fill:"#bf1907",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Производители"}),s.jsx("span",{className:"fw-light",children:"Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем выгодные условия"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:10,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Дистрибьюторы"}),s.jsx("span",{className:"fw-light",children:"Получаем товары напрямую от официальных партнёров брендов в Азии — надёжно и без посредников"})]})]})]})]})]})})}


version_name: OurPartners
version_updated_at: 2025-11-17T10:20:50.388Z
version_created_at: 2025-11-17T09:47:45.017Z
created_at: 2025-11-17T10:20:50.399Z
updated_at: 2025-11-17T10:20:50.399Z
version_jsx:
  import type { ComponentJsx } from '../../types'

  export default (function OurPartners({
    runtime,
    props: { className, style },
    components: { ParallelogramGrid },
    deps: {
      rb: { Container, Row, Col },
    },
  }) {
    return (
      <Container className={`overflow-hidden ${className}`} style={style}>
        <Row>
          <Col
            lg={3}
            className="d-flex flex-lg-column mb-lg-0 mb-3 text-uppercase"
            style={{ maxWidth: '500px' }}
          >
            <h1 className="lh-1">наши&nbsp;</h1>
            <h1 className="mb-0 ms-lg-auto lh-1 text-primary">партнеры</h1>
          </Col>
          <Col lg={1}></Col>
          <Col lg={5} className="mt-auto">
            За каждым нашим успехом стоит команда надёжных друзей и коллег — наши партнёры
          </Col>
          <Col lg={12} className="d-flex flex-column py-5 row-gap-3 text-white">
            {/* Parallelograms lg */}
            <Row className="justify-content-end d-lg-flex d-none" style={{ minHeight: '180px' }}>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginRight: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#bf1907"
                  preserveAspectRatio="none"
                  mask={'1'}
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Бизнес-клиенты</h5>
                  <span>
                    Предприятия и магазины сотрудничают с поставщиком, который выполняет
                    договорённости по срокам и качеству
                  </span>
                </div>
              </Col>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginLeft: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#1d1d1d"
                  preserveAspectRatio="none"
                  mask={'1'}
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Перевозчики</h5>
                  <span>
                    Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно в срок
                  </span>
                </div>
              </Col>
            </Row>

            <Row className="justify-content-start d-lg-flex d-none" style={{ minHeight: '180px' }}>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginRight: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Дистрибьюторы</h5>
                  <span>
                    Получаем товары напрямую от официальных партнёров и диллеров — надёжно и без
                    посредников
                  </span>
                </div>
              </Col>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginLeft: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#bf1907"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Производители</h5>
                  <span>
                    Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем
                    выгодные условия
                  </span>
                </div>
              </Col>
            </Row>

            {/* Parallelograms mobile */}
            <Row className="d-lg-none d-grid flex-column row-gap-2">
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={-10}
                  fill="#bf1907"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Бизнес-клиенты</h5>
                  <span className="fw-light">
                    Предприятия и магазины сотрудничают с поставщиком, который выполняет
                    договорённости по срокам и качеству
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={10}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Перевозчики</h5>
                  <span className="fw-light">
                    Сотрудничаем с надёжными транспортными компаниями, чтобы заказы доставлялись точно
                    в срок и без повреждений
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={-10}
                  fill="#bf1907"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Производители</h5>
                  <span className="fw-light">
                    Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем
                    выгодные условия
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={10}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Дистрибьюторы</h5>
                  <span className="fw-light">
                    Получаем товары напрямую от официальных партнёров брендов в Азии — надёжно и без
                    посредников
                  </span>
                </div>
              </Col>
            </Row>
          </Col>
        </Row>
      </Container>
    )
  } satisfies ComponentJsx<{ className?: string; style?: object }>)

version_code:
  export default function({runtime:s,props:{className:e,style:l},components:{ParallelogramGrid:i},deps:{rb:{Container:a,Row:n,Col:t}}}){return s.jsx(a,{className:`overflow-hidden ${e}`,style:l,children:s.jsxs(n,{children:[s.jsxs(t,{lg:3,className:"d-flex flex-lg-column mb-lg-0 mb-3 text-uppercase",style:{maxWidth:"500px"},children:[s.jsx("h1",{className:"lh-1",children:"наши "}),s.jsx("h1",{className:"mb-0 ms-lg-auto lh-1 text-primary",children:"партнеры"})]}),s.jsx(t,{lg:1}),s.jsx(t,{lg:5,className:"mt-auto",children:"За каждым нашим успехом стоит команда надёжных друзей и коллег — наши партнёры"}),s.jsxs(t,{lg:12,className:"d-flex flex-column py-5 row-gap-3 text-white",children:[s.jsxs(n,{className:"justify-content-end d-lg-flex d-none",style:{minHeight:"180px"},children:[s.jsxs(t,{lg:6,className:"position-relative",style:{marginRight:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#bf1907",preserveAspectRatio:"none",mask:"1",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Бизнес-клиенты"}),s.jsx("span",{children:"Предприятия и магазины сотрудничают с поставщиком, который выполняет договорённости по срокам и качеству"})]})]}),s.jsxs(t,{lg:6,className:"position-relative",style:{marginLeft:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#1d1d1d",preserveAspectRatio:"none",mask:"1",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Перевозчики"}),s.jsx("span",{children:"Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно в срок"})]})]})]}),s.jsxs(n,{className:"justify-content-start d-lg-flex d-none",style:{minHeight:"180px"},children:[s.jsxs(t,{lg:6,className:"position-relative",style:{marginRight:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Дистрибьюторы"}),s.jsx("span",{children:"Получаем товары напрямую от официальных партнёров и диллеров — надёжно и без посредников"})]})]}),s.jsxs(t,{lg:6,className:"position-relative",style:{marginLeft:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#bf1907",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Производители"}),s.jsx("span",{children:"Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем выгодные условия"})]})]})]}),s.jsxs(n,{className:"d-lg-none d-grid flex-column row-gap-2",children:[s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:-10,fill:"#bf1907",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Бизнес-клиенты"}),s.jsx("span",{className:"fw-light",children:"Предприятия и магазины сотрудничают с поставщиком, который выполняет договорённости по срокам и качеству"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:10,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Перевозчики"}),s.jsx("span",{className:"fw-light",children:"Сотрудничаем с надёжными транспортными компаниями, чтобы заказы доставлялись точно в срок и без повреждений"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:-10,fill:"#bf1907",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Производители"}),s.jsx("span",{className:"fw-light",children:"Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем выгодные условия"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:10,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Дистрибьюторы"}),s.jsx("span",{className:"fw-light",children:"Получаем товары напрямую от официальных партнёров брендов в Азии — надёжно и без посредников"})]})]})]})]})]})})}


version_name: OurPartners
version_updated_at: 2025-11-17T10:21:30.586Z
version_created_at: 2025-11-17T09:47:45.017Z
created_at: 2025-11-17T10:21:30.595Z
updated_at: 2025-11-17T10:21:30.595Z
version_jsx:
  import type { ComponentJsx } from '../../types'

  export default (function OurPartners({
    runtime,
    props: { className, style },
    components: { ParallelogramGrid },
    deps: {
      rb: { Container, Row, Col },
    },
  }) {
    return (
      <Container className={`overflow-hidden ${className}`} style={style}>
        <Row>
          <Col
            lg={3}
            className="d-flex flex-lg-column mb-lg-0 mb-3 text-uppercase"
            style={{ maxWidth: '500px' }}
          >
            <h1 className="lh-1">наши&nbsp;</h1>
            <h1 className="mb-0 ms-lg-auto lh-1 text-primary">партнеры</h1>
          </Col>
          <Col lg={1}></Col>
          <Col lg={5} className="mt-auto">
            За каждым нашим успехом стоит команда надёжных друзей и коллег — наши партнёры
          </Col>
          <Col lg={12} className="d-flex flex-column py-5 row-gap-3 text-white">
            {/* Parallelograms lg */}
            <Row className="justify-content-end d-lg-flex d-none" style={{ minHeight: '180px' }}>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginRight: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#bf1907"
                  preserveAspectRatio="none"
                  mask={'1'}
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Бизнес-клиенты</h5>
                  <span>
                    Предприниматели и организации, точные договоренности по срокам и качеству
                  </span>
                </div>
              </Col>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginLeft: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#1d1d1d"
                  preserveAspectRatio="none"
                  mask={'1'}
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Перевозчики</h5>
                  <span>
                    Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно в срок
                  </span>
                </div>
              </Col>
            </Row>

            <Row className="justify-content-start d-lg-flex d-none" style={{ minHeight: '180px' }}>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginRight: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Дистрибьюторы</h5>
                  <span>
                    Получаем товары напрямую от официальных партнёров и диллеров — надёжно и без
                    посредников
                  </span>
                </div>
              </Col>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginLeft: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#bf1907"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Производители</h5>
                  <span>
                    Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем
                    выгодные условия
                  </span>
                </div>
              </Col>
            </Row>

            {/* Parallelograms mobile */}
            <Row className="d-lg-none d-grid flex-column row-gap-2">
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={-10}
                  fill="#bf1907"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Бизнес-клиенты</h5>
                  <span className="fw-light">
                    Предприятия и магазины сотрудничают с поставщиком, который выполняет
                    договорённости по срокам и качеству
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={10}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Перевозчики</h5>
                  <span className="fw-light">
                    Сотрудничаем с надёжными транспортными компаниями, чтобы заказы доставлялись точно
                    в срок и без повреждений
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={-10}
                  fill="#bf1907"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Производители</h5>
                  <span className="fw-light">
                    Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем
                    выгодные условия
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={10}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Дистрибьюторы</h5>
                  <span className="fw-light">
                    Получаем товары напрямую от официальных партнёров брендов в Азии — надёжно и без
                    посредников
                  </span>
                </div>
              </Col>
            </Row>
          </Col>
        </Row>
      </Container>
    )
  } satisfies ComponentJsx<{ className?: string; style?: object }>)

version_code:
  export default function({runtime:s,props:{className:e,style:l},components:{ParallelogramGrid:i},deps:{rb:{Container:a,Row:n,Col:t}}}){return s.jsx(a,{className:`overflow-hidden ${e}`,style:l,children:s.jsxs(n,{children:[s.jsxs(t,{lg:3,className:"d-flex flex-lg-column mb-lg-0 mb-3 text-uppercase",style:{maxWidth:"500px"},children:[s.jsx("h1",{className:"lh-1",children:"наши "}),s.jsx("h1",{className:"mb-0 ms-lg-auto lh-1 text-primary",children:"партнеры"})]}),s.jsx(t,{lg:1}),s.jsx(t,{lg:5,className:"mt-auto",children:"За каждым нашим успехом стоит команда надёжных друзей и коллег — наши партнёры"}),s.jsxs(t,{lg:12,className:"d-flex flex-column py-5 row-gap-3 text-white",children:[s.jsxs(n,{className:"justify-content-end d-lg-flex d-none",style:{minHeight:"180px"},children:[s.jsxs(t,{lg:6,className:"position-relative",style:{marginRight:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#bf1907",preserveAspectRatio:"none",mask:"1",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Бизнес-клиенты"}),s.jsx("span",{children:"Предприниматели и организации, точные договоренности по срокам и качеству"})]})]}),s.jsxs(t,{lg:6,className:"position-relative",style:{marginLeft:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#1d1d1d",preserveAspectRatio:"none",mask:"1",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Перевозчики"}),s.jsx("span",{children:"Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно в срок"})]})]})]}),s.jsxs(n,{className:"justify-content-start d-lg-flex d-none",style:{minHeight:"180px"},children:[s.jsxs(t,{lg:6,className:"position-relative",style:{marginRight:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Дистрибьюторы"}),s.jsx("span",{children:"Получаем товары напрямую от официальных партнёров и диллеров — надёжно и без посредников"})]})]}),s.jsxs(t,{lg:6,className:"position-relative",style:{marginLeft:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#bf1907",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Производители"}),s.jsx("span",{children:"Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем выгодные условия"})]})]})]}),s.jsxs(n,{className:"d-lg-none d-grid flex-column row-gap-2",children:[s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:-10,fill:"#bf1907",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Бизнес-клиенты"}),s.jsx("span",{className:"fw-light",children:"Предприятия и магазины сотрудничают с поставщиком, который выполняет договорённости по срокам и качеству"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:10,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Перевозчики"}),s.jsx("span",{className:"fw-light",children:"Сотрудничаем с надёжными транспортными компаниями, чтобы заказы доставлялись точно в срок и без повреждений"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:-10,fill:"#bf1907",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Производители"}),s.jsx("span",{className:"fw-light",children:"Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем выгодные условия"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:10,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Дистрибьюторы"}),s.jsx("span",{className:"fw-light",children:"Получаем товары напрямую от официальных партнёров брендов в Азии — надёжно и без посредников"})]})]})]})]})]})})}


version_name: OurPartners
version_updated_at: 2025-11-17T10:22:51.375Z
version_created_at: 2025-11-17T09:47:45.017Z
created_at: 2025-11-17T10:22:51.387Z
updated_at: 2025-11-17T10:22:51.387Z
version_jsx:
  import type { ComponentJsx } from '../../types'

  export default (function OurPartners({
    runtime,
    props: { className, style },
    components: { ParallelogramGrid },
    deps: {
      rb: { Container, Row, Col },
    },
  }) {
    return (
      <Container className={`overflow-hidden ${className}`} style={style}>
        <Row>
          <Col
            lg={3}
            className="d-flex flex-lg-column mb-lg-0 mb-3 text-uppercase"
            style={{ maxWidth: '500px' }}
          >
            <h1 className="lh-1">наши&nbsp;</h1>
            <h1 className="mb-0 ms-lg-auto lh-1 text-primary">партнеры</h1>
          </Col>
          <Col lg={1}></Col>
          <Col lg={5} className="mt-auto">
            За каждым нашим успехом стоит команда надёжных друзей и коллег — наши партнёры
          </Col>
          <Col lg={12} className="d-flex flex-column py-5 row-gap-3 text-white">
            {/* Parallelograms lg */}
            <Row className="justify-content-end d-lg-flex d-none" style={{ minHeight: '180px' }}>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginRight: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#bf1907"
                  preserveAspectRatio="none"
                  mask={'1'}
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Бизнес-клиенты</h5>
                  <span>
                    Предприниматели и организации, точные договоренности по срокам и качеству
                  </span>
                </div>
              </Col>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginLeft: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#1d1d1d"
                  preserveAspectRatio="none"
                  mask={'1'}
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Перевозчики</h5>
                  <span>
                    Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно в срок
                  </span>
                </div>
              </Col>
            </Row>

            <Row className="justify-content-start d-lg-flex d-none" style={{ minHeight: '180px' }}>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginRight: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Дистрибьюторы</h5>
                  <span>
                    Получаем товары напрямую от официальных партнёров и диллеров — надёжно и без
                    посредников
                  </span>
                </div>
              </Col>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginLeft: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#bf1907"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Производители</h5>
                  <span>
                    Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем
                    выгодные условия
                  </span>
                </div>
              </Col>
            </Row>

            {/* Parallelograms mobile */}
            <Row className="d-lg-none d-grid flex-column row-gap-2">
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={-10}
                  fill="#bf1907"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Бизнес-клиенты</h5>
                  <span className="fw-light">
                    Предприниматели и организации, точные договоренности по срокам и качеству
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={10}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Перевозчики</h5>
                  <span className="fw-light">
                    Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно в срок
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={-10}
                  fill="#bf1907"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Производители</h5>
                  <span className="fw-light">
                    Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем выгодные условия
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={10}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Дистрибьюторы</h5>
                  <span className="fw-light">
                    Получаем товары напрямую от официальных партнёров и диллеров — надёжно и без посредников
                  </span>
                </div>
              </Col>
            </Row>
          </Col>
        </Row>
      </Container>
    )
  } satisfies ComponentJsx<{ className?: string; style?: object }>)

version_code:
  export default function({runtime:s,props:{className:e,style:l},components:{ParallelogramGrid:i},deps:{rb:{Container:a,Row:n,Col:t}}}){return s.jsx(a,{className:`overflow-hidden ${e}`,style:l,children:s.jsxs(n,{children:[s.jsxs(t,{lg:3,className:"d-flex flex-lg-column mb-lg-0 mb-3 text-uppercase",style:{maxWidth:"500px"},children:[s.jsx("h1",{className:"lh-1",children:"наши "}),s.jsx("h1",{className:"mb-0 ms-lg-auto lh-1 text-primary",children:"партнеры"})]}),s.jsx(t,{lg:1}),s.jsx(t,{lg:5,className:"mt-auto",children:"За каждым нашим успехом стоит команда надёжных друзей и коллег — наши партнёры"}),s.jsxs(t,{lg:12,className:"d-flex flex-column py-5 row-gap-3 text-white",children:[s.jsxs(n,{className:"justify-content-end d-lg-flex d-none",style:{minHeight:"180px"},children:[s.jsxs(t,{lg:6,className:"position-relative",style:{marginRight:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#bf1907",preserveAspectRatio:"none",mask:"1",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Бизнес-клиенты"}),s.jsx("span",{children:"Предприниматели и организации, точные договоренности по срокам и качеству"})]})]}),s.jsxs(t,{lg:6,className:"position-relative",style:{marginLeft:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#1d1d1d",preserveAspectRatio:"none",mask:"1",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Перевозчики"}),s.jsx("span",{children:"Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно в срок"})]})]})]}),s.jsxs(n,{className:"justify-content-start d-lg-flex d-none",style:{minHeight:"180px"},children:[s.jsxs(t,{lg:6,className:"position-relative",style:{marginRight:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Дистрибьюторы"}),s.jsx("span",{children:"Получаем товары напрямую от официальных партнёров и диллеров — надёжно и без посредников"})]})]}),s.jsxs(t,{lg:6,className:"position-relative",style:{marginLeft:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#bf1907",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Производители"}),s.jsx("span",{children:"Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем выгодные условия"})]})]})]}),s.jsxs(n,{className:"d-lg-none d-grid flex-column row-gap-2",children:[s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:-10,fill:"#bf1907",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Бизнес-клиенты"}),s.jsx("span",{className:"fw-light",children:"Предприниматели и организации, точные договоренности по срокам и качеству"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:10,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Перевозчики"}),s.jsx("span",{className:"fw-light",children:"Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно в срок"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:-10,fill:"#bf1907",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Производители"}),s.jsx("span",{className:"fw-light",children:"Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем выгодные условия"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:10,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Дистрибьюторы"}),s.jsx("span",{className:"fw-light",children:"Получаем товары напрямую от официальных партнёров и диллеров — надёжно и без посредников"})]})]})]})]})]})})}


version_name: ProductsGrid
version_updated_at: 2025-11-17T10:53:41.097Z
version_created_at: 2025-11-17T09:47:45.079Z
created_at: 2025-11-17T10:53:41.106Z
updated_at: 2025-11-17T10:53:41.106Z
version_jsx:
  import type { ComponentJsx } from '../../types'
  import type { PaginatedDocs } from 'payload'
  import type { Product } from '@/payload-types'

  export default (function ProductsGrid({
    runtime,
    props: { productData, path, className, style },
    deps: {
      rb: { Container, Image, Row, Col, Pagination },
      next: { Link },
    },
  }) {
    const docs = productData.docs
    const totalPages = productData.totalPages
    const page = productData.page || 1

    return (
      <div className={className} style={style}>
        <Container className="d-flex flex-column row-gap-5 mt-5">
          <Row className="row-gap-4">
            {docs.map((product) => {
              const categorySlug =
                typeof product.category === 'number' ? undefined : product.category?.slug
              const href = categorySlug ? `/categories/${categorySlug}/${product.slug}` : undefined
              const imgUrl =
                (product.img &&
                  product.img[0] &&
                  typeof product.img[0] !== 'number' &&
                  product.img[0].sizes?.preview?.url) ||
                undefined
              return href ? (
                <Col sm={6} md={3} key={product.id}>
                  <Link
                    href={href}
                    className="d-flex flex-column row-gap-2 h-100 pb-3 px-3 link-dark link-underline-opacity-0 link-underline-opacity-100-hover"
                    style={{ background: 'white' }}
                  >
                    <Image
                      src={imgUrl}
                      alt={product.name}
                      className="img-fluid"
                      style={{
                        aspectRatio: '1 / 1',
                        objectFit: 'cover',
                        width: '100%',
                      }}
                    />
                    <span>{product.name}</span>
                  </Link>
                </Col>
              ) : undefined
            })}
          </Row>
          {path && (
            <Row>
              <Pagination className="justify-content-center">
                <Pagination.First
                  as={Link}
                  href={`${path}?p=1`}
                  disabled={page === 1}
                  className="d-none d-sm-block"
                />
                <Pagination.Prev as={Link} href={`${path}?p=${page - 1}`} disabled={page === 1} />

                {page > 1 && (
                  <Pagination.Item as={Link} href={`${path}?p=1`}>
                    {1}
                  </Pagination.Item>
                )}
                {page > 3 && (
                  <Pagination.Item as={Link} href={`${path}?p=2`} className="d-none d-sm-block">
                    {2}
                  </Pagination.Item>
                )}
                {page > 4 && <Pagination.Ellipsis className="d-none d-sm-block" />}

                {page > 2 && (
                  <Pagination.Item as={Link} href={`${path}?p=${page - 1}`}>
                    {page - 1}
                  </Pagination.Item>
                )}
                <Pagination.Item as={Link} active>
                  {page}
                </Pagination.Item>
                {page < totalPages - 1 && (
                  <Pagination.Item as={Link} href={`${path}?p=${page + 1}`}>
                    {page + 1}
                  </Pagination.Item>
                )}

                {page < totalPages - 3 && <Pagination.Ellipsis className="d-none d-sm-block" />}
                {page < totalPages - 2 && (
                  <Pagination.Item
                    as={Link}
                    href={`${path}?p=${totalPages - 1}`}
                    className="d-none d-sm-block"
                  >
                    {totalPages - 1}
                  </Pagination.Item>
                )}
                {page < totalPages && (
                  <Pagination.Item as={Link} href={`${path}?p=${totalPages}`}>
                    {totalPages}
                  </Pagination.Item>
                )}

                <Pagination.Next
                  as={Link}
                  href={`${path}?p=${page + 1}`}
                  disabled={page === totalPages}
                />
                <Pagination.Last
                  as={Link}
                  href={`${path}?p=${totalPages}`}
                  disabled={page === totalPages}
                  className="d-none d-sm-block"
                />
              </Pagination>
            </Row>
          )}
        </Container>
      </div>
    )
  } satisfies ComponentJsx<{
    productData: PaginatedDocs<Product>
    path?: string
    className?: string
    style?: object
  }>)

version_code:
  export default function({runtime:e,props:{productData:s,path:l,className:a,style:d},deps:{rb:{Container:i,Image:r,Row:c,Col:n,Pagination:t},next:{Link:m}}}){let o=s.docs,h=s.totalPages,p=s.page||1;return e.jsx("div",{className:a,style:d,children:e.jsxs(i,{className:"d-flex flex-column row-gap-5 mt-5",children:[e.jsx(c,{className:"row-gap-4",children:o.map(s=>{let l="number"==typeof s.category?void 0:s.category?.slug,a=l?`/categories/${l}/${s.slug}`:void 0,d=s.img&&s.img[0]&&"number"!=typeof s.img[0]&&s.img[0].sizes?.preview?.url||void 0;return a?e.jsx(n,{sm:6,md:3,children:e.jsxs(m,{href:a,className:"d-flex flex-column row-gap-2 h-100 pb-3 px-3 link-dark link-underline-opacity-0 link-underline-opacity-100-hover",style:{background:"white"},children:[e.jsx(r,{src:d,alt:s.name,className:"img-fluid",style:{aspectRatio:"1 / 1",objectFit:"cover",width:"100%"}}),e.jsx("span",{children:s.name})]})},s.id):void 0})}),l&&e.jsx(c,{children:e.jsxs(t,{className:"justify-content-center",children:[e.jsx(t.First,{as:m,href:`${l}?p=1`,disabled:1===p,className:"d-none d-sm-block"}),e.jsx(t.Prev,{as:m,href:`${l}?p=${p-1}`,disabled:1===p}),p>1&&e.jsx(t.Item,{as:m,href:`${l}?p=1`,children:1}),p>3&&e.jsx(t.Item,{as:m,href:`${l}?p=2`,className:"d-none d-sm-block",children:2}),p>4&&e.jsx(t.Ellipsis,{className:"d-none d-sm-block"}),p>2&&e.jsx(t.Item,{as:m,href:`${l}?p=${p-1}`,children:p-1}),e.jsx(t.Item,{as:m,active:!0,children:p}),p<h-1&&e.jsx(t.Item,{as:m,href:`${l}?p=${p+1}`,children:p+1}),p<h-3&&e.jsx(t.Ellipsis,{className:"d-none d-sm-block"}),p<h-2&&e.jsx(t.Item,{as:m,href:`${l}?p=${h-1}`,className:"d-none d-sm-block",children:h-1}),p<h&&e.jsx(t.Item,{as:m,href:`${l}?p=${h}`,children:h}),e.jsx(t.Next,{as:m,href:`${l}?p=${p+1}`,disabled:p===h}),e.jsx(t.Last,{as:m,href:`${l}?p=${h}`,disabled:p===h,className:"d-none d-sm-block"})]})})]})})}


version_name: ProductCard
version_updated_at: 2025-11-18T05:02:15.354Z
version_created_at: 2025-11-18T04:12:25.627Z
created_at: 2025-11-18T05:02:15.363Z
updated_at: 2025-11-18T05:02:15.363Z
version_jsx:
  import type { ComponentJsx } from '../../types'
  import type { Product } from '@/payload-types'

  export default (function ProductCard({
  	runtime,
  	props: { product, className, style },
  	deps: {
  		app: { isPopulated },
  		rb: { Card },
  	},
  }) {
  	const img = product.img?.at(0)
  	return (
  		<Card className={`h-100 d-flex flex-column bg-white border-0 ${className || ''}`} style={style}>
  			<div className="flex-grow-1 p-2">
  				{isPopulated(img) ? (
  					<Card.Img variant="top" src={img.url} className="img-fluid rounded-3"
  						style={{
  							aspectRatio: '1 / 1',
  							objectFit: 'cover',
  						}} />
  				) : (<div className="h-100 d-flex align-items-center justify-content-center">
  					<iconify-icon icon="lucide:camera" style={{ fontSize: '80%' }} />
  				</div>
  				)}
  			</div>
  			<Card.Body className="flex-grow-0">
  				<Card.Subtitle className="text-truncate" > {product.name}</Card.Subtitle>
  			</Card.Body>
  		</Card >
  	)
  } satisfies ComponentJsx<{
  	product: Product
  	className?: string
  	style?: object
  }>)

version_code:
  export default function({runtime:e,props:{product:s,className:t,style:l},deps:{app:{isPopulated:c},rb:{Card:i}}}){let a=s.img?.at(0);return e.jsxs(i,{className:`h-100 d-flex flex-column bg-white border-0 ${t||""}`,style:l,children:[e.jsx("div",{className:"flex-grow-1 p-2",children:c(a)?e.jsx(i.Img,{variant:"top",src:a.url,className:"img-fluid rounded-3",style:{aspectRatio:"1 / 1",objectFit:"cover"}}):e.jsx("div",{className:"h-100 d-flex align-items-center justify-content-center",children:e.jsx("iconify-icon",{icon:"lucide:camera",style:{fontSize:"80%"}})})}),e.jsx(i.Body,{className:"flex-grow-0",children:e.jsxs(i.Subtitle,{className:"text-truncate",children:[" ",s.name]})})]})}


version_name: ProductCard
version_updated_at: 2025-11-18T05:40:46.072Z
version_created_at: 2025-11-18T04:12:25.627Z
created_at: 2025-11-18T05:40:46.080Z
updated_at: 2025-11-18T05:40:46.080Z
version_jsx:
  import type { ComponentJsx } from '../../types'
  import type { Product } from '@/payload-types'

  export default (function ProductCard({
  	runtime,
  	props: { product, className, style },
  	deps: {
  		app: { isPopulated },
  		rb: { Card },
  	},
  }) {
  	const img = product.img?.at(0)
  	const imgSrc = isPopulated(img) ? img.url : `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyBmaWxsPSJub25lIiBzdHJva2U9IiNFREVERUQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIj48cGF0aCBkPSJNMTMuOTk3IDRhMiAyIDAgMCAxIDEuNzYgMS4wNWwuNDg2LjlBMiAyIDAgMCAwIDE4LjAwMyA3SDIwYTIgMiAwIDAgMSAyIDJ2OWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY5YTIgMiAwIDAgMSAyLTJoMS45OTdhMiAyIDAgMCAwIDEuNzU5LTEuMDQ4bC40ODktLjkwNEEyIDIgMCAwIDEgMTAuMDA0IDR6Ii8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMyIgcj0iMyIvPjwvZz48L3N2Zz4=`
  	return (
  		<Card className={`h-100 d-flex flex-column bg-white border-0 ${className || ''}`} style={style}>
  			<div className="flex-grow-1 p-2">
  				<Card.Img variant="top" src={imgSrc} className="img-fluid rounded-3"
  					style={{
  						aspectRatio: '1 / 1',
  						objectFit: 'cover',
  					}} />
  			</div>
  			<Card.Body className="flex-grow-0">
  				<Card.Subtitle className="text-truncate" > {product.name}</Card.Subtitle>
  			</Card.Body>
  		</Card >
  	)
  } satisfies ComponentJsx<{
  	product: Product
  	className?: string
  	style?: object
  }>)

version_code:
  export default function({runtime:I,props:{product:e,className:i,style:l},deps:{app:{isPopulated:M},rb:{Card:a}}}){let s=e.img?.at(0),c=M(s)?s.url:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyBmaWxsPSJub25lIiBzdHJva2U9IiNFREVERUQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIj48cGF0aCBkPSJNMTMuOTk3IDRhMiAyIDAgMCAxIDEuNzYgMS4wNWwuNDg2LjlBMiAyIDAgMCAwIDE4LjAwMyA3SDIwYTIgMiAwIDAgMSAyIDJ2OWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY5YTIgMiAwIDAgMSAyLTJoMS45OTdhMiAyIDAgMCAwIDEuNzU5LTEuMDQ4bC40ODktLjkwNEEyIDIgMCAwIDEgMTAuMDA0IDR6Ii8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMyIgcj0iMyIvPjwvZz48L3N2Zz4=";return I.jsxs(a,{className:`h-100 d-flex flex-column bg-white border-0 ${i||""}`,style:l,children:[I.jsx("div",{className:"flex-grow-1 p-2",children:I.jsx(a.Img,{variant:"top",src:c,className:"img-fluid rounded-3",style:{aspectRatio:"1 / 1",objectFit:"cover"}})}),I.jsx(a.Body,{className:"flex-grow-0",children:I.jsxs(a.Subtitle,{className:"text-truncate",children:[" ",e.name]})})]})}


version_name: ProductCard
version_updated_at: 2025-11-18T05:41:33.332Z
version_created_at: 2025-11-18T04:12:25.627Z
created_at: 2025-11-18T05:41:33.342Z
updated_at: 2025-11-18T05:41:33.342Z
version_jsx:
  import type { ComponentJsx } from '../../types'
  import type { Product } from '@/payload-types'

  export default (function ProductCard({
  	runtime,
  	props: { product, className, style },
  	deps: {
  		app: { isPopulated },
  		rb: { Card },
  	},
  }) {
  	const img = product.img?.at(0)
  	const imgSrc = isPopulated(img) ? img.url : `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyBmaWxsPSJub25lIiBzdHJva2U9IiNFREVERUQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxIj48cGF0aCBkPSJNMTQuNTY0IDE0LjU1OGEzIDMgMCAxIDEtNC4xMjItNC4xMjFNMiAybDIwIDIwIi8+PHBhdGggZD0iTTIwIDIwSDRhMiAyIDAgMCAxLTItMlY5YTIgMiAwIDAgMSAyLTJoMS45OTdhMiAyIDAgMCAwIC44MTktLjE3NW0yLjg3OS0yLjgwMUEyIDIgMCAwIDEgMTAuMDA0IDRoMy45OTNhMiAyIDAgMCAxIDEuNzYgMS4wNWwuNDg2LjlBMiAyIDAgMCAwIDE4LjAwMyA3SDIwYTIgMiAwIDAgMSAyIDJ2Ny4zNDQiLz48L2c+PC9zdmc+`
  	return (
  		<Card className={`h-100 d-flex flex-column bg-white border-0 ${className || ''}`} style={style}>
  			<div className="flex-grow-1 p-2">
  				<Card.Img variant="top" src={imgSrc} className="img-fluid rounded-3"
  					style={{
  						aspectRatio: '1 / 1',
  						objectFit: 'cover',
  					}} />
  			</div>
  			<Card.Body className="flex-grow-0">
  				<Card.Subtitle className="text-truncate" > {product.name}</Card.Subtitle>
  			</Card.Body>
  		</Card >
  	)
  } satisfies ComponentJsx<{
  	product: Product
  	className?: string
  	style?: object
  }>)

version_code:
  export default function({runtime:I,props:{product:e,className:M,style:i},deps:{app:{isPopulated:l},rb:{Card:a}}}){let g=e.img?.at(0),t=l(g)?g.url:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyBmaWxsPSJub25lIiBzdHJva2U9IiNFREVERUQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxIj48cGF0aCBkPSJNMTQuNTY0IDE0LjU1OGEzIDMgMCAxIDEtNC4xMjItNC4xMjFNMiAybDIwIDIwIi8+PHBhdGggZD0iTTIwIDIwSDRhMiAyIDAgMCAxLTItMlY5YTIgMiAwIDAgMSAyLTJoMS45OTdhMiAyIDAgMCAwIC44MTktLjE3NW0yLjg3OS0yLjgwMUEyIDIgMCAwIDEgMTAuMDA0IDRoMy45OTNhMiAyIDAgMCAxIDEuNzYgMS4wNWwuNDg2LjlBMiAyIDAgMCAwIDE4LjAwMyA3SDIwYTIgMiAwIDAgMSAyIDJ2Ny4zNDQiLz48L2c+PC9zdmc+";return I.jsxs(a,{className:`h-100 d-flex flex-column bg-white border-0 ${M||""}`,style:i,children:[I.jsx("div",{className:"flex-grow-1 p-2",children:I.jsx(a.Img,{variant:"top",src:t,className:"img-fluid rounded-3",style:{aspectRatio:"1 / 1",objectFit:"cover"}})}),I.jsx(a.Body,{className:"flex-grow-0",children:I.jsxs(a.Subtitle,{className:"text-truncate",children:[" ",e.name]})})]})}


version_name: ProductCard
version_updated_at: 2025-11-18T05:41:58.823Z
version_created_at: 2025-11-18T04:12:25.627Z
created_at: 2025-11-18T05:41:58.833Z
updated_at: 2025-11-18T05:41:58.833Z
version_jsx:
  import type { ComponentJsx } from '../../types'
  import type { Product } from '@/payload-types'

  export default (function ProductCard({
  	runtime,
  	props: { product, className, style },
  	deps: {
  		app: { isPopulated },
  		rb: { Card },
  	},
  }) {
  	const img = product.img?.at(0)
  	const imgSrc = isPopulated(img) ? img.url : `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyBmaWxsPSJub25lIiBzdHJva2U9IiNFREVERUQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxwYXRoIGQ9Ik0xNC41NjQgMTQuNTU4YTMgMyAwIDEgMS00LjEyMi00LjEyMU0yIDJsMjAgMjAiLz48cGF0aCBkPSJNMjAgMjBINGEyIDIgMCAwIDEtMi0yVjlhMiAyIDAgMCAxIDItMmgxLjk5N2EyIDIgMCAwIDAgLjgxOS0uMTc1bTIuODc5LTIuODAxQTIgMiAwIDAgMSAxMC4wMDQgNGgzLjk5M2EyIDIgMCAwIDEgMS43NiAxLjA1bC40ODYuOUEyIDIgMCAwIDAgMTguMDAzIDdIMjBhMiAyIDAgMCAxIDIgMnY3LjM0NCIvPjwvZz48L3N2Zz4=`
  	return (
  		<Card className={`h-100 d-flex flex-column bg-white border-0 ${className || ''}`} style={style}>
  			<div className="flex-grow-1 p-2">
  				<Card.Img variant="top" src={imgSrc} className="img-fluid rounded-3"
  					style={{
  						aspectRatio: '1 / 1',
  						objectFit: 'cover',
  					}} />
  			</div>
  			<Card.Body className="flex-grow-0">
  				<Card.Subtitle className="text-truncate" > {product.name}</Card.Subtitle>
  			</Card.Body>
  		</Card >
  	)
  } satisfies ComponentJsx<{
  	product: Product
  	className?: string
  	style?: object
  }>)

version_code:
  export default function({runtime:I,props:{product:M,className:g,style:e},deps:{app:{isPopulated:l},rb:{Card:a}}}){let i=M.img?.at(0),s=l(i)?i.url:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyBmaWxsPSJub25lIiBzdHJva2U9IiNFREVERUQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxwYXRoIGQ9Ik0xNC41NjQgMTQuNTU4YTMgMyAwIDEgMS00LjEyMi00LjEyMU0yIDJsMjAgMjAiLz48cGF0aCBkPSJNMjAgMjBINGEyIDIgMCAwIDEtMi0yVjlhMiAyIDAgMCAxIDItMmgxLjk5N2EyIDIgMCAwIDAgLjgxOS0uMTc1bTIuODc5LTIuODAxQTIgMiAwIDAgMSAxMC4wMDQgNGgzLjk5M2EyIDIgMCAwIDEgMS43NiAxLjA1bC40ODYuOUEyIDIgMCAwIDAgMTguMDAzIDdIMjBhMiAyIDAgMCAxIDIgMnY3LjM0NCIvPjwvZz48L3N2Zz4=";return I.jsxs(a,{className:`h-100 d-flex flex-column bg-white border-0 ${g||""}`,style:e,children:[I.jsx("div",{className:"flex-grow-1 p-2",children:I.jsx(a.Img,{variant:"top",src:s,className:"img-fluid rounded-3",style:{aspectRatio:"1 / 1",objectFit:"cover"}})}),I.jsx(a.Body,{className:"flex-grow-0",children:I.jsxs(a.Subtitle,{className:"text-truncate",children:[" ",M.name]})})]})}


version_name: ProductCard
version_updated_at: 2025-11-18T05:44:26.322Z
version_created_at: 2025-11-18T04:12:25.627Z
created_at: 2025-11-18T05:44:26.333Z
updated_at: 2025-11-18T05:44:26.333Z
version_jsx:
  import type { ComponentJsx } from '../../types'
  import type { Product } from '@/payload-types'

  export default (function ProductCard({
  	runtime,
  	props: { product, className, style },
  	deps: {
  		app: { isPopulated },
  		rb: { Card },
  	},
  }) {
  	const img = product.img?.at(0)
  	const imgSrc = isPopulated(img) ? img.url : `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyBmaWxsPSJub25lIiBzdHJva2U9IiNFREVERUQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxwYXRoIGQ9Ik0xMiAyMEg1YTIgMiAwIDAgMS0yLTJWOWEyIDIgMCAwIDEgMi0yaDFhMiAyIDAgMCAwIDItMmExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMWEyIDIgMCAwIDAgMiAyaDFhMiAyIDAgMCAxIDIgMnYzLjUiLz48cGF0aCBkPSJNMTQuOTg0IDEzLjMwN2EzIDMgMCAxIDAtMi4zMiAyLjYyTTE2IDE5YTMgMyAwIDEgMCA2IDBhMyAzIDAgMSAwLTYgMG0xIDJsNC00Ii8+PC9nPjwvc3ZnPg==`
  	return (
  		<Card className={`h-100 d-flex flex-column bg-white border-0 ${className || ''}`} style={style}>
  			<div className="flex-grow-1 p-2">
  				<Card.Img variant="top" src={imgSrc} className="img-fluid rounded-3"
  					style={{
  						aspectRatio: '1 / 1',
  						objectFit: 'cover',
  					}} />
  			</div>
  			<Card.Body className="flex-grow-0">
  				<Card.Subtitle className="text-truncate" > {product.name}</Card.Subtitle>
  			</Card.Body>
  		</Card >
  	)
  } satisfies ComponentJsx<{
  	product: Product
  	className?: string
  	style?: object
  }>)

version_code:
  export default function({runtime:I,props:{product:M,className:e,style:g},deps:{app:{isPopulated:a},rb:{Card:i}}}){let l=M.img?.at(0),s=a(l)?l.url:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyBmaWxsPSJub25lIiBzdHJva2U9IiNFREVERUQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxwYXRoIGQ9Ik0xMiAyMEg1YTIgMiAwIDAgMS0yLTJWOWEyIDIgMCAwIDEgMi0yaDFhMiAyIDAgMCAwIDItMmExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMWEyIDIgMCAwIDAgMiAyaDFhMiAyIDAgMCAxIDIgMnYzLjUiLz48cGF0aCBkPSJNMTQuOTg0IDEzLjMwN2EzIDMgMCAxIDAtMi4zMiAyLjYyTTE2IDE5YTMgMyAwIDEgMCA2IDBhMyAzIDAgMSAwLTYgMG0xIDJsNC00Ii8+PC9nPjwvc3ZnPg==";return I.jsxs(i,{className:`h-100 d-flex flex-column bg-white border-0 ${e||""}`,style:g,children:[I.jsx("div",{className:"flex-grow-1 p-2",children:I.jsx(i.Img,{variant:"top",src:s,className:"img-fluid rounded-3",style:{aspectRatio:"1 / 1",objectFit:"cover"}})}),I.jsx(i.Body,{className:"flex-grow-0",children:I.jsxs(i.Subtitle,{className:"text-truncate",children:[" ",M.name]})})]})}


version_name: ProductCard
version_updated_at: 2025-11-18T05:45:02.627Z
version_created_at: 2025-11-18T04:12:25.627Z
created_at: 2025-11-18T05:45:02.639Z
updated_at: 2025-11-18T05:45:02.639Z
version_jsx:
  import type { ComponentJsx } from '../../types'
  import type { Product } from '@/payload-types'

  export default (function ProductCard({
  	runtime,
  	props: { product, className, style },
  	deps: {
  		app: { isPopulated },
  		rb: { Card },
  	},
  }) {
  	const img = product.img?.at(0)
  	const imgSrc = isPopulated(img) ? img.url : `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyBmaWxsPSJub25lIiBzdHJva2U9IiNlMWUxZTEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxwYXRoIGQ9Ik0xMiAyMEg1YTIgMiAwIDAgMS0yLTJWOWEyIDIgMCAwIDEgMi0yaDFhMiAyIDAgMCAwIDItMmExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMWEyIDIgMCAwIDAgMiAyaDFhMiAyIDAgMCAxIDIgMnYzLjUiLz48cGF0aCBkPSJNMTQuOTg0IDEzLjMwN2EzIDMgMCAxIDAtMi4zMiAyLjYyTTE2IDE5YTMgMyAwIDEgMCA2IDBhMyAzIDAgMSAwLTYgMG0xIDJsNC00Ii8+PC9nPjwvc3ZnPg==`
  	return (
  		<Card className={`h-100 d-flex flex-column bg-white border-0 ${className || ''}`} style={style}>
  			<div className="flex-grow-1 p-2">
  				<Card.Img variant="top" src={imgSrc} className="img-fluid rounded-3"
  					style={{
  						aspectRatio: '1 / 1',
  						objectFit: 'cover',
  					}} />
  			</div>
  			<Card.Body className="flex-grow-0">
  				<Card.Subtitle className="text-truncate" > {product.name}</Card.Subtitle>
  			</Card.Body>
  		</Card >
  	)
  } satisfies ComponentJsx<{
  	product: Product
  	className?: string
  	style?: object
  }>)

version_code:
  export default function({runtime:I,props:{product:M,className:e,style:g},deps:{app:{isPopulated:a},rb:{Card:i}}}){let l=M.img?.at(0),s=a(l)?l.url:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyBmaWxsPSJub25lIiBzdHJva2U9IiNlMWUxZTEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxwYXRoIGQ9Ik0xMiAyMEg1YTIgMiAwIDAgMS0yLTJWOWEyIDIgMCAwIDEgMi0yaDFhMiAyIDAgMCAwIDItMmExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMWEyIDIgMCAwIDAgMiAyaDFhMiAyIDAgMCAxIDIgMnYzLjUiLz48cGF0aCBkPSJNMTQuOTg0IDEzLjMwN2EzIDMgMCAxIDAtMi4zMiAyLjYyTTE2IDE5YTMgMyAwIDEgMCA2IDBhMyAzIDAgMSAwLTYgMG0xIDJsNC00Ii8+PC9nPjwvc3ZnPg==";return I.jsxs(i,{className:`h-100 d-flex flex-column bg-white border-0 ${e||""}`,style:g,children:[I.jsx("div",{className:"flex-grow-1 p-2",children:I.jsx(i.Img,{variant:"top",src:s,className:"img-fluid rounded-3",style:{aspectRatio:"1 / 1",objectFit:"cover"}})}),I.jsx(i.Body,{className:"flex-grow-0",children:I.jsxs(i.Subtitle,{className:"text-truncate",children:[" ",M.name]})})]})}


version_name: CategoriesGrid
version_updated_at: 2025-11-18T11:38:23.317Z
version_created_at: 2025-11-17T09:47:44.754Z
created_at: 2025-11-18T11:38:23.329Z
updated_at: 2025-11-18T11:38:23.329Z
version_jsx:
  import type { Category } from '@/payload-types'
  import type { ComponentJsx } from 'scripts/bootstrap/types'

  export default (function CategoriesGrid({
    runtime,
    props: { categories, className, style },
    deps: {
      rb: { Container, Row, Col, Image },
      next: { Link },
    },
  }) {
    return (
      <Container className={className} style={style}>
        <Row
          className="d-md-grid row-gap-3 row-gap-md-2"
          style={{
            gridTemplateColumns: 'repeat(7, 1fr)',
          }}
        >
          {categories.map((category) => {
            const attr = category.attributes?.find((x) => x.key === 'homeWidth')

            const imgUrl = typeof category.img !== 'number' && category.img?.sizes?.main?.url
            return (
              <Col
                xs={12}
                key={category.id}
                className="overflow-hidden px-md-1 text-white"
                style={{
                  gridColumn: `span ${attr?.number || '2'}`,
                  height: '350px',
                }}
              >
                <Link
                  href={`/categories/${category.slug}`}
                  className="link-light rounded overflow-hidden"
                  style={{ display: 'block', position: 'relative', height: '100%' }}
                >
                  <Image
                    src={imgUrl || ''}
                    alt={category.name}
                    rounded
                    className="hover-zoom"
                    style={{
                      width: '100%',
                      height: '100%',
                      objectFit: 'cover',
                      display: 'block',
                    }}
                  />
                  <div
                    style={{
                      position: 'absolute',
                      bottom: 0,
                      left: 0,
                      width: '100%',
                      height: '50%',
                      background:
                        'linear-gradient(to bottom, rgba(0,0,0,0) 0%, rgba(0,0,0,0.8) 100%)',
                      pointerEvents: 'none',
                      borderRadius: 'var(--bs-border-radius)',
                    }}
                  />
                  <h5 className="position-absolute bottom-0 mx-4 mb-4 fw-semibold">
                    {category.name}
                  </h5>
                </Link>
              </Col>
            )
          })}
        </Row>
      </Container>
    )
  } satisfies ComponentJsx<{ categories: [Category]; className?: string; style?: object }>)

version_code:
  export default function({runtime:e,props:{categories:t,className:s,style:i},deps:{rb:{Container:r,Row:o,Col:l,Image:a},next:{Link:d}}}){return e.jsx(r,{className:s,style:i,children:e.jsx(o,{className:"d-md-grid row-gap-3 row-gap-md-2",style:{gridTemplateColumns:"repeat(7, 1fr)"},children:t.map(t=>{let s=t.attributes?.find(e=>"homeWidth"===e.key),i="number"!=typeof t.img&&t.img?.sizes?.main?.url;return e.jsx(l,{xs:12,className:"overflow-hidden px-md-1 text-white",style:{gridColumn:`span ${s?.number||"2"}`,height:"350px"},children:e.jsxs(d,{href:`/categories/${t.slug}`,className:"link-light rounded overflow-hidden",style:{display:"block",position:"relative",height:"100%"},children:[e.jsx(a,{src:i||"",alt:t.name,rounded:!0,className:"hover-zoom",style:{width:"100%",height:"100%",objectFit:"cover",display:"block"}}),e.jsx("div",{style:{position:"absolute",bottom:0,left:0,width:"100%",height:"50%",background:"linear-gradient(to bottom, rgba(0,0,0,0) 0%, rgba(0,0,0,0.8) 100%)",pointerEvents:"none",borderRadius:"var(--bs-border-radius)"}}),e.jsx("h5",{className:"position-absolute bottom-0 mx-4 mb-4 fw-semibold",children:t.name})]})},t.id)})})})}


version_name: ProductCard
version_updated_at: 2025-11-18T11:41:23.802Z
version_created_at: 2025-11-18T04:12:25.627Z
created_at: 2025-11-18T11:41:23.814Z
updated_at: 2025-11-18T11:41:23.814Z
version_jsx:
  import type { ComponentJsx } from '../../types'
  import type { Product } from '@/payload-types'

  export default (function ProductCard({
    runtime,
    props: { product, className, style },
    deps: {
      app: { isPopulated },
      rb: { Card },
    },
  }) {
    const img = product.img?.at(0)
    const imgSrc = isPopulated(img)
      ? img.url!
      : `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyBmaWxsPSJub25lIiBzdHJva2U9IiNlMWUxZTEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxwYXRoIGQ9Ik0xMiAyMEg1YTIgMiAwIDAgMS0yLTJWOWEyIDIgMCAwIDEgMi0yaDFhMiAyIDAgMCAwIDItMmExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMWEyIDIgMCAwIDAgMiAyaDFhMiAyIDAgMCAxIDIgMnYzLjUiLz48cGF0aCBkPSJNMTQuOTg0IDEzLjMwN2EzIDMgMCAxIDAtMi4zMiAyLjYyTTE2IDE5YTMgMyAwIDEgMCA2IDBhMyAzIDAgMSAwLTYgMG0xIDJsNC00Ii8+PC9nPjwvc3ZnPg==`
    return (
      <Card className={`h-100 d-flex flex-column bg-white border-0 ${className || ''}`} style={style}>
        <div className="flex-grow-1 m-2 rounded">
          <Card.Img
            variant="top"
            src={imgSrc}
            className="img-fluid"
            style={{
              aspectRatio: '1 / 1',
              objectFit: 'cover',
            }}
          />
        </div>
        <Card.Body className="flex-grow-0">
          <Card.Subtitle className="text-truncate"> {product.name}</Card.Subtitle>
        </Card.Body>
      </Card>
    )
  } satisfies ComponentJsx<{
    product: Product
    className?: string
    style?: object
  }>)

version_code:
  export default function({runtime:I,props:{product:M,className:e,style:g},deps:{app:{isPopulated:a},rb:{Card:i}}}){let l=M.img?.at(0),s=a(l)?l.url:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyBmaWxsPSJub25lIiBzdHJva2U9IiNlMWUxZTEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxwYXRoIGQ9Ik0xMiAyMEg1YTIgMiAwIDAgMS0yLTJWOWEyIDIgMCAwIDEgMi0yaDFhMiAyIDAgMCAwIDItMmExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMWEyIDIgMCAwIDAgMiAyaDFhMiAyIDAgMCAxIDIgMnYzLjUiLz48cGF0aCBkPSJNMTQuOTg0IDEzLjMwN2EzIDMgMCAxIDAtMi4zMiAyLjYyTTE2IDE5YTMgMyAwIDEgMCA2IDBhMyAzIDAgMSAwLTYgMG0xIDJsNC00Ii8+PC9nPjwvc3ZnPg==";return I.jsxs(i,{className:`h-100 d-flex flex-column bg-white border-0 ${e||""}`,style:g,children:[I.jsx("div",{className:"flex-grow-1 m-2 rounded",children:I.jsx(i.Img,{variant:"top",src:s,className:"img-fluid",style:{aspectRatio:"1 / 1",objectFit:"cover"}})}),I.jsx(i.Body,{className:"flex-grow-0",children:I.jsxs(i.Subtitle,{className:"text-truncate",children:[" ",M.name]})})]})}


version_name: ProductCard
version_updated_at: 2025-11-18T11:47:56.587Z
version_created_at: 2025-11-18T04:12:25.627Z
created_at: 2025-11-18T11:47:56.597Z
updated_at: 2025-11-18T11:47:56.597Z
version_jsx:
  import type { ComponentJsx } from '../../types'
  import type { Product } from '@/payload-types'

  export default (function ProductCard({
    runtime,
    props: { product, className, style },
    deps: {
      app: { isPopulated },
      rb: { Card },
    },
  }) {
    const img = product.img?.at(0)
    const imgSrc = isPopulated(img)
      ? img.url!
      : `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyBmaWxsPSJub25lIiBzdHJva2U9IiNlMWUxZTEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxwYXRoIGQ9Ik0xMiAyMEg1YTIgMiAwIDAgMS0yLTJWOWEyIDIgMCAwIDEgMi0yaDFhMiAyIDAgMCAwIDItMmExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMWEyIDIgMCAwIDAgMiAyaDFhMiAyIDAgMCAxIDIgMnYzLjUiLz48cGF0aCBkPSJNMTQuOTg0IDEzLjMwN2EzIDMgMCAxIDAtMi4zMiAyLjYyTTE2IDE5YTMgMyAwIDEgMCA2IDBhMyAzIDAgMSAwLTYgMG0xIDJsNC00Ii8+PC9nPjwvc3ZnPg==`
    return (
      <Card className={`h-100 d-flex flex-column bg-white border-0 ${className || ''}`} style={style}>
        <div className="flex-grow-1 m-2 rounded overflow-hidden">
          <Card.Img
            variant="top"
            src={imgSrc}
            className="img-fluid"
            style={{
              aspectRatio: '1 / 1',
              objectFit: 'cover',
            }}
          />
        </div>
        <Card.Body className="flex-grow-0">
          <Card.Subtitle className="text-truncate"> {product.name}</Card.Subtitle>
        </Card.Body>
      </Card>
    )
  } satisfies ComponentJsx<{
    product: Product
    className?: string
    style?: object
  }>)

version_code:
  export default function({runtime:I,props:{product:M,className:e,style:g},deps:{app:{isPopulated:i},rb:{Card:a}}}){let l=M.img?.at(0),s=i(l)?l.url:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyBmaWxsPSJub25lIiBzdHJva2U9IiNlMWUxZTEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxwYXRoIGQ9Ik0xMiAyMEg1YTIgMiAwIDAgMS0yLTJWOWEyIDIgMCAwIDEgMi0yaDFhMiAyIDAgMCAwIDItMmExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMWEyIDIgMCAwIDAgMiAyaDFhMiAyIDAgMCAxIDIgMnYzLjUiLz48cGF0aCBkPSJNMTQuOTg0IDEzLjMwN2EzIDMgMCAxIDAtMi4zMiAyLjYyTTE2IDE5YTMgMyAwIDEgMCA2IDBhMyAzIDAgMSAwLTYgMG0xIDJsNC00Ii8+PC9nPjwvc3ZnPg==";return I.jsxs(a,{className:`h-100 d-flex flex-column bg-white border-0 ${e||""}`,style:g,children:[I.jsx("div",{className:"flex-grow-1 m-2 rounded overflow-hidden",children:I.jsx(a.Img,{variant:"top",src:s,className:"img-fluid",style:{aspectRatio:"1 / 1",objectFit:"cover"}})}),I.jsx(a.Body,{className:"flex-grow-0",children:I.jsxs(a.Subtitle,{className:"text-truncate",children:[" ",M.name]})})]})}


version_name: OurPartners
version_updated_at: 2025-11-20T10:45:47.935Z
version_created_at: 2025-11-17T09:47:45.017Z
created_at: 2025-11-20T10:45:47.950Z
updated_at: 2025-11-20T10:45:47.950Z
version_jsx:
  import type { ComponentJsx } from '../../types'

  export default (function OurPartners({
    runtime,
    props: { className, style },
    components: { ParallelogramGrid },
    deps: {
      rb: { Container, Row, Col },
    },
  }) {
    return (
      <Container className={`overflow-hidden ${className}`} style={style}>
        <Row>
          <Col
            lg={3}
            className="d-flex flex-lg-column mb-lg-0 mb-3 text-uppercase"
            style={{ maxWidth: '500px' }}
          >
            <h1 className="lh-1">наши&nbsp;</h1>
            <h1 className="mb-0 ms-lg-auto lh-1 text-primary">партнеры</h1>
          </Col>
          <Col lg={1}></Col>
          <Col lg={5} className="mt-auto">
            За каждым нашим успехом стоит команда надёжных друзей и коллег — наши партнёры
          </Col>
          <Col lg={12} className="d-flex flex-column py-5 row-gap-3 text-white">
            {/* Parallelograms lg */}
            <Row className="justify-content-end d-lg-flex d-none" style={{ minHeight: '180px' }}>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginRight: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="var(--bs-primary)"
                  preserveAspectRatio="none"
                  mask={'1'}
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Бизнес-клиенты</h5>
                  <span>
                    Предприниматели и организации, точные договоренности по срокам и качеству
                  </span>
                </div>
              </Col>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginLeft: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#1d1d1d"
                  preserveAspectRatio="none"
                  mask={'1'}
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Перевозчики</h5>
                  <span>
                    Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно в срок
                  </span>
                </div>
              </Col>
            </Row>

            <Row className="justify-content-start d-lg-flex d-none" style={{ minHeight: '180px' }}>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginRight: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Дистрибьюторы</h5>
                  <span>
                    Получаем товары напрямую от официальных партнёров и диллеров — надёжно и без
                    посредников
                  </span>
                </div>
              </Col>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginLeft: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="var(--bs-primary)"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Производители</h5>
                  <span>
                    Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем
                    выгодные условия
                  </span>
                </div>
              </Col>
            </Row>

            {/* Parallelograms mobile */}
            <Row className="d-lg-none d-grid flex-column row-gap-2">
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={-10}
                  fill="var(--bs-primary)"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Бизнес-клиенты</h5>
                  <span className="fw-light">
                    Предприниматели и организации, точные договоренности по срокам и качеству
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={10}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Перевозчики</h5>
                  <span className="fw-light">
                    Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно в срок
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={-10}
                  fill="var(--bs-primary)"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Производители</h5>
                  <span className="fw-light">
                    Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем выгодные условия
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={10}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Дистрибьюторы</h5>
                  <span className="fw-light">
                    Получаем товары напрямую от официальных партнёров и диллеров — надёжно и без посредников
                  </span>
                </div>
              </Col>
            </Row>
          </Col>
        </Row>
      </Container>
    )
  } satisfies ComponentJsx<{ className?: string; style?: object }>)

version_code:
  export default function({runtime:s,props:{className:e,style:l},components:{ParallelogramGrid:i},deps:{rb:{Container:a,Row:n,Col:t}}}){return s.jsx(a,{className:`overflow-hidden ${e}`,style:l,children:s.jsxs(n,{children:[s.jsxs(t,{lg:3,className:"d-flex flex-lg-column mb-lg-0 mb-3 text-uppercase",style:{maxWidth:"500px"},children:[s.jsx("h1",{className:"lh-1",children:"наши "}),s.jsx("h1",{className:"mb-0 ms-lg-auto lh-1 text-primary",children:"партнеры"})]}),s.jsx(t,{lg:1}),s.jsx(t,{lg:5,className:"mt-auto",children:"За каждым нашим успехом стоит команда надёжных друзей и коллег — наши партнёры"}),s.jsxs(t,{lg:12,className:"d-flex flex-column py-5 row-gap-3 text-white",children:[s.jsxs(n,{className:"justify-content-end d-lg-flex d-none",style:{minHeight:"180px"},children:[s.jsxs(t,{lg:6,className:"position-relative",style:{marginRight:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"var(--bs-primary)",preserveAspectRatio:"none",mask:"1",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Бизнес-клиенты"}),s.jsx("span",{children:"Предприниматели и организации, точные договоренности по срокам и качеству"})]})]}),s.jsxs(t,{lg:6,className:"position-relative",style:{marginLeft:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#1d1d1d",preserveAspectRatio:"none",mask:"1",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Перевозчики"}),s.jsx("span",{children:"Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно в срок"})]})]})]}),s.jsxs(n,{className:"justify-content-start d-lg-flex d-none",style:{minHeight:"180px"},children:[s.jsxs(t,{lg:6,className:"position-relative",style:{marginRight:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Дистрибьюторы"}),s.jsx("span",{children:"Получаем товары напрямую от официальных партнёров и диллеров — надёжно и без посредников"})]})]}),s.jsxs(t,{lg:6,className:"position-relative",style:{marginLeft:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"var(--bs-primary)",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Производители"}),s.jsx("span",{children:"Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем выгодные условия"})]})]})]}),s.jsxs(n,{className:"d-lg-none d-grid flex-column row-gap-2",children:[s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:-10,fill:"var(--bs-primary)",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Бизнес-клиенты"}),s.jsx("span",{className:"fw-light",children:"Предприниматели и организации, точные договоренности по срокам и качеству"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:10,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Перевозчики"}),s.jsx("span",{className:"fw-light",children:"Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно в срок"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:-10,fill:"var(--bs-primary)",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Производители"}),s.jsx("span",{className:"fw-light",children:"Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем выгодные условия"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:10,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Дистрибьюторы"}),s.jsx("span",{className:"fw-light",children:"Получаем товары напрямую от официальных партнёров и диллеров — надёжно и без посредников"})]})]})]})]})]})})}


version_name: OurPartners
version_updated_at: 2025-11-20T10:47:13.382Z
version_created_at: 2025-11-17T09:47:45.017Z
created_at: 2025-11-20T10:47:13.391Z
updated_at: 2025-11-20T10:47:13.391Z
version_jsx:
  import type { ComponentJsx } from '../../types'

  export default (function OurPartners({
    runtime,
    props: { className, style },
    components: { ParallelogramGrid },
    deps: {
      rb: { Container, Row, Col },
    },
  }) {
    return (
      <Container className={`overflow-hidden ${className}`} style={style}>
        <Row>
          <Col
            lg={3}
            className="d-flex flex-lg-column mb-lg-0 mb-3 text-uppercase"
            style={{ maxWidth: '500px' }}
          >
            <h1 className="lh-1">наши&nbsp;</h1>
            <h1 className="mb-0 ms-lg-auto lh-1 text-primary">партнеры</h1>
          </Col>
          <Col lg={1}></Col>
          <Col lg={5} className="mt-auto">
            За каждым нашим успехом стоит команда надёжных друзей и коллег — наши партнёры
          </Col>
          <Col lg={12} className="d-flex flex-column py-5 row-gap-3 text-white">
            {/* Parallelograms lg */}
            <Row className="justify-content-end d-lg-flex d-none" style={{ minHeight: '180px' }}>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginRight: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="var(--bs-primary)"
                  preserveAspectRatio="none"
                  mask={'1'}
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Бизнес-клиенты</h5>
                  <span>
                    Предприниматели и организации, точные договоренности по срокам и качеству
                  </span>
                </div>
              </Col>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginLeft: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#1d1d1d"
                  preserveAspectRatio="none"
                  mask={'1'}
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Перевозчики</h5>
                  <span>
                    Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно
                    в срок
                  </span>
                </div>
              </Col>
            </Row>

            <Row className="justify-content-start d-lg-flex d-none" style={{ minHeight: '180px' }}>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginRight: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Дистрибьюторы</h5>
                  <span>
                    Получаем товары напрямую от официальных партнёров и диллеров — надёжно и без
                    посредников
                  </span>
                </div>
              </Col>
              <Col
                lg={6}
                className="position-relative"
                style={{
                  marginLeft: '-2.2%',
                }}
              >
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={17}
                  skewAngle={-15}
                  fill="var(--bs-primary)"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 d-flex flex-column mt-5 row-gap-2"
                  style={{
                    padding: '0 12%',
                  }}
                >
                  <h5 className="fw-semibold">Производители</h5>
                  <span>
                    Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем
                    выгодные условия
                  </span>
                </div>
              </Col>
            </Row>

            {/* Parallelograms mobile */}
            <Row className="d-lg-none d-grid flex-column row-gap-2">
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={-10}
                  fill="var(--bs-primary)"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Бизнес-клиенты</h5>
                  <span className="fw-light">
                    Предприниматели и организации, точные договоренности по срокам и качеству
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={10}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Перевозчики</h5>
                  <span className="fw-light">
                    Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно
                    в срок
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={-10}
                  fill="var(--bs-primary)"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Производители</h5>
                  <span className="fw-light">
                    Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем
                    выгодные условия
                  </span>
                </div>
              </Col>
              <Col className="position-relative overflow-hidden" style={{ height: '150px' }}>
                <ParallelogramGrid
                  rows={1}
                  columns={1}
                  cellWidth={50}
                  cellHeight={20}
                  skewAngle={10}
                  fill="#1d1d1d"
                  mask={'1'}
                  preserveAspectRatio="none"
                  className="h-100"
                />
                <div
                  className="position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2"
                  style={{
                    padding: '0 8%',
                  }}
                >
                  <h5 className="fw-semibold">Дистрибьюторы</h5>
                  <span className="fw-light">
                    Получаем товары напрямую от официальных партнёров и дилеров — надёжно и без
                    посредников
                  </span>
                </div>
              </Col>
            </Row>
          </Col>
        </Row>
      </Container>
    )
  } satisfies ComponentJsx<{ className?: string; style?: object }>)

version_code:
  export default function({runtime:s,props:{className:e,style:l},components:{ParallelogramGrid:i},deps:{rb:{Container:a,Row:n,Col:t}}}){return s.jsx(a,{className:`overflow-hidden ${e}`,style:l,children:s.jsxs(n,{children:[s.jsxs(t,{lg:3,className:"d-flex flex-lg-column mb-lg-0 mb-3 text-uppercase",style:{maxWidth:"500px"},children:[s.jsx("h1",{className:"lh-1",children:"наши "}),s.jsx("h1",{className:"mb-0 ms-lg-auto lh-1 text-primary",children:"партнеры"})]}),s.jsx(t,{lg:1}),s.jsx(t,{lg:5,className:"mt-auto",children:"За каждым нашим успехом стоит команда надёжных друзей и коллег — наши партнёры"}),s.jsxs(t,{lg:12,className:"d-flex flex-column py-5 row-gap-3 text-white",children:[s.jsxs(n,{className:"justify-content-end d-lg-flex d-none",style:{minHeight:"180px"},children:[s.jsxs(t,{lg:6,className:"position-relative",style:{marginRight:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"var(--bs-primary)",preserveAspectRatio:"none",mask:"1",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Бизнес-клиенты"}),s.jsx("span",{children:"Предприниматели и организации, точные договоренности по срокам и качеству"})]})]}),s.jsxs(t,{lg:6,className:"position-relative",style:{marginLeft:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#1d1d1d",preserveAspectRatio:"none",mask:"1",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Перевозчики"}),s.jsx("span",{children:"Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно в срок"})]})]})]}),s.jsxs(n,{className:"justify-content-start d-lg-flex d-none",style:{minHeight:"180px"},children:[s.jsxs(t,{lg:6,className:"position-relative",style:{marginRight:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Дистрибьюторы"}),s.jsx("span",{children:"Получаем товары напрямую от официальных партнёров и диллеров — надёжно и без посредников"})]})]}),s.jsxs(t,{lg:6,className:"position-relative",style:{marginLeft:"-2.2%"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:17,skewAngle:-15,fill:"var(--bs-primary)",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 d-flex flex-column mt-5 row-gap-2",style:{padding:"0 12%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Производители"}),s.jsx("span",{children:"Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем выгодные условия"})]})]})]}),s.jsxs(n,{className:"d-lg-none d-grid flex-column row-gap-2",children:[s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:-10,fill:"var(--bs-primary)",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Бизнес-клиенты"}),s.jsx("span",{className:"fw-light",children:"Предприниматели и организации, точные договоренности по срокам и качеству"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:10,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Перевозчики"}),s.jsx("span",{className:"fw-light",children:"Сотрудничаем с надёжными транспортными компаниями, доставляем качественно и точно в срок"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:-10,fill:"var(--bs-primary)",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Производители"}),s.jsx("span",{className:"fw-light",children:"Сотрудничаем напрямую с фабриками и заводами — контролируем качество и предлагаем выгодные условия"})]})]}),s.jsxs(t,{className:"position-relative overflow-hidden",style:{height:"150px"},children:[s.jsx(i,{rows:1,columns:1,cellWidth:50,cellHeight:20,skewAngle:10,fill:"#1d1d1d",mask:"1",preserveAspectRatio:"none",className:"h-100"}),s.jsxs("div",{className:"position-absolute top-0 mt-3 mt-sm-4 d-flex flex-column row-gap-sm-2",style:{padding:"0 8%"},children:[s.jsx("h5",{className:"fw-semibold",children:"Дистрибьюторы"}),s.jsx("span",{className:"fw-light",children:"Получаем товары напрямую от официальных партнёров и дилеров — надёжно и без посредников"})]})]})]})]})]})})}


version_name: CompanyBenefits
version_updated_at: 2025-11-21T04:33:23.389Z
version_created_at: 2025-11-17T09:47:44.829Z
created_at: 2025-11-21T04:33:23.400Z
updated_at: 2025-11-21T04:33:23.400Z
version_jsx:
  import type { ComponentJsx } from '../../types'

  export default (function CompanyBenefits({
    runtime,
    props: { className, style },
    deps: {
      rb: { Container, Row, Col },
    },
  }) {
    const classes = 'position-relative' + (className ? ` ${className}` : '')
    return (
      <div className={classes} style={style}>
        <div
          style={{
            position: 'absolute',
            top: 0,
            right: 0,
            bottom: 0,
            left: 0,
          }}
        >
          <div className="h-100 d-flex">
            <div
              className="d-none d-lg-flex w-100 overflow-hidden"
              style={{
                position: 'absolute',
                top: 0,
                right: 0,
                bottom: 0,
                left: 0,
              }}
            >
              <div
                className="w-50"
                style={{
                  backgroundImage: 'url(/api/media/file/wheel.webp)',
                  backgroundSize: 'cover',
                  backgroundPosition: 'center',
                }}
              >
                <div
                  className="h-100"
                  style={{
                    backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.8)',
                  }}
                ></div>
              </div>
              <div
                className="w-50"
                style={{
                  backgroundImage: 'url(/api/media/file/wheel.webp)',
                  backgroundSize: 'cover',
                  backgroundPosition: 'center',
                }}
              >
                <div
                  className="h-100"
                  style={{
                    backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.8)',
                  }}
                ></div>
              </div>
            </div>
            <div className="container d-none d-lg-block h-100">
              <div className="row h-100">
                <div className="col col-3"></div>
                <div className="col col-9 bg-secondary" style={{ transform: 'skewX(-15deg)' }}></div>
              </div>
            </div>
            <div
              className="w-100 d-lg-none"
              style={{
                backgroundImage: 'url(/api/media/file/wheel.webp)',
                backgroundSize: 'cover',
                backgroundPosition: 'center',
                clipPath: 'polygon(0 0, 66% 0, 33% 100%, 0% 100%)',
              }}
            >
              <div
                className="h-100"
                style={{
                  backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.8)',
                }}
              ></div>
            </div>
          </div>
        </div>
        <Container className="position-relative z-1">
          <Row
            className="justify-content-between row-gap-5"
            style={{ padding: '60px 0 clamp(60px, 10vw, 100px) 0' }}
          >
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle"
                style={{
                  
                }}
              >
                <iconify-icon icon="line-md:calendar" className="text-primary" style={{fontSize: '72px'}}></iconify-icon>
              </div>
              <h4 className="fw-semibold">20 лет опыта работы с Китаем</h4>
              <span>
                Знаем специфику китайского рынка: подбираем поставщиков, проверяем качество и снижаем
                риски.
              </span>
            </Col>
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle border-primary bg-white"
                style={{
                  border: '3px dashed',
                  padding: '12px',
                }}
              >
                <iconify-icon icon="line-md:security-twotone" className="fs-1 text-primary"></iconify-icon>
              </div>
              <h4 className="fw-semibold">Официально с гарантией</h4>
              <span>
                Работаем по договору: расчётный счёт, юридические гарантии, чёткие этапы — от запроса
                до доставки.
              </span>
            </Col>
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle border-primary bg-white"
                style={{
                  border: '3px dashed',
                  padding: '12px',
                }}
              >
                <iconify-icon icon="lucide:package-2" className="fs-1 text-primary"></iconify-icon>
              </div>
              <h4 className="fw-semibold">300+ успешных поставок по СНГ</h4>
              <span>
                Сотни поставок по СНГ — от первых заказов до постоянного импорта для малого и крупного
                бизнеса.
              </span>
            </Col>
          </Row>
        </Container>
      </div>
    )
  } satisfies ComponentJsx<{ className?: string; style?: object }>)

version_code:
  export default function({runtime:e,props:{className:s,style:l},deps:{rb:{Container:a,Row:i,Col:r}}}){let c="position-relative"+(s?` ${s}`:"");return e.jsxs("div",{className:c,style:l,children:[e.jsx("div",{style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:e.jsxs("div",{className:"h-100 d-flex",children:[e.jsxs("div",{className:"d-none d-lg-flex w-100 overflow-hidden",style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:[e.jsx("div",{className:"w-50",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.8)"}})}),e.jsx("div",{className:"w-50",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.8)"}})})]}),e.jsx("div",{className:"container d-none d-lg-block h-100",children:e.jsxs("div",{className:"row h-100",children:[e.jsx("div",{className:"col col-3"}),e.jsx("div",{className:"col col-9 bg-secondary",style:{transform:"skewX(-15deg)"}})]})}),e.jsx("div",{className:"w-100 d-lg-none",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center",clipPath:"polygon(0 0, 66% 0, 33% 100%, 0% 100%)"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.8)"}})})]})}),e.jsx(a,{className:"position-relative z-1",children:e.jsxs(i,{className:"justify-content-between row-gap-5",style:{padding:"60px 0 clamp(60px, 10vw, 100px) 0"},children:[e.jsxs(r,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle",style:{},children:e.jsx("iconify-icon",{icon:"line-md:calendar",className:"text-primary",style:{fontSize:"72px"}})}),e.jsx("h4",{className:"fw-semibold",children:"20 лет опыта работы с Китаем"}),e.jsx("span",{children:"Знаем специфику китайского рынка: подбираем поставщиков, проверяем качество и снижаем риски."})]}),e.jsxs(r,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle border-primary bg-white",style:{border:"3px dashed",padding:"12px"},children:e.jsx("iconify-icon",{icon:"line-md:security-twotone",className:"fs-1 text-primary"})}),e.jsx("h4",{className:"fw-semibold",children:"Официально с гарантией"}),e.jsx("span",{children:"Работаем по договору: расчётный счёт, юридические гарантии, чёткие этапы — от запроса до доставки."})]}),e.jsxs(r,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle border-primary bg-white",style:{border:"3px dashed",padding:"12px"},children:e.jsx("iconify-icon",{icon:"lucide:package-2",className:"fs-1 text-primary"})}),e.jsx("h4",{className:"fw-semibold",children:"300+ успешных поставок по СНГ"}),e.jsx("span",{children:"Сотни поставок по СНГ — от первых заказов до постоянного импорта для малого и крупного бизнеса."})]})]})})]})}


version_name: CompanyBenefits
version_updated_at: 2025-11-21T04:37:55.911Z
version_created_at: 2025-11-17T09:47:44.829Z
created_at: 2025-11-21T04:37:55.921Z
updated_at: 2025-11-21T04:37:55.921Z
version_jsx:
  import type { ComponentJsx } from '../../types'

  export default (function CompanyBenefits({
    runtime,
    props: { className, style },
    deps: {
      rb: { Container, Row, Col },
    },
  }) {
    const classes = 'position-relative' + (className ? ` ${className}` : '')
    return (
      <div className={classes} style={style}>
        <div
          style={{
            position: 'absolute',
            top: 0,
            right: 0,
            bottom: 0,
            left: 0,
          }}
        >
          <div className="h-100 d-flex">
            <div
              className="d-none d-lg-flex w-100 overflow-hidden"
              style={{
                position: 'absolute',
                top: 0,
                right: 0,
                bottom: 0,
                left: 0,
              }}
            >
              <div
                className="w-50"
                style={{
                  backgroundImage: 'url(/api/media/file/wheel.webp)',
                  backgroundSize: 'cover',
                  backgroundPosition: 'center',
                }}
              >
                <div
                  className="h-100"
                  style={{
                    backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.8)',
                  }}
                ></div>
              </div>
              <div
                className="w-50"
                style={{
                  backgroundImage: 'url(/api/media/file/wheel.webp)',
                  backgroundSize: 'cover',
                  backgroundPosition: 'center',
                }}
              >
                <div
                  className="h-100"
                  style={{
                    backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.8)',
                  }}
                ></div>
              </div>
            </div>
            <div className="container d-none d-lg-block h-100">
              <div className="row h-100">
                <div className="col col-3"></div>
                <div className="col col-9 bg-secondary" style={{ transform: 'skewX(-15deg)' }}></div>
              </div>
            </div>
            <div
              className="w-100 d-lg-none"
              style={{
                backgroundImage: 'url(/api/media/file/wheel.webp)',
                backgroundSize: 'cover',
                backgroundPosition: 'center',
                clipPath: 'polygon(0 0, 66% 0, 33% 100%, 0% 100%)',
              }}
            >
              <div
                className="h-100"
                style={{
                  backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.8)',
                }}
              ></div>
            </div>
          </div>
        </div>
        <Container className="position-relative z-1">
          <Row
            className="justify-content-between row-gap-5"
            style={{ padding: '60px 0 clamp(60px, 10vw, 100px) 0' }}
          >
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle"
                style={{
                  
                }}
              >
                <iconify-icon icon="line-md:calendar" className="text-primary" style={{fontSize: '72px'}}></iconify-icon>
              </div>
              <h4 className="fw-semibold">20 лет опыта работы с Китаем</h4>
              <span>
                Знаем специфику китайского рынка: подбираем поставщиков, проверяем качество и снижаем
                риски.
              </span>
            </Col>
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle"
                style={{
                }}
              >
                <iconify-icon icon="line-md:security-twotone" className="text-primary" style={{fontSize: '72px'}}></iconify-icon>
              </div>
              <h4 className="fw-semibold">Официально с гарантией</h4>
              <span>
                Работаем по договору: расчётный счёт, юридические гарантии, чёткие этапы — от запроса
                до доставки.
              </span>
            </Col>
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle"
                style={{
                }}
              >
                <iconify-icon icon="line-md:speed-twotone" className="text-primary" style={{fontSize: '72px'}}></iconify-icon>
              </div>
              <h4 className="fw-semibold">300+ успешных поставок по СНГ</h4>
              <span>
                Сотни поставок по СНГ — от первых заказов до постоянного импорта для малого и крупного
                бизнеса.
              </span>
            </Col>
          </Row>
        </Container>
      </div>
    )
  } satisfies ComponentJsx<{ className?: string; style?: object }>)

version_code:
  export default function({runtime:e,props:{className:s,style:l},deps:{rb:{Container:a,Row:i,Col:c}}}){let o="position-relative"+(s?` ${s}`:"");return e.jsxs("div",{className:o,style:l,children:[e.jsx("div",{style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:e.jsxs("div",{className:"h-100 d-flex",children:[e.jsxs("div",{className:"d-none d-lg-flex w-100 overflow-hidden",style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:[e.jsx("div",{className:"w-50",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.8)"}})}),e.jsx("div",{className:"w-50",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.8)"}})})]}),e.jsx("div",{className:"container d-none d-lg-block h-100",children:e.jsxs("div",{className:"row h-100",children:[e.jsx("div",{className:"col col-3"}),e.jsx("div",{className:"col col-9 bg-secondary",style:{transform:"skewX(-15deg)"}})]})}),e.jsx("div",{className:"w-100 d-lg-none",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center",clipPath:"polygon(0 0, 66% 0, 33% 100%, 0% 100%)"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.8)"}})})]})}),e.jsx(a,{className:"position-relative z-1",children:e.jsxs(i,{className:"justify-content-between row-gap-5",style:{padding:"60px 0 clamp(60px, 10vw, 100px) 0"},children:[e.jsxs(c,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle",style:{},children:e.jsx("iconify-icon",{icon:"line-md:calendar",className:"text-primary",style:{fontSize:"72px"}})}),e.jsx("h4",{className:"fw-semibold",children:"20 лет опыта работы с Китаем"}),e.jsx("span",{children:"Знаем специфику китайского рынка: подбираем поставщиков, проверяем качество и снижаем риски."})]}),e.jsxs(c,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle",style:{},children:e.jsx("iconify-icon",{icon:"line-md:security-twotone",className:"text-primary",style:{fontSize:"72px"}})}),e.jsx("h4",{className:"fw-semibold",children:"Официально с гарантией"}),e.jsx("span",{children:"Работаем по договору: расчётный счёт, юридические гарантии, чёткие этапы — от запроса до доставки."})]}),e.jsxs(c,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle",style:{},children:e.jsx("iconify-icon",{icon:"line-md:speed-twotone",className:"text-primary",style:{fontSize:"72px"}})}),e.jsx("h4",{className:"fw-semibold",children:"300+ успешных поставок по СНГ"}),e.jsx("span",{children:"Сотни поставок по СНГ — от первых заказов до постоянного импорта для малого и крупного бизнеса."})]})]})})]})}


version_name: CompanyBenefits
version_updated_at: 2025-11-21T04:44:10.191Z
version_created_at: 2025-11-17T09:47:44.829Z
created_at: 2025-11-21T04:44:10.203Z
updated_at: 2025-11-21T04:44:10.203Z
version_jsx:
  import type { ComponentJsx } from '../../types'

  export default (function CompanyBenefits({
    runtime,
    props: { className, style },
    deps: {
      rb: { Container, Row, Col },
    },
  }) {
    const classes = 'position-relative' + (className ? ` ${className}` : '')
    return (
      <div className={classes} style={style}>
        <div
          style={{
            position: 'absolute',
            top: 0,
            right: 0,
            bottom: 0,
            left: 0,
          }}
        >
          <div className="h-100 d-flex">
            <div
              className="d-none d-lg-flex w-100 overflow-hidden"
              style={{
                position: 'absolute',
                top: 0,
                right: 0,
                bottom: 0,
                left: 0,
              }}
            >
              <div
                className="w-50"
                style={{
                  backgroundImage: 'url(/api/media/file/wheel.webp)',
                  backgroundSize: 'cover',
                  backgroundPosition: 'center',
                }}
              >
                <div
                  className="h-100"
                  style={{
                    backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.8)',
                  }}
                ></div>
              </div>
              <div
                className="w-50"
                style={{
                  backgroundImage: 'url(/api/media/file/wheel.webp)',
                  backgroundSize: 'cover',
                  backgroundPosition: 'center',
                }}
              >
                <div
                  className="h-100"
                  style={{
                    backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.8)',
                  }}
                ></div>
              </div>
            </div>
            <div className="container d-none d-lg-block h-100">
              <div className="row h-100">
                <div className="col col-3"></div>
                <div className="col col-9 bg-secondary" style={{ transform: 'skewX(-15deg)' }}></div>
              </div>
            </div>
            <div
              className="w-100 d-lg-none"
              style={{
                backgroundImage: 'url(/api/media/file/wheel.webp)',
                backgroundSize: 'cover',
                backgroundPosition: 'center',
                clipPath: 'polygon(0 0, 66% 0, 33% 100%, 0% 100%)',
              }}
            >
              <div
                className="h-100"
                style={{
                  backgroundColor: 'rgb(from var(--bs-secondary) r g b / 0.8)',
                }}
              ></div>
            </div>
          </div>
        </div>
        <Container className="position-relative z-1">
          <Row
            className="justify-content-between row-gap-5"
            style={{ padding: '60px 0 clamp(60px, 10vw, 100px) 0' }}
          >
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle"
                style={{
                  
                }}
              >
                <iconify-icon icon="line-md:calendar" className="text-primary" style={{fontSize: '72px'}}></iconify-icon>
              </div>
              <h4 className="fw-semibold">20 лет опыта работы с Китаем</h4>
              <span>
                Знаем специфику китайского рынка: подбираем поставщиков, проверяем качество и снижаем
                риски.
              </span>
            </Col>
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle"
                style={{
                }}
              >
                <iconify-icon icon="line-md:clipboard-check" className="text-primary" style={{fontSize: '72px'}}></iconify-icon>
              </div>
              <h4 className="fw-semibold">Официально с гарантией</h4>
              <span>
                Работаем по договору: расчётный счёт, юридические гарантии, чёткие этапы — от запроса
                до доставки.
              </span>
            </Col>
            <Col lg={3} className="d-flex flex-column row-gap-2">
              <div
                className="me-auto mb-1 rounded-circle"
                style={{
                }}
              >
                <iconify-icon icon="line-md:speed" className="text-primary" style={{fontSize: '72px'}}></iconify-icon>
              </div>
              <h4 className="fw-semibold">300+ успешных поставок по СНГ</h4>
              <span>
                Сотни поставок по СНГ — от первых заказов до постоянного импорта для малого и крупного
                бизнеса.
              </span>
            </Col>
          </Row>
        </Container>
      </div>
    )
  } satisfies ComponentJsx<{ className?: string; style?: object }>)

version_code:
  export default function({runtime:e,props:{className:s,style:l},deps:{rb:{Container:a,Row:c,Col:i}}}){let o="position-relative"+(s?` ${s}`:"");return e.jsxs("div",{className:o,style:l,children:[e.jsx("div",{style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:e.jsxs("div",{className:"h-100 d-flex",children:[e.jsxs("div",{className:"d-none d-lg-flex w-100 overflow-hidden",style:{position:"absolute",top:0,right:0,bottom:0,left:0},children:[e.jsx("div",{className:"w-50",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.8)"}})}),e.jsx("div",{className:"w-50",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.8)"}})})]}),e.jsx("div",{className:"container d-none d-lg-block h-100",children:e.jsxs("div",{className:"row h-100",children:[e.jsx("div",{className:"col col-3"}),e.jsx("div",{className:"col col-9 bg-secondary",style:{transform:"skewX(-15deg)"}})]})}),e.jsx("div",{className:"w-100 d-lg-none",style:{backgroundImage:"url(/api/media/file/wheel.webp)",backgroundSize:"cover",backgroundPosition:"center",clipPath:"polygon(0 0, 66% 0, 33% 100%, 0% 100%)"},children:e.jsx("div",{className:"h-100",style:{backgroundColor:"rgb(from var(--bs-secondary) r g b / 0.8)"}})})]})}),e.jsx(a,{className:"position-relative z-1",children:e.jsxs(c,{className:"justify-content-between row-gap-5",style:{padding:"60px 0 clamp(60px, 10vw, 100px) 0"},children:[e.jsxs(i,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle",style:{},children:e.jsx("iconify-icon",{icon:"line-md:calendar",className:"text-primary",style:{fontSize:"72px"}})}),e.jsx("h4",{className:"fw-semibold",children:"20 лет опыта работы с Китаем"}),e.jsx("span",{children:"Знаем специфику китайского рынка: подбираем поставщиков, проверяем качество и снижаем риски."})]}),e.jsxs(i,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle",style:{},children:e.jsx("iconify-icon",{icon:"line-md:clipboard-check",className:"text-primary",style:{fontSize:"72px"}})}),e.jsx("h4",{className:"fw-semibold",children:"Официально с гарантией"}),e.jsx("span",{children:"Работаем по договору: расчётный счёт, юридические гарантии, чёткие этапы — от запроса до доставки."})]}),e.jsxs(i,{lg:3,className:"d-flex flex-column row-gap-2",children:[e.jsx("div",{className:"me-auto mb-1 rounded-circle",style:{},children:e.jsx("iconify-icon",{icon:"line-md:speed",className:"text-primary",style:{fontSize:"72px"}})}),e.jsx("h4",{className:"fw-semibold",children:"300+ успешных поставок по СНГ"}),e.jsx("span",{children:"Сотни поставок по СНГ — от первых заказов до постоянного импорта для малого и крупного бизнеса."})]})]})})]})}


